1 /* Generated by Cython 0.15.1 on Fri Jan 20 16:08:20 2012 */
2 
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #ifndef Py_PYTHON_H
6     #error Python headers needed to compile C extensions, please install development version of Python.
7 #else
8 
9 #include <stddef.h> /* For offsetof */
10 #ifndef offsetof
11 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
12 #endif
13 
14 #if !defined(WIN32) && !defined(MS_WINDOWS)
15   #ifndef __stdcall
16     #define __stdcall
17   #endif
18   #ifndef __cdecl
19     #define __cdecl
20   #endif
21   #ifndef __fastcall
22     #define __fastcall
23   #endif
24 #endif
25 
26 #ifndef DL_IMPORT
27   #define DL_IMPORT(t) t
28 #endif
29 #ifndef DL_EXPORT
30   #define DL_EXPORT(t) t
31 #endif
32 
33 #ifndef PY_LONG_LONG
34   #define PY_LONG_LONG LONG_LONG
35 #endif
36 
37 #if PY_VERSION_HEX < 0x02040000
38   #define METH_COEXIST 0
39   #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
40   #define PyDict_Contains(d,o)   PySequence_Contains(d,o)
41 #endif
42 
43 #if PY_VERSION_HEX < 0x02050000
44   typedef int Py_ssize_t;
45   #define PY_SSIZE_T_MAX INT_MAX
46   #define PY_SSIZE_T_MIN INT_MIN
47   #define PY_FORMAT_SIZE_T ""
48   #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
49   #define PyInt_AsSsize_t(o)   __Pyx_PyInt_AsInt(o)
50   #define PyNumber_Index(o)    PyNumber_Int(o)
51   #define PyIndex_Check(o)     PyNumber_Check(o)
52   #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
53 #endif
54 
55 #if PY_VERSION_HEX < 0x02060000
56   #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
57   #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
58   #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
59   #define PyVarObject_HEAD_INIT(type, size) \
60           PyObject_HEAD_INIT(type) size,
61   #define PyType_Modified(t)
62 
63   typedef struct {
64      void *buf;
65      PyObject *obj;
66      Py_ssize_t len;
67      Py_ssize_t itemsize;
68      int readonly;
69      int ndim;
70      char *format;
71      Py_ssize_t *shape;
72      Py_ssize_t *strides;
73      Py_ssize_t *suboffsets;
74      void *internal;
75   } Py_buffer;
76 
77   #define PyBUF_SIMPLE 0
78   #define PyBUF_WRITABLE 0x0001
79   #define PyBUF_FORMAT 0x0004
80   #define PyBUF_ND 0x0008
81   #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
82   #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
83   #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
84   #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
85   #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
86 
87 #endif
88 
89 #if PY_MAJOR_VERSION < 3
90   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
91 #else
92   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
93 #endif
94 
95 #if PY_MAJOR_VERSION >= 3
96   #define Py_TPFLAGS_CHECKTYPES 0
97   #define Py_TPFLAGS_HAVE_INDEX 0
98 #endif
99 
100 #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
101   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
102 #endif
103 
104 #if PY_MAJOR_VERSION >= 3
105   #define PyBaseString_Type            PyUnicode_Type
106   #define PyStringObject               PyUnicodeObject
107   #define PyString_Type                PyUnicode_Type
108   #define PyString_Check               PyUnicode_Check
109   #define PyString_CheckExact          PyUnicode_CheckExact
110 #endif
111 
112 #if PY_VERSION_HEX < 0x02060000
113   #define PyBytesObject                PyStringObject
114   #define PyBytes_Type                 PyString_Type
115   #define PyBytes_Check                PyString_Check
116   #define PyBytes_CheckExact           PyString_CheckExact
117   #define PyBytes_FromString           PyString_FromString
118   #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
119   #define PyBytes_FromFormat           PyString_FromFormat
120   #define PyBytes_DecodeEscape         PyString_DecodeEscape
121   #define PyBytes_AsString             PyString_AsString
122   #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
123   #define PyBytes_Size                 PyString_Size
124   #define PyBytes_AS_STRING            PyString_AS_STRING
125   #define PyBytes_GET_SIZE             PyString_GET_SIZE
126   #define PyBytes_Repr                 PyString_Repr
127   #define PyBytes_Concat               PyString_Concat
128   #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
129 #endif
130 
131 #if PY_VERSION_HEX < 0x02060000
132   #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
133   #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
134 #endif
135 #ifndef PySet_CheckExact
136   #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
137 #endif
138 
139 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
140 
141 #if PY_MAJOR_VERSION >= 3
142   #define PyIntObject                  PyLongObject
143   #define PyInt_Type                   PyLong_Type
144   #define PyInt_Check(op)              PyLong_Check(op)
145   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
146   #define PyInt_FromString             PyLong_FromString
147   #define PyInt_FromUnicode            PyLong_FromUnicode
148   #define PyInt_FromLong               PyLong_FromLong
149   #define PyInt_FromSize_t             PyLong_FromSize_t
150   #define PyInt_FromSsize_t            PyLong_FromSsize_t
151   #define PyInt_AsLong                 PyLong_AsLong
152   #define PyInt_AS_LONG                PyLong_AS_LONG
153   #define PyInt_AsSsize_t              PyLong_AsSsize_t
154   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
155   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
156 #endif
157 
158 #if PY_MAJOR_VERSION >= 3
159   #define PyBoolObject                 PyLongObject
160 #endif
161 
162 #if PY_VERSION_HEX < 0x03020000
163   typedef long Py_hash_t;
164   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
165   #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
166 #else
167   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
168   #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
169 #endif
170 
171 
172 #if PY_MAJOR_VERSION >= 3
173   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
174   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
175 #else
176   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
177   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
178 #endif
179 
180 #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
181   #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
182   #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
183   #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
184 #else
185   #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
186         (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
187         (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
188             (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
189   #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
190         (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
191         (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
192             (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
193   #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
194         (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
195         (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
196             (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
197 #endif
198 
199 #if PY_MAJOR_VERSION >= 3
200   #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
201 #endif
202 
203 #if PY_VERSION_HEX < 0x02050000
204   #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
205   #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
206   #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
207 #else
208   #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
209   #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
210   #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
211 #endif
212 
213 #if PY_VERSION_HEX < 0x02050000
214   #define __Pyx_NAMESTR(n) ((char *)(n))
215   #define __Pyx_DOCSTR(n)  ((char *)(n))
216 #else
217   #define __Pyx_NAMESTR(n) (n)
218   #define __Pyx_DOCSTR(n)  (n)
219 #endif
220 
221 #ifndef __PYX_EXTERN_C
222   #ifdef __cplusplus
223     #define __PYX_EXTERN_C extern "C"
224   #else
225     #define __PYX_EXTERN_C extern
226   #endif
227 #endif
228 
229 #if defined(WIN32) || defined(MS_WINDOWS)
230 #define _USE_MATH_DEFINES
231 #endif
232 #include <math.h>
233 #define __PYX_HAVE__mpi4py__MPI
234 #define __PYX_HAVE_API__mpi4py__MPI
235 #include "mpi.h"
236 #include "atimport.h"
237 #include "vendor.h"
238 #ifdef _OPENMP
239 #include <omp.h>
240 #endif /* _OPENMP */
241 
242 #ifdef PYREX_WITHOUT_ASSERTIONS
243 #define CYTHON_WITHOUT_ASSERTIONS
244 #endif
245 
246 
247 /* inline attribute */
248 #ifndef CYTHON_INLINE
249   #if defined(__GNUC__)
250     #define CYTHON_INLINE __inline__
251   #elif defined(_MSC_VER)
252     #define CYTHON_INLINE __inline
253   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
254     #define CYTHON_INLINE inline
255   #else
256     #define CYTHON_INLINE
257   #endif
258 #endif
259 
260 /* unused attribute */
261 #ifndef CYTHON_UNUSED
262 # if defined(__GNUC__)
263 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
264 #     define CYTHON_UNUSED __attribute__ ((__unused__))
265 #   else
266 #     define CYTHON_UNUSED
267 #   endif
268 # elif defined(__ICC) || defined(__INTEL_COMPILER)
269 #   define CYTHON_UNUSED __attribute__ ((__unused__))
270 # else
271 #   define CYTHON_UNUSED
272 # endif
273 #endif
274 
275 typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
276 
277 
278 /* Type Conversion Predeclarations */
279 
280 #define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
281 #define __Pyx_PyBytes_AsUString(s)   ((unsigned char*) PyBytes_AsString(s))
282 
283 #define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
284 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
285 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
286 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
287 
288 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
289 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
290 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
291 
292 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
293 
294 
295 #ifdef __GNUC__
296   /* Test for GCC > 2.95 */
297   #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
298     #define likely(x)   __builtin_expect(!!(x), 1)
299     #define unlikely(x) __builtin_expect(!!(x), 0)
300   #else /* __GNUC__ > 2 ... */
301     #define likely(x)   (x)
302     #define unlikely(x) (x)
303   #endif /* __GNUC__ > 2 ... */
304 #else /* __GNUC__ */
305   #define likely(x)   (x)
306   #define unlikely(x) (x)
307 #endif /* __GNUC__ */
308 
309 static PyObject *__pyx_m;
310 static PyObject *__pyx_b;
311 static PyObject *__pyx_empty_tuple;
312 static PyObject *__pyx_empty_bytes;
313 static int __pyx_lineno;
314 static int __pyx_clineno = 0;
315 static const char * __pyx_cfilenm= __FILE__;
316 static const char *__pyx_filename;
317 
318 
319 static const char *__pyx_f[] = {
320   "pickled.pxi",
321   "ExceptionP.pyx",
322   "asbuffer.pxi",
323   "asarray.pxi",
324   "typeimpl.pxi",
325   "Errhandler.pyx",
326   "Comm.pyx",
327   "atimport.pxi",
328   "asmpistr.pxi",
329   "asmemory.pxi",
330   "helpers.pxi",
331   "reqimpl.pxi",
332   "opimpl.pxi",
333   "commimpl.pxi",
334   "winimpl.pxi",
335   "message.pxi",
336   "CAPI.pxi",
337   "Exception.pyx",
338   "Datatype.pyx",
339   "typemap.pxi",
340   "Status.pyx",
341   "Request.pyx",
342   "Info.pyx",
343   "Op.pyx",
344   "Group.pyx",
345   "Win.pyx",
346   "File.pyx",
347   "MPI.pyx",
348   "mpi4py.MPI.pyx",
349 };
350 
351 /*--- Type declarations ---*/
352 struct PyMPIGroupObject;
353 struct PyMPIFileObject;
354 struct PyMPIWinObject;
355 struct PyMPIInfoObject;
356 struct PyMPICommObject;
357 struct PyMPIIntracommObject;
358 struct PyMPICartcommObject;
359 struct __pyx_obj_6mpi4py_3MPI__p_Pickle;
360 struct __pyx_obj_6mpi4py_3MPI__p_message;
361 struct __pyx_obj_6mpi4py_3MPI__p_greq;
362 struct __pyx_obj_6mpi4py_3MPI__p_msg_io;
363 struct PyMPIOpObject;
364 struct PyMPIErrhandlerObject;
365 struct PyMPIRequestObject;
366 struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p;
367 struct PyMPIPrequestObject;
368 struct __pyx_obj_6mpi4py_3MPI__p_msg_rma;
369 struct PyMPIIntercommObject;
370 struct PyMPIGrequestObject;
371 struct PyMPIDatatypeObject;
372 struct PyMPIDistgraphcommObject;
373 struct __pyx_obj_6mpi4py_3MPI__p_msg_cco;
374 struct PyMPIGraphcommObject;
375 struct PyMPIStatusObject;
376 struct __pyx_obj_6mpi4py_3MPI__p_buffer;
377 struct __pyx_t_6mpi4py_3MPI_RCParams;
378 typedef struct __pyx_t_6mpi4py_3MPI_RCParams __pyx_t_6mpi4py_3MPI_RCParams;
379 
380 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":13
381  * #------------------------------------------------------------------------------
382  *
383  * cdef enum PyMPI_OBJECT_FLAGS:             # <<<<<<<<<<<<<<
384  *     PyMPI_OWNED = 1<<1
385  *
386  */
387 enum __pyx_t_6mpi4py_3MPI_PyMPI_OBJECT_FLAGS {
388 
389   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":14
390  *
391  * cdef enum PyMPI_OBJECT_FLAGS:
392  *     PyMPI_OWNED = 1<<1             # <<<<<<<<<<<<<<
393  *
394  * #------------------------------------------------------------------------------
395  */
396   __pyx_e_6mpi4py_3MPI_PyMPI_OWNED = (1 << 1)
397 };
398 
399 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":19
400  * # -----------------------------------------------------------------------------
401  *
402  * ctypedef struct RCParams:             # <<<<<<<<<<<<<<
403  *     int initialize
404  *     int threaded
405  */
406 struct __pyx_t_6mpi4py_3MPI_RCParams {
407   int initialize;
408   int threaded;
409   int thread_level;
410   int finalize;
411 };
412 
413 /* "mpi4py/MPI.pxd":92
414  *     cdef int    ob_usrid
415  *
416  * ctypedef public api class Group [             # <<<<<<<<<<<<<<
417  *     type   PyMPIGroup_Type,
418  *     object PyMPIGroupObject,
419  */
420 struct PyMPIGroupObject {
421   PyObject_HEAD
422   MPI_Group ob_mpi;
423   int flags;
424 };
425 typedef struct PyMPIGroupObject PyMPIGroupObject;
426 
427 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGroup_Type;
428 
429 /* "mpi4py/MPI.pxd":157
430  *     cdef int     flags
431  *
432  * ctypedef public api class File [             # <<<<<<<<<<<<<<
433  *     type   PyMPIFile_Type,
434  *     object PyMPIFileObject,
435  */
436 struct PyMPIFileObject {
437   PyObject_HEAD
438   MPI_File ob_mpi;
439   int flags;
440 };
441 typedef struct PyMPIFileObject PyMPIFileObject;
442 
443 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIFile_Type;
444 
445 /* "mpi4py/MPI.pxd":150
446  *     pass
447  *
448  * ctypedef public api class Win [             # <<<<<<<<<<<<<<
449  *     type   PyMPIWin_Type,
450  *     object PyMPIWinObject,
451  */
452 struct PyMPIWinObject {
453   PyObject_HEAD
454   MPI_Win ob_mpi;
455   int flags;
456 };
457 typedef struct PyMPIWinObject PyMPIWinObject;
458 
459 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIWin_Type;
460 
461 /* "mpi4py/MPI.pxd":99
462  *     cdef int       flags
463  *
464  * ctypedef public api class Info [             # <<<<<<<<<<<<<<
465  *     type   PyMPIInfo_Type,
466  *     object PyMPIInfoObject,
467  */
468 struct PyMPIInfoObject {
469   PyObject_HEAD
470   MPI_Info ob_mpi;
471   int flags;
472 };
473 typedef struct PyMPIInfoObject PyMPIInfoObject;
474 
475 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIInfo_Type;
476 
477 /* "mpi4py/MPI.pxd":113
478  *     cdef int            flags
479  *
480  * ctypedef public api class Comm [             # <<<<<<<<<<<<<<
481  *     type   PyMPIComm_Type,
482  *     object PyMPICommObject,
483  */
484 struct PyMPICommObject {
485   PyObject_HEAD
486   MPI_Comm ob_mpi;
487   int flags;
488 };
489 typedef struct PyMPICommObject PyMPICommObject;
490 
491 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIComm_Type;
492 
493 /* "mpi4py/MPI.pxd":120
494  *     cdef int      flags
495  *
496  * ctypedef public api class Intracomm(Comm) [             # <<<<<<<<<<<<<<
497  *     type   PyMPIIntracomm_Type,
498  *     object PyMPIIntracommObject,
499  */
500 struct PyMPIIntracommObject {
501   struct PyMPICommObject __pyx_base;
502 };
503 typedef struct PyMPIIntracommObject PyMPIIntracommObject;
504 
505 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIIntracomm_Type;
506 
507 /* "mpi4py/MPI.pxd":126
508  *     pass
509  *
510  * ctypedef public api class Cartcomm(Intracomm) [             # <<<<<<<<<<<<<<
511  *     type   PyMPICartcomm_Type,
512  *     object PyMPICartcommObject,
513  */
514 struct PyMPICartcommObject {
515   struct PyMPIIntracommObject __pyx_base;
516 };
517 typedef struct PyMPICartcommObject PyMPICartcommObject;
518 
519 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPICartcomm_Type;
520 
521 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":33
522  *     pass
523  *
524  * cdef class _p_Pickle:             # <<<<<<<<<<<<<<
525  *
526  *     cdef object ob_dumps
527  */
528 struct __pyx_obj_6mpi4py_3MPI__p_Pickle {
529   PyObject_HEAD
530   struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *__pyx_vtab;
531   PyObject *ob_dumps;
532   PyObject *ob_loads;
533   PyObject *ob_PROTOCOL;
534 };
535 
536 
537 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":20
538  * #------------------------------------------------------------------------------
539  *
540  * cdef class _p_message:             # <<<<<<<<<<<<<<
541  *     cdef _p_buffer buf
542  *     cdef object count
543  */
544 struct __pyx_obj_6mpi4py_3MPI__p_message {
545   PyObject_HEAD
546   struct __pyx_obj_6mpi4py_3MPI__p_buffer *buf;
547   PyObject *count;
548   PyObject *displ;
549   struct PyMPIDatatypeObject *type;
550 };
551 
552 
553 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":54
554  * # -----------------------------------------------------------------------------
555  *
556  * cdef class _p_greq:             # <<<<<<<<<<<<<<
557  *
558  *     cdef object query_fn
559  */
560 struct __pyx_obj_6mpi4py_3MPI__p_greq {
561   PyObject_HEAD
562   struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq *__pyx_vtab;
563   PyObject *query_fn;
564   PyObject *free_fn;
565   PyObject *cancel_fn;
566   PyObject *args;
567   PyObject *kargs;
568 };
569 
570 
571 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":793
572  * #------------------------------------------------------------------------------
573  *
574  * cdef class _p_msg_io:             # <<<<<<<<<<<<<<
575  *
576  *     # raw C-side data
577  */
578 struct __pyx_obj_6mpi4py_3MPI__p_msg_io {
579   PyObject_HEAD
580   struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io *__pyx_vtab;
581   void *buf;
582   int count;
583   MPI_Datatype dtype;
584   PyObject *_msg;
585 };
586 
587 
588 /* "mpi4py/MPI.pxd":83
589  *     cdef MPI_Request ob_grequest
590  *
591  * ctypedef public api class Op [             # <<<<<<<<<<<<<<
592  *     type   PyMPIOp_Type,
593  *     object PyMPIOpObject,
594  */
595 struct PyMPIOpObject {
596   PyObject_HEAD
597   MPI_Op ob_mpi;
598   int flags;
599   PyObject *(*ob_func)(PyObject *, PyObject *);
600   int ob_usrid;
601 };
602 typedef struct PyMPIOpObject PyMPIOpObject;
603 
604 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIOp_Type;
605 
606 /* "mpi4py/MPI.pxd":106
607  *     cdef int      flags
608  *
609  * ctypedef public api class Errhandler [             # <<<<<<<<<<<<<<
610  *     type   PyMPIErrhandler_Type,
611  *     object PyMPIErrhandlerObject,
612  */
613 struct PyMPIErrhandlerObject {
614   PyObject_HEAD
615   MPI_Errhandler ob_mpi;
616   int flags;
617 };
618 typedef struct PyMPIErrhandlerObject PyMPIErrhandlerObject;
619 
620 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIErrhandler_Type;
621 
622 /* "mpi4py/MPI.pxd":63
623  *     cdef int          flags
624  *
625  * ctypedef public api class Request [             # <<<<<<<<<<<<<<
626  *     type   PyMPIRequest_Type,
627  *     object PyMPIRequestObject,
628  */
629 struct PyMPIRequestObject {
630   PyObject_HEAD
631   MPI_Request ob_mpi;
632   int flags;
633   PyObject *ob_buf;
634 };
635 typedef struct PyMPIRequestObject PyMPIRequestObject;
636 
637 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIRequest_Type;
638 
639 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":286
640  * #------------------------------------------------------------------------------
641  *
642  * cdef class _p_msg_p2p:             # <<<<<<<<<<<<<<
643  *
644  *     # raw C-side arguments
645  */
646 struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p {
647   PyObject_HEAD
648   struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p *__pyx_vtab;
649   void *buf;
650   int count;
651   MPI_Datatype dtype;
652   PyObject *_msg;
653 };
654 
655 
656 /* "mpi4py/MPI.pxd":71
657  *     cdef object      ob_buf
658  *
659  * ctypedef public api class Prequest(Request) [             # <<<<<<<<<<<<<<
660  *     type   PyMPIPrequest_Type,
661  *     object PyMPIPrequestObject,
662  */
663 struct PyMPIPrequestObject {
664   struct PyMPIRequestObject __pyx_base;
665 };
666 typedef struct PyMPIPrequestObject PyMPIPrequestObject;
667 
668 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIPrequest_Type;
669 
670 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":721
671  * #------------------------------------------------------------------------------
672  *
673  * cdef class _p_msg_rma:             # <<<<<<<<<<<<<<
674  *
675  *     # raw origin arguments
676  */
677 struct __pyx_obj_6mpi4py_3MPI__p_msg_rma {
678   PyObject_HEAD
679   struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *__pyx_vtab;
680   void *oaddr;
681   int ocount;
682   MPI_Datatype otype;
683   MPI_Aint tdisp;
684   int tcount;
685   MPI_Datatype ttype;
686   PyObject *_origin;
687   PyObject *_target;
688 };
689 
690 
691 /* "mpi4py/MPI.pxd":144
692  *     pass
693  *
694  * ctypedef public api class Intercomm(Comm) [             # <<<<<<<<<<<<<<
695  *     type   PyMPIIntercomm_Type,
696  *     object PyMPIIntercommObject,
697  */
698 struct PyMPIIntercommObject {
699   struct PyMPICommObject __pyx_base;
700 };
701 typedef struct PyMPIIntercommObject PyMPIIntercommObject;
702 
703 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIIntercomm_Type;
704 
705 /* "mpi4py/MPI.pxd":77
706  *     pass
707  *
708  * ctypedef public api class Grequest(Request) [             # <<<<<<<<<<<<<<
709  *     type   PyMPIGrequest_Type,
710  *     object PyMPIGrequestObject,
711  */
712 struct PyMPIGrequestObject {
713   struct PyMPIRequestObject __pyx_base;
714   MPI_Request ob_grequest;
715 };
716 typedef struct PyMPIGrequestObject PyMPIGrequestObject;
717 
718 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGrequest_Type;
719 
720 /* "mpi4py/MPI.pxd":56
721  *     cdef int        flags
722  *
723  * ctypedef public api class Datatype [             # <<<<<<<<<<<<<<
724  *     type   PyMPIDatatype_Type,
725  *     object PyMPIDatatypeObject,
726  */
727 struct PyMPIDatatypeObject {
728   PyObject_HEAD
729   MPI_Datatype ob_mpi;
730   int flags;
731 };
732 typedef struct PyMPIDatatypeObject PyMPIDatatypeObject;
733 
734 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIDatatype_Type;
735 
736 /* "mpi4py/MPI.pxd":138
737  *     pass
738  *
739  * ctypedef public api class Distgraphcomm(Intracomm) [             # <<<<<<<<<<<<<<
740  *     type   PyMPIDistgraphcomm_Type,
741  *     object PyMPIDistgraphcommObject,
742  */
743 struct PyMPIDistgraphcommObject {
744   struct PyMPIIntracommObject __pyx_base;
745 };
746 typedef struct PyMPIDistgraphcommObject PyMPIDistgraphcommObject;
747 
748 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIDistgraphcomm_Type;
749 
750 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":328
751  * #------------------------------------------------------------------------------
752  *
753  * cdef class _p_msg_cco:             # <<<<<<<<<<<<<<
754  *
755  *     # raw C-side arguments
756  */
757 struct __pyx_obj_6mpi4py_3MPI__p_msg_cco {
758   PyObject_HEAD
759   struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *__pyx_vtab;
760   void *sbuf;
761   void *rbuf;
762   int scount;
763   int rcount;
764   int *scounts;
765   int *rcounts;
766   int *sdispls;
767   int *rdispls;
768   MPI_Datatype stype;
769   MPI_Datatype rtype;
770   PyObject *_smsg;
771   PyObject *_rmsg;
772   PyObject *_rcnt;
773 };
774 
775 
776 /* "mpi4py/MPI.pxd":132
777  *     pass
778  *
779  * ctypedef public api class Graphcomm(Intracomm) [             # <<<<<<<<<<<<<<
780  *     type   PyMPIGraphcomm_Type,
781  *     object PyMPIGraphcommObject,
782  */
783 struct PyMPIGraphcommObject {
784   struct PyMPIIntracommObject __pyx_base;
785 };
786 typedef struct PyMPIGraphcommObject PyMPIGraphcommObject;
787 
788 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGraphcomm_Type;
789 
790 /* "mpi4py/MPI.pxd":49
791  *     ctypedef MPI_Offset Offset "MPI_Offset"
792  *
793  * ctypedef public api class Status [             # <<<<<<<<<<<<<<
794  *     type   PyMPIStatus_Type,
795  *     object PyMPIStatusObject,
796  */
797 struct PyMPIStatusObject {
798   PyObject_HEAD
799   MPI_Status ob_mpi;
800   int flags;
801 };
802 typedef struct PyMPIStatusObject PyMPIStatusObject;
803 
804 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIStatus_Type;
805 
806 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":57
807  *     return 0
808  *
809  * cdef class _p_buffer:             # <<<<<<<<<<<<<<
810  *     cdef Py_buffer view
811  *
812  */
813 struct __pyx_obj_6mpi4py_3MPI__p_buffer {
814   PyObject_HEAD
815   Py_buffer view;
816 };
817 
818 
819 
820 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":328
821  * #------------------------------------------------------------------------------
822  *
823  * cdef class _p_msg_cco:             # <<<<<<<<<<<<<<
824  *
825  *     # raw C-side arguments
826  */
827 
828 struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco {
829   int (*for_cco_send)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, int, int);
830   int (*for_cco_recv)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, int, int);
831   int (*for_bcast)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int, MPI_Comm);
832   int (*for_gather)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, int, MPI_Comm);
833   int (*for_scatter)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, int, MPI_Comm);
834   int (*for_allgather)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, MPI_Comm);
835   int (*for_alltoall)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, MPI_Comm);
836   int (*for_cro_send)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int);
837   int (*for_cro_recv)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int);
838   int (*for_reduce)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, int, MPI_Comm);
839   int (*for_allreduce)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm);
840   int (*for_reduce_scatter_block)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm);
841   int (*for_reduce_scatter)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, PyObject *, MPI_Comm);
842   int (*for_scan)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm);
843   int (*for_exscan)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm);
844 };
845 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *__pyx_vtabptr_6mpi4py_3MPI__p_msg_cco;
846 
847 
848 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":54
849  * # -----------------------------------------------------------------------------
850  *
851  * cdef class _p_greq:             # <<<<<<<<<<<<<<
852  *
853  *     cdef object query_fn
854  */
855 
856 struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq {
857   int (*query)(struct __pyx_obj_6mpi4py_3MPI__p_greq *, MPI_Status *);
858   int (*free)(struct __pyx_obj_6mpi4py_3MPI__p_greq *);
859   int (*cancel)(struct __pyx_obj_6mpi4py_3MPI__p_greq *, int);
860 };
861 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq *__pyx_vtabptr_6mpi4py_3MPI__p_greq;
862 
863 
864 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":286
865  * #------------------------------------------------------------------------------
866  *
867  * cdef class _p_msg_p2p:             # <<<<<<<<<<<<<<
868  *
869  *     # raw C-side arguments
870  */
871 
872 struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p {
873   int (*for_send)(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *, PyObject *, int);
874   int (*for_recv)(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *, PyObject *, int);
875 };
876 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p *__pyx_vtabptr_6mpi4py_3MPI__p_msg_p2p;
877 
878 
879 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":721
880  * #------------------------------------------------------------------------------
881  *
882  * cdef class _p_msg_rma:             # <<<<<<<<<<<<<<
883  *
884  *     # raw origin arguments
885  */
886 
887 struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma {
888   int (*for_rma)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, int, PyObject *, int, PyObject *);
889   int (*for_put)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *);
890   int (*for_get)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *);
891   int (*for_acc)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *);
892 };
893 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *__pyx_vtabptr_6mpi4py_3MPI__p_msg_rma;
894 
895 
896 
897 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":33
898  *     pass
899  *
900  * cdef class _p_Pickle:             # <<<<<<<<<<<<<<
901  *
902  *     cdef object ob_dumps
903  */
904 
905 struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle {
906   PyObject *(*dump)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, void **, int *);
907   PyObject *(*alloc)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, void **, int);
908   PyObject *(*load)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *);
909   PyObject *(*dumpv)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, void **, int, int *, int *);
910   PyObject *(*allocv)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, void **, int, int *, int *);
911   PyObject *(*loadv)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, int, int *, int *);
912 };
913 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *__pyx_vtabptr_6mpi4py_3MPI__p_Pickle;
914 
915 
916 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":793
917  * #------------------------------------------------------------------------------
918  *
919  * cdef class _p_msg_io:             # <<<<<<<<<<<<<<
920  *
921  *     # raw C-side data
922  */
923 
924 struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io {
925   int (*for_read)(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *, PyObject *);
926   int (*for_write)(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *, PyObject *);
927 };
928 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io *__pyx_vtabptr_6mpi4py_3MPI__p_msg_io;
929 
930 #ifndef CYTHON_REFNANNY
931   #define CYTHON_REFNANNY 0
932 #endif
933 
934 #if CYTHON_REFNANNY
935   typedef struct {
936     void (*INCREF)(void*, PyObject*, int);
937     void (*DECREF)(void*, PyObject*, int);
938     void (*GOTREF)(void*, PyObject*, int);
939     void (*GIVEREF)(void*, PyObject*, int);
940     void* (*SetupContext)(const char*, int, const char*);
941     void (*FinishContext)(void**);
942   } __Pyx_RefNannyAPIStruct;
943   static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
944   static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
945   #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
946   #define __Pyx_RefNannySetupContext(name)           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
947   #define __Pyx_RefNannyFinishContext()           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
948   #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
949   #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
950   #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
951   #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
952   #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
953   #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
954   #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
955   #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
956 #else
957   #define __Pyx_RefNannyDeclarations
958   #define __Pyx_RefNannySetupContext(name)
959   #define __Pyx_RefNannyFinishContext()
960   #define __Pyx_INCREF(r) Py_INCREF(r)
961   #define __Pyx_DECREF(r) Py_DECREF(r)
962   #define __Pyx_GOTREF(r)
963   #define __Pyx_GIVEREF(r)
964   #define __Pyx_XINCREF(r) Py_XINCREF(r)
965   #define __Pyx_XDECREF(r) Py_XDECREF(r)
966   #define __Pyx_XGOTREF(r)
967   #define __Pyx_XGIVEREF(r)
968 #endif /* CYTHON_REFNANNY */
969 
970 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
971 
972 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
973 
974 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
975 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
976 
977 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
978 
979 #ifndef __PYX_FORCE_INIT_THREADS
980   #if PY_VERSION_HEX < 0x02040200
981     #define __PYX_FORCE_INIT_THREADS 1
982   #else
983     #define __PYX_FORCE_INIT_THREADS 0
984   #endif
985 #endif
986 
__Pyx_tp_new(PyObject * type_obj)987 static CYTHON_INLINE PyObject* __Pyx_tp_new(PyObject* type_obj) {
988     return (PyObject*) (((PyTypeObject*)(type_obj))->tp_new(
989         (PyTypeObject*)(type_obj), __pyx_empty_tuple, NULL));
990 }
991 
992 
__Pyx_GetItemInt_Generic(PyObject * o,PyObject * j)993 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
994     PyObject *r;
995     if (!j) return NULL;
996     r = PyObject_GetItem(o, j);
997     Py_DECREF(j);
998     return r;
999 }
1000 
1001 
1002 #define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
1003                                                     __Pyx_GetItemInt_List_Fast(o, i) : \
1004                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
1005 
__Pyx_GetItemInt_List_Fast(PyObject * o,Py_ssize_t i)1006 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
1007     if (likely(o != Py_None)) {
1008         if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
1009             PyObject *r = PyList_GET_ITEM(o, i);
1010             Py_INCREF(r);
1011             return r;
1012         }
1013         else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
1014             PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
1015             Py_INCREF(r);
1016             return r;
1017         }
1018     }
1019     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
1020 }
1021 
1022 #define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
1023                                                     __Pyx_GetItemInt_Tuple_Fast(o, i) : \
1024                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
1025 
__Pyx_GetItemInt_Tuple_Fast(PyObject * o,Py_ssize_t i)1026 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
1027     if (likely(o != Py_None)) {
1028         if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
1029             PyObject *r = PyTuple_GET_ITEM(o, i);
1030             Py_INCREF(r);
1031             return r;
1032         }
1033         else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
1034             PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
1035             Py_INCREF(r);
1036             return r;
1037         }
1038     }
1039     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
1040 }
1041 
1042 
1043 #define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
1044                                                     __Pyx_GetItemInt_Fast(o, i) : \
1045                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
1046 
__Pyx_GetItemInt_Fast(PyObject * o,Py_ssize_t i)1047 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
1048     PyObject *r;
1049     if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
1050         r = PyList_GET_ITEM(o, i);
1051         Py_INCREF(r);
1052     }
1053     else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
1054         r = PyTuple_GET_ITEM(o, i);
1055         Py_INCREF(r);
1056     }
1057     else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) {
1058         r = PySequence_GetItem(o, i);
1059     }
1060     else {
1061         r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
1062     }
1063     return r;
1064 }
1065 
1066 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
1067 
1068 #define __Pyx_SetItemInt(o, i, v, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
1069                                                     __Pyx_SetItemInt_Fast(o, i, v) : \
1070                                                     __Pyx_SetItemInt_Generic(o, to_py_func(i), v))
1071 
__Pyx_SetItemInt_Generic(PyObject * o,PyObject * j,PyObject * v)1072 static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
1073     int r;
1074     if (!j) return -1;
1075     r = PyObject_SetItem(o, j, v);
1076     Py_DECREF(j);
1077     return r;
1078 }
1079 
__Pyx_SetItemInt_Fast(PyObject * o,Py_ssize_t i,PyObject * v)1080 static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v) {
1081     if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
1082         Py_INCREF(v);
1083         Py_DECREF(PyList_GET_ITEM(o, i));
1084         PyList_SET_ITEM(o, i, v);
1085         return 1;
1086     }
1087     else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && (likely(i >= 0)))
1088         return PySequence_SetItem(o, i, v);
1089     else {
1090         PyObject *j = PyInt_FromSsize_t(i);
1091         return __Pyx_SetItemInt_Generic(o, j, v);
1092     }
1093 }
1094 
1095 #define __Pyx_DelItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
1096                                                     __Pyx_DelItemInt_Fast(o, i) : \
1097                                                     __Pyx_DelItem_Generic(o, to_py_func(i)))
1098 
__Pyx_DelItem_Generic(PyObject * o,PyObject * j)1099 static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
1100     int r;
1101     if (!j) return -1;
1102     r = PyObject_DelItem(o, j);
1103     Py_DECREF(j);
1104     return r;
1105 }
1106 
__Pyx_DelItemInt_Fast(PyObject * o,Py_ssize_t i)1107 static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i) {
1108     if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && likely(i >= 0))
1109         return PySequence_DelItem(o, i);
1110     else {
1111         PyObject *j = PyInt_FromSsize_t(i);
1112         return __Pyx_DelItem_Generic(o, j);
1113     }
1114 }
1115 
__Pyx_PyDict_GetItemDefault(PyObject * d,PyObject * key,PyObject * default_value)1116 static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
1117     PyObject* value;
1118 #if PY_MAJOR_VERSION >= 3
1119     value = PyDict_GetItemWithError(d, key);
1120     if (unlikely(!value)) {
1121         if (unlikely(PyErr_Occurred()))
1122             return NULL;
1123         value = default_value;
1124     }
1125     Py_INCREF(value);
1126 #else
1127     if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
1128         /* these presumably have safe hash functions */
1129         value = PyDict_GetItem(d, key);
1130         if (unlikely(!value)) {
1131             value = default_value;
1132         }
1133         Py_INCREF(value);
1134     } else {
1135         PyObject *m;
1136         m = __Pyx_GetAttrString(d, "get");
1137         if (!m) return NULL;
1138         value = PyObject_CallFunctionObjArgs(m, key,
1139             (default_value == Py_None) ? NULL : default_value, NULL);
1140         Py_DECREF(m);
1141     }
1142 #endif
1143     return value;
1144 }
1145 
1146 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1147     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
1148 
1149 static void __Pyx_RaiseDoubleKeywordsError(
1150     const char* func_name, PyObject* kw_name); /*proto*/
1151 
1152 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,     const char* function_name); /*proto*/
1153 
1154 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1155 
1156 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1157 
1158 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/
1159 
1160 static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void);
1161 
1162 #if PY_MAJOR_VERSION >= 3
__Pyx_PyDict_GetItem(PyObject * d,PyObject * key)1163 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
1164     PyObject *value;
1165     if (unlikely(d == Py_None)) {
1166         __Pyx_RaiseNoneIndexingError();
1167         return NULL;
1168     }
1169     value = PyDict_GetItemWithError(d, key);
1170     if (unlikely(!value)) {
1171         if (!PyErr_Occurred())
1172             PyErr_SetObject(PyExc_KeyError, key);
1173         return NULL;
1174     }
1175     Py_INCREF(value);
1176     return value;
1177 }
1178 #else
1179     #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
1180 #endif
1181 
1182 static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict,
1183     const char* function_name, int kw_allowed); /*proto*/
1184 
1185 static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
1186 
1187 static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
1188     const char *name, int exact); /*proto*/
1189 
__Pyx_NegateNonNeg(int b)1190 static CYTHON_INLINE int __Pyx_NegateNonNeg(int b) {
1191     return unlikely(b < 0) ? b : !b;
1192 }
__Pyx_PyBoolOrNull_FromLong(long b)1193 static CYTHON_INLINE PyObject* __Pyx_PyBoolOrNull_FromLong(long b) {
1194     return unlikely(b < 0) ? NULL : __Pyx_PyBool_FromLong(b);
1195 }
1196 
1197 static int __Pyx_RegisterCleanup(void); /*proto*/
1198 static PyObject* __pyx_module_cleanup(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *unused); /*proto*/
1199 static PyMethodDef cleanup_def = {__Pyx_NAMESTR("__cleanup"), (PyCFunction)&__pyx_module_cleanup, METH_NOARGS, 0};
1200 
1201 static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
1202 static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
1203 
1204 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/
1205 
1206 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Aint(MPI_Aint);
1207 
1208 static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/
1209 
1210 static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
1211                                    PyObject *modname); /*proto*/
1212 
1213 #define __pyx_binding_PyCFunctionType_USED 1
1214 
1215 typedef struct {
1216     PyCFunctionObject func;
1217 } __pyx_binding_PyCFunctionType_object;
1218 
1219 static PyTypeObject __pyx_binding_PyCFunctionType_type;
1220 static PyTypeObject *__pyx_binding_PyCFunctionType = NULL;
1221 
1222 static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module); /* proto */
1223 #define __pyx_binding_PyCFunctionType_New(ml, self) __pyx_binding_PyCFunctionType_NewEx(ml, self, NULL)
1224 
1225 static int __pyx_binding_PyCFunctionType_init(void); /* proto */
1226 
1227 #include "descrobject.h"
1228 static PyObject* __Pyx_Method_ClassMethod(PyObject *method); /*proto*/
1229 
1230 #include <string.h>
1231 
1232 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
1233 
1234 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
1235 
1236 #if PY_MAJOR_VERSION >= 3
1237 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
1238 #else
1239 #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
1240 #endif
1241 
1242 static CYTHON_INLINE MPI_Aint __Pyx_PyInt_from_py_MPI_Aint(PyObject *);
1243 
1244 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Fint(MPI_Fint);
1245 
1246 static CYTHON_INLINE MPI_Fint __Pyx_PyInt_from_py_MPI_Fint(PyObject *);
1247 
1248 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Offset(MPI_Offset);
1249 
1250 static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
1251 
1252 static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
1253 
1254 static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
1255 
1256 static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);
1257 
1258 static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);
1259 
1260 static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);
1261 
1262 static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
1263 
1264 static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
1265 
1266 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
1267 
1268 static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);
1269 
1270 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
1271 
1272 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
1273 
1274 static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);
1275 
1276 static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
1277 
1278 static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
1279 
1280 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
1281 
1282 static void __Pyx_WriteUnraisable(const char *name, int clineno,
1283                                   int lineno, const char *filename); /*proto*/
1284 
1285 static CYTHON_INLINE MPI_Offset __Pyx_PyInt_from_py_MPI_Offset(PyObject *);
1286 
1287 static int __Pyx_check_binary_version(void);
1288 
1289 static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /*proto*/
1290 
1291 static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
1292 
1293 static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
1294 
1295 static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno,
1296                                int __pyx_lineno, const char *__pyx_filename); /*proto*/
1297 
1298 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
1299 
1300 /* Module declarations from 'cython.cython.view' */
1301 
1302 /* Module declarations from 'cython' */
1303 
1304 /* Module declarations from 'mpi4py.MPI' */
1305 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Status = 0;
1306 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Datatype = 0;
1307 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Request = 0;
1308 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Prequest = 0;
1309 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Grequest = 0;
1310 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Op = 0;
1311 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Group = 0;
1312 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Info = 0;
1313 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Errhandler = 0;
1314 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Comm = 0;
1315 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intracomm = 0;
1316 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Cartcomm = 0;
1317 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Graphcomm = 0;
1318 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Distgraphcomm = 0;
1319 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intercomm = 0;
1320 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Win = 0;
1321 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_File = 0;
1322 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_buffer = 0;
1323 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_greq = 0;
1324 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_message = 0;
1325 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_msg_p2p = 0;
1326 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_msg_cco = 0;
1327 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_msg_rma = 0;
1328 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_msg_io = 0;
1329 static PyTypeObject *__pyx_ptype_6mpi4py_3MPI__p_Pickle = 0;
1330 static int __pyx_v_6mpi4py_3MPI_inited_atimport;
1331 static int __pyx_v_6mpi4py_3MPI_finalize_atexit;
1332 static PyObject *__pyx_v_6mpi4py_3MPI_MPIException = 0;
1333 static PyObject *__pyx_v_6mpi4py_3MPI_arraytype = 0;
1334 static PyObject *__pyx_v_6mpi4py_3MPI_type_keyval = 0;
1335 static MPI_Status __pyx_v_6mpi4py_3MPI_empty_status;
1336 static PyObject *__pyx_v_6mpi4py_3MPI_op_user_registry = 0;
1337 static PyObject *__pyx_v_6mpi4py_3MPI_comm_keyval = 0;
1338 static struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_6mpi4py_3MPI__buffer = 0;
1339 static PyObject *__pyx_v_6mpi4py_3MPI_win_keyval = 0;
1340 static PyObject *__pyx_v_6mpi4py_3MPI___BOTTOM__ = 0;
1341 static PyObject *__pyx_v_6mpi4py_3MPI___IN_PLACE__ = 0;
1342 static PyObject *__pyx_v_6mpi4py_3MPI_PyPickle_dumps = 0;
1343 static PyObject *__pyx_v_6mpi4py_3MPI_PyPickle_loads = 0;
1344 static PyObject *__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = 0;
1345 static PyObject *__pyx_v_6mpi4py_3MPI_PyStringIO_New = 0;
1346 static PyObject *__pyx_v_6mpi4py_3MPI_PyPickle_loadf = 0;
1347 static struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE = 0;
1348 static struct PyMPIErrhandlerObject *__pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__ = 0;
1349 static struct PyMPIErrhandlerObject *__pyx_v_6mpi4py_3MPI___ERRORS_RETURN__ = 0;
1350 static struct PyMPIErrhandlerObject *__pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__ = 0;
1351 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___DATATYPE_NULL__ = 0;
1352 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UB__ = 0;
1353 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LB__ = 0;
1354 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___PACKED__ = 0;
1355 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___BYTE__ = 0;
1356 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___AINT__ = 0;
1357 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___OFFSET__ = 0;
1358 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___CHAR__ = 0;
1359 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___WCHAR__ = 0;
1360 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__ = 0;
1361 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___SHORT__ = 0;
1362 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INT__ = 0;
1363 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LONG__ = 0;
1364 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LONG_LONG__ = 0;
1365 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__ = 0;
1366 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__ = 0;
1367 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UNSIGNED__ = 0;
1368 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__ = 0;
1369 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__ = 0;
1370 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___FLOAT__ = 0;
1371 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___DOUBLE__ = 0;
1372 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__ = 0;
1373 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___C_BOOL__ = 0;
1374 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INT8_T__ = 0;
1375 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INT16_T__ = 0;
1376 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INT32_T__ = 0;
1377 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INT64_T__ = 0;
1378 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UINT8_T__ = 0;
1379 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UINT16_T__ = 0;
1380 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UINT32_T__ = 0;
1381 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___UINT64_T__ = 0;
1382 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___C_COMPLEX__ = 0;
1383 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__ = 0;
1384 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__ = 0;
1385 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__ = 0;
1386 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___SHORT_INT__ = 0;
1387 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___TWOINT__ = 0;
1388 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LONG_INT__ = 0;
1389 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___FLOAT_INT__ = 0;
1390 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___DOUBLE_INT__ = 0;
1391 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__ = 0;
1392 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___CHARACTER__ = 0;
1393 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LOGICAL__ = 0;
1394 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER__ = 0;
1395 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___REAL__ = 0;
1396 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__ = 0;
1397 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___COMPLEX__ = 0;
1398 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__ = 0;
1399 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LOGICAL1__ = 0;
1400 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LOGICAL2__ = 0;
1401 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LOGICAL4__ = 0;
1402 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___LOGICAL8__ = 0;
1403 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER1__ = 0;
1404 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER2__ = 0;
1405 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER4__ = 0;
1406 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER8__ = 0;
1407 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___INTEGER16__ = 0;
1408 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___REAL2__ = 0;
1409 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___REAL4__ = 0;
1410 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___REAL8__ = 0;
1411 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___REAL16__ = 0;
1412 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___COMPLEX4__ = 0;
1413 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___COMPLEX8__ = 0;
1414 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___COMPLEX16__ = 0;
1415 static struct PyMPIDatatypeObject *__pyx_v_6mpi4py_3MPI___COMPLEX32__ = 0;
1416 static PyObject *__pyx_v_6mpi4py_3MPI_TypeDict = 0;
1417 static PyObject *__pyx_v_6mpi4py_3MPI_CTypeDict = 0;
1418 static PyObject *__pyx_v_6mpi4py_3MPI_FTypeDict = 0;
1419 static struct PyMPIRequestObject *__pyx_v_6mpi4py_3MPI___REQUEST_NULL__ = 0;
1420 static struct PyMPIInfoObject *__pyx_v_6mpi4py_3MPI___INFO_NULL__ = 0;
1421 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___OP_NULL__ = 0;
1422 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___MAX__ = 0;
1423 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___MIN__ = 0;
1424 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___SUM__ = 0;
1425 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___PROD__ = 0;
1426 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___LAND__ = 0;
1427 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___BAND__ = 0;
1428 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___LOR__ = 0;
1429 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___BOR__ = 0;
1430 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___LXOR__ = 0;
1431 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___BXOR__ = 0;
1432 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___MAXLOC__ = 0;
1433 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___MINLOC__ = 0;
1434 static struct PyMPIOpObject *__pyx_v_6mpi4py_3MPI___REPLACE__ = 0;
1435 static struct PyMPIGroupObject *__pyx_v_6mpi4py_3MPI___GROUP_NULL__ = 0;
1436 static struct PyMPIGroupObject *__pyx_v_6mpi4py_3MPI___GROUP_EMPTY__ = 0;
1437 static struct PyMPICommObject *__pyx_v_6mpi4py_3MPI___COMM_NULL__ = 0;
1438 static struct PyMPIIntracommObject *__pyx_v_6mpi4py_3MPI___COMM_SELF__ = 0;
1439 static struct PyMPIIntracommObject *__pyx_v_6mpi4py_3MPI___COMM_WORLD__ = 0;
1440 static struct PyMPIIntercommObject *__pyx_v_6mpi4py_3MPI___COMM_PARENT__ = 0;
1441 static struct PyMPIWinObject *__pyx_v_6mpi4py_3MPI___WIN_NULL__ = 0;
1442 static struct PyMPIFileObject *__pyx_v_6mpi4py_3MPI___FILE_NULL__ = 0;
1443 static int __pyx_f_6mpi4py_3MPI_warnRC(PyObject *, PyObject *); /*proto*/
1444 static int __pyx_f_6mpi4py_3MPI_getRCParams(__pyx_t_6mpi4py_3MPI_RCParams *); /*proto*/
1445 static int __pyx_f_6mpi4py_3MPI_initialize(void); /*proto*/
1446 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_mpi_active(void); /*proto*/
1447 static void __pyx_f_6mpi4py_3MPI_startup(void); /*proto*/
1448 static void __pyx_f_6mpi4py_3MPI_cleanup(void); /*proto*/
1449 static void __pyx_f_6mpi4py_3MPI_atexit(void); /*proto*/
1450 static int __pyx_f_6mpi4py_3MPI_PyMPI_Raise(int); /*proto*/
1451 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_CHKERR(int); /*proto*/
1452 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_print_traceback(void); /*proto*/
1453 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asmpistr(PyObject *, char **, int *); /*proto*/
1454 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_tompistr(const char *, int); /*proto*/
1455 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_mpistr(const char *); /*proto*/
1456 static int __pyx_f_6mpi4py_3MPI_PyObject_GetBufferEx(PyObject *, Py_buffer *, int); /*proto*/
1457 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_newbuffer(void); /*proto*/
1458 static struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer(PyObject *, int, int); /*proto*/
1459 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_getformat(struct __pyx_obj_6mpi4py_3MPI__p_buffer *); /*proto*/
1460 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_tobuffer(void *, Py_ssize_t, int); /*proto*/
1461 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer_r(PyObject *, void **, MPI_Aint *); /*proto*/
1462 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer_w(PyObject *, void **, MPI_Aint *); /*proto*/
1463 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asmemory(PyObject *, void **, MPI_Aint *); /*proto*/
1464 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_tomemory(void *, MPI_Aint); /*proto*/
1465 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_allocate_int(int, int **); /*proto*/
1466 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_newarray_int(Py_ssize_t, int **); /*proto*/
1467 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_getarray_int(PyObject *, int *, int **); /*proto*/
1468 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_chkarray_int(PyObject *, Py_ssize_t, int **); /*proto*/
1469 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_int(PyObject *, Py_ssize_t, int **); /*proto*/
1470 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Aint(PyObject *, Py_ssize_t, MPI_Aint **); /*proto*/
1471 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Datatype(PyObject *, Py_ssize_t, MPI_Datatype **); /*proto*/
1472 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Info(PyObject *, Py_ssize_t, MPI_Info **); /*proto*/
1473 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_str(PyObject *, Py_ssize_t, char ***); /*proto*/
1474 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_argv(PyObject *, char ***); /*proto*/
1475 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_argvs(PyObject *, Py_ssize_t, char ****); /*proto*/
1476 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_nprocs(PyObject *, Py_ssize_t, int **); /*proto*/
1477 static CYTHON_INLINE MPI_Status *__pyx_f_6mpi4py_3MPI_arg_Status(PyObject *); /*proto*/
1478 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_equal_Status(MPI_Status *, MPI_Status *); /*proto*/
1479 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_keyval_new(int, PyObject *, PyObject *); /*proto*/
1480 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_keyval_del(int); /*proto*/
1481 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_attr_copy(MPI_Datatype, int, void *, void *, void *, int *); /*proto*/
1482 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_attr_delete(MPI_Datatype, int, void *, void *); /*proto*/
1483 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_type_attr_copy_fn(MPI_Datatype, int, void *, void *, void *, int *); /*proto*/
1484 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_type_attr_delete_fn(MPI_Datatype, int, void *, void *); /*proto*/
1485 static CYTHON_INLINE struct PyMPIDatatypeObject *__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_Datatype); /*proto*/
1486 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Datatype(MPI_Datatype *); /*proto*/
1487 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_named_Datatype(MPI_Datatype); /*proto*/
1488 static void __pyx_f_6mpi4py_3MPI_fix_fileview_Datatype(struct PyMPIDatatypeObject *); /*proto*/
1489 static PyObject *__pyx_f_6mpi4py_3MPI_acquire_rs(PyObject *, PyObject *, int *, MPI_Request **, MPI_Status **); /*proto*/
1490 static int __pyx_f_6mpi4py_3MPI_release_rs(PyObject *, PyObject *, int, MPI_Request *, MPI_Status *); /*proto*/
1491 static int __pyx_f_6mpi4py_3MPI_greq_query(void *, MPI_Status *); /*proto*/
1492 static int __pyx_f_6mpi4py_3MPI_greq_free(void *); /*proto*/
1493 static int __pyx_f_6mpi4py_3MPI_greq_cancel(void *, int); /*proto*/
1494 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_query_fn(void *, MPI_Status *); /*proto*/
1495 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_free_fn(void *); /*proto*/
1496 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_cancel_fn(void *, int); /*proto*/
1497 static CYTHON_INLINE struct PyMPIRequestObject *__pyx_f_6mpi4py_3MPI_new_Request(MPI_Request); /*proto*/
1498 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Request(MPI_Request *); /*proto*/
1499 static PyObject *__pyx_f_6mpi4py_3MPI__op_MAX(PyObject *, PyObject *); /*proto*/
1500 static PyObject *__pyx_f_6mpi4py_3MPI__op_MIN(PyObject *, PyObject *); /*proto*/
1501 static PyObject *__pyx_f_6mpi4py_3MPI__op_SUM(PyObject *, PyObject *); /*proto*/
1502 static PyObject *__pyx_f_6mpi4py_3MPI__op_PROD(PyObject *, PyObject *); /*proto*/
1503 static PyObject *__pyx_f_6mpi4py_3MPI__op_BAND(PyObject *, PyObject *); /*proto*/
1504 static PyObject *__pyx_f_6mpi4py_3MPI__op_BOR(PyObject *, PyObject *); /*proto*/
1505 static PyObject *__pyx_f_6mpi4py_3MPI__op_BXOR(PyObject *, PyObject *); /*proto*/
1506 static PyObject *__pyx_f_6mpi4py_3MPI__op_LAND(PyObject *, PyObject *); /*proto*/
1507 static PyObject *__pyx_f_6mpi4py_3MPI__op_LOR(PyObject *, PyObject *); /*proto*/
1508 static PyObject *__pyx_f_6mpi4py_3MPI__op_LXOR(PyObject *, PyObject *); /*proto*/
1509 static PyObject *__pyx_f_6mpi4py_3MPI__op_MAXLOC(PyObject *, PyObject *); /*proto*/
1510 static PyObject *__pyx_f_6mpi4py_3MPI__op_MINLOC(PyObject *, PyObject *); /*proto*/
1511 static PyObject *__pyx_f_6mpi4py_3MPI__op_REPLACE(PyObject *, PyObject *); /*proto*/
1512 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_op_user_py(int, PyObject *, PyObject *, PyObject *); /*proto*/
1513 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_op_user_mpi(int, void *, void *, MPI_Aint, MPI_Datatype *); /*proto*/
1514 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_op_user_call(int, void *, void *, int *, MPI_Datatype *); /*proto*/
1515 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_01(void *, void *, int *, MPI_Datatype *); /*proto*/
1516 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_02(void *, void *, int *, MPI_Datatype *); /*proto*/
1517 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_03(void *, void *, int *, MPI_Datatype *); /*proto*/
1518 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_04(void *, void *, int *, MPI_Datatype *); /*proto*/
1519 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_05(void *, void *, int *, MPI_Datatype *); /*proto*/
1520 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_06(void *, void *, int *, MPI_Datatype *); /*proto*/
1521 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_07(void *, void *, int *, MPI_Datatype *); /*proto*/
1522 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_08(void *, void *, int *, MPI_Datatype *); /*proto*/
1523 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_09(void *, void *, int *, MPI_Datatype *); /*proto*/
1524 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_10(void *, void *, int *, MPI_Datatype *); /*proto*/
1525 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_11(void *, void *, int *, MPI_Datatype *); /*proto*/
1526 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_12(void *, void *, int *, MPI_Datatype *); /*proto*/
1527 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_13(void *, void *, int *, MPI_Datatype *); /*proto*/
1528 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_14(void *, void *, int *, MPI_Datatype *); /*proto*/
1529 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_15(void *, void *, int *, MPI_Datatype *); /*proto*/
1530 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_16(void *, void *, int *, MPI_Datatype *); /*proto*/
1531 static MPI_User_function *__pyx_f_6mpi4py_3MPI_op_user_map(int); /*proto*/
1532 static int __pyx_f_6mpi4py_3MPI_op_user_new(PyObject *, MPI_User_function **); /*proto*/
1533 static int __pyx_f_6mpi4py_3MPI_op_user_del(int *); /*proto*/
1534 static CYTHON_INLINE struct PyMPIOpObject *__pyx_f_6mpi4py_3MPI_new_Op(MPI_Op); /*proto*/
1535 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Op(MPI_Op *); /*proto*/
1536 static CYTHON_INLINE struct PyMPIInfoObject *__pyx_f_6mpi4py_3MPI_new_Info(MPI_Info); /*proto*/
1537 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Info(MPI_Info *); /*proto*/
1538 static CYTHON_INLINE MPI_Info __pyx_f_6mpi4py_3MPI_arg_Info(PyObject *); /*proto*/
1539 static CYTHON_INLINE struct PyMPIGroupObject *__pyx_f_6mpi4py_3MPI_new_Group(MPI_Group); /*proto*/
1540 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Group(MPI_Group *); /*proto*/
1541 static int __pyx_f_6mpi4py_3MPI_comm_keyval_new(int, PyObject *, PyObject *); /*proto*/
1542 static int __pyx_f_6mpi4py_3MPI_comm_keyval_del(int); /*proto*/
1543 static int __pyx_f_6mpi4py_3MPI_comm_attr_copy(MPI_Comm, int, void *, void *, void *, int *); /*proto*/
1544 static int __pyx_f_6mpi4py_3MPI_comm_attr_delete(MPI_Comm, int, void *, void *); /*proto*/
1545 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_comm_attr_copy_fn(MPI_Comm, int, void *, void *, void *, int *); /*proto*/
1546 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_comm_attr_delete_fn(MPI_Comm, int, void *, void *); /*proto*/
1547 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_attach_buffer(PyObject *, void **, int *); /*proto*/
1548 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_detach_buffer(void *, int); /*proto*/
1549 static CYTHON_INLINE struct PyMPICommObject *__pyx_f_6mpi4py_3MPI_new_Comm(MPI_Comm); /*proto*/
1550 static CYTHON_INLINE struct PyMPIIntracommObject *__pyx_f_6mpi4py_3MPI_new_Intracomm(MPI_Comm); /*proto*/
1551 static CYTHON_INLINE struct PyMPIIntercommObject *__pyx_f_6mpi4py_3MPI_new_Intercomm(MPI_Comm); /*proto*/
1552 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Comm(MPI_Comm *); /*proto*/
1553 static void __pyx_f_6mpi4py_3MPI_win_memory_decref(void *); /*proto*/
1554 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_memory_del(MPI_Win, int, void *, void *); /*proto*/
1555 static int __pyx_f_6mpi4py_3MPI_PyMPI_Win_setup(MPI_Win, PyObject *); /*proto*/
1556 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_keyval_new(int, PyObject *, PyObject *); /*proto*/
1557 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_keyval_del(int); /*proto*/
1558 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_attr_copy(MPI_Win, int, void *, void *, void *, int *); /*proto*/
1559 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_attr_delete(MPI_Win, int, void *, void *); /*proto*/
1560 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_attr_copy_fn(MPI_Win, int, void *, void *, void *, int *); /*proto*/
1561 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_attr_delete_fn(MPI_Win, int, void *, void *); /*proto*/
1562 static CYTHON_INLINE struct PyMPIWinObject *__pyx_f_6mpi4py_3MPI_new_Win(MPI_Win); /*proto*/
1563 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Win(MPI_Win *); /*proto*/
1564 static CYTHON_INLINE struct PyMPIFileObject *__pyx_f_6mpi4py_3MPI_new_File(MPI_File); /*proto*/
1565 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_File(MPI_File *); /*proto*/
1566 static CYTHON_INLINE struct PyMPIErrhandlerObject *__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_Errhandler); /*proto*/
1567 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Errhandler(MPI_Errhandler *); /*proto*/
1568 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_is_buffer(PyObject *); /*proto*/
1569 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_basic(PyObject *, PyObject *, int, void **, MPI_Aint *, MPI_Datatype *); /*proto*/
1570 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_simple(PyObject *, int, int, int, void **, int *, MPI_Datatype *); /*proto*/
1571 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_vector(PyObject *, int, int, int, void **, int **, int **, MPI_Datatype *); /*proto*/
1572 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_f_6mpi4py_3MPI_message_p2p_send(PyObject *, int); /*proto*/
1573 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_f_6mpi4py_3MPI_message_p2p_recv(PyObject *, int); /*proto*/
1574 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_f_6mpi4py_3MPI_message_cco(void); /*proto*/
1575 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_f_6mpi4py_3MPI_message_rma(void); /*proto*/
1576 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_f_6mpi4py_3MPI_message_io_read(PyObject *); /*proto*/
1577 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_f_6mpi4py_3MPI_message_io_write(PyObject *); /*proto*/
1578 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_f_6mpi4py_3MPI_PyMPI_pickle(void); /*proto*/
1579 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_send(PyObject *, int, int, MPI_Comm); /*proto*/
1580 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_bsend(PyObject *, int, int, MPI_Comm); /*proto*/
1581 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_ssend(PyObject *, int, int, MPI_Comm); /*proto*/
1582 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_recv(PyObject *, int, int, MPI_Comm, MPI_Status *); /*proto*/
1583 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_sendrecv(PyObject *, int, int, PyObject *, int, int, MPI_Comm, MPI_Status *); /*proto*/
1584 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_isend(PyObject *, int, int, MPI_Comm, MPI_Request *); /*proto*/
1585 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_ibsend(PyObject *, int, int, MPI_Comm, MPI_Request *); /*proto*/
1586 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_issend(PyObject *, int, int, MPI_Comm, MPI_Request *); /*proto*/
1587 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_irecv(PyObject *, int, int, MPI_Comm, MPI_Request *); /*proto*/
1588 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_wait(struct PyMPIRequestObject *, struct PyMPIStatusObject *); /*proto*/
1589 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_test(struct PyMPIRequestObject *, int *, struct PyMPIStatusObject *); /*proto*/
1590 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_waitany(PyObject *, int *, struct PyMPIStatusObject *); /*proto*/
1591 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_testany(PyObject *, int *, int *, struct PyMPIStatusObject *); /*proto*/
1592 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_waitall(PyObject *, PyObject *); /*proto*/
1593 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_testall(PyObject *, int *, PyObject *); /*proto*/
1594 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_barrier(MPI_Comm); /*proto*/
1595 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_bcast(PyObject *, int, MPI_Comm); /*proto*/
1596 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_gather(PyObject *, PyObject *, int, MPI_Comm); /*proto*/
1597 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_scatter(PyObject *, PyObject *, int, MPI_Comm); /*proto*/
1598 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_allgather(PyObject *, PyObject *, MPI_Comm); /*proto*/
1599 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_alltoall(PyObject *, PyObject *, MPI_Comm); /*proto*/
1600 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_reduce(PyObject *, PyObject *); /*proto*/
1601 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_scan(PyObject *, PyObject *); /*proto*/
1602 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_exscan(PyObject *, PyObject *); /*proto*/
1603 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_reduce(PyObject *, PyObject *, PyObject *, int, MPI_Comm); /*proto*/
1604 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_allreduce(PyObject *, PyObject *, PyObject *, MPI_Comm); /*proto*/
1605 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_scan(PyObject *, PyObject *, PyObject *, MPI_Comm); /*proto*/
1606 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_exscan(PyObject *, PyObject *, PyObject *, MPI_Comm); /*proto*/
1607 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIDatatype_New(MPI_Datatype); /*proto*/
1608 static MPI_Datatype *__pyx_f_6mpi4py_3MPI_PyMPIDatatype_Get(PyObject *); /*proto*/
1609 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIStatus_New(MPI_Status *); /*proto*/
1610 static MPI_Status *__pyx_f_6mpi4py_3MPI_PyMPIStatus_Get(PyObject *); /*proto*/
1611 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIRequest_New(MPI_Request); /*proto*/
1612 static MPI_Request *__pyx_f_6mpi4py_3MPI_PyMPIRequest_Get(PyObject *); /*proto*/
1613 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIOp_New(MPI_Op); /*proto*/
1614 static MPI_Op *__pyx_f_6mpi4py_3MPI_PyMPIOp_Get(PyObject *); /*proto*/
1615 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIInfo_New(MPI_Info); /*proto*/
1616 static MPI_Info *__pyx_f_6mpi4py_3MPI_PyMPIInfo_Get(PyObject *); /*proto*/
1617 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIGroup_New(MPI_Group); /*proto*/
1618 static MPI_Group *__pyx_f_6mpi4py_3MPI_PyMPIGroup_Get(PyObject *); /*proto*/
1619 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIComm_New(MPI_Comm); /*proto*/
1620 static MPI_Comm *__pyx_f_6mpi4py_3MPI_PyMPIComm_Get(PyObject *); /*proto*/
1621 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIWin_New(MPI_Win); /*proto*/
1622 static MPI_Win *__pyx_f_6mpi4py_3MPI_PyMPIWin_Get(PyObject *); /*proto*/
1623 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIFile_New(MPI_File); /*proto*/
1624 static MPI_File *__pyx_f_6mpi4py_3MPI_PyMPIFile_Get(PyObject *); /*proto*/
1625 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_New(MPI_Errhandler); /*proto*/
1626 static MPI_Errhandler *__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_Get(PyObject *); /*proto*/
1627 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_AddTypeMap(PyObject *, PyObject *, struct PyMPIDatatypeObject *); /*proto*/
1628 #define __Pyx_MODULE_NAME "mpi4py.MPI"
1629 int __pyx_module_is_main_mpi4py__MPI = 0;
1630 
1631 /* Implementation of 'mpi4py.MPI' */
1632 static PyObject *__pyx_builtin_ImportError;
1633 static PyObject *__pyx_builtin_RuntimeError;
1634 static PyObject *__pyx_builtin_property;
1635 static PyObject *__pyx_builtin_SystemError;
1636 static PyObject *__pyx_builtin_TypeError;
1637 static PyObject *__pyx_builtin_AttributeError;
1638 static PyObject *__pyx_builtin_ValueError;
1639 static PyObject *__pyx_builtin_KeyError;
1640 static PyObject *__pyx_builtin_NotImplemented;
1641 static PyObject *__pyx_builtin_NotImplementedError;
1642 static char __pyx_k_1[] = "mpi4py.rc: '%s': unexpected value '%r'";
1643 static char __pyx_k_2[] = "warning: could not register cleanup with Py_AtExit()\n";
1644 static char __pyx_k_3[] = "MPI_Init_thread() failed [error code: %d]";
1645 static char __pyx_k_4[] = "MPI_Init() failed [error code: %d]";
1646 static char __pyx_k_5[] = "accessing non-existent buffer segment";
1647 static char __pyx_k_8[] = "object is not writeable";
1648 static char __pyx_k_10[] = "expecting %d items, got %d";
1649 static char __pyx_k_11[] = "Fatal Python error: exception in user-defined reduction operation\n";
1650 static char __pyx_k_13[] = "cannot create too many user-defined reduction operations";
1651 static char __pyx_k_15[] = "message: expecting 2 to 4 items";
1652 static char __pyx_k_17[] = "message: expecting buffer or list/tuple";
1653 static char __pyx_k_19[] = "message: cannot handle displacement, explicit count required";
1654 static char __pyx_k_21[] = "message: negative count %d";
1655 static char __pyx_k_22[] = "message: negative diplacement %d";
1656 static char __pyx_k_23[] = "message: cannot handle diplacement, datatype is null";
1657 static char __pyx_k_25[] = "message: cannot guess count, datatype is null";
1658 static char __pyx_k_27[] = "message: cannot guess count, datatype extent %d (lb:%d, ub:%d)";
1659 static char __pyx_k_28[] = "message: cannot guess count, buffer length %d is not a multiple of datatype extent %d (lb:%d, ub:%d)";
1660 static char __pyx_k_29[] = "message: cannot guess count, number of datatype items %d is not a multiple ofthe required number of blocks %d";
1661 static char __pyx_k_30[] = "message: buffer is None but count is %d";
1662 static char __pyx_k_31[] = "message: buffer is None but displacement is %d";
1663 static char __pyx_k_35[] = "mismatch in send count %d and receive count %d";
1664 static char __pyx_k_36[] = "mismatch in send and receive MPI datatypes";
1665 static char __pyx_k_39[] = "mismatch in send count %d receive count %d";
1666 static char __pyx_k_41[] = "mismatch in send count %d and sum(counts) %d";
1667 static char __pyx_k_42[] = "mismatch in receive count %d and counts[%d] %d";
1668 static char __pyx_k_43[] = "mismatch in receive count %d and sum(counts) %d";
1669 static char __pyx_k_46[] = "target: expecting 3 items";
1670 static char __pyx_k_48[] = "target: expecting integral or list/tuple";
1671 static char __pyx_k_50[] = "";
1672 static char __pyx_k_53[] = "MPI.Exception(%d)";
1673 static char __pyx_k_54[] = "error code: %d";
1674 static char __pyx_k_55[] = "only '==' and '!='";
1675 static char __pyx_k_66[] = "mismatch in inbuf count %d and inoutbuf count %d";
1676 static char __pyx_k_67[] = "mismatch in inbuf and inoutbuf MPI datatypes";
1677 static char __pyx_k_77[] = "expecting an intracommunicator";
1678 static char __pyx_k_89[] = "expecting a Cartesian communicator";
1679 static char __pyx_k_91[] = "expecting a general graph communicator";
1680 static char __pyx_k_93[] = "expecting a distributed graph communicator";
1681 static char __pyx_k_95[] = "expecting an intercommunicator";
1682 static char __pyx_k__B[] = "B";
1683 static char __pyx_k__D[] = "D";
1684 static char __pyx_k__F[] = "F";
1685 static char __pyx_k__G[] = "G";
1686 static char __pyx_k__H[] = "H";
1687 static char __pyx_k__I[] = "I";
1688 static char __pyx_k__L[] = "L";
1689 static char __pyx_k__Q[] = "Q";
1690 static char __pyx_k__b[] = "b";
1691 static char __pyx_k__c[] = "c";
1692 static char __pyx_k__d[] = "d";
1693 static char __pyx_k__f[] = "f";
1694 static char __pyx_k__g[] = "g";
1695 static char __pyx_k__h[] = "h";
1696 static char __pyx_k__i[] = "i";
1697 static char __pyx_k__l[] = "l";
1698 static char __pyx_k__n[] = "n";
1699 static char __pyx_k__p[] = "p";
1700 static char __pyx_k__q[] = "q";
1701 static char __pyx_k__r[] = "r";
1702 static char __pyx_k__x[] = "x";
1703 static char __pyx_k__y[] = "y";
1704 static char __pyx_k_112[] = "byte count";
1705 static char __pyx_k_113[] = "\n        cancelled state\n        ";
1706 static char __pyx_k_114[] = "lower bound";
1707 static char __pyx_k_115[] = "upper bound";
1708 static char __pyx_k_116[] = "size (in bytes)";
1709 static char __pyx_k_117[] = "true extent";
1710 static char __pyx_k_118[] = "true lower bound";
1711 static char __pyx_k_119[] = "true upper bound";
1712 static char __pyx_k_120[] = "datatype name";
1713 static char __pyx_k_121[] = "is commutative";
1714 static char __pyx_k_122[] = "number of processes in group";
1715 static char __pyx_k_123[] = "rank of this process in group";
1716 static char __pyx_k_124[] = "communicator group";
1717 static char __pyx_k_125[] = "number of processes in communicator";
1718 static char __pyx_k_126[] = "rank of this process in communicator";
1719 static char __pyx_k_127[] = "is intercommunicator";
1720 static char __pyx_k_128[] = "is intracommunicator";
1721 static char __pyx_k_129[] = "communicator topology type";
1722 static char __pyx_k_130[] = "communicator name";
1723 static char __pyx_k_131[] = "number of dimensions";
1724 static char __pyx_k_132[] = "topology information";
1725 static char __pyx_k_133[] = "number of nodes and edges";
1726 static char __pyx_k_134[] = "number of nodes";
1727 static char __pyx_k_135[] = "number of edges";
1728 static char __pyx_k_136[] = "number of neighbors";
1729 static char __pyx_k_137[] = "remote group";
1730 static char __pyx_k_138[] = "number of remote processes";
1731 static char __pyx_k_139[] = "window group";
1732 static char __pyx_k_140[] = "window attributes";
1733 static char __pyx_k_141[] = "window memory buffer";
1734 static char __pyx_k_142[] = "window name";
1735 static char __pyx_k_143[] = "file size";
1736 static char __pyx_k_144[] = "file group";
1737 static char __pyx_k_145[] = "file access mode";
1738 static char __pyx_k_146[] = "file info";
1739 static char __pyx_k_147[] = "\nMessage Passing Interface\n";
1740 static char __pyx_k_148[] = "mpi4py.MPI";
1741 static char __pyx_k_149[] = "error code";
1742 static char __pyx_k_150[] = "error class";
1743 static char __pyx_k_151[] = "error string";
1744 static char __pyx_k_152[] = "\n    Exception\n    ";
1745 static char __pyx_k_153[] = "ERR_UNSUPPORTED_DATAREP";
1746 static char __pyx_k_154[] = "ERR_UNSUPPORTED_OPERATION";
1747 static char __pyx_k_155[] = "DISTRIBUTE_DFLT_DARG";
1748 static char __pyx_k_156[] = "COMBINER_HVECTOR_INTEGER";
1749 static char __pyx_k_157[] = "COMBINER_HINDEXED_INTEGER";
1750 static char __pyx_k_158[] = "COMBINER_INDEXED_BLOCK";
1751 static char __pyx_k_159[] = "COMBINER_STRUCT_INTEGER";
1752 static char __pyx_k_160[] = "COMBINER_F90_COMPLEX";
1753 static char __pyx_k_161[] = "COMBINER_F90_INTEGER";
1754 static char __pyx_k_162[] = "?";
1755 static char __pyx_k_163[] = "C_LONG_DOUBLE_COMPLEX";
1756 static char __pyx_k_164[] = "MODE_DELETE_ON_CLOSE";
1757 static char __pyx_k_165[] = "DISPLACEMENT_CURRENT";
1758 static char __pyx_k__IO[] = "IO";
1759 static char __pyx_k__LB[] = "LB";
1760 static char __pyx_k__UB[] = "UB";
1761 static char __pyx_k__Zd[] = "Zd";
1762 static char __pyx_k__Zf[] = "Zf";
1763 static char __pyx_k__Zg[] = "Zg";
1764 static char __pyx_k__c4[] = "c4";
1765 static char __pyx_k__c8[] = "c8";
1766 static char __pyx_k__f2[] = "f2";
1767 static char __pyx_k__f4[] = "f4";
1768 static char __pyx_k__f8[] = "f8";
1769 static char __pyx_k__fd[] = "fd";
1770 static char __pyx_k__i1[] = "i1";
1771 static char __pyx_k__i2[] = "i2";
1772 static char __pyx_k__i4[] = "i4";
1773 static char __pyx_k__i8[] = "i8";
1774 static char __pyx_k__lb[] = "lb";
1775 static char __pyx_k__no[] = "no";
1776 static char __pyx_k__op[] = "op";
1777 static char __pyx_k__rc[] = "rc";
1778 static char __pyx_k__u1[] = "u1";
1779 static char __pyx_k__u2[] = "u2";
1780 static char __pyx_k__u4[] = "u4";
1781 static char __pyx_k__u8[] = "u8";
1782 static char __pyx_k__BOR[] = "BOR";
1783 static char __pyx_k__DUP[] = "DUP";
1784 static char __pyx_k__Dup[] = "Dup";
1785 static char __pyx_k__Get[] = "Get";
1786 static char __pyx_k__INT[] = "INT";
1787 static char __pyx_k__LOR[] = "LOR";
1788 static char __pyx_k__MAX[] = "MAX";
1789 static char __pyx_k__MIN[] = "MIN";
1790 static char __pyx_k__SUM[] = "SUM";
1791 static char __pyx_k__Set[] = "Set";
1792 static char __pyx_k__arg[] = "arg";
1793 static char __pyx_k__buf[] = "buf";
1794 static char __pyx_k__c16[] = "c16";
1795 static char __pyx_k__c32[] = "c32";
1796 static char __pyx_k__doc[] = "doc";
1797 static char __pyx_k__f16[] = "f16";
1798 static char __pyx_k__i16[] = "i16";
1799 static char __pyx_k__key[] = "key";
1800 static char __pyx_k__obj[] = "obj";
1801 static char __pyx_k__pop[] = "pop";
1802 static char __pyx_k__sys[] = "sys";
1803 static char __pyx_k__tag[] = "tag";
1804 static char __pyx_k__win[] = "win";
1805 static char __pyx_k__yes[] = "yes";
1806 static char __pyx_k__AINT[] = "AINT";
1807 static char __pyx_k__BAND[] = "BAND";
1808 static char __pyx_k__BOOL[] = "BOOL";
1809 static char __pyx_k__BXOR[] = "BXOR";
1810 static char __pyx_k__BYTE[] = "BYTE";
1811 static char __pyx_k__CART[] = "CART";
1812 static char __pyx_k__CHAR[] = "CHAR";
1813 static char __pyx_k__HOST[] = "HOST";
1814 static char __pyx_k__Init[] = "Init";
1815 static char __pyx_k__Join[] = "Join";
1816 static char __pyx_k__LAND[] = "LAND";
1817 static char __pyx_k__LONG[] = "LONG";
1818 static char __pyx_k__LXOR[] = "LXOR";
1819 static char __pyx_k__Open[] = "Open";
1820 static char __pyx_k__PROD[] = "PROD";
1821 static char __pyx_k__REAL[] = "REAL";
1822 static char __pyx_k__ROOT[] = "ROOT";
1823 static char __pyx_k__args[] = "args";
1824 static char __pyx_k__char[] = "char";
1825 static char __pyx_k__comm[] = "comm";
1826 static char __pyx_k__dest[] = "dest";
1827 static char __pyx_k__dims[] = "dims";
1828 static char __pyx_k__disp[] = "disp";
1829 static char __pyx_k__f2py[] = "f2py";
1830 static char __pyx_k__file[] = "file";
1831 static char __pyx_k__flag[] = "flag";
1832 static char __pyx_k__high[] = "high";
1833 static char __pyx_k__ierr[] = "ierr";
1834 static char __pyx_k__info[] = "info";
1835 static char __pyx_k__join[] = "join";
1836 static char __pyx_k__keys[] = "keys";
1837 static char __pyx_k__load[] = "load";
1838 static char __pyx_k__name[] = "name";
1839 static char __pyx_k__rank[] = "rank";
1840 static char __pyx_k__read[] = "read";
1841 static char __pyx_k__root[] = "root";
1842 static char __pyx_k__self[] = "self";
1843 static char __pyx_k__size[] = "size";
1844 static char __pyx_k__warn[] = "warn";
1845 static char __pyx_k__FLOAT[] = "FLOAT";
1846 static char __pyx_k__F_INT[] = "F_INT";
1847 static char __pyx_k__GRAPH[] = "GRAPH";
1848 static char __pyx_k__IDENT[] = "IDENT";
1849 static char __pyx_k__REAL2[] = "REAL2";
1850 static char __pyx_k__REAL4[] = "REAL4";
1851 static char __pyx_k__REAL8[] = "REAL8";
1852 static char __pyx_k__SHORT[] = "SHORT";
1853 static char __pyx_k__Start[] = "Start";
1854 static char __pyx_k__Union[] = "Union";
1855 static char __pyx_k__WCHAR[] = "WCHAR";
1856 static char __pyx_k__Wtick[] = "Wtick";
1857 static char __pyx_k__Wtime[] = "Wtime";
1858 static char __pyx_k__amode[] = "amode";
1859 static char __pyx_k__array[] = "array";
1860 static char __pyx_k__color[] = "color";
1861 static char __pyx_k__comm1[] = "comm1";
1862 static char __pyx_k__comm2[] = "comm2";
1863 static char __pyx_k__count[] = "count";
1864 static char __pyx_k__dargs[] = "dargs";
1865 static char __pyx_k__dtype[] = "dtype";
1866 static char __pyx_k__dumps[] = "dumps";
1867 static char __pyx_k__edges[] = "edges";
1868 static char __pyx_k__error[] = "error";
1869 static char __pyx_k__etype[] = "etype";
1870 static char __pyx_k__flush[] = "flush";
1871 static char __pyx_k__group[] = "group";
1872 static char __pyx_k__inbuf[] = "inbuf";
1873 static char __pyx_k__index[] = "index";
1874 static char __pyx_k__kargs[] = "kargs";
1875 static char __pyx_k__level[] = "level";
1876 static char __pyx_k__loads[] = "loads";
1877 static char __pyx_k__order[] = "order";
1878 static char __pyx_k__other[] = "other";
1879 static char __pyx_k__ranks[] = "ranks";
1880 static char __pyx_k__rtype[] = "rtype";
1881 static char __pyx_k__sizes[] = "sizes";
1882 static char __pyx_k__stype[] = "stype";
1883 static char __pyx_k__value[] = "value";
1884 static char __pyx_k__APPNUM[] = "APPNUM";
1885 static char __pyx_k__BOTTOM[] = "BOTTOM";
1886 static char __pyx_k__C_BOOL[] = "C_BOOL";
1887 static char __pyx_k__Create[] = "Create";
1888 static char __pyx_k__DARRAY[] = "DARRAY";
1889 static char __pyx_k__DOUBLE[] = "DOUBLE";
1890 static char __pyx_k__Delete[] = "Delete";
1891 static char __pyx_k__ERR_IO[] = "ERR_IO";
1892 static char __pyx_k__ERR_OP[] = "ERR_OP";
1893 static char __pyx_k__F_BOOL[] = "F_BOOL";
1894 static char __pyx_k__INT8_T[] = "INT8_T";
1895 static char __pyx_k__MAXLOC[] = "MAXLOC";
1896 static char __pyx_k__MINLOC[] = "MINLOC";
1897 static char __pyx_k__OFFSET[] = "OFFSET";
1898 static char __pyx_k__PACKED[] = "PACKED";
1899 static char __pyx_k__REAL16[] = "REAL16";
1900 static char __pyx_k__STRUCT[] = "STRUCT";
1901 static char __pyx_k__TAG_UB[] = "TAG_UB";
1902 static char __pyx_k__TWOINT[] = "TWOINT";
1903 static char __pyx_k__VECTOR[] = "VECTOR";
1904 static char __pyx_k____eq__[] = "__eq__";
1905 static char __pyx_k____ge__[] = "__ge__";
1906 static char __pyx_k____gt__[] = "__gt__";
1907 static char __pyx_k____le__[] = "__le__";
1908 static char __pyx_k____lt__[] = "__lt__";
1909 static char __pyx_k____ne__[] = "__ne__";
1910 static char __pyx_k__coords[] = "coords";
1911 static char __pyx_k__extent[] = "extent";
1912 static char __pyx_k__group1[] = "group1";
1913 static char __pyx_k__group2[] = "group2";
1914 static char __pyx_k__gsizes[] = "gsizes";
1915 static char __pyx_k__insert[] = "insert";
1916 static char __pyx_k__keyval[] = "keyval";
1917 static char __pyx_k__maxlen[] = "maxlen";
1918 static char __pyx_k__memory[] = "memory";
1919 static char __pyx_k__mpi4py[] = "mpi4py";
1920 static char __pyx_k__native[] = "native";
1921 static char __pyx_k__nnodes[] = "nnodes";
1922 static char __pyx_k__ob_mpi[] = "ob_mpi";
1923 static char __pyx_k__offset[] = "offset";
1924 static char __pyx_k__origin[] = "origin";
1925 static char __pyx_k__outbuf[] = "outbuf";
1926 static char __pyx_k__pickle[] = "pickle";
1927 static char __pyx_k__psizes[] = "psizes";
1928 static char __pyx_k__ranks1[] = "ranks1";
1929 static char __pyx_k__rcount[] = "rcount";
1930 static char __pyx_k__scount[] = "scount";
1931 static char __pyx_k__single[] = "single";
1932 static char __pyx_k__source[] = "source";
1933 static char __pyx_k__starts[] = "starts";
1934 static char __pyx_k__status[] = "status";
1935 static char __pyx_k__stderr[] = "stderr";
1936 static char __pyx_k__stride[] = "stride";
1937 static char __pyx_k__string[] = "string";
1938 static char __pyx_k__target[] = "target";
1939 static char __pyx_k__whence[] = "whence";
1940 static char __pyx_k__ANY_TAG[] = "ANY_TAG";
1941 static char __pyx_k__COMPLEX[] = "COMPLEX";
1942 static char __pyx_k__Compare[] = "Compare";
1943 static char __pyx_k__ERR_ARG[] = "ERR_ARG";
1944 static char __pyx_k__ERR_TAG[] = "ERR_TAG";
1945 static char __pyx_k__ERR_WIN[] = "ERR_WIN";
1946 static char __pyx_k__F_FLOAT[] = "F_FLOAT";
1947 static char __pyx_k__Get_dim[] = "Get_dim";
1948 static char __pyx_k__Get_tag[] = "Get_tag";
1949 static char __pyx_k__HVECTOR[] = "HVECTOR";
1950 static char __pyx_k__INDEXED[] = "INDEXED";
1951 static char __pyx_k__INT16_T[] = "INT16_T";
1952 static char __pyx_k__INT32_T[] = "INT32_T";
1953 static char __pyx_k__INT64_T[] = "INT64_T";
1954 static char __pyx_k__INTEGER[] = "INTEGER";
1955 static char __pyx_k__INT_INT[] = "INT_INT";
1956 static char __pyx_k__LOGICAL[] = "LOGICAL";
1957 static char __pyx_k__OP_NULL[] = "OP_NULL";
1958 static char __pyx_k__ORDER_C[] = "ORDER_C";
1959 static char __pyx_k__ORDER_F[] = "ORDER_F";
1960 static char __pyx_k__REPLACE[] = "REPLACE";
1961 static char __pyx_k__RESIZED[] = "RESIZED";
1962 static char __pyx_k__Resized[] = "Resized";
1963 static char __pyx_k__SIMILAR[] = "SIMILAR";
1964 static char __pyx_k__SINT8_T[] = "SINT8_T";
1965 static char __pyx_k__SUCCESS[] = "SUCCESS";
1966 static char __pyx_k__Set_tag[] = "Set_tag";
1967 static char __pyx_k__Testall[] = "Testall";
1968 static char __pyx_k__Testany[] = "Testany";
1969 static char __pyx_k__UINT8_T[] = "UINT8_T";
1970 static char __pyx_k__UNEQUAL[] = "UNEQUAL";
1971 static char __pyx_k__VERSION[] = "VERSION";
1972 static char __pyx_k__Waitall[] = "Waitall";
1973 static char __pyx_k__Waitany[] = "Waitany";
1974 static char __pyx_k____doc__[] = "__doc__";
1975 static char __pyx_k____int__[] = "__int__";
1976 static char __pyx_k____str__[] = "__str__";
1977 static char __pyx_k__attrval[] = "attrval";
1978 static char __pyx_k__cPickle[] = "cPickle";
1979 static char __pyx_k__command[] = "command";
1980 static char __pyx_k__commute[] = "commute";
1981 static char __pyx_k__copy_fn[] = "copy_fn";
1982 static char __pyx_k__datarep[] = "datarep";
1983 static char __pyx_k__default[] = "default";
1984 static char __pyx_k__degrees[] = "degrees";
1985 static char __pyx_k__free_fn[] = "free_fn";
1986 static char __pyx_k__periods[] = "periods";
1987 static char __pyx_k__recvbuf[] = "recvbuf";
1988 static char __pyx_k__recvobj[] = "recvobj";
1989 static char __pyx_k__recvtag[] = "recvtag";
1990 static char __pyx_k__reorder[] = "reorder";
1991 static char __pyx_k__request[] = "request";
1992 static char __pyx_k__sendbuf[] = "sendbuf";
1993 static char __pyx_k__sendobj[] = "sendobj";
1994 static char __pyx_k__sendtag[] = "sendtag";
1995 static char __pyx_k__sources[] = "sources";
1996 static char __pyx_k__testall[] = "testall";
1997 static char __pyx_k__testany[] = "testany";
1998 static char __pyx_k__waitall[] = "waitall";
1999 static char __pyx_k__waitany[] = "waitany";
2000 static char __pyx_k__weights[] = "weights";
2001 static char __pyx_k__COMPLEX4[] = "COMPLEX4";
2002 static char __pyx_k__COMPLEX8[] = "COMPLEX8";
2003 static char __pyx_k__DISP_CUR[] = "DISP_CUR";
2004 static char __pyx_k__ERR_BASE[] = "ERR_BASE";
2005 static char __pyx_k__ERR_COMM[] = "ERR_COMM";
2006 static char __pyx_k__ERR_DIMS[] = "ERR_DIMS";
2007 static char __pyx_k__ERR_DISP[] = "ERR_DISP";
2008 static char __pyx_k__ERR_FILE[] = "ERR_FILE";
2009 static char __pyx_k__ERR_INFO[] = "ERR_INFO";
2010 static char __pyx_k__ERR_NAME[] = "ERR_NAME";
2011 static char __pyx_k__ERR_PORT[] = "ERR_PORT";
2012 static char __pyx_k__ERR_RANK[] = "ERR_RANK";
2013 static char __pyx_k__ERR_ROOT[] = "ERR_ROOT";
2014 static char __pyx_k__ERR_SIZE[] = "ERR_SIZE";
2015 static char __pyx_k__ERR_TYPE[] = "ERR_TYPE";
2016 static char __pyx_k__F90_REAL[] = "F90_REAL";
2017 static char __pyx_k__F_DOUBLE[] = "F_DOUBLE";
2018 static char __pyx_k__Finalize[] = "Finalize";
2019 static char __pyx_k__Free_mem[] = "Free_mem";
2020 static char __pyx_k__Get_info[] = "Get_info";
2021 static char __pyx_k__Get_name[] = "Get_name";
2022 static char __pyx_k__Get_rank[] = "Get_rank";
2023 static char __pyx_k__Get_size[] = "Get_size";
2024 static char __pyx_k__Get_topo[] = "Get_topo";
2025 static char __pyx_k__HINDEXED[] = "HINDEXED";
2026 static char __pyx_k__INTEGER1[] = "INTEGER1";
2027 static char __pyx_k__INTEGER2[] = "INTEGER2";
2028 static char __pyx_k__INTEGER4[] = "INTEGER4";
2029 static char __pyx_k__INTEGER8[] = "INTEGER8";
2030 static char __pyx_k__IN_PLACE[] = "IN_PLACE";
2031 static char __pyx_k__Is_inter[] = "Is_inter";
2032 static char __pyx_k__Is_intra[] = "Is_intra";
2033 static char __pyx_k__KeyError[] = "KeyError";
2034 static char __pyx_k__LOGICAL1[] = "LOGICAL1";
2035 static char __pyx_k__LOGICAL2[] = "LOGICAL2";
2036 static char __pyx_k__LOGICAL4[] = "LOGICAL4";
2037 static char __pyx_k__LOGICAL8[] = "LOGICAL8";
2038 static char __pyx_k__LONG_INT[] = "LONG_INT";
2039 static char __pyx_k__Pcontrol[] = "Pcontrol";
2040 static char __pyx_k__SEEK_CUR[] = "SEEK_CUR";
2041 static char __pyx_k__SEEK_END[] = "SEEK_END";
2042 static char __pyx_k__SEEK_SET[] = "SEEK_SET";
2043 static char __pyx_k__SINT16_T[] = "SINT16_T";
2044 static char __pyx_k__SINT32_T[] = "SINT32_T";
2045 static char __pyx_k__SINT64_T[] = "SINT64_T";
2046 static char __pyx_k__SUBARRAY[] = "SUBARRAY";
2047 static char __pyx_k__Set_info[] = "Set_info";
2048 static char __pyx_k__Set_name[] = "Set_name";
2049 static char __pyx_k__Startall[] = "Startall";
2050 static char __pyx_k__StringIO[] = "StringIO";
2051 static char __pyx_k__Testsome[] = "Testsome";
2052 static char __pyx_k__UINT16_T[] = "UINT16_T";
2053 static char __pyx_k__UINT32_T[] = "UINT32_T";
2054 static char __pyx_k__UINT64_T[] = "UINT64_T";
2055 static char __pyx_k__UNSIGNED[] = "UNSIGNED";
2056 static char __pyx_k__WIN_BASE[] = "WIN_BASE";
2057 static char __pyx_k__WIN_NULL[] = "WIN_NULL";
2058 static char __pyx_k__WIN_SIZE[] = "WIN_SIZE";
2059 static char __pyx_k__Waitsome[] = "Waitsome";
2060 static char __pyx_k____bool__[] = "__bool__";
2061 static char __pyx_k____call__[] = "__call__";
2062 static char __pyx_k____init__[] = "__init__";
2063 static char __pyx_k____main__[] = "__main__";
2064 static char __pyx_k____repr__[] = "__repr__";
2065 static char __pyx_k__datatype[] = "datatype";
2066 static char __pyx_k__distribs[] = "distribs";
2067 static char __pyx_k__errcodes[] = "errcodes";
2068 static char __pyx_k__filename[] = "filename";
2069 static char __pyx_k__filetype[] = "filetype";
2070 static char __pyx_k__finalize[] = "finalize";
2071 static char __pyx_k__function[] = "function";
2072 static char __pyx_k__funneled[] = "funneled";
2073 static char __pyx_k__inoutbuf[] = "inoutbuf";
2074 static char __pyx_k__location[] = "location";
2075 static char __pyx_k__maxprocs[] = "maxprocs";
2076 static char __pyx_k__multiple[] = "multiple";
2077 static char __pyx_k__position[] = "position";
2078 static char __pyx_k__property[] = "property";
2079 static char __pyx_k__query_fn[] = "query_fn";
2080 static char __pyx_k__requests[] = "requests";
2081 static char __pyx_k__required[] = "required";
2082 static char __pyx_k__statuses[] = "statuses";
2083 static char __pyx_k__subsizes[] = "subsizes";
2084 static char __pyx_k__threaded[] = "threaded";
2085 static char __pyx_k__typecode[] = "typecode";
2086 static char __pyx_k__warnings[] = "warnings";
2087 static char __pyx_k__Alloc_mem[] = "Alloc_mem";
2088 static char __pyx_k__CHARACTER[] = "CHARACTER";
2089 static char __pyx_k__COMM_NULL[] = "COMM_NULL";
2090 static char __pyx_k__COMM_SELF[] = "COMM_SELF";
2091 static char __pyx_k__COMPLEX16[] = "COMPLEX16";
2092 static char __pyx_k__COMPLEX32[] = "COMPLEX32";
2093 static char __pyx_k__CONGRUENT[] = "CONGRUENT";
2094 static char __pyx_k__C_COMPLEX[] = "C_COMPLEX";
2095 static char __pyx_k__ERR_AMODE[] = "ERR_AMODE";
2096 static char __pyx_k__ERR_COUNT[] = "ERR_COUNT";
2097 static char __pyx_k__ERR_GROUP[] = "ERR_GROUP";
2098 static char __pyx_k__ERR_OTHER[] = "ERR_OTHER";
2099 static char __pyx_k__ERR_QUOTA[] = "ERR_QUOTA";
2100 static char __pyx_k__ERR_SPAWN[] = "ERR_SPAWN";
2101 static char __pyx_k__Exception[] = "Exception";
2102 static char __pyx_k__FILE_NULL[] = "FILE_NULL";
2103 static char __pyx_k__FLOAT_INT[] = "FLOAT_INT";
2104 static char __pyx_k__F_COMPLEX[] = "F_COMPLEX";
2105 static char __pyx_k__Get_amode[] = "Get_amode";
2106 static char __pyx_k__Get_count[] = "Get_count";
2107 static char __pyx_k__Get_error[] = "Get_error";
2108 static char __pyx_k__Get_group[] = "Get_group";
2109 static char __pyx_k__Get_nkeys[] = "Get_nkeys";
2110 static char __pyx_k__INFO_NULL[] = "INFO_NULL";
2111 static char __pyx_k__INTEGER16[] = "INTEGER16";
2112 static char __pyx_k__Intersect[] = "Intersect";
2113 static char __pyx_k__LONG_LONG[] = "LONG_LONG";
2114 static char __pyx_k__MODE_EXCL[] = "MODE_EXCL";
2115 static char __pyx_k__MODE_RDWR[] = "MODE_RDWR";
2116 static char __pyx_k__Open_port[] = "Open_port";
2117 static char __pyx_k__PROC_NULL[] = "PROC_NULL";
2118 static char __pyx_k__SHORT_INT[] = "SHORT_INT";
2119 static char __pyx_k__Set_error[] = "Set_error";
2120 static char __pyx_k__TypeError[] = "TypeError";
2121 static char __pyx_k__UNDEFINED[] = "UNDEFINED";
2122 static char __pyx_k___p_pickle[] = "_p_pickle";
2123 static char __pyx_k__assertion[] = "assertion";
2124 static char __pyx_k__atomicity[] = "atomicity";
2125 static char __pyx_k__cStringIO[] = "cStringIO";
2126 static char __pyx_k__cancel_fn[] = "cancel_fn";
2127 static char __pyx_k__datatypes[] = "datatypes";
2128 static char __pyx_k__delete_fn[] = "delete_fn";
2129 static char __pyx_k__direction[] = "direction";
2130 static char __pyx_k__disp_unit[] = "disp_unit";
2131 static char __pyx_k__errorcode[] = "errorcode";
2132 static char __pyx_k__lock_type[] = "lock_type";
2133 static char __pyx_k__neighbors[] = "neighbors";
2134 static char __pyx_k__peer_comm[] = "peer_comm";
2135 static char __pyx_k__port_name[] = "port_name";
2136 static char __pyx_k__print_exc[] = "print_exc";
2137 static char __pyx_k__traceback[] = "traceback";
2138 static char __pyx_k__typeclass[] = "typeclass";
2139 static char __pyx_k__ANY_SOURCE[] = "ANY_SOURCE";
2140 static char __pyx_k__COMM_WORLD[] = "COMM_WORLD";
2141 static char __pyx_k__CONTIGUOUS[] = "CONTIGUOUS";
2142 static char __pyx_k__Close_port[] = "Close_port";
2143 static char __pyx_k__Create_dup[] = "Create_dup";
2144 static char __pyx_k__DIST_GRAPH[] = "DIST_GRAPH";
2145 static char __pyx_k__DOUBLE_INT[] = "DOUBLE_INT";
2146 static char __pyx_k__Difference[] = "Difference";
2147 static char __pyx_k__ERR_ACCESS[] = "ERR_ACCESS";
2148 static char __pyx_k__ERR_ASSERT[] = "ERR_ASSERT";
2149 static char __pyx_k__ERR_BUFFER[] = "ERR_BUFFER";
2150 static char __pyx_k__ERR_INTERN[] = "ERR_INTERN";
2151 static char __pyx_k__ERR_KEYVAL[] = "ERR_KEYVAL";
2152 static char __pyx_k__ERR_NO_MEM[] = "ERR_NO_MEM";
2153 static char __pyx_k__GROUP_NULL[] = "GROUP_NULL";
2154 static char __pyx_k__Get_nthkey[] = "Get_nthkey";
2155 static char __pyx_k__Get_parent[] = "Get_parent";
2156 static char __pyx_k__Get_source[] = "Get_source";
2157 static char __pyx_k__MODE_NOPUT[] = "MODE_NOPUT";
2158 static char __pyx_k__Match_size[] = "Match_size";
2159 static char __pyx_k__SIGNED_INT[] = "SIGNED_INT";
2160 static char __pyx_k__SUBVERSION[] = "SUBVERSION";
2161 static char __pyx_k__Set_source[] = "Set_source";
2162 static char __pyx_k__ValueError[] = "ValueError";
2163 static char __pyx_k__dimensions[] = "dimensions";
2164 static char __pyx_k__errhandler[] = "errhandler";
2165 static char __pyx_k__error_code[] = "error_code";
2166 static char __pyx_k__errorclass[] = "errorclass";
2167 static char __pyx_k__get_vendor[] = "get_vendor";
2168 static char __pyx_k__initialize[] = "initialize";
2169 static char __pyx_k__recvcounts[] = "recvcounts";
2170 static char __pyx_k__serialized[] = "serialized";
2171 static char __pyx_k__ERR_PENDING[] = "ERR_PENDING";
2172 static char __pyx_k__ERR_REQUEST[] = "ERR_REQUEST";
2173 static char __pyx_k__ERR_SERVICE[] = "ERR_SERVICE";
2174 static char __pyx_k__ERR_UNKNOWN[] = "ERR_UNKNOWN";
2175 static char __pyx_k__F90_COMPLEX[] = "F90_COMPLEX";
2176 static char __pyx_k__F90_INTEGER[] = "F90_INTEGER";
2177 static char __pyx_k__Free_keyval[] = "Free_keyval";
2178 static char __pyx_k__GROUP_EMPTY[] = "GROUP_EMPTY";
2179 static char __pyx_k__Get_address[] = "Get_address";
2180 static char __pyx_k__Get_version[] = "Get_version";
2181 static char __pyx_k__ImportError[] = "ImportError";
2182 static char __pyx_k__Init_thread[] = "Init_thread";
2183 static char __pyx_k__LOCK_SHARED[] = "LOCK_SHARED";
2184 static char __pyx_k__LONG_DOUBLE[] = "LONG_DOUBLE";
2185 static char __pyx_k__Lookup_name[] = "Lookup_name";
2186 static char __pyx_k__MODE_APPEND[] = "MODE_APPEND";
2187 static char __pyx_k__MODE_CREATE[] = "MODE_CREATE";
2188 static char __pyx_k__MODE_RDONLY[] = "MODE_RDONLY";
2189 static char __pyx_k__MODE_WRONLY[] = "MODE_WRONLY";
2190 static char __pyx_k__SIGNED_CHAR[] = "SIGNED_CHAR";
2191 static char __pyx_k__SIGNED_LONG[] = "SIGNED_LONG";
2192 static char __pyx_k__SystemError[] = "SystemError";
2193 static char __pyx_k__blocklength[] = "blocklength";
2194 static char __pyx_k__coordinates[] = "coordinates";
2195 static char __pyx_k__destweights[] = "destweights";
2196 static char __pyx_k__error_class[] = "error_class";
2197 static char __pyx_k__periodicity[] = "periodicity";
2198 static char __pyx_k__remain_dims[] = "remain_dims";
2199 static char __pyx_k__target_rank[] = "target_rank";
2200 static char __pyx_k__COMBINER_DUP[] = "COMBINER_DUP";
2201 static char __pyx_k__Compute_dims[] = "Compute_dims";
2202 static char __pyx_k__ERR_BAD_FILE[] = "ERR_BAD_FILE";
2203 static char __pyx_k__ERR_INFO_KEY[] = "ERR_INFO_KEY";
2204 static char __pyx_k__ERR_LASTCODE[] = "ERR_LASTCODE";
2205 static char __pyx_k__ERR_LOCKTYPE[] = "ERR_LOCKTYPE";
2206 static char __pyx_k__ERR_NOT_SAME[] = "ERR_NOT_SAME";
2207 static char __pyx_k__ERR_NO_SPACE[] = "ERR_NO_SPACE";
2208 static char __pyx_k__ERR_RMA_SYNC[] = "ERR_RMA_SYNC";
2209 static char __pyx_k__ERR_TOPOLOGY[] = "ERR_TOPOLOGY";
2210 static char __pyx_k__ERR_TRUNCATE[] = "ERR_TRUNCATE";
2211 static char __pyx_k__Get_topology[] = "Get_topology";
2212 static char __pyx_k__Is_cancelled[] = "Is_cancelled";
2213 static char __pyx_k__Is_finalized[] = "Is_finalized";
2214 static char __pyx_k__LASTUSEDCODE[] = "LASTUSEDCODE";
2215 static char __pyx_k__MAX_INFO_KEY[] = "MAX_INFO_KEY";
2216 static char __pyx_k__MAX_INFO_VAL[] = "MAX_INFO_VAL";
2217 static char __pyx_k__MODE_NOCHECK[] = "MODE_NOCHECK";
2218 static char __pyx_k__MODE_NOSTORE[] = "MODE_NOSTORE";
2219 static char __pyx_k__Publish_name[] = "Publish_name";
2220 static char __pyx_k__Query_thread[] = "Query_thread";
2221 static char __pyx_k__REQUEST_NULL[] = "REQUEST_NULL";
2222 static char __pyx_k__RuntimeError[] = "RuntimeError";
2223 static char __pyx_k__SIGNED_SHORT[] = "SIGNED_SHORT";
2224 static char __pyx_k__UNSIGNED_INT[] = "UNSIGNED_INT";
2225 static char __pyx_k____TypeDict__[] = "__TypeDict__";
2226 static char __pyx_k__blocklengths[] = "blocklengths";
2227 static char __pyx_k__destinations[] = "destinations";
2228 static char __pyx_k__error_string[] = "error_string";
2229 static char __pyx_k__local_leader[] = "local_leader";
2230 static char __pyx_k__service_name[] = "service_name";
2231 static char __pyx_k__thread_level[] = "thread_level";
2232 static char __pyx_k__Attach_buffer[] = "Attach_buffer";
2233 static char __pyx_k__Create_keyval[] = "Create_keyval";
2234 static char __pyx_k__Create_struct[] = "Create_struct";
2235 static char __pyx_k__DATATYPE_NULL[] = "DATATYPE_NULL";
2236 static char __pyx_k__Detach_buffer[] = "Detach_buffer";
2237 static char __pyx_k__ERRORS_RETURN[] = "ERRORS_RETURN";
2238 static char __pyx_k__ERR_IN_STATUS[] = "ERR_IN_STATUS";
2239 static char __pyx_k__ERR_READ_ONLY[] = "ERR_READ_ONLY";
2240 static char __pyx_k__Get_atomicity[] = "Get_atomicity";
2241 static char __pyx_k__Get_neighbors[] = "Get_neighbors";
2242 static char __pyx_k__INDEXED_BLOCK[] = "INDEXED_BLOCK";
2243 static char __pyx_k__MAX_PORT_NAME[] = "MAX_PORT_NAME";
2244 static char __pyx_k__ORDER_FORTRAN[] = "ORDER_FORTRAN";
2245 static char __pyx_k__Set_atomicity[] = "Set_atomicity";
2246 static char __pyx_k__Set_cancelled[] = "Set_cancelled";
2247 static char __pyx_k__THREAD_SINGLE[] = "THREAD_SINGLE";
2248 static char __pyx_k__UNIVERSE_SIZE[] = "UNIVERSE_SIZE";
2249 static char __pyx_k__UNSIGNED_CHAR[] = "UNSIGNED_CHAR";
2250 static char __pyx_k__UNSIGNED_LONG[] = "UNSIGNED_LONG";
2251 static char __pyx_k__WIN_DISP_UNIT[] = "WIN_DISP_UNIT";
2252 static char __pyx_k____CTypeDict__[] = "__CTypeDict__";
2253 static char __pyx_k____FTypeDict__[] = "__FTypeDict__";
2254 static char __pyx_k__displacements[] = "displacements";
2255 static char __pyx_k__remote_leader[] = "remote_leader";
2256 static char __pyx_k__sourceweights[] = "sourceweights";
2257 static char __pyx_k__Add_error_code[] = "Add_error_code";
2258 static char __pyx_k__AttributeError[] = "AttributeError";
2259 static char __pyx_k__BSEND_OVERHEAD[] = "BSEND_OVERHEAD";
2260 static char __pyx_k__COMBINER_NAMED[] = "COMBINER_NAMED";
2261 static char __pyx_k__Create_resized[] = "Create_resized";
2262 static char __pyx_k__DOUBLE_COMPLEX[] = "DOUBLE_COMPLEX";
2263 static char __pyx_k__ERR_CONVERSION[] = "ERR_CONVERSION";
2264 static char __pyx_k__ERR_INFO_NOKEY[] = "ERR_INFO_NOKEY";
2265 static char __pyx_k__ERR_INFO_VALUE[] = "ERR_INFO_VALUE";
2266 static char __pyx_k__Get_error_code[] = "Get_error_code";
2267 static char __pyx_k__Is_commutative[] = "Is_commutative";
2268 static char __pyx_k__Is_initialized[] = "Is_initialized";
2269 static char __pyx_k__Is_thread_main[] = "Is_thread_main";
2270 static char __pyx_k__KEYVAL_INVALID[] = "KEYVAL_INVALID";
2271 static char __pyx_k__LOCK_EXCLUSIVE[] = "LOCK_EXCLUSIVE";
2272 static char __pyx_k__MODE_NOPRECEDE[] = "MODE_NOPRECEDE";
2273 static char __pyx_k__MODE_NOSUCCEED[] = "MODE_NOSUCCEED";
2274 static char __pyx_k__NotImplemented[] = "NotImplemented";
2275 static char __pyx_k__TYPECLASS_REAL[] = "TYPECLASS_REAL";
2276 static char __pyx_k__UNSIGNED_SHORT[] = "UNSIGNED_SHORT";
2277 static char __pyx_k__Unpublish_name[] = "Unpublish_name";
2278 static char __pyx_k__Add_error_class[] = "Add_error_class";
2279 static char __pyx_k__COMBINER_DARRAY[] = "COMBINER_DARRAY";
2280 static char __pyx_k__COMBINER_STRUCT[] = "COMBINER_STRUCT";
2281 static char __pyx_k__COMBINER_VECTOR[] = "COMBINER_VECTOR";
2282 static char __pyx_k__C_FLOAT_COMPLEX[] = "C_FLOAT_COMPLEX";
2283 static char __pyx_k__Create_f90_real[] = "Create_f90_real";
2284 static char __pyx_k__DISTRIBUTE_NONE[] = "DISTRIBUTE_NONE";
2285 static char __pyx_k__ERRHANDLER_NULL[] = "ERRHANDLER_NULL";
2286 static char __pyx_k__ERR_DUP_DATAREP[] = "ERR_DUP_DATAREP";
2287 static char __pyx_k__ERR_FILE_EXISTS[] = "ERR_FILE_EXISTS";
2288 static char __pyx_k__ERR_FILE_IN_USE[] = "ERR_FILE_IN_USE";
2289 static char __pyx_k__F_FLOAT_COMPLEX[] = "F_FLOAT_COMPLEX";
2290 static char __pyx_k__Get_error_class[] = "Get_error_class";
2291 static char __pyx_k__Get_remote_size[] = "Get_remote_size";
2292 static char __pyx_k__LONG_DOUBLE_INT[] = "LONG_DOUBLE_INT";
2293 static char __pyx_k__MAX_OBJECT_NAME[] = "MAX_OBJECT_NAME";
2294 static char __pyx_k__MODE_SEQUENTIAL[] = "MODE_SEQUENTIAL";
2295 static char __pyx_k__THREAD_FUNNELED[] = "THREAD_FUNNELED";
2296 static char __pyx_k__THREAD_MULTIPLE[] = "THREAD_MULTIPLE";
2297 static char __pyx_k__Translate_ranks[] = "Translate_ranks";
2298 static char __pyx_k__WTIME_IS_GLOBAL[] = "WTIME_IS_GLOBAL";
2299 static char __pyx_k__Add_error_string[] = "Add_error_string";
2300 static char __pyx_k__COMBINER_HVECTOR[] = "COMBINER_HVECTOR";
2301 static char __pyx_k__COMBINER_INDEXED[] = "COMBINER_INDEXED";
2302 static char __pyx_k__COMBINER_RESIZED[] = "COMBINER_RESIZED";
2303 static char __pyx_k__C_DOUBLE_COMPLEX[] = "C_DOUBLE_COMPLEX";
2304 static char __pyx_k__DISTRIBUTE_BLOCK[] = "DISTRIBUTE_BLOCK";
2305 static char __pyx_k__DOUBLE_PRECISION[] = "DOUBLE_PRECISION";
2306 static char __pyx_k__ERRORS_ARE_FATAL[] = "ERRORS_ARE_FATAL";
2307 static char __pyx_k__ERR_NO_SUCH_FILE[] = "ERR_NO_SUCH_FILE";
2308 static char __pyx_k__ERR_RMA_CONFLICT[] = "ERR_RMA_CONFLICT";
2309 static char __pyx_k__F_DOUBLE_COMPLEX[] = "F_DOUBLE_COMPLEX";
2310 static char __pyx_k__Get_error_string[] = "Get_error_string";
2311 static char __pyx_k__Get_remote_group[] = "Get_remote_group";
2312 static char __pyx_k__HIGHEST_PROTOCOL[] = "HIGHEST_PROTOCOL";
2313 static char __pyx_k__MAX_ERROR_STRING[] = "MAX_ERROR_STRING";
2314 static char __pyx_k__MODE_UNIQUE_OPEN[] = "MODE_UNIQUE_OPEN";
2315 static char __pyx_k__SIGNED_LONG_LONG[] = "SIGNED_LONG_LONG";
2316 static char __pyx_k__COMBINER_F90_REAL[] = "COMBINER_F90_REAL";
2317 static char __pyx_k__COMBINER_HINDEXED[] = "COMBINER_HINDEXED";
2318 static char __pyx_k__COMBINER_SUBARRAY[] = "COMBINER_SUBARRAY";
2319 static char __pyx_k__DISTRIBUTE_CYCLIC[] = "DISTRIBUTE_CYCLIC";
2320 static char __pyx_k__THREAD_SERIALIZED[] = "THREAD_SERIALIZED";
2321 static char __pyx_k__TYPECLASS_COMPLEX[] = "TYPECLASS_COMPLEX";
2322 static char __pyx_k__TYPECLASS_INTEGER[] = "TYPECLASS_INTEGER";
2323 static char __pyx_k__Create_f90_complex[] = "Create_f90_complex";
2324 static char __pyx_k__Create_f90_integer[] = "Create_f90_integer";
2325 static char __pyx_k__Get_processor_name[] = "Get_processor_name";
2326 static char __pyx_k__MAX_DATAREP_STRING[] = "MAX_DATAREP_STRING";
2327 static char __pyx_k__MAX_PROCESSOR_NAME[] = "MAX_PROCESSOR_NAME";
2328 static char __pyx_k__UNSIGNED_LONG_LONG[] = "UNSIGNED_LONG_LONG";
2329 static char __pyx_k__COMBINER_CONTIGUOUS[] = "COMBINER_CONTIGUOUS";
2330 static char __pyx_k__Get_neighbors_count[] = "Get_neighbors_count";
2331 static char __pyx_k__NotImplementedError[] = "NotImplementedError";
2332 static PyObject *__pyx_kp_s_1;
2333 static PyObject *__pyx_kp_s_10;
2334 static PyObject *__pyx_kp_s_13;
2335 static PyObject *__pyx_kp_s_147;
2336 static PyObject *__pyx_n_s_148;
2337 static PyObject *__pyx_kp_s_149;
2338 static PyObject *__pyx_kp_s_15;
2339 static PyObject *__pyx_kp_s_150;
2340 static PyObject *__pyx_kp_s_151;
2341 static PyObject *__pyx_kp_s_152;
2342 static PyObject *__pyx_n_s_153;
2343 static PyObject *__pyx_n_s_154;
2344 static PyObject *__pyx_n_s_155;
2345 static PyObject *__pyx_n_s_156;
2346 static PyObject *__pyx_n_s_157;
2347 static PyObject *__pyx_n_s_158;
2348 static PyObject *__pyx_n_s_159;
2349 static PyObject *__pyx_n_s_160;
2350 static PyObject *__pyx_n_s_161;
2351 static PyObject *__pyx_kp_s_162;
2352 static PyObject *__pyx_n_s_163;
2353 static PyObject *__pyx_n_s_164;
2354 static PyObject *__pyx_n_s_165;
2355 static PyObject *__pyx_kp_s_17;
2356 static PyObject *__pyx_kp_s_19;
2357 static PyObject *__pyx_kp_s_21;
2358 static PyObject *__pyx_kp_s_22;
2359 static PyObject *__pyx_kp_s_23;
2360 static PyObject *__pyx_kp_s_25;
2361 static PyObject *__pyx_kp_s_27;
2362 static PyObject *__pyx_kp_s_28;
2363 static PyObject *__pyx_kp_s_29;
2364 static PyObject *__pyx_kp_s_3;
2365 static PyObject *__pyx_kp_s_30;
2366 static PyObject *__pyx_kp_s_31;
2367 static PyObject *__pyx_kp_s_35;
2368 static PyObject *__pyx_kp_s_36;
2369 static PyObject *__pyx_kp_s_39;
2370 static PyObject *__pyx_kp_s_4;
2371 static PyObject *__pyx_kp_s_41;
2372 static PyObject *__pyx_kp_s_42;
2373 static PyObject *__pyx_kp_s_43;
2374 static PyObject *__pyx_kp_s_46;
2375 static PyObject *__pyx_kp_s_48;
2376 static PyObject *__pyx_kp_s_5;
2377 static PyObject *__pyx_kp_b_50;
2378 static PyObject *__pyx_kp_s_53;
2379 static PyObject *__pyx_kp_s_54;
2380 static PyObject *__pyx_kp_s_55;
2381 static PyObject *__pyx_kp_s_66;
2382 static PyObject *__pyx_kp_s_67;
2383 static PyObject *__pyx_kp_s_77;
2384 static PyObject *__pyx_kp_s_8;
2385 static PyObject *__pyx_kp_s_89;
2386 static PyObject *__pyx_kp_s_91;
2387 static PyObject *__pyx_kp_s_93;
2388 static PyObject *__pyx_kp_s_95;
2389 static PyObject *__pyx_n_s__AINT;
2390 static PyObject *__pyx_n_s__ANY_SOURCE;
2391 static PyObject *__pyx_n_s__ANY_TAG;
2392 static PyObject *__pyx_n_s__APPNUM;
2393 static PyObject *__pyx_n_s__Add_error_class;
2394 static PyObject *__pyx_n_s__Add_error_code;
2395 static PyObject *__pyx_n_s__Add_error_string;
2396 static PyObject *__pyx_n_s__Alloc_mem;
2397 static PyObject *__pyx_n_s__Attach_buffer;
2398 static PyObject *__pyx_n_s__AttributeError;
2399 static PyObject *__pyx_n_s__B;
2400 static PyObject *__pyx_n_s__BAND;
2401 static PyObject *__pyx_n_s__BOOL;
2402 static PyObject *__pyx_n_s__BOR;
2403 static PyObject *__pyx_n_s__BOTTOM;
2404 static PyObject *__pyx_n_s__BSEND_OVERHEAD;
2405 static PyObject *__pyx_n_s__BXOR;
2406 static PyObject *__pyx_n_s__BYTE;
2407 static PyObject *__pyx_n_s__CART;
2408 static PyObject *__pyx_n_s__CHAR;
2409 static PyObject *__pyx_n_s__CHARACTER;
2410 static PyObject *__pyx_n_s__COMBINER_CONTIGUOUS;
2411 static PyObject *__pyx_n_s__COMBINER_DARRAY;
2412 static PyObject *__pyx_n_s__COMBINER_DUP;
2413 static PyObject *__pyx_n_s__COMBINER_F90_REAL;
2414 static PyObject *__pyx_n_s__COMBINER_HINDEXED;
2415 static PyObject *__pyx_n_s__COMBINER_HVECTOR;
2416 static PyObject *__pyx_n_s__COMBINER_INDEXED;
2417 static PyObject *__pyx_n_s__COMBINER_NAMED;
2418 static PyObject *__pyx_n_s__COMBINER_RESIZED;
2419 static PyObject *__pyx_n_s__COMBINER_STRUCT;
2420 static PyObject *__pyx_n_s__COMBINER_SUBARRAY;
2421 static PyObject *__pyx_n_s__COMBINER_VECTOR;
2422 static PyObject *__pyx_n_s__COMM_NULL;
2423 static PyObject *__pyx_n_s__COMM_SELF;
2424 static PyObject *__pyx_n_s__COMM_WORLD;
2425 static PyObject *__pyx_n_s__COMPLEX;
2426 static PyObject *__pyx_n_s__COMPLEX16;
2427 static PyObject *__pyx_n_s__COMPLEX32;
2428 static PyObject *__pyx_n_s__COMPLEX4;
2429 static PyObject *__pyx_n_s__COMPLEX8;
2430 static PyObject *__pyx_n_s__CONGRUENT;
2431 static PyObject *__pyx_n_s__CONTIGUOUS;
2432 static PyObject *__pyx_n_s__C_BOOL;
2433 static PyObject *__pyx_n_s__C_COMPLEX;
2434 static PyObject *__pyx_n_s__C_DOUBLE_COMPLEX;
2435 static PyObject *__pyx_n_s__C_FLOAT_COMPLEX;
2436 static PyObject *__pyx_n_s__Close_port;
2437 static PyObject *__pyx_n_s__Compare;
2438 static PyObject *__pyx_n_s__Compute_dims;
2439 static PyObject *__pyx_n_s__Create;
2440 static PyObject *__pyx_n_s__Create_dup;
2441 static PyObject *__pyx_n_s__Create_f90_complex;
2442 static PyObject *__pyx_n_s__Create_f90_integer;
2443 static PyObject *__pyx_n_s__Create_f90_real;
2444 static PyObject *__pyx_n_s__Create_keyval;
2445 static PyObject *__pyx_n_s__Create_resized;
2446 static PyObject *__pyx_n_s__Create_struct;
2447 static PyObject *__pyx_n_s__D;
2448 static PyObject *__pyx_n_s__DARRAY;
2449 static PyObject *__pyx_n_s__DATATYPE_NULL;
2450 static PyObject *__pyx_n_s__DISP_CUR;
2451 static PyObject *__pyx_n_s__DISTRIBUTE_BLOCK;
2452 static PyObject *__pyx_n_s__DISTRIBUTE_CYCLIC;
2453 static PyObject *__pyx_n_s__DISTRIBUTE_NONE;
2454 static PyObject *__pyx_n_s__DIST_GRAPH;
2455 static PyObject *__pyx_n_s__DOUBLE;
2456 static PyObject *__pyx_n_s__DOUBLE_COMPLEX;
2457 static PyObject *__pyx_n_s__DOUBLE_INT;
2458 static PyObject *__pyx_n_s__DOUBLE_PRECISION;
2459 static PyObject *__pyx_n_s__DUP;
2460 static PyObject *__pyx_n_s__Delete;
2461 static PyObject *__pyx_n_s__Detach_buffer;
2462 static PyObject *__pyx_n_s__Difference;
2463 static PyObject *__pyx_n_s__Dup;
2464 static PyObject *__pyx_n_s__ERRHANDLER_NULL;
2465 static PyObject *__pyx_n_s__ERRORS_ARE_FATAL;
2466 static PyObject *__pyx_n_s__ERRORS_RETURN;
2467 static PyObject *__pyx_n_s__ERR_ACCESS;
2468 static PyObject *__pyx_n_s__ERR_AMODE;
2469 static PyObject *__pyx_n_s__ERR_ARG;
2470 static PyObject *__pyx_n_s__ERR_ASSERT;
2471 static PyObject *__pyx_n_s__ERR_BAD_FILE;
2472 static PyObject *__pyx_n_s__ERR_BASE;
2473 static PyObject *__pyx_n_s__ERR_BUFFER;
2474 static PyObject *__pyx_n_s__ERR_COMM;
2475 static PyObject *__pyx_n_s__ERR_CONVERSION;
2476 static PyObject *__pyx_n_s__ERR_COUNT;
2477 static PyObject *__pyx_n_s__ERR_DIMS;
2478 static PyObject *__pyx_n_s__ERR_DISP;
2479 static PyObject *__pyx_n_s__ERR_DUP_DATAREP;
2480 static PyObject *__pyx_n_s__ERR_FILE;
2481 static PyObject *__pyx_n_s__ERR_FILE_EXISTS;
2482 static PyObject *__pyx_n_s__ERR_FILE_IN_USE;
2483 static PyObject *__pyx_n_s__ERR_GROUP;
2484 static PyObject *__pyx_n_s__ERR_INFO;
2485 static PyObject *__pyx_n_s__ERR_INFO_KEY;
2486 static PyObject *__pyx_n_s__ERR_INFO_NOKEY;
2487 static PyObject *__pyx_n_s__ERR_INFO_VALUE;
2488 static PyObject *__pyx_n_s__ERR_INTERN;
2489 static PyObject *__pyx_n_s__ERR_IN_STATUS;
2490 static PyObject *__pyx_n_s__ERR_IO;
2491 static PyObject *__pyx_n_s__ERR_KEYVAL;
2492 static PyObject *__pyx_n_s__ERR_LASTCODE;
2493 static PyObject *__pyx_n_s__ERR_LOCKTYPE;
2494 static PyObject *__pyx_n_s__ERR_NAME;
2495 static PyObject *__pyx_n_s__ERR_NOT_SAME;
2496 static PyObject *__pyx_n_s__ERR_NO_MEM;
2497 static PyObject *__pyx_n_s__ERR_NO_SPACE;
2498 static PyObject *__pyx_n_s__ERR_NO_SUCH_FILE;
2499 static PyObject *__pyx_n_s__ERR_OP;
2500 static PyObject *__pyx_n_s__ERR_OTHER;
2501 static PyObject *__pyx_n_s__ERR_PENDING;
2502 static PyObject *__pyx_n_s__ERR_PORT;
2503 static PyObject *__pyx_n_s__ERR_QUOTA;
2504 static PyObject *__pyx_n_s__ERR_RANK;
2505 static PyObject *__pyx_n_s__ERR_READ_ONLY;
2506 static PyObject *__pyx_n_s__ERR_REQUEST;
2507 static PyObject *__pyx_n_s__ERR_RMA_CONFLICT;
2508 static PyObject *__pyx_n_s__ERR_RMA_SYNC;
2509 static PyObject *__pyx_n_s__ERR_ROOT;
2510 static PyObject *__pyx_n_s__ERR_SERVICE;
2511 static PyObject *__pyx_n_s__ERR_SIZE;
2512 static PyObject *__pyx_n_s__ERR_SPAWN;
2513 static PyObject *__pyx_n_s__ERR_TAG;
2514 static PyObject *__pyx_n_s__ERR_TOPOLOGY;
2515 static PyObject *__pyx_n_s__ERR_TRUNCATE;
2516 static PyObject *__pyx_n_s__ERR_TYPE;
2517 static PyObject *__pyx_n_s__ERR_UNKNOWN;
2518 static PyObject *__pyx_n_s__ERR_WIN;
2519 static PyObject *__pyx_n_s__Exception;
2520 static PyObject *__pyx_n_s__F;
2521 static PyObject *__pyx_n_s__F90_COMPLEX;
2522 static PyObject *__pyx_n_s__F90_INTEGER;
2523 static PyObject *__pyx_n_s__F90_REAL;
2524 static PyObject *__pyx_n_s__FILE_NULL;
2525 static PyObject *__pyx_n_s__FLOAT;
2526 static PyObject *__pyx_n_s__FLOAT_INT;
2527 static PyObject *__pyx_n_s__F_BOOL;
2528 static PyObject *__pyx_n_s__F_COMPLEX;
2529 static PyObject *__pyx_n_s__F_DOUBLE;
2530 static PyObject *__pyx_n_s__F_DOUBLE_COMPLEX;
2531 static PyObject *__pyx_n_s__F_FLOAT;
2532 static PyObject *__pyx_n_s__F_FLOAT_COMPLEX;
2533 static PyObject *__pyx_n_s__F_INT;
2534 static PyObject *__pyx_n_s__Finalize;
2535 static PyObject *__pyx_n_s__Free_keyval;
2536 static PyObject *__pyx_n_s__Free_mem;
2537 static PyObject *__pyx_n_s__G;
2538 static PyObject *__pyx_n_s__GRAPH;
2539 static PyObject *__pyx_n_s__GROUP_EMPTY;
2540 static PyObject *__pyx_n_s__GROUP_NULL;
2541 static PyObject *__pyx_n_s__Get;
2542 static PyObject *__pyx_n_s__Get_address;
2543 static PyObject *__pyx_n_s__Get_amode;
2544 static PyObject *__pyx_n_s__Get_atomicity;
2545 static PyObject *__pyx_n_s__Get_count;
2546 static PyObject *__pyx_n_s__Get_dim;
2547 static PyObject *__pyx_n_s__Get_error;
2548 static PyObject *__pyx_n_s__Get_error_class;
2549 static PyObject *__pyx_n_s__Get_error_code;
2550 static PyObject *__pyx_n_s__Get_error_string;
2551 static PyObject *__pyx_n_s__Get_group;
2552 static PyObject *__pyx_n_s__Get_info;
2553 static PyObject *__pyx_n_s__Get_name;
2554 static PyObject *__pyx_n_s__Get_neighbors;
2555 static PyObject *__pyx_n_s__Get_neighbors_count;
2556 static PyObject *__pyx_n_s__Get_nkeys;
2557 static PyObject *__pyx_n_s__Get_nthkey;
2558 static PyObject *__pyx_n_s__Get_parent;
2559 static PyObject *__pyx_n_s__Get_processor_name;
2560 static PyObject *__pyx_n_s__Get_rank;
2561 static PyObject *__pyx_n_s__Get_remote_group;
2562 static PyObject *__pyx_n_s__Get_remote_size;
2563 static PyObject *__pyx_n_s__Get_size;
2564 static PyObject *__pyx_n_s__Get_source;
2565 static PyObject *__pyx_n_s__Get_tag;
2566 static PyObject *__pyx_n_s__Get_topo;
2567 static PyObject *__pyx_n_s__Get_topology;
2568 static PyObject *__pyx_n_s__Get_version;
2569 static PyObject *__pyx_n_s__H;
2570 static PyObject *__pyx_n_s__HIGHEST_PROTOCOL;
2571 static PyObject *__pyx_n_s__HINDEXED;
2572 static PyObject *__pyx_n_s__HOST;
2573 static PyObject *__pyx_n_s__HVECTOR;
2574 static PyObject *__pyx_n_s__I;
2575 static PyObject *__pyx_n_s__IDENT;
2576 static PyObject *__pyx_n_s__INDEXED;
2577 static PyObject *__pyx_n_s__INDEXED_BLOCK;
2578 static PyObject *__pyx_n_s__INFO_NULL;
2579 static PyObject *__pyx_n_s__INT;
2580 static PyObject *__pyx_n_s__INT16_T;
2581 static PyObject *__pyx_n_s__INT32_T;
2582 static PyObject *__pyx_n_s__INT64_T;
2583 static PyObject *__pyx_n_s__INT8_T;
2584 static PyObject *__pyx_n_s__INTEGER;
2585 static PyObject *__pyx_n_s__INTEGER1;
2586 static PyObject *__pyx_n_s__INTEGER16;
2587 static PyObject *__pyx_n_s__INTEGER2;
2588 static PyObject *__pyx_n_s__INTEGER4;
2589 static PyObject *__pyx_n_s__INTEGER8;
2590 static PyObject *__pyx_n_s__INT_INT;
2591 static PyObject *__pyx_n_s__IN_PLACE;
2592 static PyObject *__pyx_n_s__IO;
2593 static PyObject *__pyx_n_s__ImportError;
2594 static PyObject *__pyx_n_s__Init;
2595 static PyObject *__pyx_n_s__Init_thread;
2596 static PyObject *__pyx_n_s__Intersect;
2597 static PyObject *__pyx_n_s__Is_cancelled;
2598 static PyObject *__pyx_n_s__Is_commutative;
2599 static PyObject *__pyx_n_s__Is_finalized;
2600 static PyObject *__pyx_n_s__Is_initialized;
2601 static PyObject *__pyx_n_s__Is_inter;
2602 static PyObject *__pyx_n_s__Is_intra;
2603 static PyObject *__pyx_n_s__Is_thread_main;
2604 static PyObject *__pyx_n_s__Join;
2605 static PyObject *__pyx_n_s__KEYVAL_INVALID;
2606 static PyObject *__pyx_n_s__KeyError;
2607 static PyObject *__pyx_n_s__L;
2608 static PyObject *__pyx_n_s__LAND;
2609 static PyObject *__pyx_n_s__LASTUSEDCODE;
2610 static PyObject *__pyx_n_s__LB;
2611 static PyObject *__pyx_n_s__LOCK_EXCLUSIVE;
2612 static PyObject *__pyx_n_s__LOCK_SHARED;
2613 static PyObject *__pyx_n_s__LOGICAL;
2614 static PyObject *__pyx_n_s__LOGICAL1;
2615 static PyObject *__pyx_n_s__LOGICAL2;
2616 static PyObject *__pyx_n_s__LOGICAL4;
2617 static PyObject *__pyx_n_s__LOGICAL8;
2618 static PyObject *__pyx_n_s__LONG;
2619 static PyObject *__pyx_n_s__LONG_DOUBLE;
2620 static PyObject *__pyx_n_s__LONG_DOUBLE_INT;
2621 static PyObject *__pyx_n_s__LONG_INT;
2622 static PyObject *__pyx_n_s__LONG_LONG;
2623 static PyObject *__pyx_n_s__LOR;
2624 static PyObject *__pyx_n_s__LXOR;
2625 static PyObject *__pyx_n_s__Lookup_name;
2626 static PyObject *__pyx_n_s__MAX;
2627 static PyObject *__pyx_n_s__MAXLOC;
2628 static PyObject *__pyx_n_s__MAX_DATAREP_STRING;
2629 static PyObject *__pyx_n_s__MAX_ERROR_STRING;
2630 static PyObject *__pyx_n_s__MAX_INFO_KEY;
2631 static PyObject *__pyx_n_s__MAX_INFO_VAL;
2632 static PyObject *__pyx_n_s__MAX_OBJECT_NAME;
2633 static PyObject *__pyx_n_s__MAX_PORT_NAME;
2634 static PyObject *__pyx_n_s__MAX_PROCESSOR_NAME;
2635 static PyObject *__pyx_n_s__MIN;
2636 static PyObject *__pyx_n_s__MINLOC;
2637 static PyObject *__pyx_n_s__MODE_APPEND;
2638 static PyObject *__pyx_n_s__MODE_CREATE;
2639 static PyObject *__pyx_n_s__MODE_EXCL;
2640 static PyObject *__pyx_n_s__MODE_NOCHECK;
2641 static PyObject *__pyx_n_s__MODE_NOPRECEDE;
2642 static PyObject *__pyx_n_s__MODE_NOPUT;
2643 static PyObject *__pyx_n_s__MODE_NOSTORE;
2644 static PyObject *__pyx_n_s__MODE_NOSUCCEED;
2645 static PyObject *__pyx_n_s__MODE_RDONLY;
2646 static PyObject *__pyx_n_s__MODE_RDWR;
2647 static PyObject *__pyx_n_s__MODE_SEQUENTIAL;
2648 static PyObject *__pyx_n_s__MODE_UNIQUE_OPEN;
2649 static PyObject *__pyx_n_s__MODE_WRONLY;
2650 static PyObject *__pyx_n_s__Match_size;
2651 static PyObject *__pyx_n_s__NotImplemented;
2652 static PyObject *__pyx_n_s__NotImplementedError;
2653 static PyObject *__pyx_n_s__OFFSET;
2654 static PyObject *__pyx_n_s__OP_NULL;
2655 static PyObject *__pyx_n_s__ORDER_C;
2656 static PyObject *__pyx_n_s__ORDER_F;
2657 static PyObject *__pyx_n_s__ORDER_FORTRAN;
2658 static PyObject *__pyx_n_s__Open;
2659 static PyObject *__pyx_n_s__Open_port;
2660 static PyObject *__pyx_n_s__PACKED;
2661 static PyObject *__pyx_n_s__PROC_NULL;
2662 static PyObject *__pyx_n_s__PROD;
2663 static PyObject *__pyx_n_s__Pcontrol;
2664 static PyObject *__pyx_n_s__Publish_name;
2665 static PyObject *__pyx_n_s__Q;
2666 static PyObject *__pyx_n_s__Query_thread;
2667 static PyObject *__pyx_n_s__REAL;
2668 static PyObject *__pyx_n_s__REAL16;
2669 static PyObject *__pyx_n_s__REAL2;
2670 static PyObject *__pyx_n_s__REAL4;
2671 static PyObject *__pyx_n_s__REAL8;
2672 static PyObject *__pyx_n_s__REPLACE;
2673 static PyObject *__pyx_n_s__REQUEST_NULL;
2674 static PyObject *__pyx_n_s__RESIZED;
2675 static PyObject *__pyx_n_s__ROOT;
2676 static PyObject *__pyx_n_s__Resized;
2677 static PyObject *__pyx_n_s__RuntimeError;
2678 static PyObject *__pyx_n_s__SEEK_CUR;
2679 static PyObject *__pyx_n_s__SEEK_END;
2680 static PyObject *__pyx_n_s__SEEK_SET;
2681 static PyObject *__pyx_n_s__SHORT;
2682 static PyObject *__pyx_n_s__SHORT_INT;
2683 static PyObject *__pyx_n_s__SIGNED_CHAR;
2684 static PyObject *__pyx_n_s__SIGNED_INT;
2685 static PyObject *__pyx_n_s__SIGNED_LONG;
2686 static PyObject *__pyx_n_s__SIGNED_LONG_LONG;
2687 static PyObject *__pyx_n_s__SIGNED_SHORT;
2688 static PyObject *__pyx_n_s__SIMILAR;
2689 static PyObject *__pyx_n_s__SINT16_T;
2690 static PyObject *__pyx_n_s__SINT32_T;
2691 static PyObject *__pyx_n_s__SINT64_T;
2692 static PyObject *__pyx_n_s__SINT8_T;
2693 static PyObject *__pyx_n_s__STRUCT;
2694 static PyObject *__pyx_n_s__SUBARRAY;
2695 static PyObject *__pyx_n_s__SUBVERSION;
2696 static PyObject *__pyx_n_s__SUCCESS;
2697 static PyObject *__pyx_n_s__SUM;
2698 static PyObject *__pyx_n_s__Set;
2699 static PyObject *__pyx_n_s__Set_atomicity;
2700 static PyObject *__pyx_n_s__Set_cancelled;
2701 static PyObject *__pyx_n_s__Set_error;
2702 static PyObject *__pyx_n_s__Set_info;
2703 static PyObject *__pyx_n_s__Set_name;
2704 static PyObject *__pyx_n_s__Set_source;
2705 static PyObject *__pyx_n_s__Set_tag;
2706 static PyObject *__pyx_n_s__Start;
2707 static PyObject *__pyx_n_s__Startall;
2708 static PyObject *__pyx_n_s__StringIO;
2709 static PyObject *__pyx_n_s__SystemError;
2710 static PyObject *__pyx_n_s__TAG_UB;
2711 static PyObject *__pyx_n_s__THREAD_FUNNELED;
2712 static PyObject *__pyx_n_s__THREAD_MULTIPLE;
2713 static PyObject *__pyx_n_s__THREAD_SERIALIZED;
2714 static PyObject *__pyx_n_s__THREAD_SINGLE;
2715 static PyObject *__pyx_n_s__TWOINT;
2716 static PyObject *__pyx_n_s__TYPECLASS_COMPLEX;
2717 static PyObject *__pyx_n_s__TYPECLASS_INTEGER;
2718 static PyObject *__pyx_n_s__TYPECLASS_REAL;
2719 static PyObject *__pyx_n_s__Testall;
2720 static PyObject *__pyx_n_s__Testany;
2721 static PyObject *__pyx_n_s__Testsome;
2722 static PyObject *__pyx_n_s__Translate_ranks;
2723 static PyObject *__pyx_n_s__TypeError;
2724 static PyObject *__pyx_n_s__UB;
2725 static PyObject *__pyx_n_s__UINT16_T;
2726 static PyObject *__pyx_n_s__UINT32_T;
2727 static PyObject *__pyx_n_s__UINT64_T;
2728 static PyObject *__pyx_n_s__UINT8_T;
2729 static PyObject *__pyx_n_s__UNDEFINED;
2730 static PyObject *__pyx_n_s__UNEQUAL;
2731 static PyObject *__pyx_n_s__UNIVERSE_SIZE;
2732 static PyObject *__pyx_n_s__UNSIGNED;
2733 static PyObject *__pyx_n_s__UNSIGNED_CHAR;
2734 static PyObject *__pyx_n_s__UNSIGNED_INT;
2735 static PyObject *__pyx_n_s__UNSIGNED_LONG;
2736 static PyObject *__pyx_n_s__UNSIGNED_LONG_LONG;
2737 static PyObject *__pyx_n_s__UNSIGNED_SHORT;
2738 static PyObject *__pyx_n_s__Union;
2739 static PyObject *__pyx_n_s__Unpublish_name;
2740 static PyObject *__pyx_n_s__VECTOR;
2741 static PyObject *__pyx_n_s__VERSION;
2742 static PyObject *__pyx_n_s__ValueError;
2743 static PyObject *__pyx_n_s__WCHAR;
2744 static PyObject *__pyx_n_s__WIN_BASE;
2745 static PyObject *__pyx_n_s__WIN_DISP_UNIT;
2746 static PyObject *__pyx_n_s__WIN_NULL;
2747 static PyObject *__pyx_n_s__WIN_SIZE;
2748 static PyObject *__pyx_n_s__WTIME_IS_GLOBAL;
2749 static PyObject *__pyx_n_s__Waitall;
2750 static PyObject *__pyx_n_s__Waitany;
2751 static PyObject *__pyx_n_s__Waitsome;
2752 static PyObject *__pyx_n_s__Wtick;
2753 static PyObject *__pyx_n_s__Wtime;
2754 static PyObject *__pyx_n_s__Zd;
2755 static PyObject *__pyx_n_s__Zf;
2756 static PyObject *__pyx_n_s__Zg;
2757 static PyObject *__pyx_n_s____CTypeDict__;
2758 static PyObject *__pyx_n_s____FTypeDict__;
2759 static PyObject *__pyx_n_s____TypeDict__;
2760 static PyObject *__pyx_n_s____bool__;
2761 static PyObject *__pyx_n_s____call__;
2762 static PyObject *__pyx_n_s____doc__;
2763 static PyObject *__pyx_n_s____eq__;
2764 static PyObject *__pyx_n_s____ge__;
2765 static PyObject *__pyx_n_s____gt__;
2766 static PyObject *__pyx_n_s____init__;
2767 static PyObject *__pyx_n_s____int__;
2768 static PyObject *__pyx_n_s____le__;
2769 static PyObject *__pyx_n_s____lt__;
2770 static PyObject *__pyx_n_s____main__;
2771 static PyObject *__pyx_n_s____ne__;
2772 static PyObject *__pyx_n_s____repr__;
2773 static PyObject *__pyx_n_s____str__;
2774 static PyObject *__pyx_n_s___p_pickle;
2775 static PyObject *__pyx_n_s__amode;
2776 static PyObject *__pyx_n_s__arg;
2777 static PyObject *__pyx_n_s__args;
2778 static PyObject *__pyx_n_s__array;
2779 static PyObject *__pyx_n_s__assertion;
2780 static PyObject *__pyx_n_s__attrval;
2781 static PyObject *__pyx_n_s__b;
2782 static PyObject *__pyx_n_s__blocklength;
2783 static PyObject *__pyx_n_s__blocklengths;
2784 static PyObject *__pyx_n_s__buf;
2785 static PyObject *__pyx_n_s__c;
2786 static PyObject *__pyx_n_s__c16;
2787 static PyObject *__pyx_n_s__c32;
2788 static PyObject *__pyx_n_s__c4;
2789 static PyObject *__pyx_n_s__c8;
2790 static PyObject *__pyx_n_s__cPickle;
2791 static PyObject *__pyx_n_s__cStringIO;
2792 static PyObject *__pyx_n_s__cancel_fn;
2793 static PyObject *__pyx_n_s__char;
2794 static PyObject *__pyx_n_s__color;
2795 static PyObject *__pyx_n_s__comm;
2796 static PyObject *__pyx_n_s__comm1;
2797 static PyObject *__pyx_n_s__comm2;
2798 static PyObject *__pyx_n_s__command;
2799 static PyObject *__pyx_n_s__commute;
2800 static PyObject *__pyx_n_s__coords;
2801 static PyObject *__pyx_n_s__copy_fn;
2802 static PyObject *__pyx_n_s__count;
2803 static PyObject *__pyx_n_s__d;
2804 static PyObject *__pyx_n_s__dargs;
2805 static PyObject *__pyx_n_s__datarep;
2806 static PyObject *__pyx_n_s__datatype;
2807 static PyObject *__pyx_n_s__datatypes;
2808 static PyObject *__pyx_n_s__default;
2809 static PyObject *__pyx_n_s__degrees;
2810 static PyObject *__pyx_n_s__delete_fn;
2811 static PyObject *__pyx_n_s__dest;
2812 static PyObject *__pyx_n_s__destinations;
2813 static PyObject *__pyx_n_s__destweights;
2814 static PyObject *__pyx_n_s__dims;
2815 static PyObject *__pyx_n_s__direction;
2816 static PyObject *__pyx_n_s__disp;
2817 static PyObject *__pyx_n_s__disp_unit;
2818 static PyObject *__pyx_n_s__displacements;
2819 static PyObject *__pyx_n_s__distribs;
2820 static PyObject *__pyx_n_s__doc;
2821 static PyObject *__pyx_n_s__dtype;
2822 static PyObject *__pyx_n_s__dumps;
2823 static PyObject *__pyx_n_s__edges;
2824 static PyObject *__pyx_n_s__errcodes;
2825 static PyObject *__pyx_n_s__errhandler;
2826 static PyObject *__pyx_n_s__error;
2827 static PyObject *__pyx_n_s__error_class;
2828 static PyObject *__pyx_n_s__error_code;
2829 static PyObject *__pyx_n_s__error_string;
2830 static PyObject *__pyx_n_s__errorclass;
2831 static PyObject *__pyx_n_s__errorcode;
2832 static PyObject *__pyx_n_s__etype;
2833 static PyObject *__pyx_n_s__extent;
2834 static PyObject *__pyx_n_s__f;
2835 static PyObject *__pyx_n_s__f16;
2836 static PyObject *__pyx_n_s__f2;
2837 static PyObject *__pyx_n_s__f2py;
2838 static PyObject *__pyx_n_s__f4;
2839 static PyObject *__pyx_n_s__f8;
2840 static PyObject *__pyx_n_s__fd;
2841 static PyObject *__pyx_n_s__file;
2842 static PyObject *__pyx_n_s__filename;
2843 static PyObject *__pyx_n_s__filetype;
2844 static PyObject *__pyx_n_s__finalize;
2845 static PyObject *__pyx_n_s__flag;
2846 static PyObject *__pyx_n_s__flush;
2847 static PyObject *__pyx_n_s__free_fn;
2848 static PyObject *__pyx_n_s__function;
2849 static PyObject *__pyx_n_s__funneled;
2850 static PyObject *__pyx_n_s__g;
2851 static PyObject *__pyx_n_s__get_vendor;
2852 static PyObject *__pyx_n_s__group;
2853 static PyObject *__pyx_n_s__group1;
2854 static PyObject *__pyx_n_s__group2;
2855 static PyObject *__pyx_n_s__gsizes;
2856 static PyObject *__pyx_n_s__h;
2857 static PyObject *__pyx_n_s__high;
2858 static PyObject *__pyx_n_s__i;
2859 static PyObject *__pyx_n_s__i1;
2860 static PyObject *__pyx_n_s__i16;
2861 static PyObject *__pyx_n_s__i2;
2862 static PyObject *__pyx_n_s__i4;
2863 static PyObject *__pyx_n_s__i8;
2864 static PyObject *__pyx_n_s__ierr;
2865 static PyObject *__pyx_n_s__inbuf;
2866 static PyObject *__pyx_n_s__index;
2867 static PyObject *__pyx_n_s__info;
2868 static PyObject *__pyx_n_s__initialize;
2869 static PyObject *__pyx_n_s__inoutbuf;
2870 static PyObject *__pyx_n_s__insert;
2871 static PyObject *__pyx_n_s__join;
2872 static PyObject *__pyx_n_s__kargs;
2873 static PyObject *__pyx_n_s__key;
2874 static PyObject *__pyx_n_s__keys;
2875 static PyObject *__pyx_n_s__keyval;
2876 static PyObject *__pyx_n_s__l;
2877 static PyObject *__pyx_n_s__lb;
2878 static PyObject *__pyx_n_s__level;
2879 static PyObject *__pyx_n_s__load;
2880 static PyObject *__pyx_n_s__loads;
2881 static PyObject *__pyx_n_s__local_leader;
2882 static PyObject *__pyx_n_s__location;
2883 static PyObject *__pyx_n_s__lock_type;
2884 static PyObject *__pyx_n_s__maxlen;
2885 static PyObject *__pyx_n_s__maxprocs;
2886 static PyObject *__pyx_n_s__memory;
2887 static PyObject *__pyx_n_s__mpi4py;
2888 static PyObject *__pyx_n_s__multiple;
2889 static PyObject *__pyx_n_s__n;
2890 static PyObject *__pyx_n_s__name;
2891 static PyObject *__pyx_n_s__nnodes;
2892 static PyObject *__pyx_n_s__no;
2893 static PyObject *__pyx_n_s__ob_mpi;
2894 static PyObject *__pyx_n_s__obj;
2895 static PyObject *__pyx_n_s__offset;
2896 static PyObject *__pyx_n_s__op;
2897 static PyObject *__pyx_n_s__order;
2898 static PyObject *__pyx_n_s__origin;
2899 static PyObject *__pyx_n_s__other;
2900 static PyObject *__pyx_n_s__outbuf;
2901 static PyObject *__pyx_n_s__p;
2902 static PyObject *__pyx_n_s__peer_comm;
2903 static PyObject *__pyx_n_s__periods;
2904 static PyObject *__pyx_n_s__pickle;
2905 static PyObject *__pyx_n_s__pop;
2906 static PyObject *__pyx_n_s__port_name;
2907 static PyObject *__pyx_n_s__position;
2908 static PyObject *__pyx_n_s__print_exc;
2909 static PyObject *__pyx_n_s__property;
2910 static PyObject *__pyx_n_s__psizes;
2911 static PyObject *__pyx_n_s__q;
2912 static PyObject *__pyx_n_s__query_fn;
2913 static PyObject *__pyx_n_s__r;
2914 static PyObject *__pyx_n_s__rank;
2915 static PyObject *__pyx_n_s__ranks;
2916 static PyObject *__pyx_n_s__ranks1;
2917 static PyObject *__pyx_n_s__rc;
2918 static PyObject *__pyx_n_s__rcount;
2919 static PyObject *__pyx_n_s__read;
2920 static PyObject *__pyx_n_s__recvbuf;
2921 static PyObject *__pyx_n_s__recvcounts;
2922 static PyObject *__pyx_n_s__recvobj;
2923 static PyObject *__pyx_n_s__recvtag;
2924 static PyObject *__pyx_n_s__remain_dims;
2925 static PyObject *__pyx_n_s__remote_leader;
2926 static PyObject *__pyx_n_s__reorder;
2927 static PyObject *__pyx_n_s__request;
2928 static PyObject *__pyx_n_s__requests;
2929 static PyObject *__pyx_n_s__required;
2930 static PyObject *__pyx_n_s__root;
2931 static PyObject *__pyx_n_s__rtype;
2932 static PyObject *__pyx_n_s__scount;
2933 static PyObject *__pyx_n_s__self;
2934 static PyObject *__pyx_n_s__sendbuf;
2935 static PyObject *__pyx_n_s__sendobj;
2936 static PyObject *__pyx_n_s__sendtag;
2937 static PyObject *__pyx_n_s__serialized;
2938 static PyObject *__pyx_n_s__service_name;
2939 static PyObject *__pyx_n_s__single;
2940 static PyObject *__pyx_n_s__size;
2941 static PyObject *__pyx_n_s__sizes;
2942 static PyObject *__pyx_n_s__source;
2943 static PyObject *__pyx_n_s__sources;
2944 static PyObject *__pyx_n_s__sourceweights;
2945 static PyObject *__pyx_n_s__starts;
2946 static PyObject *__pyx_n_s__status;
2947 static PyObject *__pyx_n_s__statuses;
2948 static PyObject *__pyx_n_s__stderr;
2949 static PyObject *__pyx_n_s__stride;
2950 static PyObject *__pyx_n_s__string;
2951 static PyObject *__pyx_n_s__stype;
2952 static PyObject *__pyx_n_s__subsizes;
2953 static PyObject *__pyx_n_s__sys;
2954 static PyObject *__pyx_n_s__tag;
2955 static PyObject *__pyx_n_s__target;
2956 static PyObject *__pyx_n_s__target_rank;
2957 static PyObject *__pyx_n_s__testall;
2958 static PyObject *__pyx_n_s__testany;
2959 static PyObject *__pyx_n_s__thread_level;
2960 static PyObject *__pyx_n_s__threaded;
2961 static PyObject *__pyx_n_s__traceback;
2962 static PyObject *__pyx_n_s__typeclass;
2963 static PyObject *__pyx_n_s__typecode;
2964 static PyObject *__pyx_n_s__u1;
2965 static PyObject *__pyx_n_s__u2;
2966 static PyObject *__pyx_n_s__u4;
2967 static PyObject *__pyx_n_s__u8;
2968 static PyObject *__pyx_n_s__value;
2969 static PyObject *__pyx_n_s__waitall;
2970 static PyObject *__pyx_n_s__waitany;
2971 static PyObject *__pyx_n_s__warn;
2972 static PyObject *__pyx_n_s__warnings;
2973 static PyObject *__pyx_n_s__weights;
2974 static PyObject *__pyx_n_s__whence;
2975 static PyObject *__pyx_n_s__win;
2976 static PyObject *__pyx_n_s__x;
2977 static PyObject *__pyx_n_s__y;
2978 static PyObject *__pyx_n_s__yes;
2979 static PyObject *__pyx_int_0;
2980 static PyObject *__pyx_int_1;
2981 static PyObject *__pyx_int_neg_1;
2982 static PyObject *__pyx_int_17;
2983 static int __pyx_k_58;
2984 static int __pyx_k_59;
2985 static struct PyMPIDatatypeObject *__pyx_k_61;
2986 static struct PyMPIOpObject *__pyx_k_71;
2987 static struct PyMPIOpObject *__pyx_k_72;
2988 static struct PyMPIOpObject *__pyx_k_73;
2989 static struct PyMPIOpObject *__pyx_k_74;
2990 static PyObject *__pyx_k_75;
2991 static PyObject *__pyx_k_76;
2992 static struct PyMPIInfoObject *__pyx_k_79;
2993 static struct PyMPIInfoObject *__pyx_k_80;
2994 static struct PyMPIOpObject *__pyx_k_81;
2995 static struct PyMPIOpObject *__pyx_k_82;
2996 static PyObject *__pyx_k_83;
2997 static PyObject *__pyx_k_84;
2998 static struct PyMPIInfoObject *__pyx_k_85;
2999 static PyObject *__pyx_k_86;
3000 static struct PyMPIInfoObject *__pyx_k_87;
3001 static struct PyMPIInfoObject *__pyx_k_88;
3002 static struct PyMPIInfoObject *__pyx_k_97;
3003 static struct PyMPIInfoObject *__pyx_k_98;
3004 static struct PyMPIInfoObject *__pyx_k_100;
3005 static struct PyMPIIntracommObject *__pyx_k_101;
3006 static struct PyMPIOpObject *__pyx_k_102;
3007 static struct PyMPIInfoObject *__pyx_k_104;
3008 static int __pyx_k_105;
3009 static struct PyMPIInfoObject *__pyx_k_106;
3010 static struct PyMPIInfoObject *__pyx_k_107;
3011 static int __pyx_k_108;
3012 static int __pyx_k_109;
3013 static struct PyMPIInfoObject *__pyx_k_110;
3014 static int __pyx_k_111;
3015 static PyObject *__pyx_k_tuple_6;
3016 static PyObject *__pyx_k_tuple_7;
3017 static PyObject *__pyx_k_tuple_9;
3018 static PyObject *__pyx_k_tuple_12;
3019 static PyObject *__pyx_k_tuple_14;
3020 static PyObject *__pyx_k_tuple_16;
3021 static PyObject *__pyx_k_tuple_18;
3022 static PyObject *__pyx_k_tuple_20;
3023 static PyObject *__pyx_k_tuple_24;
3024 static PyObject *__pyx_k_tuple_26;
3025 static PyObject *__pyx_k_tuple_32;
3026 static PyObject *__pyx_k_tuple_33;
3027 static PyObject *__pyx_k_tuple_34;
3028 static PyObject *__pyx_k_tuple_37;
3029 static PyObject *__pyx_k_tuple_38;
3030 static PyObject *__pyx_k_tuple_40;
3031 static PyObject *__pyx_k_tuple_44;
3032 static PyObject *__pyx_k_tuple_45;
3033 static PyObject *__pyx_k_tuple_47;
3034 static PyObject *__pyx_k_tuple_49;
3035 static PyObject *__pyx_k_tuple_51;
3036 static PyObject *__pyx_k_tuple_52;
3037 static PyObject *__pyx_k_tuple_56;
3038 static PyObject *__pyx_k_tuple_57;
3039 static PyObject *__pyx_k_tuple_60;
3040 static PyObject *__pyx_k_tuple_62;
3041 static PyObject *__pyx_k_tuple_63;
3042 static PyObject *__pyx_k_tuple_64;
3043 static PyObject *__pyx_k_tuple_65;
3044 static PyObject *__pyx_k_tuple_68;
3045 static PyObject *__pyx_k_tuple_69;
3046 static PyObject *__pyx_k_tuple_70;
3047 static PyObject *__pyx_k_tuple_78;
3048 static PyObject *__pyx_k_tuple_90;
3049 static PyObject *__pyx_k_tuple_92;
3050 static PyObject *__pyx_k_tuple_94;
3051 static PyObject *__pyx_k_tuple_96;
3052 static PyObject *__pyx_k_tuple_99;
3053 static PyObject *__pyx_k_tuple_103;
3054 
3055 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":25
3056  *     int finalize
3057  *
3058  * cdef int warnRC(object attr, object value) except -1:             # <<<<<<<<<<<<<<
3059  *     cdef object warn
3060  *     from warnings import warn
3061  */
3062 
__pyx_f_6mpi4py_3MPI_warnRC(PyObject * __pyx_v_attr,PyObject * __pyx_v_value)3063 static int __pyx_f_6mpi4py_3MPI_warnRC(PyObject *__pyx_v_attr, PyObject *__pyx_v_value) {
3064   PyObject *__pyx_v_warn = 0;
3065   int __pyx_r;
3066   __Pyx_RefNannyDeclarations
3067   PyObject *__pyx_t_1 = NULL;
3068   PyObject *__pyx_t_2 = NULL;
3069   int __pyx_lineno = 0;
3070   const char *__pyx_filename = NULL;
3071   int __pyx_clineno = 0;
3072   __Pyx_RefNannySetupContext("warnRC");
3073 
3074   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":27
3075  * cdef int warnRC(object attr, object value) except -1:
3076  *     cdef object warn
3077  *     from warnings import warn             # <<<<<<<<<<<<<<
3078  *     warn("mpi4py.rc: '%s': unexpected value '%r'" % (attr, value))
3079  *
3080  */
3081   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3082   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
3083   __Pyx_INCREF(((PyObject *)__pyx_n_s__warn));
3084   PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__warn));
3085   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__warn));
3086   __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3087   __Pyx_GOTREF(__pyx_t_2);
3088   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
3089   __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3090   __Pyx_GOTREF(__pyx_t_1);
3091   __Pyx_INCREF(__pyx_t_1);
3092   __pyx_v_warn = __pyx_t_1;
3093   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3094   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3095 
3096   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":28
3097  *     cdef object warn
3098  *     from warnings import warn
3099  *     warn("mpi4py.rc: '%s': unexpected value '%r'" % (attr, value))             # <<<<<<<<<<<<<<
3100  *
3101  * cdef int getRCParams(RCParams* rc) except -1:
3102  */
3103   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3104   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3105   __Pyx_INCREF(__pyx_v_attr);
3106   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attr);
3107   __Pyx_GIVEREF(__pyx_v_attr);
3108   __Pyx_INCREF(__pyx_v_value);
3109   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_value);
3110   __Pyx_GIVEREF(__pyx_v_value);
3111   __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3112   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
3113   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
3114   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3115   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3116   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));
3117   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
3118   __pyx_t_1 = 0;
3119   __pyx_t_1 = PyObject_Call(__pyx_v_warn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3120   __Pyx_GOTREF(__pyx_t_1);
3121   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
3122   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3123 
3124   __pyx_r = 0;
3125   goto __pyx_L0;
3126   __pyx_L1_error:;
3127   __Pyx_XDECREF(__pyx_t_1);
3128   __Pyx_XDECREF(__pyx_t_2);
3129   __Pyx_AddTraceback("mpi4py.MPI.warnRC", __pyx_clineno, __pyx_lineno, __pyx_filename);
3130   __pyx_r = -1;
3131   __pyx_L0:;
3132   __Pyx_XDECREF(__pyx_v_warn);
3133   __Pyx_RefNannyFinishContext();
3134   return __pyx_r;
3135 }
3136 
3137 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":30
3138  *     warn("mpi4py.rc: '%s': unexpected value '%r'" % (attr, value))
3139  *
3140  * cdef int getRCParams(RCParams* rc) except -1:             # <<<<<<<<<<<<<<
3141  *     #
3142  *     rc.initialize = 1
3143  */
3144 
__pyx_f_6mpi4py_3MPI_getRCParams(__pyx_t_6mpi4py_3MPI_RCParams * __pyx_v_rc)3145 static int __pyx_f_6mpi4py_3MPI_getRCParams(__pyx_t_6mpi4py_3MPI_RCParams *__pyx_v_rc) {
3146   PyObject *__pyx_v_rcmod = 0;
3147   PyObject *__pyx_v_initialize = 0;
3148   PyObject *__pyx_v_threaded = 0;
3149   PyObject *__pyx_v_thread_level = 0;
3150   PyObject *__pyx_v_finalize = 0;
3151   int __pyx_r;
3152   __Pyx_RefNannyDeclarations
3153   PyObject *__pyx_t_1 = NULL;
3154   PyObject *__pyx_t_2 = NULL;
3155   PyObject *__pyx_t_3 = NULL;
3156   PyObject *__pyx_t_4 = NULL;
3157   PyObject *__pyx_t_5 = NULL;
3158   PyObject *__pyx_t_6 = NULL;
3159   int __pyx_t_7;
3160   int __pyx_t_8;
3161   int __pyx_t_9;
3162   int __pyx_t_10;
3163   int __pyx_lineno = 0;
3164   const char *__pyx_filename = NULL;
3165   int __pyx_clineno = 0;
3166   __Pyx_RefNannySetupContext("getRCParams");
3167 
3168   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":32
3169  * cdef int getRCParams(RCParams* rc) except -1:
3170  *     #
3171  *     rc.initialize = 1             # <<<<<<<<<<<<<<
3172  *     rc.threaded = 1
3173  *     rc.thread_level = MPI_THREAD_MULTIPLE
3174  */
3175   __pyx_v_rc->initialize = 1;
3176 
3177   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":33
3178  *     #
3179  *     rc.initialize = 1
3180  *     rc.threaded = 1             # <<<<<<<<<<<<<<
3181  *     rc.thread_level = MPI_THREAD_MULTIPLE
3182  *     rc.finalize = 1
3183  */
3184   __pyx_v_rc->threaded = 1;
3185 
3186   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":34
3187  *     rc.initialize = 1
3188  *     rc.threaded = 1
3189  *     rc.thread_level = MPI_THREAD_MULTIPLE             # <<<<<<<<<<<<<<
3190  *     rc.finalize = 1
3191  *     #
3192  */
3193   __pyx_v_rc->thread_level = MPI_THREAD_MULTIPLE;
3194 
3195   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":35
3196  *     rc.threaded = 1
3197  *     rc.thread_level = MPI_THREAD_MULTIPLE
3198  *     rc.finalize = 1             # <<<<<<<<<<<<<<
3199  *     #
3200  *     cdef object rcmod
3201  */
3202   __pyx_v_rc->finalize = 1;
3203 
3204   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":38
3205  *     #
3206  *     cdef object rcmod
3207  *     try: from mpi4py import rc as rcmod             # <<<<<<<<<<<<<<
3208  *     except: return 0
3209  *     #
3210  */
3211   {
3212     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
3213     __Pyx_XGOTREF(__pyx_t_1);
3214     __Pyx_XGOTREF(__pyx_t_2);
3215     __Pyx_XGOTREF(__pyx_t_3);
3216     /*try:*/ {
3217       __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
3218       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
3219       __Pyx_INCREF(((PyObject *)__pyx_n_s__rc));
3220       PyList_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_n_s__rc));
3221       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rc));
3222       __pyx_t_5 = __Pyx_Import(((PyObject *)__pyx_n_s__mpi4py), ((PyObject *)__pyx_t_4), -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
3223       __Pyx_GOTREF(__pyx_t_5);
3224       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
3225       __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__rc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
3226       __Pyx_GOTREF(__pyx_t_4);
3227       __Pyx_INCREF(__pyx_t_4);
3228       __pyx_v_rcmod = __pyx_t_4;
3229       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3230       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3231     }
3232     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3233     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
3234     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3235     goto __pyx_L10_try_end;
3236     __pyx_L3_error:;
3237     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3238     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3239 
3240     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":39
3241  *     cdef object rcmod
3242  *     try: from mpi4py import rc as rcmod
3243  *     except: return 0             # <<<<<<<<<<<<<<
3244  *     #
3245  *     cdef object initialize = True
3246  */
3247     /*except:*/ {
3248       __Pyx_AddTraceback("mpi4py.MPI.getRCParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
3249       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
3250       __Pyx_GOTREF(__pyx_t_5);
3251       __Pyx_GOTREF(__pyx_t_4);
3252       __Pyx_GOTREF(__pyx_t_6);
3253       __pyx_r = 0;
3254       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3255       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3256       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3257       goto __pyx_L6_except_return;
3258       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3259       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3260       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3261       goto __pyx_L4_exception_handled;
3262     }
3263     __pyx_L5_except_error:;
3264     __Pyx_XGIVEREF(__pyx_t_1);
3265     __Pyx_XGIVEREF(__pyx_t_2);
3266     __Pyx_XGIVEREF(__pyx_t_3);
3267     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
3268     goto __pyx_L1_error;
3269     __pyx_L6_except_return:;
3270     __Pyx_XGIVEREF(__pyx_t_1);
3271     __Pyx_XGIVEREF(__pyx_t_2);
3272     __Pyx_XGIVEREF(__pyx_t_3);
3273     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
3274     goto __pyx_L0;
3275     __pyx_L4_exception_handled:;
3276     __Pyx_XGIVEREF(__pyx_t_1);
3277     __Pyx_XGIVEREF(__pyx_t_2);
3278     __Pyx_XGIVEREF(__pyx_t_3);
3279     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
3280     __pyx_L10_try_end:;
3281   }
3282 
3283   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":41
3284  *     except: return 0
3285  *     #
3286  *     cdef object initialize = True             # <<<<<<<<<<<<<<
3287  *     cdef object threaded = True
3288  *     cdef object thread_level = 'multiple'
3289  */
3290   __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3291   __Pyx_GOTREF(__pyx_t_6);
3292   __pyx_v_initialize = __pyx_t_6;
3293   __pyx_t_6 = 0;
3294 
3295   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":42
3296  *     #
3297  *     cdef object initialize = True
3298  *     cdef object threaded = True             # <<<<<<<<<<<<<<
3299  *     cdef object thread_level = 'multiple'
3300  *     cdef object finalize = True
3301  */
3302   __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3303   __Pyx_GOTREF(__pyx_t_6);
3304   __pyx_v_threaded = __pyx_t_6;
3305   __pyx_t_6 = 0;
3306 
3307   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":43
3308  *     cdef object initialize = True
3309  *     cdef object threaded = True
3310  *     cdef object thread_level = 'multiple'             # <<<<<<<<<<<<<<
3311  *     cdef object finalize = True
3312  *     try: initialize = rcmod.initialize
3313  */
3314   __Pyx_INCREF(((PyObject *)__pyx_n_s__multiple));
3315   __pyx_v_thread_level = ((PyObject *)__pyx_n_s__multiple);
3316 
3317   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":44
3318  *     cdef object threaded = True
3319  *     cdef object thread_level = 'multiple'
3320  *     cdef object finalize = True             # <<<<<<<<<<<<<<
3321  *     try: initialize = rcmod.initialize
3322  *     except: pass
3323  */
3324   __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3325   __Pyx_GOTREF(__pyx_t_6);
3326   __pyx_v_finalize = __pyx_t_6;
3327   __pyx_t_6 = 0;
3328 
3329   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":45
3330  *     cdef object thread_level = 'multiple'
3331  *     cdef object finalize = True
3332  *     try: initialize = rcmod.initialize             # <<<<<<<<<<<<<<
3333  *     except: pass
3334  *     try: threaded = rcmod.threaded
3335  */
3336   {
3337     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
3338     __Pyx_XGOTREF(__pyx_t_3);
3339     __Pyx_XGOTREF(__pyx_t_2);
3340     __Pyx_XGOTREF(__pyx_t_1);
3341     /*try:*/ {
3342       __pyx_t_6 = PyObject_GetAttr(__pyx_v_rcmod, __pyx_n_s__initialize); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
3343       __Pyx_GOTREF(__pyx_t_6);
3344       __Pyx_DECREF(__pyx_v_initialize);
3345       __pyx_v_initialize = __pyx_t_6;
3346       __pyx_t_6 = 0;
3347     }
3348     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3349     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
3350     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3351     goto __pyx_L20_try_end;
3352     __pyx_L13_error:;
3353     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3354     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3355     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3356 
3357     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":46
3358  *     cdef object finalize = True
3359  *     try: initialize = rcmod.initialize
3360  *     except: pass             # <<<<<<<<<<<<<<
3361  *     try: threaded = rcmod.threaded
3362  *     except: pass
3363  */
3364     /*except:*/ {
3365       PyErr_Restore(0,0,0);
3366       goto __pyx_L14_exception_handled;
3367     }
3368     __pyx_L14_exception_handled:;
3369     __Pyx_XGIVEREF(__pyx_t_3);
3370     __Pyx_XGIVEREF(__pyx_t_2);
3371     __Pyx_XGIVEREF(__pyx_t_1);
3372     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
3373     __pyx_L20_try_end:;
3374   }
3375 
3376   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":47
3377  *     try: initialize = rcmod.initialize
3378  *     except: pass
3379  *     try: threaded = rcmod.threaded             # <<<<<<<<<<<<<<
3380  *     except: pass
3381  *     try: thread_level = rcmod.thread_level
3382  */
3383   {
3384     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
3385     __Pyx_XGOTREF(__pyx_t_1);
3386     __Pyx_XGOTREF(__pyx_t_2);
3387     __Pyx_XGOTREF(__pyx_t_3);
3388     /*try:*/ {
3389       __pyx_t_6 = PyObject_GetAttr(__pyx_v_rcmod, __pyx_n_s__threaded); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
3390       __Pyx_GOTREF(__pyx_t_6);
3391       __Pyx_DECREF(__pyx_v_threaded);
3392       __pyx_v_threaded = __pyx_t_6;
3393       __pyx_t_6 = 0;
3394     }
3395     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3396     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
3397     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3398     goto __pyx_L28_try_end;
3399     __pyx_L21_error:;
3400     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3401     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3402     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3403 
3404     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":48
3405  *     except: pass
3406  *     try: threaded = rcmod.threaded
3407  *     except: pass             # <<<<<<<<<<<<<<
3408  *     try: thread_level = rcmod.thread_level
3409  *     except: pass
3410  */
3411     /*except:*/ {
3412       PyErr_Restore(0,0,0);
3413       goto __pyx_L22_exception_handled;
3414     }
3415     __pyx_L22_exception_handled:;
3416     __Pyx_XGIVEREF(__pyx_t_1);
3417     __Pyx_XGIVEREF(__pyx_t_2);
3418     __Pyx_XGIVEREF(__pyx_t_3);
3419     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
3420     __pyx_L28_try_end:;
3421   }
3422 
3423   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":49
3424  *     try: threaded = rcmod.threaded
3425  *     except: pass
3426  *     try: thread_level = rcmod.thread_level             # <<<<<<<<<<<<<<
3427  *     except: pass
3428  *     try: finalize = rcmod.finalize
3429  */
3430   {
3431     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
3432     __Pyx_XGOTREF(__pyx_t_3);
3433     __Pyx_XGOTREF(__pyx_t_2);
3434     __Pyx_XGOTREF(__pyx_t_1);
3435     /*try:*/ {
3436       __pyx_t_6 = PyObject_GetAttr(__pyx_v_rcmod, __pyx_n_s__thread_level); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L29_error;}
3437       __Pyx_GOTREF(__pyx_t_6);
3438       __Pyx_DECREF(__pyx_v_thread_level);
3439       __pyx_v_thread_level = __pyx_t_6;
3440       __pyx_t_6 = 0;
3441     }
3442     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3443     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
3444     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3445     goto __pyx_L36_try_end;
3446     __pyx_L29_error:;
3447     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3448     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3449     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3450 
3451     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":50
3452  *     except: pass
3453  *     try: thread_level = rcmod.thread_level
3454  *     except: pass             # <<<<<<<<<<<<<<
3455  *     try: finalize = rcmod.finalize
3456  *     except: pass
3457  */
3458     /*except:*/ {
3459       PyErr_Restore(0,0,0);
3460       goto __pyx_L30_exception_handled;
3461     }
3462     __pyx_L30_exception_handled:;
3463     __Pyx_XGIVEREF(__pyx_t_3);
3464     __Pyx_XGIVEREF(__pyx_t_2);
3465     __Pyx_XGIVEREF(__pyx_t_1);
3466     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
3467     __pyx_L36_try_end:;
3468   }
3469 
3470   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":51
3471  *     try: thread_level = rcmod.thread_level
3472  *     except: pass
3473  *     try: finalize = rcmod.finalize             # <<<<<<<<<<<<<<
3474  *     except: pass
3475  *     #
3476  */
3477   {
3478     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
3479     __Pyx_XGOTREF(__pyx_t_1);
3480     __Pyx_XGOTREF(__pyx_t_2);
3481     __Pyx_XGOTREF(__pyx_t_3);
3482     /*try:*/ {
3483       __pyx_t_6 = PyObject_GetAttr(__pyx_v_rcmod, __pyx_n_s__finalize); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L37_error;}
3484       __Pyx_GOTREF(__pyx_t_6);
3485       __Pyx_DECREF(__pyx_v_finalize);
3486       __pyx_v_finalize = __pyx_t_6;
3487       __pyx_t_6 = 0;
3488     }
3489     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3490     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
3491     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3492     goto __pyx_L44_try_end;
3493     __pyx_L37_error:;
3494     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3495     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3496     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3497 
3498     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":52
3499  *     except: pass
3500  *     try: finalize = rcmod.finalize
3501  *     except: pass             # <<<<<<<<<<<<<<
3502  *     #
3503  *     if initialize in (True, 'yes'):
3504  */
3505     /*except:*/ {
3506       PyErr_Restore(0,0,0);
3507       goto __pyx_L38_exception_handled;
3508     }
3509     __pyx_L38_exception_handled:;
3510     __Pyx_XGIVEREF(__pyx_t_1);
3511     __Pyx_XGIVEREF(__pyx_t_2);
3512     __Pyx_XGIVEREF(__pyx_t_3);
3513     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
3514     __pyx_L44_try_end:;
3515   }
3516 
3517   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":54
3518  *     except: pass
3519  *     #
3520  *     if initialize in (True, 'yes'):             # <<<<<<<<<<<<<<
3521  *         rc.initialize = 1
3522  *     elif initialize in (False, 'no'):
3523  */
3524   __Pyx_INCREF(__pyx_v_initialize);
3525   __pyx_t_6 = __pyx_v_initialize;
3526   __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3527   __Pyx_GOTREF(__pyx_t_4);
3528   __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3529   __Pyx_GOTREF(__pyx_t_5);
3530   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3531   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3532   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3533   if (!((int)__pyx_t_7)) {
3534     __pyx_t_8 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__yes), Py_EQ); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3535     __pyx_t_9 = ((int)__pyx_t_8);
3536   } else {
3537     __pyx_t_9 = ((int)__pyx_t_7);
3538   }
3539   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3540   __pyx_t_7 = __pyx_t_9;
3541   if (__pyx_t_7) {
3542 
3543     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":55
3544  *     #
3545  *     if initialize in (True, 'yes'):
3546  *         rc.initialize = 1             # <<<<<<<<<<<<<<
3547  *     elif initialize in (False, 'no'):
3548  *         rc.initialize = 0
3549  */
3550     __pyx_v_rc->initialize = 1;
3551     goto __pyx_L45;
3552   }
3553 
3554   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":56
3555  *     if initialize in (True, 'yes'):
3556  *         rc.initialize = 1
3557  *     elif initialize in (False, 'no'):             # <<<<<<<<<<<<<<
3558  *         rc.initialize = 0
3559  *     else:
3560  */
3561   __Pyx_INCREF(__pyx_v_initialize);
3562   __pyx_t_6 = __pyx_v_initialize;
3563   __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3564   __Pyx_GOTREF(__pyx_t_5);
3565   __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3566   __Pyx_GOTREF(__pyx_t_4);
3567   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3568   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3569   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3570   if (!((int)__pyx_t_7)) {
3571     __pyx_t_9 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__no), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3572     __pyx_t_8 = ((int)__pyx_t_9);
3573   } else {
3574     __pyx_t_8 = ((int)__pyx_t_7);
3575   }
3576   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3577   __pyx_t_7 = __pyx_t_8;
3578   if (__pyx_t_7) {
3579 
3580     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":57
3581  *         rc.initialize = 1
3582  *     elif initialize in (False, 'no'):
3583  *         rc.initialize = 0             # <<<<<<<<<<<<<<
3584  *     else:
3585  *         warnRC("initialize", initialize)
3586  */
3587     __pyx_v_rc->initialize = 0;
3588     goto __pyx_L45;
3589   }
3590   /*else*/ {
3591 
3592     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":59
3593  *         rc.initialize = 0
3594  *     else:
3595  *         warnRC("initialize", initialize)             # <<<<<<<<<<<<<<
3596  *     #
3597  *     if threaded in (True, 'yes'):
3598  */
3599     __pyx_t_6 = ((PyObject *)__pyx_n_s__initialize);
3600     __Pyx_INCREF(__pyx_t_6);
3601     __pyx_t_10 = __pyx_f_6mpi4py_3MPI_warnRC(__pyx_t_6, __pyx_v_initialize); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3602     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3603   }
3604   __pyx_L45:;
3605 
3606   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":61
3607  *         warnRC("initialize", initialize)
3608  *     #
3609  *     if threaded in (True, 'yes'):             # <<<<<<<<<<<<<<
3610  *         rc.threaded = 1
3611  *     elif threaded in (False, 'no'):
3612  */
3613   __Pyx_INCREF(__pyx_v_threaded);
3614   __pyx_t_6 = __pyx_v_threaded;
3615   __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3616   __Pyx_GOTREF(__pyx_t_4);
3617   __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3618   __Pyx_GOTREF(__pyx_t_5);
3619   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3620   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3621   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3622   if (!((int)__pyx_t_7)) {
3623     __pyx_t_8 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__yes), Py_EQ); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3624     __pyx_t_9 = ((int)__pyx_t_8);
3625   } else {
3626     __pyx_t_9 = ((int)__pyx_t_7);
3627   }
3628   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3629   __pyx_t_7 = __pyx_t_9;
3630   if (__pyx_t_7) {
3631 
3632     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":62
3633  *     #
3634  *     if threaded in (True, 'yes'):
3635  *         rc.threaded = 1             # <<<<<<<<<<<<<<
3636  *     elif threaded in (False, 'no'):
3637  *         rc.threaded = 0
3638  */
3639     __pyx_v_rc->threaded = 1;
3640     goto __pyx_L46;
3641   }
3642 
3643   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":63
3644  *     if threaded in (True, 'yes'):
3645  *         rc.threaded = 1
3646  *     elif threaded in (False, 'no'):             # <<<<<<<<<<<<<<
3647  *         rc.threaded = 0
3648  *     else:
3649  */
3650   __Pyx_INCREF(__pyx_v_threaded);
3651   __pyx_t_6 = __pyx_v_threaded;
3652   __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3653   __Pyx_GOTREF(__pyx_t_5);
3654   __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3655   __Pyx_GOTREF(__pyx_t_4);
3656   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3657   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3658   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3659   if (!((int)__pyx_t_7)) {
3660     __pyx_t_9 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__no), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3661     __pyx_t_8 = ((int)__pyx_t_9);
3662   } else {
3663     __pyx_t_8 = ((int)__pyx_t_7);
3664   }
3665   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3666   __pyx_t_7 = __pyx_t_8;
3667   if (__pyx_t_7) {
3668 
3669     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":64
3670  *         rc.threaded = 1
3671  *     elif threaded in (False, 'no'):
3672  *         rc.threaded = 0             # <<<<<<<<<<<<<<
3673  *     else:
3674  *         warnRC("threaded", threaded)
3675  */
3676     __pyx_v_rc->threaded = 0;
3677     goto __pyx_L46;
3678   }
3679   /*else*/ {
3680 
3681     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":66
3682  *         rc.threaded = 0
3683  *     else:
3684  *         warnRC("threaded", threaded)             # <<<<<<<<<<<<<<
3685  *     #
3686  *     if thread_level == 'single':
3687  */
3688     __pyx_t_6 = ((PyObject *)__pyx_n_s__threaded);
3689     __Pyx_INCREF(__pyx_t_6);
3690     __pyx_t_10 = __pyx_f_6mpi4py_3MPI_warnRC(__pyx_t_6, __pyx_v_threaded); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3691     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3692   }
3693   __pyx_L46:;
3694 
3695   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":68
3696  *         warnRC("threaded", threaded)
3697  *     #
3698  *     if thread_level == 'single':             # <<<<<<<<<<<<<<
3699  *         rc.thread_level = MPI_THREAD_SINGLE
3700  *     elif thread_level == 'funneled':
3701  */
3702   __pyx_t_7 = __Pyx_PyString_Equals(__pyx_v_thread_level, ((PyObject *)__pyx_n_s__single), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3703   if (__pyx_t_7) {
3704 
3705     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":69
3706  *     #
3707  *     if thread_level == 'single':
3708  *         rc.thread_level = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
3709  *     elif thread_level == 'funneled':
3710  *         rc.thread_level = MPI_THREAD_FUNNELED
3711  */
3712     __pyx_v_rc->thread_level = MPI_THREAD_SINGLE;
3713     goto __pyx_L47;
3714   }
3715 
3716   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":70
3717  *     if thread_level == 'single':
3718  *         rc.thread_level = MPI_THREAD_SINGLE
3719  *     elif thread_level == 'funneled':             # <<<<<<<<<<<<<<
3720  *         rc.thread_level = MPI_THREAD_FUNNELED
3721  *     elif thread_level == 'serialized':
3722  */
3723   __pyx_t_7 = __Pyx_PyString_Equals(__pyx_v_thread_level, ((PyObject *)__pyx_n_s__funneled), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3724   if (__pyx_t_7) {
3725 
3726     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":71
3727  *         rc.thread_level = MPI_THREAD_SINGLE
3728  *     elif thread_level == 'funneled':
3729  *         rc.thread_level = MPI_THREAD_FUNNELED             # <<<<<<<<<<<<<<
3730  *     elif thread_level == 'serialized':
3731  *         rc.thread_level = MPI_THREAD_SERIALIZED
3732  */
3733     __pyx_v_rc->thread_level = MPI_THREAD_FUNNELED;
3734     goto __pyx_L47;
3735   }
3736 
3737   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":72
3738  *     elif thread_level == 'funneled':
3739  *         rc.thread_level = MPI_THREAD_FUNNELED
3740  *     elif thread_level == 'serialized':             # <<<<<<<<<<<<<<
3741  *         rc.thread_level = MPI_THREAD_SERIALIZED
3742  *     elif thread_level == 'multiple':
3743  */
3744   __pyx_t_7 = __Pyx_PyString_Equals(__pyx_v_thread_level, ((PyObject *)__pyx_n_s__serialized), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3745   if (__pyx_t_7) {
3746 
3747     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":73
3748  *         rc.thread_level = MPI_THREAD_FUNNELED
3749  *     elif thread_level == 'serialized':
3750  *         rc.thread_level = MPI_THREAD_SERIALIZED             # <<<<<<<<<<<<<<
3751  *     elif thread_level == 'multiple':
3752  *         rc.thread_level = MPI_THREAD_MULTIPLE
3753  */
3754     __pyx_v_rc->thread_level = MPI_THREAD_SERIALIZED;
3755     goto __pyx_L47;
3756   }
3757 
3758   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":74
3759  *     elif thread_level == 'serialized':
3760  *         rc.thread_level = MPI_THREAD_SERIALIZED
3761  *     elif thread_level == 'multiple':             # <<<<<<<<<<<<<<
3762  *         rc.thread_level = MPI_THREAD_MULTIPLE
3763  *     else:
3764  */
3765   __pyx_t_7 = __Pyx_PyString_Equals(__pyx_v_thread_level, ((PyObject *)__pyx_n_s__multiple), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3766   if (__pyx_t_7) {
3767 
3768     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":75
3769  *         rc.thread_level = MPI_THREAD_SERIALIZED
3770  *     elif thread_level == 'multiple':
3771  *         rc.thread_level = MPI_THREAD_MULTIPLE             # <<<<<<<<<<<<<<
3772  *     else:
3773  *         warnRC("thread_level", thread_level)
3774  */
3775     __pyx_v_rc->thread_level = MPI_THREAD_MULTIPLE;
3776     goto __pyx_L47;
3777   }
3778   /*else*/ {
3779 
3780     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":77
3781  *         rc.thread_level = MPI_THREAD_MULTIPLE
3782  *     else:
3783  *         warnRC("thread_level", thread_level)             # <<<<<<<<<<<<<<
3784  *     #
3785  *     if finalize in (True, 'yes'):
3786  */
3787     __pyx_t_6 = ((PyObject *)__pyx_n_s__thread_level);
3788     __Pyx_INCREF(__pyx_t_6);
3789     __pyx_t_10 = __pyx_f_6mpi4py_3MPI_warnRC(__pyx_t_6, __pyx_v_thread_level); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3790     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3791   }
3792   __pyx_L47:;
3793 
3794   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":79
3795  *         warnRC("thread_level", thread_level)
3796  *     #
3797  *     if finalize in (True, 'yes'):             # <<<<<<<<<<<<<<
3798  *         rc.finalize = 1
3799  *     elif finalize in (False, 'no'):
3800  */
3801   __Pyx_INCREF(__pyx_v_finalize);
3802   __pyx_t_6 = __pyx_v_finalize;
3803   __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3804   __Pyx_GOTREF(__pyx_t_4);
3805   __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3806   __Pyx_GOTREF(__pyx_t_5);
3807   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3808   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3809   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3810   if (!((int)__pyx_t_7)) {
3811     __pyx_t_8 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__yes), Py_EQ); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3812     __pyx_t_9 = ((int)__pyx_t_8);
3813   } else {
3814     __pyx_t_9 = ((int)__pyx_t_7);
3815   }
3816   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3817   __pyx_t_7 = __pyx_t_9;
3818   if (__pyx_t_7) {
3819 
3820     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":80
3821  *     #
3822  *     if finalize in (True, 'yes'):
3823  *         rc.finalize = 1             # <<<<<<<<<<<<<<
3824  *     elif finalize in (False, 'no'):
3825  *         rc.finalize = 0
3826  */
3827     __pyx_v_rc->finalize = 1;
3828     goto __pyx_L48;
3829   }
3830 
3831   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":81
3832  *     if finalize in (True, 'yes'):
3833  *         rc.finalize = 1
3834  *     elif finalize in (False, 'no'):             # <<<<<<<<<<<<<<
3835  *         rc.finalize = 0
3836  *     else:
3837  */
3838   __Pyx_INCREF(__pyx_v_finalize);
3839   __pyx_t_6 = __pyx_v_finalize;
3840   __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3841   __Pyx_GOTREF(__pyx_t_5);
3842   __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3843   __Pyx_GOTREF(__pyx_t_4);
3844   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3845   __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3846   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3847   if (!((int)__pyx_t_7)) {
3848     __pyx_t_9 = __Pyx_PyString_Equals(__pyx_t_6, ((PyObject *)__pyx_n_s__no), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3849     __pyx_t_8 = ((int)__pyx_t_9);
3850   } else {
3851     __pyx_t_8 = ((int)__pyx_t_7);
3852   }
3853   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3854   __pyx_t_7 = __pyx_t_8;
3855   if (__pyx_t_7) {
3856 
3857     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":82
3858  *         rc.finalize = 1
3859  *     elif finalize in (False, 'no'):
3860  *         rc.finalize = 0             # <<<<<<<<<<<<<<
3861  *     else:
3862  *         warnRC("finalize", finalize)
3863  */
3864     __pyx_v_rc->finalize = 0;
3865     goto __pyx_L48;
3866   }
3867   /*else*/ {
3868 
3869     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":84
3870  *         rc.finalize = 0
3871  *     else:
3872  *         warnRC("finalize", finalize)             # <<<<<<<<<<<<<<
3873  *     #
3874  *     return 0
3875  */
3876     __pyx_t_6 = ((PyObject *)__pyx_n_s__finalize);
3877     __Pyx_INCREF(__pyx_t_6);
3878     __pyx_t_10 = __pyx_f_6mpi4py_3MPI_warnRC(__pyx_t_6, __pyx_v_finalize); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3879     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3880   }
3881   __pyx_L48:;
3882 
3883   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":86
3884  *         warnRC("finalize", finalize)
3885  *     #
3886  *     return 0             # <<<<<<<<<<<<<<
3887  *
3888  * # -----------------------------------------------------------------------------
3889  */
3890   __pyx_r = 0;
3891   goto __pyx_L0;
3892 
3893   __pyx_r = 0;
3894   goto __pyx_L0;
3895   __pyx_L1_error:;
3896   __Pyx_XDECREF(__pyx_t_4);
3897   __Pyx_XDECREF(__pyx_t_5);
3898   __Pyx_XDECREF(__pyx_t_6);
3899   __Pyx_AddTraceback("mpi4py.MPI.getRCParams", __pyx_clineno, __pyx_lineno, __pyx_filename);
3900   __pyx_r = -1;
3901   __pyx_L0:;
3902   __Pyx_XDECREF(__pyx_v_rcmod);
3903   __Pyx_XDECREF(__pyx_v_initialize);
3904   __Pyx_XDECREF(__pyx_v_threaded);
3905   __Pyx_XDECREF(__pyx_v_thread_level);
3906   __Pyx_XDECREF(__pyx_v_finalize);
3907   __Pyx_RefNannyFinishContext();
3908   return __pyx_r;
3909 }
3910 
3911 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":104
3912  * PyMPI_CLEANUP_DONE = 0
3913  *
3914  * cdef int initialize() except -1:             # <<<<<<<<<<<<<<
3915  *     global inited_atimport
3916  *     global finalize_atexit
3917  */
3918 
__pyx_f_6mpi4py_3MPI_initialize(void)3919 static int __pyx_f_6mpi4py_3MPI_initialize(void) {
3920   int __pyx_v_ierr;
3921   int __pyx_v_initialized;
3922   int __pyx_v_finalized;
3923   __pyx_t_6mpi4py_3MPI_RCParams __pyx_v_rc;
3924   int __pyx_v_required;
3925   int __pyx_v_provided;
3926   int __pyx_r;
3927   __Pyx_RefNannyDeclarations
3928   int __pyx_t_1;
3929   int __pyx_t_2;
3930   PyObject *__pyx_t_3 = NULL;
3931   PyObject *__pyx_t_4 = NULL;
3932   int __pyx_lineno = 0;
3933   const char *__pyx_filename = NULL;
3934   int __pyx_clineno = 0;
3935   __Pyx_RefNannySetupContext("initialize");
3936 
3937   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":107
3938  *     global inited_atimport
3939  *     global finalize_atexit
3940  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
3941  *     # MPI initialized ?
3942  *     cdef int initialized = 1
3943  */
3944   __pyx_v_ierr = MPI_SUCCESS;
3945 
3946   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":109
3947  *     cdef int ierr = MPI_SUCCESS
3948  *     # MPI initialized ?
3949  *     cdef int initialized = 1             # <<<<<<<<<<<<<<
3950  *     ierr = MPI_Initialized(&initialized)
3951  *     # MPI finalized ?
3952  */
3953   __pyx_v_initialized = 1;
3954 
3955   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":110
3956  *     # MPI initialized ?
3957  *     cdef int initialized = 1
3958  *     ierr = MPI_Initialized(&initialized)             # <<<<<<<<<<<<<<
3959  *     # MPI finalized ?
3960  *     cdef int finalized = 1
3961  */
3962   __pyx_v_ierr = MPI_Initialized((&__pyx_v_initialized));
3963 
3964   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":112
3965  *     ierr = MPI_Initialized(&initialized)
3966  *     # MPI finalized ?
3967  *     cdef int finalized = 1             # <<<<<<<<<<<<<<
3968  *     ierr = MPI_Finalized(&finalized)
3969  *     # Do we have to initialize MPI?
3970  */
3971   __pyx_v_finalized = 1;
3972 
3973   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":113
3974  *     # MPI finalized ?
3975  *     cdef int finalized = 1
3976  *     ierr = MPI_Finalized(&finalized)             # <<<<<<<<<<<<<<
3977  *     # Do we have to initialize MPI?
3978  *     if initialized:
3979  */
3980   __pyx_v_ierr = MPI_Finalized((&__pyx_v_finalized));
3981 
3982   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":115
3983  *     ierr = MPI_Finalized(&finalized)
3984  *     # Do we have to initialize MPI?
3985  *     if initialized:             # <<<<<<<<<<<<<<
3986  *         if not finalized:
3987  *             # Cleanup at (the very end of) Python exit
3988  */
3989   if (__pyx_v_initialized) {
3990 
3991     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":116
3992  *     # Do we have to initialize MPI?
3993  *     if initialized:
3994  *         if not finalized:             # <<<<<<<<<<<<<<
3995  *             # Cleanup at (the very end of) Python exit
3996  *             if Py_AtExit(atexit) < 0:
3997  */
3998     __pyx_t_1 = (!__pyx_v_finalized);
3999     if (__pyx_t_1) {
4000 
4001       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":118
4002  *         if not finalized:
4003  *             # Cleanup at (the very end of) Python exit
4004  *             if Py_AtExit(atexit) < 0:             # <<<<<<<<<<<<<<
4005  *                 PySys_WriteStderr(b"warning: could not register "
4006  *                                   b"cleanup with Py_AtExit()\n", 0)
4007  */
4008       __pyx_t_1 = (Py_AtExit(__pyx_f_6mpi4py_3MPI_atexit) < 0);
4009       if (__pyx_t_1) {
4010 
4011         /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":119
4012  *             # Cleanup at (the very end of) Python exit
4013  *             if Py_AtExit(atexit) < 0:
4014  *                 PySys_WriteStderr(b"warning: could not register "             # <<<<<<<<<<<<<<
4015  *                                   b"cleanup with Py_AtExit()\n", 0)
4016  *         return 0
4017  */
4018         PySys_WriteStderr(__pyx_k_2, 0);
4019         goto __pyx_L5;
4020       }
4021       __pyx_L5:;
4022       goto __pyx_L4;
4023     }
4024     __pyx_L4:;
4025 
4026     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":121
4027  *                 PySys_WriteStderr(b"warning: could not register "
4028  *                                   b"cleanup with Py_AtExit()\n", 0)
4029  *         return 0             # <<<<<<<<<<<<<<
4030  *     # Use user parameters from 'mpi4py.rc' module
4031  *     cdef RCParams rc
4032  */
4033     __pyx_r = 0;
4034     goto __pyx_L0;
4035     goto __pyx_L3;
4036   }
4037   __pyx_L3:;
4038 
4039   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":124
4040  *     # Use user parameters from 'mpi4py.rc' module
4041  *     cdef RCParams rc
4042  *     getRCParams(&rc)             # <<<<<<<<<<<<<<
4043  *     cdef int required = MPI_THREAD_SINGLE
4044  *     cdef int provided = MPI_THREAD_SINGLE
4045  */
4046   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_getRCParams((&__pyx_v_rc)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4047 
4048   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":125
4049  *     cdef RCParams rc
4050  *     getRCParams(&rc)
4051  *     cdef int required = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
4052  *     cdef int provided = MPI_THREAD_SINGLE
4053  *     if rc.initialize: # We have to initialize MPI
4054  */
4055   __pyx_v_required = MPI_THREAD_SINGLE;
4056 
4057   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":126
4058  *     getRCParams(&rc)
4059  *     cdef int required = MPI_THREAD_SINGLE
4060  *     cdef int provided = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
4061  *     if rc.initialize: # We have to initialize MPI
4062  *         if rc.threaded:
4063  */
4064   __pyx_v_provided = MPI_THREAD_SINGLE;
4065 
4066   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":127
4067  *     cdef int required = MPI_THREAD_SINGLE
4068  *     cdef int provided = MPI_THREAD_SINGLE
4069  *     if rc.initialize: # We have to initialize MPI             # <<<<<<<<<<<<<<
4070  *         if rc.threaded:
4071  *             required = rc.thread_level
4072  */
4073   if (__pyx_v_rc.initialize) {
4074 
4075     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":128
4076  *     cdef int provided = MPI_THREAD_SINGLE
4077  *     if rc.initialize: # We have to initialize MPI
4078  *         if rc.threaded:             # <<<<<<<<<<<<<<
4079  *             required = rc.thread_level
4080  *             ierr = MPI_Init_thread(NULL, NULL, required, &provided)
4081  */
4082     if (__pyx_v_rc.threaded) {
4083 
4084       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":129
4085  *     if rc.initialize: # We have to initialize MPI
4086  *         if rc.threaded:
4087  *             required = rc.thread_level             # <<<<<<<<<<<<<<
4088  *             ierr = MPI_Init_thread(NULL, NULL, required, &provided)
4089  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4090  */
4091       __pyx_v_required = __pyx_v_rc.thread_level;
4092 
4093       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":130
4094  *         if rc.threaded:
4095  *             required = rc.thread_level
4096  *             ierr = MPI_Init_thread(NULL, NULL, required, &provided)             # <<<<<<<<<<<<<<
4097  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4098  *                 "MPI_Init_thread() failed [error code: %d]" % ierr)
4099  */
4100       __pyx_v_ierr = MPI_Init_thread(NULL, NULL, __pyx_v_required, (&__pyx_v_provided));
4101 
4102       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":131
4103  *             required = rc.thread_level
4104  *             ierr = MPI_Init_thread(NULL, NULL, required, &provided)
4105  *             if ierr != MPI_SUCCESS: raise RuntimeError(             # <<<<<<<<<<<<<<
4106  *                 "MPI_Init_thread() failed [error code: %d]" % ierr)
4107  *         else:
4108  */
4109       __pyx_t_1 = (__pyx_v_ierr != MPI_SUCCESS);
4110       if (__pyx_t_1) {
4111 
4112         /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":132
4113  *             ierr = MPI_Init_thread(NULL, NULL, required, &provided)
4114  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4115  *                 "MPI_Init_thread() failed [error code: %d]" % ierr)             # <<<<<<<<<<<<<<
4116  *         else:
4117  *             ierr = MPI_Init(NULL, NULL)
4118  */
4119         __pyx_t_3 = PyInt_FromLong(__pyx_v_ierr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4120         __Pyx_GOTREF(__pyx_t_3);
4121         __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_3), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4122         __Pyx_GOTREF(((PyObject *)__pyx_t_4));
4123         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4124         __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4125         __Pyx_GOTREF(((PyObject *)__pyx_t_3));
4126         PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
4127         __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
4128         __pyx_t_4 = 0;
4129         __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4130         __Pyx_GOTREF(__pyx_t_4);
4131         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
4132         __Pyx_Raise(__pyx_t_4, 0, 0, 0);
4133         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4134         {__pyx_filename = __pyx_f[7]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4135         goto __pyx_L8;
4136       }
4137       __pyx_L8:;
4138       goto __pyx_L7;
4139     }
4140     /*else*/ {
4141 
4142       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":134
4143  *                 "MPI_Init_thread() failed [error code: %d]" % ierr)
4144  *         else:
4145  *             ierr = MPI_Init(NULL, NULL)             # <<<<<<<<<<<<<<
4146  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4147  *                 "MPI_Init() failed [error code: %d]" % ierr)
4148  */
4149       __pyx_v_ierr = MPI_Init(NULL, NULL);
4150 
4151       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":135
4152  *         else:
4153  *             ierr = MPI_Init(NULL, NULL)
4154  *             if ierr != MPI_SUCCESS: raise RuntimeError(             # <<<<<<<<<<<<<<
4155  *                 "MPI_Init() failed [error code: %d]" % ierr)
4156  *         inited_atimport = 1 # We initialized MPI
4157  */
4158       __pyx_t_1 = (__pyx_v_ierr != MPI_SUCCESS);
4159       if (__pyx_t_1) {
4160 
4161         /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":136
4162  *             ierr = MPI_Init(NULL, NULL)
4163  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4164  *                 "MPI_Init() failed [error code: %d]" % ierr)             # <<<<<<<<<<<<<<
4165  *         inited_atimport = 1 # We initialized MPI
4166  *         if rc.finalize:     # We have to finalize MPI
4167  */
4168         __pyx_t_4 = PyInt_FromLong(__pyx_v_ierr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4169         __Pyx_GOTREF(__pyx_t_4);
4170         __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_4), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4171         __Pyx_GOTREF(((PyObject *)__pyx_t_3));
4172         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4173         __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4174         __Pyx_GOTREF(((PyObject *)__pyx_t_4));
4175         PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
4176         __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
4177         __pyx_t_3 = 0;
4178         __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4179         __Pyx_GOTREF(__pyx_t_3);
4180         __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
4181         __Pyx_Raise(__pyx_t_3, 0, 0, 0);
4182         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4183         {__pyx_filename = __pyx_f[7]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4184         goto __pyx_L9;
4185       }
4186       __pyx_L9:;
4187     }
4188     __pyx_L7:;
4189 
4190     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":137
4191  *             if ierr != MPI_SUCCESS: raise RuntimeError(
4192  *                 "MPI_Init() failed [error code: %d]" % ierr)
4193  *         inited_atimport = 1 # We initialized MPI             # <<<<<<<<<<<<<<
4194  *         if rc.finalize:     # We have to finalize MPI
4195  *             finalize_atexit = 1
4196  */
4197     __pyx_v_6mpi4py_3MPI_inited_atimport = 1;
4198 
4199     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":138
4200  *                 "MPI_Init() failed [error code: %d]" % ierr)
4201  *         inited_atimport = 1 # We initialized MPI
4202  *         if rc.finalize:     # We have to finalize MPI             # <<<<<<<<<<<<<<
4203  *             finalize_atexit = 1
4204  *     # Cleanup at (the very end of) Python exit
4205  */
4206     if (__pyx_v_rc.finalize) {
4207 
4208       /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":139
4209  *         inited_atimport = 1 # We initialized MPI
4210  *         if rc.finalize:     # We have to finalize MPI
4211  *             finalize_atexit = 1             # <<<<<<<<<<<<<<
4212  *     # Cleanup at (the very end of) Python exit
4213  *     if Py_AtExit(atexit) < 0:
4214  */
4215       __pyx_v_6mpi4py_3MPI_finalize_atexit = 1;
4216       goto __pyx_L10;
4217     }
4218     __pyx_L10:;
4219     goto __pyx_L6;
4220   }
4221   __pyx_L6:;
4222 
4223   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":141
4224  *             finalize_atexit = 1
4225  *     # Cleanup at (the very end of) Python exit
4226  *     if Py_AtExit(atexit) < 0:             # <<<<<<<<<<<<<<
4227  *         PySys_WriteStderr(b"warning: could not register "
4228  *                           b"cleanup with Py_AtExit()\n", 0)
4229  */
4230   __pyx_t_1 = (Py_AtExit(__pyx_f_6mpi4py_3MPI_atexit) < 0);
4231   if (__pyx_t_1) {
4232 
4233     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":142
4234  *     # Cleanup at (the very end of) Python exit
4235  *     if Py_AtExit(atexit) < 0:
4236  *         PySys_WriteStderr(b"warning: could not register "             # <<<<<<<<<<<<<<
4237  *                           b"cleanup with Py_AtExit()\n", 0)
4238  *     return 0
4239  */
4240     PySys_WriteStderr(__pyx_k_2, 0);
4241     goto __pyx_L11;
4242   }
4243   __pyx_L11:;
4244 
4245   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":144
4246  *         PySys_WriteStderr(b"warning: could not register "
4247  *                           b"cleanup with Py_AtExit()\n", 0)
4248  *     return 0             # <<<<<<<<<<<<<<
4249  *
4250  * cdef inline int mpi_active() nogil:
4251  */
4252   __pyx_r = 0;
4253   goto __pyx_L0;
4254 
4255   __pyx_r = 0;
4256   goto __pyx_L0;
4257   __pyx_L1_error:;
4258   __Pyx_XDECREF(__pyx_t_3);
4259   __Pyx_XDECREF(__pyx_t_4);
4260   __Pyx_AddTraceback("mpi4py.MPI.initialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
4261   __pyx_r = -1;
4262   __pyx_L0:;
4263   __Pyx_RefNannyFinishContext();
4264   return __pyx_r;
4265 }
4266 
4267 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":146
4268  *     return 0
4269  *
4270  * cdef inline int mpi_active() nogil:             # <<<<<<<<<<<<<<
4271  *     cdef int ierr = MPI_SUCCESS
4272  *     # MPI initialized ?
4273  */
4274 
__pyx_f_6mpi4py_3MPI_mpi_active(void)4275 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_mpi_active(void) {
4276   int __pyx_v_ierr;
4277   int __pyx_v_initialized;
4278   int __pyx_v_finalized;
4279   int __pyx_r;
4280   int __pyx_t_1;
4281   int __pyx_t_2;
4282 
4283   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":147
4284  *
4285  * cdef inline int mpi_active() nogil:
4286  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
4287  *     # MPI initialized ?
4288  *     cdef int initialized = 0
4289  */
4290   __pyx_v_ierr = MPI_SUCCESS;
4291 
4292   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":149
4293  *     cdef int ierr = MPI_SUCCESS
4294  *     # MPI initialized ?
4295  *     cdef int initialized = 0             # <<<<<<<<<<<<<<
4296  *     ierr = MPI_Initialized(&initialized)
4297  *     if not initialized or ierr: return 0
4298  */
4299   __pyx_v_initialized = 0;
4300 
4301   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":150
4302  *     # MPI initialized ?
4303  *     cdef int initialized = 0
4304  *     ierr = MPI_Initialized(&initialized)             # <<<<<<<<<<<<<<
4305  *     if not initialized or ierr: return 0
4306  *     # MPI finalized ?
4307  */
4308   __pyx_v_ierr = MPI_Initialized((&__pyx_v_initialized));
4309 
4310   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":151
4311  *     cdef int initialized = 0
4312  *     ierr = MPI_Initialized(&initialized)
4313  *     if not initialized or ierr: return 0             # <<<<<<<<<<<<<<
4314  *     # MPI finalized ?
4315  *     cdef int finalized = 1
4316  */
4317   __pyx_t_1 = (!__pyx_v_initialized);
4318   if (!__pyx_t_1) {
4319     __pyx_t_2 = __pyx_v_ierr;
4320   } else {
4321     __pyx_t_2 = __pyx_t_1;
4322   }
4323   if (__pyx_t_2) {
4324     __pyx_r = 0;
4325     goto __pyx_L0;
4326     goto __pyx_L3;
4327   }
4328   __pyx_L3:;
4329 
4330   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":153
4331  *     if not initialized or ierr: return 0
4332  *     # MPI finalized ?
4333  *     cdef int finalized = 1             # <<<<<<<<<<<<<<
4334  *     ierr = MPI_Finalized(&finalized)
4335  *     if finalized or ierr: return 0
4336  */
4337   __pyx_v_finalized = 1;
4338 
4339   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":154
4340  *     # MPI finalized ?
4341  *     cdef int finalized = 1
4342  *     ierr = MPI_Finalized(&finalized)             # <<<<<<<<<<<<<<
4343  *     if finalized or ierr: return 0
4344  *     # MPI should be active ...
4345  */
4346   __pyx_v_ierr = MPI_Finalized((&__pyx_v_finalized));
4347 
4348   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":155
4349  *     cdef int finalized = 1
4350  *     ierr = MPI_Finalized(&finalized)
4351  *     if finalized or ierr: return 0             # <<<<<<<<<<<<<<
4352  *     # MPI should be active ...
4353  *     return 1
4354  */
4355   if (!__pyx_v_finalized) {
4356     __pyx_t_2 = __pyx_v_ierr;
4357   } else {
4358     __pyx_t_2 = __pyx_v_finalized;
4359   }
4360   if (__pyx_t_2) {
4361     __pyx_r = 0;
4362     goto __pyx_L0;
4363     goto __pyx_L4;
4364   }
4365   __pyx_L4:;
4366 
4367   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":157
4368  *     if finalized or ierr: return 0
4369  *     # MPI should be active ...
4370  *     return 1             # <<<<<<<<<<<<<<
4371  *
4372  * cdef void startup() nogil:
4373  */
4374   __pyx_r = 1;
4375   goto __pyx_L0;
4376 
4377   __pyx_r = 0;
4378   __pyx_L0:;
4379   return __pyx_r;
4380 }
4381 
4382 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":159
4383  *     return 1
4384  *
4385  * cdef void startup() nogil:             # <<<<<<<<<<<<<<
4386  *     cdef int ierr = MPI_SUCCESS
4387  *     if not mpi_active(): return
4388  */
4389 
__pyx_f_6mpi4py_3MPI_startup(void)4390 static void __pyx_f_6mpi4py_3MPI_startup(void) {
4391   int __pyx_v_ierr;
4392   int __pyx_t_1;
4393 
4394   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":160
4395  *
4396  * cdef void startup() nogil:
4397  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
4398  *     if not mpi_active(): return
4399  *     #DBG# fprintf(stderr, b"statup: BEGIN\n"); fflush(stderr)
4400  */
4401   __pyx_v_ierr = MPI_SUCCESS;
4402 
4403   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":161
4404  * cdef void startup() nogil:
4405  *     cdef int ierr = MPI_SUCCESS
4406  *     if not mpi_active(): return             # <<<<<<<<<<<<<<
4407  *     #DBG# fprintf(stderr, b"statup: BEGIN\n"); fflush(stderr)
4408  *     ierr = PyMPI_StartUp();
4409  */
4410   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
4411   if (__pyx_t_1) {
4412     goto __pyx_L0;
4413     goto __pyx_L3;
4414   }
4415   __pyx_L3:;
4416 
4417   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":163
4418  *     if not mpi_active(): return
4419  *     #DBG# fprintf(stderr, b"statup: BEGIN\n"); fflush(stderr)
4420  *     ierr = PyMPI_StartUp();             # <<<<<<<<<<<<<<
4421  *     if ierr: pass
4422  *     #DBG# fprintf(stderr, b"statup: END\n"); fflush(stderr)
4423  */
4424   __pyx_v_ierr = PyMPI_StartUp();
4425 
4426   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":164
4427  *     #DBG# fprintf(stderr, b"statup: BEGIN\n"); fflush(stderr)
4428  *     ierr = PyMPI_StartUp();
4429  *     if ierr: pass             # <<<<<<<<<<<<<<
4430  *     #DBG# fprintf(stderr, b"statup: END\n"); fflush(stderr)
4431  *
4432  */
4433   if (__pyx_v_ierr) {
4434     goto __pyx_L4;
4435   }
4436   __pyx_L4:;
4437 
4438   __pyx_L0:;
4439 }
4440 
4441 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":167
4442  *     #DBG# fprintf(stderr, b"statup: END\n"); fflush(stderr)
4443  *
4444  * cdef void cleanup() nogil:             # <<<<<<<<<<<<<<
4445  *     cdef int ierr = MPI_SUCCESS
4446  *     if not mpi_active(): return
4447  */
4448 
__pyx_f_6mpi4py_3MPI_cleanup(void)4449 static void __pyx_f_6mpi4py_3MPI_cleanup(void) {
4450   int __pyx_v_ierr;
4451   int __pyx_t_1;
4452 
4453   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":168
4454  *
4455  * cdef void cleanup() nogil:
4456  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
4457  *     if not mpi_active(): return
4458  *     #DBG# fprintf(stderr, b"cleanup: BEGIN\n"); fflush(stderr)
4459  */
4460   __pyx_v_ierr = MPI_SUCCESS;
4461 
4462   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":169
4463  * cdef void cleanup() nogil:
4464  *     cdef int ierr = MPI_SUCCESS
4465  *     if not mpi_active(): return             # <<<<<<<<<<<<<<
4466  *     #DBG# fprintf(stderr, b"cleanup: BEGIN\n"); fflush(stderr)
4467  *     ierr = PyMPI_CleanUp()
4468  */
4469   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
4470   if (__pyx_t_1) {
4471     goto __pyx_L0;
4472     goto __pyx_L3;
4473   }
4474   __pyx_L3:;
4475 
4476   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":171
4477  *     if not mpi_active(): return
4478  *     #DBG# fprintf(stderr, b"cleanup: BEGIN\n"); fflush(stderr)
4479  *     ierr = PyMPI_CleanUp()             # <<<<<<<<<<<<<<
4480  *     if ierr: pass
4481  *     #DBG# fprintf(stderr, b"cleanup: END\n"); fflush(stderr)
4482  */
4483   __pyx_v_ierr = PyMPI_CleanUp();
4484 
4485   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":172
4486  *     #DBG# fprintf(stderr, b"cleanup: BEGIN\n"); fflush(stderr)
4487  *     ierr = PyMPI_CleanUp()
4488  *     if ierr: pass             # <<<<<<<<<<<<<<
4489  *     #DBG# fprintf(stderr, b"cleanup: END\n"); fflush(stderr)
4490  *
4491  */
4492   if (__pyx_v_ierr) {
4493     goto __pyx_L4;
4494   }
4495   __pyx_L4:;
4496 
4497   __pyx_L0:;
4498 }
4499 
4500 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":175
4501  *     #DBG# fprintf(stderr, b"cleanup: END\n"); fflush(stderr)
4502  *
4503  * cdef void atexit() nogil:             # <<<<<<<<<<<<<<
4504  *     cdef int ierr = MPI_SUCCESS
4505  *     if not mpi_active(): return
4506  */
4507 
__pyx_f_6mpi4py_3MPI_atexit(void)4508 static void __pyx_f_6mpi4py_3MPI_atexit(void) {
4509   int __pyx_v_ierr;
4510   int __pyx_t_1;
4511 
4512   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":176
4513  *
4514  * cdef void atexit() nogil:
4515  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
4516  *     if not mpi_active(): return
4517  *     #DBG# fprintf(stderr, b"atexit: BEGIN\n"); fflush(stderr)
4518  */
4519   __pyx_v_ierr = MPI_SUCCESS;
4520 
4521   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":177
4522  * cdef void atexit() nogil:
4523  *     cdef int ierr = MPI_SUCCESS
4524  *     if not mpi_active(): return             # <<<<<<<<<<<<<<
4525  *     #DBG# fprintf(stderr, b"atexit: BEGIN\n"); fflush(stderr)
4526  *     cleanup()
4527  */
4528   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
4529   if (__pyx_t_1) {
4530     goto __pyx_L0;
4531     goto __pyx_L3;
4532   }
4533   __pyx_L3:;
4534 
4535   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":179
4536  *     if not mpi_active(): return
4537  *     #DBG# fprintf(stderr, b"atexit: BEGIN\n"); fflush(stderr)
4538  *     cleanup()             # <<<<<<<<<<<<<<
4539  *     if not finalize_atexit: return
4540  *     ierr = MPI_Finalize()
4541  */
4542   __pyx_f_6mpi4py_3MPI_cleanup();
4543 
4544   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":180
4545  *     #DBG# fprintf(stderr, b"atexit: BEGIN\n"); fflush(stderr)
4546  *     cleanup()
4547  *     if not finalize_atexit: return             # <<<<<<<<<<<<<<
4548  *     ierr = MPI_Finalize()
4549  *     if ierr: pass
4550  */
4551   __pyx_t_1 = (!__pyx_v_6mpi4py_3MPI_finalize_atexit);
4552   if (__pyx_t_1) {
4553     goto __pyx_L0;
4554     goto __pyx_L4;
4555   }
4556   __pyx_L4:;
4557 
4558   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":181
4559  *     cleanup()
4560  *     if not finalize_atexit: return
4561  *     ierr = MPI_Finalize()             # <<<<<<<<<<<<<<
4562  *     if ierr: pass
4563  *     #DBG# fprintf(stderr, b"atexit: END\n"); fflush(stderr)
4564  */
4565   __pyx_v_ierr = MPI_Finalize();
4566 
4567   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":182
4568  *     if not finalize_atexit: return
4569  *     ierr = MPI_Finalize()
4570  *     if ierr: pass             # <<<<<<<<<<<<<<
4571  *     #DBG# fprintf(stderr, b"atexit: END\n"); fflush(stderr)
4572  *
4573  */
4574   if (__pyx_v_ierr) {
4575     goto __pyx_L5;
4576   }
4577   __pyx_L5:;
4578 
4579   __pyx_L0:;
4580 }
4581 
4582 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":196
4583  * cdef object MPIException = <object>PyExc_RuntimeError
4584  *
4585  * cdef int PyMPI_Raise(int ierr) except -1 with gil:             # <<<<<<<<<<<<<<
4586  *     if ierr == -1:
4587  *         PyErr_SetObject(<object>PyExc_NotImplementedError, None)
4588  */
4589 
__pyx_f_6mpi4py_3MPI_PyMPI_Raise(int __pyx_v_ierr)4590 static int __pyx_f_6mpi4py_3MPI_PyMPI_Raise(int __pyx_v_ierr) {
4591   int __pyx_r;
4592   __Pyx_RefNannyDeclarations
4593   int __pyx_t_1;
4594   PyObject *__pyx_t_2 = NULL;
4595   PyObject *__pyx_t_3 = NULL;
4596   int __pyx_lineno = 0;
4597   const char *__pyx_filename = NULL;
4598   int __pyx_clineno = 0;
4599   #ifdef WITH_THREAD
4600   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
4601   #endif
4602   __Pyx_RefNannySetupContext("PyMPI_Raise");
4603 
4604   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":197
4605  *
4606  * cdef int PyMPI_Raise(int ierr) except -1 with gil:
4607  *     if ierr == -1:             # <<<<<<<<<<<<<<
4608  *         PyErr_SetObject(<object>PyExc_NotImplementedError, None)
4609  *         return 0
4610  */
4611   __pyx_t_1 = (__pyx_v_ierr == -1);
4612   if (__pyx_t_1) {
4613 
4614     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":198
4615  * cdef int PyMPI_Raise(int ierr) except -1 with gil:
4616  *     if ierr == -1:
4617  *         PyErr_SetObject(<object>PyExc_NotImplementedError, None)             # <<<<<<<<<<<<<<
4618  *         return 0
4619  *     if (<void*>MPIException) != NULL:
4620  */
4621     __pyx_t_2 = ((PyObject *)PyExc_NotImplementedError);
4622     __Pyx_INCREF(__pyx_t_2);
4623     __pyx_t_3 = Py_None;
4624     __Pyx_INCREF(__pyx_t_3);
4625     PyErr_SetObject(__pyx_t_2, __pyx_t_3);
4626     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4627     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4628 
4629     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":199
4630  *     if ierr == -1:
4631  *         PyErr_SetObject(<object>PyExc_NotImplementedError, None)
4632  *         return 0             # <<<<<<<<<<<<<<
4633  *     if (<void*>MPIException) != NULL:
4634  *         PyErr_SetObject(MPIException, <long>ierr)
4635  */
4636     __pyx_r = 0;
4637     goto __pyx_L0;
4638     goto __pyx_L3;
4639   }
4640   __pyx_L3:;
4641 
4642   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":200
4643  *         PyErr_SetObject(<object>PyExc_NotImplementedError, None)
4644  *         return 0
4645  *     if (<void*>MPIException) != NULL:             # <<<<<<<<<<<<<<
4646  *         PyErr_SetObject(MPIException, <long>ierr)
4647  *     else:
4648  */
4649   __pyx_t_1 = (((void *)__pyx_v_6mpi4py_3MPI_MPIException) != NULL);
4650   if (__pyx_t_1) {
4651 
4652     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":201
4653  *         return 0
4654  *     if (<void*>MPIException) != NULL:
4655  *         PyErr_SetObject(MPIException, <long>ierr)             # <<<<<<<<<<<<<<
4656  *     else:
4657  *         PyErr_SetObject(<object>PyExc_RuntimeError, <long>ierr)
4658  */
4659     __pyx_t_3 = __pyx_v_6mpi4py_3MPI_MPIException;
4660     __Pyx_INCREF(__pyx_t_3);
4661     __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_ierr)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4662     __Pyx_GOTREF(__pyx_t_2);
4663     PyErr_SetObject(__pyx_t_3, __pyx_t_2);
4664     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4665     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4666     goto __pyx_L4;
4667   }
4668   /*else*/ {
4669 
4670     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":203
4671  *         PyErr_SetObject(MPIException, <long>ierr)
4672  *     else:
4673  *         PyErr_SetObject(<object>PyExc_RuntimeError, <long>ierr)             # <<<<<<<<<<<<<<
4674  *     return 0
4675  *
4676  */
4677     __pyx_t_2 = ((PyObject *)PyExc_RuntimeError);
4678     __Pyx_INCREF(__pyx_t_2);
4679     __pyx_t_3 = PyInt_FromLong(((long)__pyx_v_ierr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4680     __Pyx_GOTREF(__pyx_t_3);
4681     PyErr_SetObject(__pyx_t_2, __pyx_t_3);
4682     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4683     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4684   }
4685   __pyx_L4:;
4686 
4687   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":204
4688  *     else:
4689  *         PyErr_SetObject(<object>PyExc_RuntimeError, <long>ierr)
4690  *     return 0             # <<<<<<<<<<<<<<
4691  *
4692  * cdef inline int CHKERR(int ierr) nogil except -1:
4693  */
4694   __pyx_r = 0;
4695   goto __pyx_L0;
4696 
4697   __pyx_r = 0;
4698   goto __pyx_L0;
4699   __pyx_L1_error:;
4700   __Pyx_XDECREF(__pyx_t_2);
4701   __Pyx_XDECREF(__pyx_t_3);
4702   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_Raise", __pyx_clineno, __pyx_lineno, __pyx_filename);
4703   __pyx_r = -1;
4704   __pyx_L0:;
4705   __Pyx_RefNannyFinishContext();
4706   #ifdef WITH_THREAD
4707   PyGILState_Release(__pyx_gilstate_save);
4708   #endif
4709   return __pyx_r;
4710 }
4711 
4712 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":206
4713  *     return 0
4714  *
4715  * cdef inline int CHKERR(int ierr) nogil except -1:             # <<<<<<<<<<<<<<
4716  *     if ierr == 0: return 0
4717  *     PyMPI_Raise(ierr)
4718  */
4719 
__pyx_f_6mpi4py_3MPI_CHKERR(int __pyx_v_ierr)4720 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_CHKERR(int __pyx_v_ierr) {
4721   int __pyx_r;
4722   int __pyx_t_1;
4723   int __pyx_t_2;
4724   int __pyx_lineno = 0;
4725   const char *__pyx_filename = NULL;
4726   int __pyx_clineno = 0;
4727 
4728   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":207
4729  *
4730  * cdef inline int CHKERR(int ierr) nogil except -1:
4731  *     if ierr == 0: return 0             # <<<<<<<<<<<<<<
4732  *     PyMPI_Raise(ierr)
4733  *     return -1
4734  */
4735   __pyx_t_1 = (__pyx_v_ierr == 0);
4736   if (__pyx_t_1) {
4737     __pyx_r = 0;
4738     goto __pyx_L0;
4739     goto __pyx_L3;
4740   }
4741   __pyx_L3:;
4742 
4743   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":208
4744  * cdef inline int CHKERR(int ierr) nogil except -1:
4745  *     if ierr == 0: return 0
4746  *     PyMPI_Raise(ierr)             # <<<<<<<<<<<<<<
4747  *     return -1
4748  *
4749  */
4750   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_Raise(__pyx_v_ierr); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4751 
4752   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":209
4753  *     if ierr == 0: return 0
4754  *     PyMPI_Raise(ierr)
4755  *     return -1             # <<<<<<<<<<<<<<
4756  *
4757  * cdef inline void print_traceback():
4758  */
4759   __pyx_r = -1;
4760   goto __pyx_L0;
4761 
4762   __pyx_r = 0;
4763   goto __pyx_L0;
4764   __pyx_L1_error:;
4765   {
4766     #ifdef WITH_THREAD
4767     PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
4768     #endif
4769     __Pyx_AddTraceback("mpi4py.MPI.CHKERR", __pyx_clineno, __pyx_lineno, __pyx_filename);
4770     #ifdef WITH_THREAD
4771     PyGILState_Release(__pyx_gilstate_save);
4772     #endif
4773   }
4774   __pyx_r = -1;
4775   __pyx_L0:;
4776   return __pyx_r;
4777 }
4778 
4779 /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":211
4780  *     return -1
4781  *
4782  * cdef inline void print_traceback():             # <<<<<<<<<<<<<<
4783  *     cdef object sys, traceback
4784  *     import sys, traceback
4785  */
4786 
__pyx_f_6mpi4py_3MPI_print_traceback(void)4787 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_print_traceback(void) {
4788   PyObject *__pyx_v_sys = 0;
4789   PyObject *__pyx_v_traceback = 0;
4790   __Pyx_RefNannyDeclarations
4791   PyObject *__pyx_t_1 = NULL;
4792   PyObject *__pyx_t_2 = NULL;
4793   PyObject *__pyx_t_3 = NULL;
4794   PyObject *__pyx_t_4 = NULL;
4795   PyObject *__pyx_t_5 = NULL;
4796   int __pyx_lineno = 0;
4797   const char *__pyx_filename = NULL;
4798   int __pyx_clineno = 0;
4799   __Pyx_RefNannySetupContext("print_traceback");
4800 
4801   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":213
4802  * cdef inline void print_traceback():
4803  *     cdef object sys, traceback
4804  *     import sys, traceback             # <<<<<<<<<<<<<<
4805  *     traceback.print_exc()
4806  *     try: sys.stderr.flush()
4807  */
4808   __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4809   __Pyx_GOTREF(__pyx_t_1);
4810   __pyx_v_sys = __pyx_t_1;
4811   __pyx_t_1 = 0;
4812   __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__traceback), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4813   __Pyx_GOTREF(__pyx_t_1);
4814   __pyx_v_traceback = __pyx_t_1;
4815   __pyx_t_1 = 0;
4816 
4817   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":214
4818  *     cdef object sys, traceback
4819  *     import sys, traceback
4820  *     traceback.print_exc()             # <<<<<<<<<<<<<<
4821  *     try: sys.stderr.flush()
4822  *     except: pass
4823  */
4824   __pyx_t_1 = PyObject_GetAttr(__pyx_v_traceback, __pyx_n_s__print_exc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4825   __Pyx_GOTREF(__pyx_t_1);
4826   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4827   __Pyx_GOTREF(__pyx_t_2);
4828   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4829   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4830 
4831   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":215
4832  *     import sys, traceback
4833  *     traceback.print_exc()
4834  *     try: sys.stderr.flush()             # <<<<<<<<<<<<<<
4835  *     except: pass
4836  *
4837  */
4838   {
4839     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
4840     __Pyx_XGOTREF(__pyx_t_3);
4841     __Pyx_XGOTREF(__pyx_t_4);
4842     __Pyx_XGOTREF(__pyx_t_5);
4843     /*try:*/ {
4844       __pyx_t_2 = PyObject_GetAttr(__pyx_v_sys, __pyx_n_s__stderr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
4845       __Pyx_GOTREF(__pyx_t_2);
4846       __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__flush); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
4847       __Pyx_GOTREF(__pyx_t_1);
4848       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4849       __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
4850       __Pyx_GOTREF(__pyx_t_2);
4851       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4852       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4853     }
4854     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4855     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4856     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4857     goto __pyx_L10_try_end;
4858     __pyx_L3_error:;
4859     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
4860     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
4861 
4862     /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":216
4863  *     traceback.print_exc()
4864  *     try: sys.stderr.flush()
4865  *     except: pass             # <<<<<<<<<<<<<<
4866  *
4867  * # -----------------------------------------------------------------------------
4868  */
4869     /*except:*/ {
4870       PyErr_Restore(0,0,0);
4871       goto __pyx_L4_exception_handled;
4872     }
4873     __pyx_L4_exception_handled:;
4874     __Pyx_XGIVEREF(__pyx_t_3);
4875     __Pyx_XGIVEREF(__pyx_t_4);
4876     __Pyx_XGIVEREF(__pyx_t_5);
4877     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
4878     __pyx_L10_try_end:;
4879   }
4880 
4881   goto __pyx_L0;
4882   __pyx_L1_error:;
4883   __Pyx_XDECREF(__pyx_t_1);
4884   __Pyx_XDECREF(__pyx_t_2);
4885   __Pyx_WriteUnraisable("mpi4py.MPI.print_traceback", __pyx_clineno, __pyx_lineno, __pyx_filename);
4886   __pyx_L0:;
4887   __Pyx_XDECREF(__pyx_v_sys);
4888   __Pyx_XDECREF(__pyx_v_traceback);
4889   __Pyx_RefNannyFinishContext();
4890 }
4891 
4892 /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":11
4893  * #---------------------------------------------------------------------
4894  *
4895  * cdef inline object asmpistr(object ob, char **s, int *n):             # <<<<<<<<<<<<<<
4896  *     cdef const_char *sbuf = NULL
4897  *     cdef Py_ssize_t slen = 0, *slenp = NULL
4898  */
4899 
__pyx_f_6mpi4py_3MPI_asmpistr(PyObject * __pyx_v_ob,char ** __pyx_v_s,int * __pyx_v_n)4900 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asmpistr(PyObject *__pyx_v_ob, char **__pyx_v_s, int *__pyx_v_n) {
4901   const char *__pyx_v_sbuf;
4902   Py_ssize_t __pyx_v_slen;
4903   Py_ssize_t *__pyx_v_slenp;
4904   PyObject *__pyx_r = NULL;
4905   __Pyx_RefNannyDeclarations
4906   int __pyx_t_1;
4907   PyObject *__pyx_t_2 = NULL;
4908   int __pyx_lineno = 0;
4909   const char *__pyx_filename = NULL;
4910   int __pyx_clineno = 0;
4911   __Pyx_RefNannySetupContext("asmpistr");
4912   __Pyx_INCREF(__pyx_v_ob);
4913 
4914   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":12
4915  *
4916  * cdef inline object asmpistr(object ob, char **s, int *n):
4917  *     cdef const_char *sbuf = NULL             # <<<<<<<<<<<<<<
4918  *     cdef Py_ssize_t slen = 0, *slenp = NULL
4919  *     if n != NULL: slenp = &slen
4920  */
4921   __pyx_v_sbuf = NULL;
4922 
4923   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":13
4924  * cdef inline object asmpistr(object ob, char **s, int *n):
4925  *     cdef const_char *sbuf = NULL
4926  *     cdef Py_ssize_t slen = 0, *slenp = NULL             # <<<<<<<<<<<<<<
4927  *     if n != NULL: slenp = &slen
4928  *     ob = PyMPIString_AsStringAndSize(ob, &sbuf, slenp)
4929  */
4930   __pyx_v_slen = 0;
4931   __pyx_v_slenp = NULL;
4932 
4933   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":14
4934  *     cdef const_char *sbuf = NULL
4935  *     cdef Py_ssize_t slen = 0, *slenp = NULL
4936  *     if n != NULL: slenp = &slen             # <<<<<<<<<<<<<<
4937  *     ob = PyMPIString_AsStringAndSize(ob, &sbuf, slenp)
4938  *     if s: s[0] = <char*> sbuf
4939  */
4940   __pyx_t_1 = (__pyx_v_n != NULL);
4941   if (__pyx_t_1) {
4942     __pyx_v_slenp = (&__pyx_v_slen);
4943     goto __pyx_L3;
4944   }
4945   __pyx_L3:;
4946 
4947   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":15
4948  *     cdef Py_ssize_t slen = 0, *slenp = NULL
4949  *     if n != NULL: slenp = &slen
4950  *     ob = PyMPIString_AsStringAndSize(ob, &sbuf, slenp)             # <<<<<<<<<<<<<<
4951  *     if s: s[0] = <char*> sbuf
4952  *     if n: n[0] = <int>   slen
4953  */
4954   __pyx_t_2 = PyMPIString_AsStringAndSize(__pyx_v_ob, (&__pyx_v_sbuf), __pyx_v_slenp); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4955   __Pyx_GOTREF(__pyx_t_2);
4956   __Pyx_DECREF(__pyx_v_ob);
4957   __pyx_v_ob = __pyx_t_2;
4958   __pyx_t_2 = 0;
4959 
4960   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":16
4961  *     if n != NULL: slenp = &slen
4962  *     ob = PyMPIString_AsStringAndSize(ob, &sbuf, slenp)
4963  *     if s: s[0] = <char*> sbuf             # <<<<<<<<<<<<<<
4964  *     if n: n[0] = <int>   slen
4965  *     return ob
4966  */
4967   __pyx_t_1 = (__pyx_v_s != 0);
4968   if (__pyx_t_1) {
4969     (__pyx_v_s[0]) = ((char *)__pyx_v_sbuf);
4970     goto __pyx_L4;
4971   }
4972   __pyx_L4:;
4973 
4974   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":17
4975  *     ob = PyMPIString_AsStringAndSize(ob, &sbuf, slenp)
4976  *     if s: s[0] = <char*> sbuf
4977  *     if n: n[0] = <int>   slen             # <<<<<<<<<<<<<<
4978  *     return ob
4979  *
4980  */
4981   __pyx_t_1 = (__pyx_v_n != 0);
4982   if (__pyx_t_1) {
4983     (__pyx_v_n[0]) = ((int)__pyx_v_slen);
4984     goto __pyx_L5;
4985   }
4986   __pyx_L5:;
4987 
4988   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":18
4989  *     if s: s[0] = <char*> sbuf
4990  *     if n: n[0] = <int>   slen
4991  *     return ob             # <<<<<<<<<<<<<<
4992  *
4993  * cdef inline object tompistr(const_char *s, int n):
4994  */
4995   __Pyx_XDECREF(__pyx_r);
4996   __Pyx_INCREF(__pyx_v_ob);
4997   __pyx_r = __pyx_v_ob;
4998   goto __pyx_L0;
4999 
5000   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5001   goto __pyx_L0;
5002   __pyx_L1_error:;
5003   __Pyx_XDECREF(__pyx_t_2);
5004   __Pyx_AddTraceback("mpi4py.MPI.asmpistr", __pyx_clineno, __pyx_lineno, __pyx_filename);
5005   __pyx_r = 0;
5006   __pyx_L0:;
5007   __Pyx_XDECREF(__pyx_v_ob);
5008   __Pyx_XGIVEREF(__pyx_r);
5009   __Pyx_RefNannyFinishContext();
5010   return __pyx_r;
5011 }
5012 
5013 /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":20
5014  *     return ob
5015  *
5016  * cdef inline object tompistr(const_char *s, int n):             # <<<<<<<<<<<<<<
5017  *     return PyMPIString_FromStringAndSize(s, n)
5018  *
5019  */
5020 
__pyx_f_6mpi4py_3MPI_tompistr(const char * __pyx_v_s,int __pyx_v_n)5021 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_tompistr(const char *__pyx_v_s, int __pyx_v_n) {
5022   PyObject *__pyx_r = NULL;
5023   __Pyx_RefNannyDeclarations
5024   PyObject *__pyx_t_1 = NULL;
5025   int __pyx_lineno = 0;
5026   const char *__pyx_filename = NULL;
5027   int __pyx_clineno = 0;
5028   __Pyx_RefNannySetupContext("tompistr");
5029 
5030   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":21
5031  *
5032  * cdef inline object tompistr(const_char *s, int n):
5033  *     return PyMPIString_FromStringAndSize(s, n)             # <<<<<<<<<<<<<<
5034  *
5035  * cdef inline object mpistr(const_char *s):
5036  */
5037   __Pyx_XDECREF(__pyx_r);
5038   __pyx_t_1 = PyMPIString_FromStringAndSize(__pyx_v_s, __pyx_v_n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5039   __Pyx_GOTREF(__pyx_t_1);
5040   __pyx_r = __pyx_t_1;
5041   __pyx_t_1 = 0;
5042   goto __pyx_L0;
5043 
5044   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5045   goto __pyx_L0;
5046   __pyx_L1_error:;
5047   __Pyx_XDECREF(__pyx_t_1);
5048   __Pyx_AddTraceback("mpi4py.MPI.tompistr", __pyx_clineno, __pyx_lineno, __pyx_filename);
5049   __pyx_r = 0;
5050   __pyx_L0:;
5051   __Pyx_XGIVEREF(__pyx_r);
5052   __Pyx_RefNannyFinishContext();
5053   return __pyx_r;
5054 }
5055 
5056 /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":23
5057  *     return PyMPIString_FromStringAndSize(s, n)
5058  *
5059  * cdef inline object mpistr(const_char *s):             # <<<<<<<<<<<<<<
5060  *     return PyMPIString_FromString(s)
5061  *
5062  */
5063 
__pyx_f_6mpi4py_3MPI_mpistr(const char * __pyx_v_s)5064 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_mpistr(const char *__pyx_v_s) {
5065   PyObject *__pyx_r = NULL;
5066   __Pyx_RefNannyDeclarations
5067   PyObject *__pyx_t_1 = NULL;
5068   int __pyx_lineno = 0;
5069   const char *__pyx_filename = NULL;
5070   int __pyx_clineno = 0;
5071   __Pyx_RefNannySetupContext("mpistr");
5072 
5073   /* "/home/devel/mpi4py-1.3/src/MPI/asmpistr.pxi":24
5074  *
5075  * cdef inline object mpistr(const_char *s):
5076  *     return PyMPIString_FromString(s)             # <<<<<<<<<<<<<<
5077  *
5078  * #---------------------------------------------------------------------
5079  */
5080   __Pyx_XDECREF(__pyx_r);
5081   __pyx_t_1 = PyMPIString_FromString(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5082   __Pyx_GOTREF(__pyx_t_1);
5083   __pyx_r = __pyx_t_1;
5084   __pyx_t_1 = 0;
5085   goto __pyx_L0;
5086 
5087   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5088   goto __pyx_L0;
5089   __pyx_L1_error:;
5090   __Pyx_XDECREF(__pyx_t_1);
5091   __Pyx_AddTraceback("mpi4py.MPI.mpistr", __pyx_clineno, __pyx_lineno, __pyx_filename);
5092   __pyx_r = 0;
5093   __pyx_L0:;
5094   __Pyx_XGIVEREF(__pyx_r);
5095   __Pyx_RefNannyFinishContext();
5096   return __pyx_r;
5097 }
5098 
5099 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":39
5100  * #------------------------------------------------------------------------------
5101  *
5102  * cdef int \             # <<<<<<<<<<<<<<
5103  * PyObject_GetBufferEx(object obj, Py_buffer *view, int flags) \
5104  * except -1:
5105  */
5106 
__pyx_f_6mpi4py_3MPI_PyObject_GetBufferEx(PyObject * __pyx_v_obj,Py_buffer * __pyx_v_view,int __pyx_v_flags)5107 static int __pyx_f_6mpi4py_3MPI_PyObject_GetBufferEx(PyObject *__pyx_v_obj, Py_buffer *__pyx_v_view, int __pyx_v_flags) {
5108   int __pyx_r;
5109   __Pyx_RefNannyDeclarations
5110   int __pyx_t_1;
5111   int __pyx_t_2;
5112   int __pyx_lineno = 0;
5113   const char *__pyx_filename = NULL;
5114   int __pyx_clineno = 0;
5115   __Pyx_RefNannySetupContext("PyObject_GetBufferEx");
5116 
5117   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":42
5118  * PyObject_GetBufferEx(object obj, Py_buffer *view, int flags) \
5119  * except -1:
5120  *     if view == NULL: return 0             # <<<<<<<<<<<<<<
5121  *     # Python 3 buffer interface (PEP 3118)
5122  *     if PyObject_CheckBuffer(obj):
5123  */
5124   __pyx_t_1 = (__pyx_v_view == NULL);
5125   if (__pyx_t_1) {
5126     __pyx_r = 0;
5127     goto __pyx_L0;
5128     goto __pyx_L3;
5129   }
5130   __pyx_L3:;
5131 
5132   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":44
5133  *     if view == NULL: return 0
5134  *     # Python 3 buffer interface (PEP 3118)
5135  *     if PyObject_CheckBuffer(obj):             # <<<<<<<<<<<<<<
5136  *         return PyObject_GetBuffer(obj, view, flags)
5137  *     # Python 2 buffer interface (legacy)
5138  */
5139   __pyx_t_2 = PyObject_CheckBuffer(__pyx_v_obj);
5140   if (__pyx_t_2) {
5141 
5142     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":45
5143  *     # Python 3 buffer interface (PEP 3118)
5144  *     if PyObject_CheckBuffer(obj):
5145  *         return PyObject_GetBuffer(obj, view, flags)             # <<<<<<<<<<<<<<
5146  *     # Python 2 buffer interface (legacy)
5147  *     if (flags & PyBUF_WRITABLE) == PyBUF_WRITABLE:
5148  */
5149     __pyx_t_2 = PyObject_GetBuffer(__pyx_v_obj, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5150     __pyx_r = __pyx_t_2;
5151     goto __pyx_L0;
5152     goto __pyx_L4;
5153   }
5154   __pyx_L4:;
5155 
5156   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":47
5157  *         return PyObject_GetBuffer(obj, view, flags)
5158  *     # Python 2 buffer interface (legacy)
5159  *     if (flags & PyBUF_WRITABLE) == PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
5160  *         PyObject_AsWriteBuffer(obj, &view.buf, &view.len)
5161  *     else:
5162  */
5163   __pyx_t_1 = ((__pyx_v_flags & PyBUF_WRITABLE) == PyBUF_WRITABLE);
5164   if (__pyx_t_1) {
5165 
5166     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":48
5167  *     # Python 2 buffer interface (legacy)
5168  *     if (flags & PyBUF_WRITABLE) == PyBUF_WRITABLE:
5169  *         PyObject_AsWriteBuffer(obj, &view.buf, &view.len)             # <<<<<<<<<<<<<<
5170  *     else:
5171  *         PyObject_AsReadBuffer(obj, <const_void**>
5172  */
5173     __pyx_t_2 = PyObject_AsWriteBuffer(__pyx_v_obj, (&__pyx_v_view->buf), (&__pyx_v_view->len)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5174     goto __pyx_L5;
5175   }
5176   /*else*/ {
5177 
5178     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":51
5179  *     else:
5180  *         PyObject_AsReadBuffer(obj, <const_void**>
5181  *                               &view.buf, &view.len)             # <<<<<<<<<<<<<<
5182  *     PyBuffer_FillInfo(view, obj, view.buf, view.len, 0, flags)
5183  *     if (flags & PyBUF_FORMAT) == PyBUF_FORMAT:
5184  */
5185     __pyx_t_2 = PyObject_AsReadBuffer(__pyx_v_obj, ((const void **)(&__pyx_v_view->buf)), (&__pyx_v_view->len)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5186   }
5187   __pyx_L5:;
5188 
5189   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":52
5190  *         PyObject_AsReadBuffer(obj, <const_void**>
5191  *                               &view.buf, &view.len)
5192  *     PyBuffer_FillInfo(view, obj, view.buf, view.len, 0, flags)             # <<<<<<<<<<<<<<
5193  *     if (flags & PyBUF_FORMAT) == PyBUF_FORMAT:
5194  *         view.format = b"B"
5195  */
5196   __pyx_t_2 = PyBuffer_FillInfo(__pyx_v_view, __pyx_v_obj, __pyx_v_view->buf, __pyx_v_view->len, 0, __pyx_v_flags); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5197 
5198   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":53
5199  *                               &view.buf, &view.len)
5200  *     PyBuffer_FillInfo(view, obj, view.buf, view.len, 0, flags)
5201  *     if (flags & PyBUF_FORMAT) == PyBUF_FORMAT:             # <<<<<<<<<<<<<<
5202  *         view.format = b"B"
5203  *     return 0
5204  */
5205   __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) == PyBUF_FORMAT);
5206   if (__pyx_t_1) {
5207 
5208     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":54
5209  *     PyBuffer_FillInfo(view, obj, view.buf, view.len, 0, flags)
5210  *     if (flags & PyBUF_FORMAT) == PyBUF_FORMAT:
5211  *         view.format = b"B"             # <<<<<<<<<<<<<<
5212  *     return 0
5213  *
5214  */
5215     __pyx_v_view->format = __pyx_k__B;
5216     goto __pyx_L6;
5217   }
5218   __pyx_L6:;
5219 
5220   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":55
5221  *     if (flags & PyBUF_FORMAT) == PyBUF_FORMAT:
5222  *         view.format = b"B"
5223  *     return 0             # <<<<<<<<<<<<<<
5224  *
5225  * cdef class _p_buffer:
5226  */
5227   __pyx_r = 0;
5228   goto __pyx_L0;
5229 
5230   __pyx_r = 0;
5231   goto __pyx_L0;
5232   __pyx_L1_error:;
5233   __Pyx_AddTraceback("mpi4py.MPI.PyObject_GetBufferEx", __pyx_clineno, __pyx_lineno, __pyx_filename);
5234   __pyx_r = -1;
5235   __pyx_L0:;
5236   __Pyx_RefNannyFinishContext();
5237   return __pyx_r;
5238 }
5239 
5240 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":60
5241  *     cdef Py_buffer view
5242  *
5243  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
5244  *         PyBuffer_Release(&self.view)
5245  *
5246  */
5247 
5248 static void __pyx_pf_6mpi4py_3MPI_9_p_buffer___dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer___dealloc__(PyObject * __pyx_v_self)5249 static void __pyx_pf_6mpi4py_3MPI_9_p_buffer___dealloc__(PyObject *__pyx_v_self) {
5250   __Pyx_RefNannyDeclarations
5251   __Pyx_RefNannySetupContext("__dealloc__");
5252 
5253   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":61
5254  *
5255  *     def __dealloc__(self):
5256  *         PyBuffer_Release(&self.view)             # <<<<<<<<<<<<<<
5257  *
5258  *     # buffer interface (PEP 3118)
5259  */
5260   PyBuffer_Release((&((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view));
5261 
5262   __Pyx_RefNannyFinishContext();
5263 }
5264 
5265 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":64
5266  *
5267  *     # buffer interface (PEP 3118)
5268  *     def __getbuffer__(self, Py_buffer *view, int flags):             # <<<<<<<<<<<<<<
5269  *         if view == NULL: return
5270  *         if view.obj == <void*>None: Py_CLEAR(view.obj)
5271  */
5272 
5273 static CYTHON_UNUSED int __pyx_pf_6mpi4py_3MPI_9_p_buffer_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer_1__getbuffer__(PyObject * __pyx_v_self,Py_buffer * __pyx_v_view,int __pyx_v_flags)5274 static CYTHON_UNUSED int __pyx_pf_6mpi4py_3MPI_9_p_buffer_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) {
5275   int __pyx_r;
5276   __Pyx_RefNannyDeclarations
5277   int __pyx_t_1;
5278   PyObject *__pyx_t_2 = NULL;
5279   int __pyx_t_3;
5280   int __pyx_lineno = 0;
5281   const char *__pyx_filename = NULL;
5282   int __pyx_clineno = 0;
5283   __Pyx_RefNannySetupContext("__getbuffer__");
5284   if (__pyx_v_view != NULL) {
5285     __pyx_v_view->obj = Py_None; __Pyx_INCREF(Py_None);
5286     __Pyx_GIVEREF(__pyx_v_view->obj);
5287   }
5288 
5289   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":65
5290  *     # buffer interface (PEP 3118)
5291  *     def __getbuffer__(self, Py_buffer *view, int flags):
5292  *         if view == NULL: return             # <<<<<<<<<<<<<<
5293  *         if view.obj == <void*>None: Py_CLEAR(view.obj)
5294  *         if self.view.obj != NULL:
5295  */
5296   __pyx_t_1 = (__pyx_v_view == NULL);
5297   if (__pyx_t_1) {
5298     __pyx_r = 0;
5299     goto __pyx_L0;
5300     goto __pyx_L5;
5301   }
5302   __pyx_L5:;
5303 
5304   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":66
5305  *     def __getbuffer__(self, Py_buffer *view, int flags):
5306  *         if view == NULL: return
5307  *         if view.obj == <void*>None: Py_CLEAR(view.obj)             # <<<<<<<<<<<<<<
5308  *         if self.view.obj != NULL:
5309  *             PyObject_GetBufferEx(<object>self.view.obj, view, flags)
5310  */
5311   __pyx_t_1 = (__pyx_v_view->obj == ((void *)Py_None));
5312   if (__pyx_t_1) {
5313     Py_CLEAR(__pyx_v_view->obj);
5314     goto __pyx_L6;
5315   }
5316   __pyx_L6:;
5317 
5318   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":67
5319  *         if view == NULL: return
5320  *         if view.obj == <void*>None: Py_CLEAR(view.obj)
5321  *         if self.view.obj != NULL:             # <<<<<<<<<<<<<<
5322  *             PyObject_GetBufferEx(<object>self.view.obj, view, flags)
5323  *         else:
5324  */
5325   __pyx_t_1 = (((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.obj != NULL);
5326   if (__pyx_t_1) {
5327 
5328     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":68
5329  *         if view.obj == <void*>None: Py_CLEAR(view.obj)
5330  *         if self.view.obj != NULL:
5331  *             PyObject_GetBufferEx(<object>self.view.obj, view, flags)             # <<<<<<<<<<<<<<
5332  *         else:
5333  *             PyBuffer_FillInfo(view, None,
5334  */
5335     __pyx_t_2 = ((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.obj);
5336     __Pyx_INCREF(__pyx_t_2);
5337     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_PyObject_GetBufferEx(__pyx_t_2, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5338     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5339     goto __pyx_L7;
5340   }
5341   /*else*/ {
5342 
5343     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":70
5344  *             PyObject_GetBufferEx(<object>self.view.obj, view, flags)
5345  *         else:
5346  *             PyBuffer_FillInfo(view, None,             # <<<<<<<<<<<<<<
5347  *                               self.view.buf, self.view.len,
5348  *                               self.view.readonly, flags)
5349  */
5350     __pyx_t_2 = Py_None;
5351     __Pyx_INCREF(__pyx_t_2);
5352 
5353     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":72
5354  *             PyBuffer_FillInfo(view, None,
5355  *                               self.view.buf, self.view.len,
5356  *                               self.view.readonly, flags)             # <<<<<<<<<<<<<<
5357  *             Py_CLEAR(view.obj)
5358  *
5359  */
5360     __pyx_t_3 = PyBuffer_FillInfo(__pyx_v_view, __pyx_t_2, ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.buf, ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.len, ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.readonly, __pyx_v_flags); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5361     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5362 
5363     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":73
5364  *                               self.view.buf, self.view.len,
5365  *                               self.view.readonly, flags)
5366  *             Py_CLEAR(view.obj)             # <<<<<<<<<<<<<<
5367  *
5368  *     def __releasebuffer__(self, Py_buffer *view):
5369  */
5370     Py_CLEAR(__pyx_v_view->obj);
5371   }
5372   __pyx_L7:;
5373 
5374   __pyx_r = 0;
5375   goto __pyx_L0;
5376   __pyx_L1_error:;
5377   __Pyx_XDECREF(__pyx_t_2);
5378   __Pyx_AddTraceback("mpi4py.MPI._p_buffer.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5379   __pyx_r = -1;
5380   if (__pyx_v_view != NULL && __pyx_v_view->obj != NULL) {
5381     __Pyx_GOTREF(__pyx_v_view->obj);
5382     __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = NULL;
5383   }
5384   goto __pyx_L2;
5385   __pyx_L0:;
5386   if (__pyx_v_view != NULL && __pyx_v_view->obj == Py_None) {
5387     __Pyx_GOTREF(Py_None);
5388     __Pyx_DECREF(Py_None); __pyx_v_view->obj = NULL;
5389   }
5390   __pyx_L2:;
5391   __Pyx_RefNannyFinishContext();
5392   return __pyx_r;
5393 }
5394 
5395 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":75
5396  *             Py_CLEAR(view.obj)
5397  *
5398  *     def __releasebuffer__(self, Py_buffer *view):             # <<<<<<<<<<<<<<
5399  *         if view == NULL: return
5400  *         PyBuffer_Release(view)
5401  */
5402 
5403 static CYTHON_UNUSED void __pyx_pf_6mpi4py_3MPI_9_p_buffer_2__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer_2__releasebuffer__(PyObject * __pyx_v_self,Py_buffer * __pyx_v_view)5404 static CYTHON_UNUSED void __pyx_pf_6mpi4py_3MPI_9_p_buffer_2__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view) {
5405   __Pyx_RefNannyDeclarations
5406   int __pyx_t_1;
5407   __Pyx_RefNannySetupContext("__releasebuffer__");
5408 
5409   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":76
5410  *
5411  *     def __releasebuffer__(self, Py_buffer *view):
5412  *         if view == NULL: return             # <<<<<<<<<<<<<<
5413  *         PyBuffer_Release(view)
5414  *
5415  */
5416   __pyx_t_1 = (__pyx_v_view == NULL);
5417   if (__pyx_t_1) {
5418     goto __pyx_L0;
5419     goto __pyx_L5;
5420   }
5421   __pyx_L5:;
5422 
5423   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":77
5424  *     def __releasebuffer__(self, Py_buffer *view):
5425  *         if view == NULL: return
5426  *         PyBuffer_Release(view)             # <<<<<<<<<<<<<<
5427  *
5428  *     # buffer interface (legacy)
5429  */
5430   PyBuffer_Release(__pyx_v_view);
5431 
5432   __pyx_L0:;
5433   __Pyx_RefNannyFinishContext();
5434 }
5435 
5436 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":80
5437  *
5438  *     # buffer interface (legacy)
5439  *     def __getsegcount__(self, Py_ssize_t *lenp):             # <<<<<<<<<<<<<<
5440  *         if lenp != NULL:
5441  *             lenp[0] = self.view.len
5442  */
5443 
5444 #if PY_MAJOR_VERSION < 3
5445 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_3__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer_3__getsegcount__(PyObject * __pyx_v_self,Py_ssize_t * __pyx_v_lenp)5446 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_3__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp) {
5447   Py_ssize_t __pyx_r;
5448   __Pyx_RefNannyDeclarations
5449   int __pyx_t_1;
5450   __Pyx_RefNannySetupContext("__getsegcount__");
5451 
5452   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":81
5453  *     # buffer interface (legacy)
5454  *     def __getsegcount__(self, Py_ssize_t *lenp):
5455  *         if lenp != NULL:             # <<<<<<<<<<<<<<
5456  *             lenp[0] = self.view.len
5457  *         return 1
5458  */
5459   __pyx_t_1 = (__pyx_v_lenp != NULL);
5460   if (__pyx_t_1) {
5461 
5462     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":82
5463  *     def __getsegcount__(self, Py_ssize_t *lenp):
5464  *         if lenp != NULL:
5465  *             lenp[0] = self.view.len             # <<<<<<<<<<<<<<
5466  *         return 1
5467  *     def __getreadbuffer__(self, Py_ssize_t idx, void **p):
5468  */
5469     (__pyx_v_lenp[0]) = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.len;
5470     goto __pyx_L5;
5471   }
5472   __pyx_L5:;
5473 
5474   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":83
5475  *         if lenp != NULL:
5476  *             lenp[0] = self.view.len
5477  *         return 1             # <<<<<<<<<<<<<<
5478  *     def __getreadbuffer__(self, Py_ssize_t idx, void **p):
5479  *         if idx != 0: raise SystemError(
5480  */
5481   __pyx_r = 1;
5482   goto __pyx_L0;
5483 
5484   __pyx_r = 0;
5485   __pyx_L0:;
5486   __Pyx_RefNannyFinishContext();
5487   return __pyx_r;
5488 }
5489 #endif /*!(#if PY_MAJOR_VERSION < 3)*/
5490 
5491 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":84
5492  *             lenp[0] = self.view.len
5493  *         return 1
5494  *     def __getreadbuffer__(self, Py_ssize_t idx, void **p):             # <<<<<<<<<<<<<<
5495  *         if idx != 0: raise SystemError(
5496  *             "accessing non-existent buffer segment")
5497  */
5498 
5499 #if PY_MAJOR_VERSION < 3
5500 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_4__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer_4__getreadbuffer__(PyObject * __pyx_v_self,Py_ssize_t __pyx_v_idx,void ** __pyx_v_p)5501 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_4__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) {
5502   Py_ssize_t __pyx_r;
5503   __Pyx_RefNannyDeclarations
5504   int __pyx_t_1;
5505   PyObject *__pyx_t_2 = NULL;
5506   int __pyx_lineno = 0;
5507   const char *__pyx_filename = NULL;
5508   int __pyx_clineno = 0;
5509   __Pyx_RefNannySetupContext("__getreadbuffer__");
5510 
5511   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":85
5512  *         return 1
5513  *     def __getreadbuffer__(self, Py_ssize_t idx, void **p):
5514  *         if idx != 0: raise SystemError(             # <<<<<<<<<<<<<<
5515  *             "accessing non-existent buffer segment")
5516  *         p[0] = self.view.buf
5517  */
5518   __pyx_t_1 = (__pyx_v_idx != 0);
5519   if (__pyx_t_1) {
5520     __pyx_t_2 = PyObject_Call(__pyx_builtin_SystemError, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5521     __Pyx_GOTREF(__pyx_t_2);
5522     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
5523     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5524     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5525     goto __pyx_L5;
5526   }
5527   __pyx_L5:;
5528 
5529   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":87
5530  *         if idx != 0: raise SystemError(
5531  *             "accessing non-existent buffer segment")
5532  *         p[0] = self.view.buf             # <<<<<<<<<<<<<<
5533  *         return self.view.len
5534  *     def __getwritebuffer__(self, Py_ssize_t idx, void **p):
5535  */
5536   (__pyx_v_p[0]) = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.buf;
5537 
5538   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":88
5539  *             "accessing non-existent buffer segment")
5540  *         p[0] = self.view.buf
5541  *         return self.view.len             # <<<<<<<<<<<<<<
5542  *     def __getwritebuffer__(self, Py_ssize_t idx, void **p):
5543  *         if idx != 0: raise SystemError(
5544  */
5545   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.len;
5546   goto __pyx_L0;
5547 
5548   __pyx_r = 0;
5549   goto __pyx_L0;
5550   __pyx_L1_error:;
5551   __Pyx_XDECREF(__pyx_t_2);
5552   __Pyx_AddTraceback("mpi4py.MPI._p_buffer.__getreadbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5553   __pyx_r = -1;
5554   __pyx_L0:;
5555   __Pyx_RefNannyFinishContext();
5556   return __pyx_r;
5557 }
5558 #endif /*!(#if PY_MAJOR_VERSION < 3)*/
5559 
5560 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":89
5561  *         p[0] = self.view.buf
5562  *         return self.view.len
5563  *     def __getwritebuffer__(self, Py_ssize_t idx, void **p):             # <<<<<<<<<<<<<<
5564  *         if idx != 0: raise SystemError(
5565  *             "accessing non-existent buffer segment")
5566  */
5567 
5568 #if PY_MAJOR_VERSION < 3
5569 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_5__getwritebuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_buffer_5__getwritebuffer__(PyObject * __pyx_v_self,Py_ssize_t __pyx_v_idx,void ** __pyx_v_p)5570 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_9_p_buffer_5__getwritebuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) {
5571   Py_ssize_t __pyx_r;
5572   __Pyx_RefNannyDeclarations
5573   int __pyx_t_1;
5574   PyObject *__pyx_t_2 = NULL;
5575   int __pyx_lineno = 0;
5576   const char *__pyx_filename = NULL;
5577   int __pyx_clineno = 0;
5578   __Pyx_RefNannySetupContext("__getwritebuffer__");
5579 
5580   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":90
5581  *         return self.view.len
5582  *     def __getwritebuffer__(self, Py_ssize_t idx, void **p):
5583  *         if idx != 0: raise SystemError(             # <<<<<<<<<<<<<<
5584  *             "accessing non-existent buffer segment")
5585  *         if self.view.readonly:
5586  */
5587   __pyx_t_1 = (__pyx_v_idx != 0);
5588   if (__pyx_t_1) {
5589     __pyx_t_2 = PyObject_Call(__pyx_builtin_SystemError, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5590     __Pyx_GOTREF(__pyx_t_2);
5591     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
5592     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5593     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5594     goto __pyx_L5;
5595   }
5596   __pyx_L5:;
5597 
5598   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":92
5599  *         if idx != 0: raise SystemError(
5600  *             "accessing non-existent buffer segment")
5601  *         if self.view.readonly:             # <<<<<<<<<<<<<<
5602  *             raise TypeError("object is not writeable")
5603  *         p[0] = self.view.buf
5604  */
5605   if (((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.readonly) {
5606 
5607     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":93
5608  *             "accessing non-existent buffer segment")
5609  *         if self.view.readonly:
5610  *             raise TypeError("object is not writeable")             # <<<<<<<<<<<<<<
5611  *         p[0] = self.view.buf
5612  *         return self.view.len
5613  */
5614     __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5615     __Pyx_GOTREF(__pyx_t_2);
5616     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
5617     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5618     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5619     goto __pyx_L6;
5620   }
5621   __pyx_L6:;
5622 
5623   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":94
5624  *         if self.view.readonly:
5625  *             raise TypeError("object is not writeable")
5626  *         p[0] = self.view.buf             # <<<<<<<<<<<<<<
5627  *         return self.view.len
5628  *
5629  */
5630   (__pyx_v_p[0]) = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.buf;
5631 
5632   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":95
5633  *             raise TypeError("object is not writeable")
5634  *         p[0] = self.view.buf
5635  *         return self.view.len             # <<<<<<<<<<<<<<
5636  *
5637  *
5638  */
5639   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_v_self)->view.len;
5640   goto __pyx_L0;
5641 
5642   __pyx_r = 0;
5643   goto __pyx_L0;
5644   __pyx_L1_error:;
5645   __Pyx_XDECREF(__pyx_t_2);
5646   __Pyx_AddTraceback("mpi4py.MPI._p_buffer.__getwritebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5647   __pyx_r = -1;
5648   __pyx_L0:;
5649   __Pyx_RefNannyFinishContext();
5650   return __pyx_r;
5651 }
5652 #endif /*!(#if PY_MAJOR_VERSION < 3)*/
5653 
5654 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":98
5655  *
5656  *
5657  * cdef inline _p_buffer newbuffer():             # <<<<<<<<<<<<<<
5658  *     return <_p_buffer>_p_buffer.__new__(_p_buffer)
5659  *
5660  */
5661 
__pyx_f_6mpi4py_3MPI_newbuffer(void)5662 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_newbuffer(void) {
5663   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_r = NULL;
5664   __Pyx_RefNannyDeclarations
5665   PyObject *__pyx_t_1 = NULL;
5666   int __pyx_lineno = 0;
5667   const char *__pyx_filename = NULL;
5668   int __pyx_clineno = 0;
5669   __Pyx_RefNannySetupContext("newbuffer");
5670 
5671   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":99
5672  *
5673  * cdef inline _p_buffer newbuffer():
5674  *     return <_p_buffer>_p_buffer.__new__(_p_buffer)             # <<<<<<<<<<<<<<
5675  *
5676  * cdef _p_buffer getbuffer(object ob, bint readonly, bint format):
5677  */
5678   __Pyx_XDECREF(((PyObject *)__pyx_r));
5679   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5680   __Pyx_GOTREF(__pyx_t_1);
5681   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1)));
5682   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
5683   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5684   goto __pyx_L0;
5685 
5686   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); __Pyx_INCREF(Py_None);
5687   goto __pyx_L0;
5688   __pyx_L1_error:;
5689   __Pyx_XDECREF(__pyx_t_1);
5690   __Pyx_AddTraceback("mpi4py.MPI.newbuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
5691   __pyx_r = 0;
5692   __pyx_L0:;
5693   __Pyx_XGIVEREF((PyObject *)__pyx_r);
5694   __Pyx_RefNannyFinishContext();
5695   return __pyx_r;
5696 }
5697 
5698 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":101
5699  *     return <_p_buffer>_p_buffer.__new__(_p_buffer)
5700  *
5701  * cdef _p_buffer getbuffer(object ob, bint readonly, bint format):             # <<<<<<<<<<<<<<
5702  *     cdef _p_buffer buf = newbuffer()
5703  *     cdef int flags = PyBUF_ANY_CONTIGUOUS
5704  */
5705 
__pyx_f_6mpi4py_3MPI_getbuffer(PyObject * __pyx_v_ob,int __pyx_v_readonly,int __pyx_v_format)5706 static struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer(PyObject *__pyx_v_ob, int __pyx_v_readonly, int __pyx_v_format) {
5707   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
5708   int __pyx_v_flags;
5709   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_r = NULL;
5710   __Pyx_RefNannyDeclarations
5711   PyObject *__pyx_t_1 = NULL;
5712   int __pyx_t_2;
5713   int __pyx_t_3;
5714   int __pyx_lineno = 0;
5715   const char *__pyx_filename = NULL;
5716   int __pyx_clineno = 0;
5717   __Pyx_RefNannySetupContext("getbuffer");
5718 
5719   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":102
5720  *
5721  * cdef _p_buffer getbuffer(object ob, bint readonly, bint format):
5722  *     cdef _p_buffer buf = newbuffer()             # <<<<<<<<<<<<<<
5723  *     cdef int flags = PyBUF_ANY_CONTIGUOUS
5724  *     if not readonly:
5725  */
5726   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_newbuffer()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5727   __Pyx_GOTREF(__pyx_t_1);
5728   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
5729   __pyx_t_1 = 0;
5730 
5731   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":103
5732  * cdef _p_buffer getbuffer(object ob, bint readonly, bint format):
5733  *     cdef _p_buffer buf = newbuffer()
5734  *     cdef int flags = PyBUF_ANY_CONTIGUOUS             # <<<<<<<<<<<<<<
5735  *     if not readonly:
5736  *         flags |= PyBUF_WRITABLE
5737  */
5738   __pyx_v_flags = PyBUF_ANY_CONTIGUOUS;
5739 
5740   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":104
5741  *     cdef _p_buffer buf = newbuffer()
5742  *     cdef int flags = PyBUF_ANY_CONTIGUOUS
5743  *     if not readonly:             # <<<<<<<<<<<<<<
5744  *         flags |= PyBUF_WRITABLE
5745  *     if format:
5746  */
5747   __pyx_t_2 = (!__pyx_v_readonly);
5748   if (__pyx_t_2) {
5749 
5750     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":105
5751  *     cdef int flags = PyBUF_ANY_CONTIGUOUS
5752  *     if not readonly:
5753  *         flags |= PyBUF_WRITABLE             # <<<<<<<<<<<<<<
5754  *     if format:
5755  *         flags |= PyBUF_FORMAT
5756  */
5757     __pyx_v_flags = (__pyx_v_flags | PyBUF_WRITABLE);
5758     goto __pyx_L3;
5759   }
5760   __pyx_L3:;
5761 
5762   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":106
5763  *     if not readonly:
5764  *         flags |= PyBUF_WRITABLE
5765  *     if format:             # <<<<<<<<<<<<<<
5766  *         flags |= PyBUF_FORMAT
5767  *     PyObject_GetBufferEx(ob, &buf.view, flags)
5768  */
5769   if (__pyx_v_format) {
5770 
5771     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":107
5772  *         flags |= PyBUF_WRITABLE
5773  *     if format:
5774  *         flags |= PyBUF_FORMAT             # <<<<<<<<<<<<<<
5775  *     PyObject_GetBufferEx(ob, &buf.view, flags)
5776  *     return buf
5777  */
5778     __pyx_v_flags = (__pyx_v_flags | PyBUF_FORMAT);
5779     goto __pyx_L4;
5780   }
5781   __pyx_L4:;
5782 
5783   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":108
5784  *     if format:
5785  *         flags |= PyBUF_FORMAT
5786  *     PyObject_GetBufferEx(ob, &buf.view, flags)             # <<<<<<<<<<<<<<
5787  *     return buf
5788  *
5789  */
5790   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_PyObject_GetBufferEx(__pyx_v_ob, (&__pyx_v_buf->view), __pyx_v_flags); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5791 
5792   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":109
5793  *         flags |= PyBUF_FORMAT
5794  *     PyObject_GetBufferEx(ob, &buf.view, flags)
5795  *     return buf             # <<<<<<<<<<<<<<
5796  *
5797  * cdef inline object getformat(_p_buffer buf):
5798  */
5799   __Pyx_XDECREF(((PyObject *)__pyx_r));
5800   __Pyx_INCREF(((PyObject *)__pyx_v_buf));
5801   __pyx_r = __pyx_v_buf;
5802   goto __pyx_L0;
5803 
5804   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); __Pyx_INCREF(Py_None);
5805   goto __pyx_L0;
5806   __pyx_L1_error:;
5807   __Pyx_XDECREF(__pyx_t_1);
5808   __Pyx_AddTraceback("mpi4py.MPI.getbuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
5809   __pyx_r = 0;
5810   __pyx_L0:;
5811   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
5812   __Pyx_XGIVEREF((PyObject *)__pyx_r);
5813   __Pyx_RefNannyFinishContext();
5814   return __pyx_r;
5815 }
5816 
5817 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":111
5818  *     return buf
5819  *
5820  * cdef inline object getformat(_p_buffer buf):             # <<<<<<<<<<<<<<
5821  *     cdef Py_buffer *view = &buf.view
5822  *     #
5823  */
5824 
__pyx_f_6mpi4py_3MPI_getformat(struct __pyx_obj_6mpi4py_3MPI__p_buffer * __pyx_v_buf)5825 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_getformat(struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf) {
5826   Py_buffer *__pyx_v_view;
5827   PyObject *__pyx_v_ob = 0;
5828   PyObject *__pyx_v_format = 0;
5829   PyObject *__pyx_r = NULL;
5830   __Pyx_RefNannyDeclarations
5831   int __pyx_t_1;
5832   PyObject *__pyx_t_2 = NULL;
5833   PyObject *__pyx_t_3 = NULL;
5834   PyObject *__pyx_t_4 = NULL;
5835   PyObject *__pyx_t_5 = NULL;
5836   PyObject *__pyx_t_6 = NULL;
5837   int __pyx_t_7;
5838   PyObject *__pyx_t_8 = NULL;
5839   PyObject *__pyx_t_9 = NULL;
5840   PyObject *__pyx_t_10 = NULL;
5841   PyObject *__pyx_t_11 = NULL;
5842   PyObject *__pyx_t_12 = NULL;
5843   PyObject *__pyx_t_13 = NULL;
5844   PyObject *__pyx_t_14 = NULL;
5845   PyObject *__pyx_t_15 = NULL;
5846   int __pyx_lineno = 0;
5847   const char *__pyx_filename = NULL;
5848   int __pyx_clineno = 0;
5849   __Pyx_RefNannySetupContext("getformat");
5850 
5851   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":112
5852  *
5853  * cdef inline object getformat(_p_buffer buf):
5854  *     cdef Py_buffer *view = &buf.view             # <<<<<<<<<<<<<<
5855  *     #
5856  *     if buf.view.obj == NULL:
5857  */
5858   __pyx_v_view = (&__pyx_v_buf->view);
5859 
5860   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":114
5861  *     cdef Py_buffer *view = &buf.view
5862  *     #
5863  *     if buf.view.obj == NULL:             # <<<<<<<<<<<<<<
5864  *         if view.format != NULL:
5865  *             return mpistr(view.format)
5866  */
5867   __pyx_t_1 = (__pyx_v_buf->view.obj == NULL);
5868   if (__pyx_t_1) {
5869 
5870     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":115
5871  *     #
5872  *     if buf.view.obj == NULL:
5873  *         if view.format != NULL:             # <<<<<<<<<<<<<<
5874  *             return mpistr(view.format)
5875  *         else:
5876  */
5877     __pyx_t_1 = (__pyx_v_view->format != NULL);
5878     if (__pyx_t_1) {
5879 
5880       /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":116
5881  *     if buf.view.obj == NULL:
5882  *         if view.format != NULL:
5883  *             return mpistr(view.format)             # <<<<<<<<<<<<<<
5884  *         else:
5885  *             return "B"
5886  */
5887       __Pyx_XDECREF(__pyx_r);
5888       __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_view->format); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5889       __Pyx_GOTREF(__pyx_t_2);
5890       __pyx_r = __pyx_t_2;
5891       __pyx_t_2 = 0;
5892       goto __pyx_L0;
5893       goto __pyx_L4;
5894     }
5895     /*else*/ {
5896 
5897       /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":118
5898  *             return mpistr(view.format)
5899  *         else:
5900  *             return "B"             # <<<<<<<<<<<<<<
5901  *     elif view.format != NULL:
5902  *         # XXX this is a hack
5903  */
5904       __Pyx_XDECREF(__pyx_r);
5905       __Pyx_INCREF(((PyObject *)__pyx_n_s__B));
5906       __pyx_r = ((PyObject *)__pyx_n_s__B);
5907       goto __pyx_L0;
5908     }
5909     __pyx_L4:;
5910     goto __pyx_L3;
5911   }
5912 
5913   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":119
5914  *         else:
5915  *             return "B"
5916  *     elif view.format != NULL:             # <<<<<<<<<<<<<<
5917  *         # XXX this is a hack
5918  *         if view.format != <char*>b"B":
5919  */
5920   __pyx_t_1 = (__pyx_v_view->format != NULL);
5921   if (__pyx_t_1) {
5922 
5923     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":121
5924  *     elif view.format != NULL:
5925  *         # XXX this is a hack
5926  *         if view.format != <char*>b"B":             # <<<<<<<<<<<<<<
5927  *             return mpistr(view.format)
5928  *     #
5929  */
5930     __pyx_t_1 = (__pyx_v_view->format != ((char *)__pyx_k__B));
5931     if (__pyx_t_1) {
5932 
5933       /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":122
5934  *         # XXX this is a hack
5935  *         if view.format != <char*>b"B":
5936  *             return mpistr(view.format)             # <<<<<<<<<<<<<<
5937  *     #
5938  *     cdef object ob = <object>buf.view.obj
5939  */
5940       __Pyx_XDECREF(__pyx_r);
5941       __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_view->format); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
5942       __Pyx_GOTREF(__pyx_t_2);
5943       __pyx_r = __pyx_t_2;
5944       __pyx_t_2 = 0;
5945       goto __pyx_L0;
5946       goto __pyx_L5;
5947     }
5948     __pyx_L5:;
5949     goto __pyx_L3;
5950   }
5951   __pyx_L3:;
5952 
5953   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":124
5954  *             return mpistr(view.format)
5955  *     #
5956  *     cdef object ob = <object>buf.view.obj             # <<<<<<<<<<<<<<
5957  *     cdef str format = None
5958  *     try: # numpy.ndarray
5959  */
5960   __Pyx_INCREF(((PyObject *)__pyx_v_buf->view.obj));
5961   __pyx_v_ob = ((PyObject *)__pyx_v_buf->view.obj);
5962 
5963   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":125
5964  *     #
5965  *     cdef object ob = <object>buf.view.obj
5966  *     cdef str format = None             # <<<<<<<<<<<<<<
5967  *     try: # numpy.ndarray
5968  *         format = ob.dtype.char
5969  */
5970   __Pyx_INCREF(Py_None);
5971   __pyx_v_format = ((PyObject*)Py_None);
5972 
5973   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":126
5974  *     cdef object ob = <object>buf.view.obj
5975  *     cdef str format = None
5976  *     try: # numpy.ndarray             # <<<<<<<<<<<<<<
5977  *         format = ob.dtype.char
5978  *     except (AttributeError, TypeError):
5979  */
5980   {
5981     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
5982     __Pyx_XGOTREF(__pyx_t_3);
5983     __Pyx_XGOTREF(__pyx_t_4);
5984     __Pyx_XGOTREF(__pyx_t_5);
5985     /*try:*/ {
5986 
5987       /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":127
5988  *     cdef str format = None
5989  *     try: # numpy.ndarray
5990  *         format = ob.dtype.char             # <<<<<<<<<<<<<<
5991  *     except (AttributeError, TypeError):
5992  *         try: # array.array
5993  */
5994       __pyx_t_2 = PyObject_GetAttr(__pyx_v_ob, __pyx_n_s__dtype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
5995       __Pyx_GOTREF(__pyx_t_2);
5996       __pyx_t_6 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__char); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
5997       __Pyx_GOTREF(__pyx_t_6);
5998       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5999       if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_6)->tp_name), 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
6000       __Pyx_DECREF(((PyObject *)__pyx_v_format));
6001       __pyx_v_format = ((PyObject*)__pyx_t_6);
6002       __pyx_t_6 = 0;
6003     }
6004     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6005     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
6006     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
6007     goto __pyx_L13_try_end;
6008     __pyx_L6_error:;
6009     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6010     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
6011 
6012     /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":128
6013  *     try: # numpy.ndarray
6014  *         format = ob.dtype.char
6015  *     except (AttributeError, TypeError):             # <<<<<<<<<<<<<<
6016  *         try: # array.array
6017  *             format =  ob.typecode
6018  */
6019     __pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_AttributeError) || PyErr_ExceptionMatches(__pyx_builtin_TypeError);
6020     if (__pyx_t_7) {
6021       __Pyx_AddTraceback("mpi4py.MPI.getformat", __pyx_clineno, __pyx_lineno, __pyx_filename);
6022       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
6023       __Pyx_GOTREF(__pyx_t_6);
6024       __Pyx_GOTREF(__pyx_t_2);
6025       __Pyx_GOTREF(__pyx_t_8);
6026 
6027       /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":129
6028  *         format = ob.dtype.char
6029  *     except (AttributeError, TypeError):
6030  *         try: # array.array             # <<<<<<<<<<<<<<
6031  *             format =  ob.typecode
6032  *         except (AttributeError, TypeError):
6033  */
6034       {
6035         __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
6036         __Pyx_XGOTREF(__pyx_t_9);
6037         __Pyx_XGOTREF(__pyx_t_10);
6038         __Pyx_XGOTREF(__pyx_t_11);
6039         /*try:*/ {
6040 
6041           /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":130
6042  *     except (AttributeError, TypeError):
6043  *         try: # array.array
6044  *             format =  ob.typecode             # <<<<<<<<<<<<<<
6045  *         except (AttributeError, TypeError):
6046  *             if view.format != NULL:
6047  */
6048           __pyx_t_12 = PyObject_GetAttr(__pyx_v_ob, __pyx_n_s__typecode); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
6049           __Pyx_GOTREF(__pyx_t_12);
6050           if (!(likely(PyString_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_12)->tp_name), 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
6051           __Pyx_DECREF(((PyObject *)__pyx_v_format));
6052           __pyx_v_format = ((PyObject*)__pyx_t_12);
6053           __pyx_t_12 = 0;
6054         }
6055         __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
6056         __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
6057         __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
6058         goto __pyx_L23_try_end;
6059         __pyx_L16_error:;
6060         __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
6061 
6062         /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":131
6063  *         try: # array.array
6064  *             format =  ob.typecode
6065  *         except (AttributeError, TypeError):             # <<<<<<<<<<<<<<
6066  *             if view.format != NULL:
6067  *                 format = mpistr(view.format)
6068  */
6069         __pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_AttributeError) || PyErr_ExceptionMatches(__pyx_builtin_TypeError);
6070         if (__pyx_t_7) {
6071           __Pyx_AddTraceback("mpi4py.MPI.getformat", __pyx_clineno, __pyx_lineno, __pyx_filename);
6072           if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
6073           __Pyx_GOTREF(__pyx_t_12);
6074           __Pyx_GOTREF(__pyx_t_13);
6075           __Pyx_GOTREF(__pyx_t_14);
6076 
6077           /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":132
6078  *             format =  ob.typecode
6079  *         except (AttributeError, TypeError):
6080  *             if view.format != NULL:             # <<<<<<<<<<<<<<
6081  *                 format = mpistr(view.format)
6082  *     return format
6083  */
6084           __pyx_t_1 = (__pyx_v_view->format != NULL);
6085           if (__pyx_t_1) {
6086 
6087             /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":133
6088  *         except (AttributeError, TypeError):
6089  *             if view.format != NULL:
6090  *                 format = mpistr(view.format)             # <<<<<<<<<<<<<<
6091  *     return format
6092  *
6093  */
6094             __pyx_t_15 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_view->format); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
6095             __Pyx_GOTREF(__pyx_t_15);
6096             if (!(likely(PyString_CheckExact(__pyx_t_15))||((__pyx_t_15) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected str, got %.200s", Py_TYPE(__pyx_t_15)->tp_name), 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
6097             __Pyx_DECREF(((PyObject *)__pyx_v_format));
6098             __pyx_v_format = ((PyObject*)__pyx_t_15);
6099             __pyx_t_15 = 0;
6100             goto __pyx_L26;
6101           }
6102           __pyx_L26:;
6103           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
6104           __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
6105           __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
6106           goto __pyx_L17_exception_handled;
6107         }
6108         __pyx_L18_except_error:;
6109         __Pyx_XGIVEREF(__pyx_t_9);
6110         __Pyx_XGIVEREF(__pyx_t_10);
6111         __Pyx_XGIVEREF(__pyx_t_11);
6112         __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
6113         goto __pyx_L8_except_error;
6114         __pyx_L17_exception_handled:;
6115         __Pyx_XGIVEREF(__pyx_t_9);
6116         __Pyx_XGIVEREF(__pyx_t_10);
6117         __Pyx_XGIVEREF(__pyx_t_11);
6118         __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
6119         __pyx_L23_try_end:;
6120       }
6121       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6122       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6123       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6124       goto __pyx_L7_exception_handled;
6125     }
6126     __pyx_L8_except_error:;
6127     __Pyx_XGIVEREF(__pyx_t_3);
6128     __Pyx_XGIVEREF(__pyx_t_4);
6129     __Pyx_XGIVEREF(__pyx_t_5);
6130     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
6131     goto __pyx_L1_error;
6132     __pyx_L7_exception_handled:;
6133     __Pyx_XGIVEREF(__pyx_t_3);
6134     __Pyx_XGIVEREF(__pyx_t_4);
6135     __Pyx_XGIVEREF(__pyx_t_5);
6136     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
6137     __pyx_L13_try_end:;
6138   }
6139 
6140   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":134
6141  *             if view.format != NULL:
6142  *                 format = mpistr(view.format)
6143  *     return format             # <<<<<<<<<<<<<<
6144  *
6145  * cdef inline _p_buffer tobuffer(void *p, Py_ssize_t n, bint ro):
6146  */
6147   __Pyx_XDECREF(__pyx_r);
6148   __Pyx_INCREF(((PyObject *)__pyx_v_format));
6149   __pyx_r = ((PyObject *)__pyx_v_format);
6150   goto __pyx_L0;
6151 
6152   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6153   goto __pyx_L0;
6154   __pyx_L1_error:;
6155   __Pyx_XDECREF(__pyx_t_2);
6156   __Pyx_XDECREF(__pyx_t_6);
6157   __Pyx_XDECREF(__pyx_t_8);
6158   __Pyx_XDECREF(__pyx_t_12);
6159   __Pyx_XDECREF(__pyx_t_13);
6160   __Pyx_XDECREF(__pyx_t_14);
6161   __Pyx_XDECREF(__pyx_t_15);
6162   __Pyx_AddTraceback("mpi4py.MPI.getformat", __pyx_clineno, __pyx_lineno, __pyx_filename);
6163   __pyx_r = 0;
6164   __pyx_L0:;
6165   __Pyx_XDECREF(__pyx_v_ob);
6166   __Pyx_XDECREF(__pyx_v_format);
6167   __Pyx_XGIVEREF(__pyx_r);
6168   __Pyx_RefNannyFinishContext();
6169   return __pyx_r;
6170 }
6171 
6172 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":136
6173  *     return format
6174  *
6175  * cdef inline _p_buffer tobuffer(void *p, Py_ssize_t n, bint ro):             # <<<<<<<<<<<<<<
6176  *     cdef _p_buffer buf = newbuffer()
6177  *     cdef Py_buffer *view = &buf.view
6178  */
6179 
__pyx_f_6mpi4py_3MPI_tobuffer(void * __pyx_v_p,Py_ssize_t __pyx_v_n,int __pyx_v_ro)6180 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_tobuffer(void *__pyx_v_p, Py_ssize_t __pyx_v_n, int __pyx_v_ro) {
6181   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
6182   Py_buffer *__pyx_v_view;
6183   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_r = NULL;
6184   __Pyx_RefNannyDeclarations
6185   PyObject *__pyx_t_1 = NULL;
6186   int __pyx_t_2;
6187   int __pyx_lineno = 0;
6188   const char *__pyx_filename = NULL;
6189   int __pyx_clineno = 0;
6190   __Pyx_RefNannySetupContext("tobuffer");
6191 
6192   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":137
6193  *
6194  * cdef inline _p_buffer tobuffer(void *p, Py_ssize_t n, bint ro):
6195  *     cdef _p_buffer buf = newbuffer()             # <<<<<<<<<<<<<<
6196  *     cdef Py_buffer *view = &buf.view
6197  *     PyBuffer_FillInfo(view, None, p, n, ro,
6198  */
6199   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_newbuffer()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6200   __Pyx_GOTREF(__pyx_t_1);
6201   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
6202   __pyx_t_1 = 0;
6203 
6204   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":138
6205  * cdef inline _p_buffer tobuffer(void *p, Py_ssize_t n, bint ro):
6206  *     cdef _p_buffer buf = newbuffer()
6207  *     cdef Py_buffer *view = &buf.view             # <<<<<<<<<<<<<<
6208  *     PyBuffer_FillInfo(view, None, p, n, ro,
6209  *                       PyBUF_FORMAT|PyBUF_STRIDES)
6210  */
6211   __pyx_v_view = (&__pyx_v_buf->view);
6212 
6213   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":139
6214  *     cdef _p_buffer buf = newbuffer()
6215  *     cdef Py_buffer *view = &buf.view
6216  *     PyBuffer_FillInfo(view, None, p, n, ro,             # <<<<<<<<<<<<<<
6217  *                       PyBUF_FORMAT|PyBUF_STRIDES)
6218  *     Py_CLEAR(view.obj)
6219  */
6220   __pyx_t_1 = Py_None;
6221   __Pyx_INCREF(__pyx_t_1);
6222 
6223   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":140
6224  *     cdef Py_buffer *view = &buf.view
6225  *     PyBuffer_FillInfo(view, None, p, n, ro,
6226  *                       PyBUF_FORMAT|PyBUF_STRIDES)             # <<<<<<<<<<<<<<
6227  *     Py_CLEAR(view.obj)
6228  *     return buf
6229  */
6230   __pyx_t_2 = PyBuffer_FillInfo(__pyx_v_view, __pyx_t_1, __pyx_v_p, __pyx_v_n, __pyx_v_ro, (PyBUF_FORMAT | PyBUF_STRIDES)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6231   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6232 
6233   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":141
6234  *     PyBuffer_FillInfo(view, None, p, n, ro,
6235  *                       PyBUF_FORMAT|PyBUF_STRIDES)
6236  *     Py_CLEAR(view.obj)             # <<<<<<<<<<<<<<
6237  *     return buf
6238  *
6239  */
6240   Py_CLEAR(__pyx_v_view->obj);
6241 
6242   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":142
6243  *                       PyBUF_FORMAT|PyBUF_STRIDES)
6244  *     Py_CLEAR(view.obj)
6245  *     return buf             # <<<<<<<<<<<<<<
6246  *
6247  * #------------------------------------------------------------------------------
6248  */
6249   __Pyx_XDECREF(((PyObject *)__pyx_r));
6250   __Pyx_INCREF(((PyObject *)__pyx_v_buf));
6251   __pyx_r = __pyx_v_buf;
6252   goto __pyx_L0;
6253 
6254   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); __Pyx_INCREF(Py_None);
6255   goto __pyx_L0;
6256   __pyx_L1_error:;
6257   __Pyx_XDECREF(__pyx_t_1);
6258   __Pyx_AddTraceback("mpi4py.MPI.tobuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
6259   __pyx_r = 0;
6260   __pyx_L0:;
6261   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
6262   __Pyx_XGIVEREF((PyObject *)__pyx_r);
6263   __Pyx_RefNannyFinishContext();
6264   return __pyx_r;
6265 }
6266 
6267 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":146
6268  * #------------------------------------------------------------------------------
6269  *
6270  * cdef inline _p_buffer getbuffer_r(object ob, void **base, MPI_Aint *size):             # <<<<<<<<<<<<<<
6271  *     cdef _p_buffer buf = getbuffer(ob, 1, 0)
6272  *     if base: base[0] = <void*>    buf.view.buf
6273  */
6274 
__pyx_f_6mpi4py_3MPI_getbuffer_r(PyObject * __pyx_v_ob,void ** __pyx_v_base,MPI_Aint * __pyx_v_size)6275 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer_r(PyObject *__pyx_v_ob, void **__pyx_v_base, MPI_Aint *__pyx_v_size) {
6276   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
6277   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_r = NULL;
6278   __Pyx_RefNannyDeclarations
6279   PyObject *__pyx_t_1 = NULL;
6280   int __pyx_t_2;
6281   int __pyx_lineno = 0;
6282   const char *__pyx_filename = NULL;
6283   int __pyx_clineno = 0;
6284   __Pyx_RefNannySetupContext("getbuffer_r");
6285 
6286   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":147
6287  *
6288  * cdef inline _p_buffer getbuffer_r(object ob, void **base, MPI_Aint *size):
6289  *     cdef _p_buffer buf = getbuffer(ob, 1, 0)             # <<<<<<<<<<<<<<
6290  *     if base: base[0] = <void*>    buf.view.buf
6291  *     if size: size[0] = <MPI_Aint> buf.view.len
6292  */
6293   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_ob, 1, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6294   __Pyx_GOTREF(__pyx_t_1);
6295   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
6296   __pyx_t_1 = 0;
6297 
6298   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":148
6299  * cdef inline _p_buffer getbuffer_r(object ob, void **base, MPI_Aint *size):
6300  *     cdef _p_buffer buf = getbuffer(ob, 1, 0)
6301  *     if base: base[0] = <void*>    buf.view.buf             # <<<<<<<<<<<<<<
6302  *     if size: size[0] = <MPI_Aint> buf.view.len
6303  *     return buf
6304  */
6305   __pyx_t_2 = (__pyx_v_base != 0);
6306   if (__pyx_t_2) {
6307     (__pyx_v_base[0]) = ((void *)__pyx_v_buf->view.buf);
6308     goto __pyx_L3;
6309   }
6310   __pyx_L3:;
6311 
6312   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":149
6313  *     cdef _p_buffer buf = getbuffer(ob, 1, 0)
6314  *     if base: base[0] = <void*>    buf.view.buf
6315  *     if size: size[0] = <MPI_Aint> buf.view.len             # <<<<<<<<<<<<<<
6316  *     return buf
6317  *
6318  */
6319   __pyx_t_2 = (__pyx_v_size != 0);
6320   if (__pyx_t_2) {
6321     (__pyx_v_size[0]) = ((MPI_Aint)__pyx_v_buf->view.len);
6322     goto __pyx_L4;
6323   }
6324   __pyx_L4:;
6325 
6326   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":150
6327  *     if base: base[0] = <void*>    buf.view.buf
6328  *     if size: size[0] = <MPI_Aint> buf.view.len
6329  *     return buf             # <<<<<<<<<<<<<<
6330  *
6331  * cdef inline _p_buffer getbuffer_w(object ob, void **base, MPI_Aint *size):
6332  */
6333   __Pyx_XDECREF(((PyObject *)__pyx_r));
6334   __Pyx_INCREF(((PyObject *)__pyx_v_buf));
6335   __pyx_r = __pyx_v_buf;
6336   goto __pyx_L0;
6337 
6338   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); __Pyx_INCREF(Py_None);
6339   goto __pyx_L0;
6340   __pyx_L1_error:;
6341   __Pyx_XDECREF(__pyx_t_1);
6342   __Pyx_AddTraceback("mpi4py.MPI.getbuffer_r", __pyx_clineno, __pyx_lineno, __pyx_filename);
6343   __pyx_r = 0;
6344   __pyx_L0:;
6345   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
6346   __Pyx_XGIVEREF((PyObject *)__pyx_r);
6347   __Pyx_RefNannyFinishContext();
6348   return __pyx_r;
6349 }
6350 
6351 /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":152
6352  *     return buf
6353  *
6354  * cdef inline _p_buffer getbuffer_w(object ob, void **base, MPI_Aint *size):             # <<<<<<<<<<<<<<
6355  *     cdef _p_buffer buf = getbuffer(ob, 0, 0)
6356  *     if base: base[0] = <void*>    buf.view.buf
6357  */
6358 
__pyx_f_6mpi4py_3MPI_getbuffer_w(PyObject * __pyx_v_ob,void ** __pyx_v_base,MPI_Aint * __pyx_v_size)6359 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_f_6mpi4py_3MPI_getbuffer_w(PyObject *__pyx_v_ob, void **__pyx_v_base, MPI_Aint *__pyx_v_size) {
6360   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
6361   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_r = NULL;
6362   __Pyx_RefNannyDeclarations
6363   PyObject *__pyx_t_1 = NULL;
6364   int __pyx_t_2;
6365   int __pyx_lineno = 0;
6366   const char *__pyx_filename = NULL;
6367   int __pyx_clineno = 0;
6368   __Pyx_RefNannySetupContext("getbuffer_w");
6369 
6370   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":153
6371  *
6372  * cdef inline _p_buffer getbuffer_w(object ob, void **base, MPI_Aint *size):
6373  *     cdef _p_buffer buf = getbuffer(ob, 0, 0)             # <<<<<<<<<<<<<<
6374  *     if base: base[0] = <void*>    buf.view.buf
6375  *     if size: size[0] = <MPI_Aint> buf.view.len
6376  */
6377   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_ob, 0, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6378   __Pyx_GOTREF(__pyx_t_1);
6379   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
6380   __pyx_t_1 = 0;
6381 
6382   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":154
6383  * cdef inline _p_buffer getbuffer_w(object ob, void **base, MPI_Aint *size):
6384  *     cdef _p_buffer buf = getbuffer(ob, 0, 0)
6385  *     if base: base[0] = <void*>    buf.view.buf             # <<<<<<<<<<<<<<
6386  *     if size: size[0] = <MPI_Aint> buf.view.len
6387  *     return buf
6388  */
6389   __pyx_t_2 = (__pyx_v_base != 0);
6390   if (__pyx_t_2) {
6391     (__pyx_v_base[0]) = ((void *)__pyx_v_buf->view.buf);
6392     goto __pyx_L3;
6393   }
6394   __pyx_L3:;
6395 
6396   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":155
6397  *     cdef _p_buffer buf = getbuffer(ob, 0, 0)
6398  *     if base: base[0] = <void*>    buf.view.buf
6399  *     if size: size[0] = <MPI_Aint> buf.view.len             # <<<<<<<<<<<<<<
6400  *     return buf
6401  *
6402  */
6403   __pyx_t_2 = (__pyx_v_size != 0);
6404   if (__pyx_t_2) {
6405     (__pyx_v_size[0]) = ((MPI_Aint)__pyx_v_buf->view.len);
6406     goto __pyx_L4;
6407   }
6408   __pyx_L4:;
6409 
6410   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":156
6411  *     if base: base[0] = <void*>    buf.view.buf
6412  *     if size: size[0] = <MPI_Aint> buf.view.len
6413  *     return buf             # <<<<<<<<<<<<<<
6414  *
6415  * #------------------------------------------------------------------------------
6416  */
6417   __Pyx_XDECREF(((PyObject *)__pyx_r));
6418   __Pyx_INCREF(((PyObject *)__pyx_v_buf));
6419   __pyx_r = __pyx_v_buf;
6420   goto __pyx_L0;
6421 
6422   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); __Pyx_INCREF(Py_None);
6423   goto __pyx_L0;
6424   __pyx_L1_error:;
6425   __Pyx_XDECREF(__pyx_t_1);
6426   __Pyx_AddTraceback("mpi4py.MPI.getbuffer_w", __pyx_clineno, __pyx_lineno, __pyx_filename);
6427   __pyx_r = 0;
6428   __pyx_L0:;
6429   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
6430   __Pyx_XGIVEREF((PyObject *)__pyx_r);
6431   __Pyx_RefNannyFinishContext();
6432   return __pyx_r;
6433 }
6434 
6435 /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":17
6436  *     object PyMemoryView_FromBuffer(Py_buffer *)
6437  *
6438  * cdef inline object asmemory(object ob, void **base, MPI_Aint *size):             # <<<<<<<<<<<<<<
6439  *     cdef _p_buffer buf = getbuffer_w(ob, base, size)
6440  *     return buf
6441  */
6442 
__pyx_f_6mpi4py_3MPI_asmemory(PyObject * __pyx_v_ob,void ** __pyx_v_base,MPI_Aint * __pyx_v_size)6443 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asmemory(PyObject *__pyx_v_ob, void **__pyx_v_base, MPI_Aint *__pyx_v_size) {
6444   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
6445   PyObject *__pyx_r = NULL;
6446   __Pyx_RefNannyDeclarations
6447   PyObject *__pyx_t_1 = NULL;
6448   int __pyx_lineno = 0;
6449   const char *__pyx_filename = NULL;
6450   int __pyx_clineno = 0;
6451   __Pyx_RefNannySetupContext("asmemory");
6452 
6453   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":18
6454  *
6455  * cdef inline object asmemory(object ob, void **base, MPI_Aint *size):
6456  *     cdef _p_buffer buf = getbuffer_w(ob, base, size)             # <<<<<<<<<<<<<<
6457  *     return buf
6458  *
6459  */
6460   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_ob, __pyx_v_base, __pyx_v_size)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6461   __Pyx_GOTREF(__pyx_t_1);
6462   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
6463   __pyx_t_1 = 0;
6464 
6465   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":19
6466  * cdef inline object asmemory(object ob, void **base, MPI_Aint *size):
6467  *     cdef _p_buffer buf = getbuffer_w(ob, base, size)
6468  *     return buf             # <<<<<<<<<<<<<<
6469  *
6470  * cdef inline object tomemory(void *base, MPI_Aint size):
6471  */
6472   __Pyx_XDECREF(__pyx_r);
6473   __Pyx_INCREF(((PyObject *)__pyx_v_buf));
6474   __pyx_r = ((PyObject *)__pyx_v_buf);
6475   goto __pyx_L0;
6476 
6477   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6478   goto __pyx_L0;
6479   __pyx_L1_error:;
6480   __Pyx_XDECREF(__pyx_t_1);
6481   __Pyx_AddTraceback("mpi4py.MPI.asmemory", __pyx_clineno, __pyx_lineno, __pyx_filename);
6482   __pyx_r = 0;
6483   __pyx_L0:;
6484   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
6485   __Pyx_XGIVEREF(__pyx_r);
6486   __Pyx_RefNannyFinishContext();
6487   return __pyx_r;
6488 }
6489 
6490 /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":21
6491  *     return buf
6492  *
6493  * cdef inline object tomemory(void *base, MPI_Aint size):             # <<<<<<<<<<<<<<
6494  *     cdef _p_buffer buf = tobuffer(base, size, 0)
6495  *     return PyMemoryView_FromBuffer(&buf.view)
6496  */
6497 
__pyx_f_6mpi4py_3MPI_tomemory(void * __pyx_v_base,MPI_Aint __pyx_v_size)6498 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_tomemory(void *__pyx_v_base, MPI_Aint __pyx_v_size) {
6499   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_buf = 0;
6500   PyObject *__pyx_r = NULL;
6501   __Pyx_RefNannyDeclarations
6502   PyObject *__pyx_t_1 = NULL;
6503   int __pyx_lineno = 0;
6504   const char *__pyx_filename = NULL;
6505   int __pyx_clineno = 0;
6506   __Pyx_RefNannySetupContext("tomemory");
6507 
6508   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":22
6509  *
6510  * cdef inline object tomemory(void *base, MPI_Aint size):
6511  *     cdef _p_buffer buf = tobuffer(base, size, 0)             # <<<<<<<<<<<<<<
6512  *     return PyMemoryView_FromBuffer(&buf.view)
6513  *
6514  */
6515   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_tobuffer(__pyx_v_base, __pyx_v_size, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6516   __Pyx_GOTREF(__pyx_t_1);
6517   __pyx_v_buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
6518   __pyx_t_1 = 0;
6519 
6520   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":23
6521  * cdef inline object tomemory(void *base, MPI_Aint size):
6522  *     cdef _p_buffer buf = tobuffer(base, size, 0)
6523  *     return PyMemoryView_FromBuffer(&buf.view)             # <<<<<<<<<<<<<<
6524  *
6525  * #------------------------------------------------------------------------------
6526  */
6527   __Pyx_XDECREF(__pyx_r);
6528   __pyx_t_1 = PyMemoryView_FromBuffer((&__pyx_v_buf->view)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6529   __Pyx_GOTREF(__pyx_t_1);
6530   __pyx_r = __pyx_t_1;
6531   __pyx_t_1 = 0;
6532   goto __pyx_L0;
6533 
6534   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6535   goto __pyx_L0;
6536   __pyx_L1_error:;
6537   __Pyx_XDECREF(__pyx_t_1);
6538   __Pyx_AddTraceback("mpi4py.MPI.tomemory", __pyx_clineno, __pyx_lineno, __pyx_filename);
6539   __pyx_r = 0;
6540   __pyx_L0:;
6541   __Pyx_XDECREF((PyObject *)__pyx_v_buf);
6542   __Pyx_XGIVEREF(__pyx_r);
6543   __Pyx_RefNannyFinishContext();
6544   return __pyx_r;
6545 }
6546 
6547 /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":30
6548  *     object allocate"PyMPI_Allocate"(Py_ssize_t, size_t, void **)
6549  *
6550  * cdef inline object allocate_int(int n, int **p):             # <<<<<<<<<<<<<<
6551  *      cdef int *array = NULL
6552  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
6553  */
6554 
__pyx_f_6mpi4py_3MPI_allocate_int(int __pyx_v_n,int ** __pyx_v_p)6555 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_allocate_int(int __pyx_v_n, int **__pyx_v_p) {
6556   int *__pyx_v_array;
6557   PyObject *__pyx_v_ob = 0;
6558   PyObject *__pyx_r = NULL;
6559   __Pyx_RefNannyDeclarations
6560   PyObject *__pyx_t_1 = NULL;
6561   int __pyx_lineno = 0;
6562   const char *__pyx_filename = NULL;
6563   int __pyx_clineno = 0;
6564   __Pyx_RefNannySetupContext("allocate_int");
6565 
6566   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":31
6567  *
6568  * cdef inline object allocate_int(int n, int **p):
6569  *      cdef int *array = NULL             # <<<<<<<<<<<<<<
6570  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
6571  *      p[0] = array
6572  */
6573   __pyx_v_array = NULL;
6574 
6575   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":32
6576  * cdef inline object allocate_int(int n, int **p):
6577  *      cdef int *array = NULL
6578  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)             # <<<<<<<<<<<<<<
6579  *      p[0] = array
6580  *      return ob
6581  */
6582   __pyx_t_1 = PyMPI_Allocate(__pyx_v_n, (sizeof(int)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6583   __Pyx_GOTREF(__pyx_t_1);
6584   __pyx_v_ob = __pyx_t_1;
6585   __pyx_t_1 = 0;
6586 
6587   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":33
6588  *      cdef int *array = NULL
6589  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
6590  *      p[0] = array             # <<<<<<<<<<<<<<
6591  *      return ob
6592  *
6593  */
6594   (__pyx_v_p[0]) = __pyx_v_array;
6595 
6596   /* "/home/devel/mpi4py-1.3/src/MPI/asmemory.pxi":34
6597  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
6598  *      p[0] = array
6599  *      return ob             # <<<<<<<<<<<<<<
6600  *
6601  * #------------------------------------------------------------------------------
6602  */
6603   __Pyx_XDECREF(__pyx_r);
6604   __Pyx_INCREF(__pyx_v_ob);
6605   __pyx_r = __pyx_v_ob;
6606   goto __pyx_L0;
6607 
6608   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6609   goto __pyx_L0;
6610   __pyx_L1_error:;
6611   __Pyx_XDECREF(__pyx_t_1);
6612   __Pyx_AddTraceback("mpi4py.MPI.allocate_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
6613   __pyx_r = 0;
6614   __pyx_L0:;
6615   __Pyx_XDECREF(__pyx_v_ob);
6616   __Pyx_XGIVEREF(__pyx_r);
6617   __Pyx_RefNannyFinishContext();
6618   return __pyx_r;
6619 }
6620 
6621 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":10
6622  *     object PySequence_InPlaceRepeat(object, Py_ssize_t)
6623  *
6624  * cdef inline object newarray_int(Py_ssize_t n, int **p):             # <<<<<<<<<<<<<<
6625  *     cdef object ary = arraytype('i', [0])
6626  *     if n <= 0:
6627  */
6628 
__pyx_f_6mpi4py_3MPI_newarray_int(Py_ssize_t __pyx_v_n,int ** __pyx_v_p)6629 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_newarray_int(Py_ssize_t __pyx_v_n, int **__pyx_v_p) {
6630   PyObject *__pyx_v_ary = 0;
6631   int *__pyx_v_base;
6632   Py_ssize_t __pyx_v_size;
6633   PyObject *__pyx_r = NULL;
6634   __Pyx_RefNannyDeclarations
6635   PyObject *__pyx_t_1 = NULL;
6636   PyObject *__pyx_t_2 = NULL;
6637   int __pyx_t_3;
6638   int __pyx_t_4;
6639   int __pyx_lineno = 0;
6640   const char *__pyx_filename = NULL;
6641   int __pyx_clineno = 0;
6642   __Pyx_RefNannySetupContext("newarray_int");
6643 
6644   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":11
6645  *
6646  * cdef inline object newarray_int(Py_ssize_t n, int **p):
6647  *     cdef object ary = arraytype('i', [0])             # <<<<<<<<<<<<<<
6648  *     if n <= 0:
6649  *         PySequence_DelItem(ary, 0)
6650  */
6651   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6652   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
6653   __Pyx_INCREF(__pyx_int_0);
6654   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
6655   __Pyx_GIVEREF(__pyx_int_0);
6656   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6657   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
6658   __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
6659   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__i));
6660   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
6661   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_1));
6662   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
6663   __pyx_t_1 = 0;
6664   __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_6mpi4py_3MPI_arraytype), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6665   __Pyx_GOTREF(__pyx_t_1);
6666   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
6667   __pyx_v_ary = __pyx_t_1;
6668   __pyx_t_1 = 0;
6669 
6670   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":12
6671  * cdef inline object newarray_int(Py_ssize_t n, int **p):
6672  *     cdef object ary = arraytype('i', [0])
6673  *     if n <= 0:             # <<<<<<<<<<<<<<
6674  *         PySequence_DelItem(ary, 0)
6675  *     elif n > 1:
6676  */
6677   __pyx_t_3 = (__pyx_v_n <= 0);
6678   if (__pyx_t_3) {
6679 
6680     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":13
6681  *     cdef object ary = arraytype('i', [0])
6682  *     if n <= 0:
6683  *         PySequence_DelItem(ary, 0)             # <<<<<<<<<<<<<<
6684  *     elif n > 1:
6685  *         ary = PySequence_InPlaceRepeat(ary, n)
6686  */
6687     __pyx_t_4 = PySequence_DelItem(__pyx_v_ary, 0); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6688     goto __pyx_L3;
6689   }
6690 
6691   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":14
6692  *     if n <= 0:
6693  *         PySequence_DelItem(ary, 0)
6694  *     elif n > 1:             # <<<<<<<<<<<<<<
6695  *         ary = PySequence_InPlaceRepeat(ary, n)
6696  *     cdef int *base = NULL
6697  */
6698   __pyx_t_3 = (__pyx_v_n > 1);
6699   if (__pyx_t_3) {
6700 
6701     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":15
6702  *         PySequence_DelItem(ary, 0)
6703  *     elif n > 1:
6704  *         ary = PySequence_InPlaceRepeat(ary, n)             # <<<<<<<<<<<<<<
6705  *     cdef int *base = NULL
6706  *     cdef Py_ssize_t size = 0
6707  */
6708     __pyx_t_1 = PySequence_InPlaceRepeat(__pyx_v_ary, __pyx_v_n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6709     __Pyx_GOTREF(__pyx_t_1);
6710     __Pyx_DECREF(__pyx_v_ary);
6711     __pyx_v_ary = __pyx_t_1;
6712     __pyx_t_1 = 0;
6713     goto __pyx_L3;
6714   }
6715   __pyx_L3:;
6716 
6717   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":16
6718  *     elif n > 1:
6719  *         ary = PySequence_InPlaceRepeat(ary, n)
6720  *     cdef int *base = NULL             # <<<<<<<<<<<<<<
6721  *     cdef Py_ssize_t size = 0
6722  *     PyObject_AsWriteBuffer(ary, <void**>&base, &size)
6723  */
6724   __pyx_v_base = NULL;
6725 
6726   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":17
6727  *         ary = PySequence_InPlaceRepeat(ary, n)
6728  *     cdef int *base = NULL
6729  *     cdef Py_ssize_t size = 0             # <<<<<<<<<<<<<<
6730  *     PyObject_AsWriteBuffer(ary, <void**>&base, &size)
6731  *     if p != NULL: p[0] = base
6732  */
6733   __pyx_v_size = 0;
6734 
6735   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":18
6736  *     cdef int *base = NULL
6737  *     cdef Py_ssize_t size = 0
6738  *     PyObject_AsWriteBuffer(ary, <void**>&base, &size)             # <<<<<<<<<<<<<<
6739  *     if p != NULL: p[0] = base
6740  *     return ary
6741  */
6742   __pyx_t_4 = PyObject_AsWriteBuffer(__pyx_v_ary, ((void **)(&__pyx_v_base)), (&__pyx_v_size)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6743 
6744   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":19
6745  *     cdef Py_ssize_t size = 0
6746  *     PyObject_AsWriteBuffer(ary, <void**>&base, &size)
6747  *     if p != NULL: p[0] = base             # <<<<<<<<<<<<<<
6748  *     return ary
6749  *
6750  */
6751   __pyx_t_3 = (__pyx_v_p != NULL);
6752   if (__pyx_t_3) {
6753     (__pyx_v_p[0]) = __pyx_v_base;
6754     goto __pyx_L4;
6755   }
6756   __pyx_L4:;
6757 
6758   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":20
6759  *     PyObject_AsWriteBuffer(ary, <void**>&base, &size)
6760  *     if p != NULL: p[0] = base
6761  *     return ary             # <<<<<<<<<<<<<<
6762  *
6763  * cdef inline object getarray_int(object ob, int *n, int **p):
6764  */
6765   __Pyx_XDECREF(__pyx_r);
6766   __Pyx_INCREF(__pyx_v_ary);
6767   __pyx_r = __pyx_v_ary;
6768   goto __pyx_L0;
6769 
6770   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6771   goto __pyx_L0;
6772   __pyx_L1_error:;
6773   __Pyx_XDECREF(__pyx_t_1);
6774   __Pyx_XDECREF(__pyx_t_2);
6775   __Pyx_AddTraceback("mpi4py.MPI.newarray_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
6776   __pyx_r = 0;
6777   __pyx_L0:;
6778   __Pyx_XDECREF(__pyx_v_ary);
6779   __Pyx_XGIVEREF(__pyx_r);
6780   __Pyx_RefNannyFinishContext();
6781   return __pyx_r;
6782 }
6783 
6784 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":22
6785  *     return ary
6786  *
6787  * cdef inline object getarray_int(object ob, int *n, int **p):             # <<<<<<<<<<<<<<
6788  *     cdef int *base = NULL
6789  *     cdef Py_ssize_t i = 0, size = len(ob)
6790  */
6791 
__pyx_f_6mpi4py_3MPI_getarray_int(PyObject * __pyx_v_ob,int * __pyx_v_n,int ** __pyx_v_p)6792 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_getarray_int(PyObject *__pyx_v_ob, int *__pyx_v_n, int **__pyx_v_p) {
6793   int *__pyx_v_base;
6794   Py_ssize_t __pyx_v_i;
6795   Py_ssize_t __pyx_v_size;
6796   PyObject *__pyx_v_ary = 0;
6797   PyObject *__pyx_r = NULL;
6798   __Pyx_RefNannyDeclarations
6799   Py_ssize_t __pyx_t_1;
6800   PyObject *__pyx_t_2 = NULL;
6801   int __pyx_t_3;
6802   int __pyx_t_4;
6803   int __pyx_lineno = 0;
6804   const char *__pyx_filename = NULL;
6805   int __pyx_clineno = 0;
6806   __Pyx_RefNannySetupContext("getarray_int");
6807 
6808   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":23
6809  *
6810  * cdef inline object getarray_int(object ob, int *n, int **p):
6811  *     cdef int *base = NULL             # <<<<<<<<<<<<<<
6812  *     cdef Py_ssize_t i = 0, size = len(ob)
6813  *     cdef object ary = newarray_int(size, &base)
6814  */
6815   __pyx_v_base = NULL;
6816 
6817   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":24
6818  * cdef inline object getarray_int(object ob, int *n, int **p):
6819  *     cdef int *base = NULL
6820  *     cdef Py_ssize_t i = 0, size = len(ob)             # <<<<<<<<<<<<<<
6821  *     cdef object ary = newarray_int(size, &base)
6822  *     for i from 0 <= i < size:
6823  */
6824   __pyx_v_i = 0;
6825   __pyx_t_1 = PyObject_Length(__pyx_v_ob); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6826   __pyx_v_size = __pyx_t_1;
6827 
6828   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":25
6829  *     cdef int *base = NULL
6830  *     cdef Py_ssize_t i = 0, size = len(ob)
6831  *     cdef object ary = newarray_int(size, &base)             # <<<<<<<<<<<<<<
6832  *     for i from 0 <= i < size:
6833  *         base[i] = ob[i]
6834  */
6835   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_size, (&__pyx_v_base)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6836   __Pyx_GOTREF(__pyx_t_2);
6837   __pyx_v_ary = __pyx_t_2;
6838   __pyx_t_2 = 0;
6839 
6840   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":26
6841  *     cdef Py_ssize_t i = 0, size = len(ob)
6842  *     cdef object ary = newarray_int(size, &base)
6843  *     for i from 0 <= i < size:             # <<<<<<<<<<<<<<
6844  *         base[i] = ob[i]
6845  *     if n != NULL: n[0] = <int> size # XXX overflow?
6846  */
6847   __pyx_t_1 = __pyx_v_size;
6848   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
6849 
6850     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":27
6851  *     cdef object ary = newarray_int(size, &base)
6852  *     for i from 0 <= i < size:
6853  *         base[i] = ob[i]             # <<<<<<<<<<<<<<
6854  *     if n != NULL: n[0] = <int> size # XXX overflow?
6855  *     if p != NULL: p[0] = base
6856  */
6857     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ob, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6858     __Pyx_GOTREF(__pyx_t_2);
6859     __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6860     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6861     (__pyx_v_base[__pyx_v_i]) = __pyx_t_3;
6862   }
6863 
6864   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":28
6865  *     for i from 0 <= i < size:
6866  *         base[i] = ob[i]
6867  *     if n != NULL: n[0] = <int> size # XXX overflow?             # <<<<<<<<<<<<<<
6868  *     if p != NULL: p[0] = base
6869  *     return ary
6870  */
6871   __pyx_t_4 = (__pyx_v_n != NULL);
6872   if (__pyx_t_4) {
6873     (__pyx_v_n[0]) = ((int)__pyx_v_size);
6874     goto __pyx_L5;
6875   }
6876   __pyx_L5:;
6877 
6878   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":29
6879  *         base[i] = ob[i]
6880  *     if n != NULL: n[0] = <int> size # XXX overflow?
6881  *     if p != NULL: p[0] = base             # <<<<<<<<<<<<<<
6882  *     return ary
6883  *
6884  */
6885   __pyx_t_4 = (__pyx_v_p != NULL);
6886   if (__pyx_t_4) {
6887     (__pyx_v_p[0]) = __pyx_v_base;
6888     goto __pyx_L6;
6889   }
6890   __pyx_L6:;
6891 
6892   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":30
6893  *     if n != NULL: n[0] = <int> size # XXX overflow?
6894  *     if p != NULL: p[0] = base
6895  *     return ary             # <<<<<<<<<<<<<<
6896  *
6897  * cdef inline object chkarray_int(object ob, Py_ssize_t size, int **p):
6898  */
6899   __Pyx_XDECREF(__pyx_r);
6900   __Pyx_INCREF(__pyx_v_ary);
6901   __pyx_r = __pyx_v_ary;
6902   goto __pyx_L0;
6903 
6904   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6905   goto __pyx_L0;
6906   __pyx_L1_error:;
6907   __Pyx_XDECREF(__pyx_t_2);
6908   __Pyx_AddTraceback("mpi4py.MPI.getarray_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
6909   __pyx_r = 0;
6910   __pyx_L0:;
6911   __Pyx_XDECREF(__pyx_v_ary);
6912   __Pyx_XGIVEREF(__pyx_r);
6913   __Pyx_RefNannyFinishContext();
6914   return __pyx_r;
6915 }
6916 
6917 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":32
6918  *     return ary
6919  *
6920  * cdef inline object chkarray_int(object ob, Py_ssize_t size, int **p):             # <<<<<<<<<<<<<<
6921  *     cdef int n = 0
6922  *     cdef object ary = getarray_int(ob, &n, p)
6923  */
6924 
__pyx_f_6mpi4py_3MPI_chkarray_int(PyObject * __pyx_v_ob,Py_ssize_t __pyx_v_size,int ** __pyx_v_p)6925 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_chkarray_int(PyObject *__pyx_v_ob, Py_ssize_t __pyx_v_size, int **__pyx_v_p) {
6926   int __pyx_v_n;
6927   PyObject *__pyx_v_ary = 0;
6928   PyObject *__pyx_r = NULL;
6929   __Pyx_RefNannyDeclarations
6930   PyObject *__pyx_t_1 = NULL;
6931   int __pyx_t_2;
6932   PyObject *__pyx_t_3 = NULL;
6933   PyObject *__pyx_t_4 = NULL;
6934   int __pyx_lineno = 0;
6935   const char *__pyx_filename = NULL;
6936   int __pyx_clineno = 0;
6937   __Pyx_RefNannySetupContext("chkarray_int");
6938 
6939   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":33
6940  *
6941  * cdef inline object chkarray_int(object ob, Py_ssize_t size, int **p):
6942  *     cdef int n = 0             # <<<<<<<<<<<<<<
6943  *     cdef object ary = getarray_int(ob, &n, p)
6944  *     if size != <Py_ssize_t>n: raise ValueError(
6945  */
6946   __pyx_v_n = 0;
6947 
6948   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":34
6949  * cdef inline object chkarray_int(object ob, Py_ssize_t size, int **p):
6950  *     cdef int n = 0
6951  *     cdef object ary = getarray_int(ob, &n, p)             # <<<<<<<<<<<<<<
6952  *     if size != <Py_ssize_t>n: raise ValueError(
6953  *         "expecting %d items, got %d" % (size, n))
6954  */
6955   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_ob, (&__pyx_v_n), __pyx_v_p); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6956   __Pyx_GOTREF(__pyx_t_1);
6957   __pyx_v_ary = __pyx_t_1;
6958   __pyx_t_1 = 0;
6959 
6960   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":35
6961  *     cdef int n = 0
6962  *     cdef object ary = getarray_int(ob, &n, p)
6963  *     if size != <Py_ssize_t>n: raise ValueError(             # <<<<<<<<<<<<<<
6964  *         "expecting %d items, got %d" % (size, n))
6965  *     return ary
6966  */
6967   __pyx_t_2 = (__pyx_v_size != ((Py_ssize_t)__pyx_v_n));
6968   if (__pyx_t_2) {
6969 
6970     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":36
6971  *     cdef object ary = getarray_int(ob, &n, p)
6972  *     if size != <Py_ssize_t>n: raise ValueError(
6973  *         "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
6974  *     return ary
6975  *
6976  */
6977     __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6978     __Pyx_GOTREF(__pyx_t_1);
6979     __pyx_t_3 = PyInt_FromLong(__pyx_v_n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6980     __Pyx_GOTREF(__pyx_t_3);
6981     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6982     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
6983     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
6984     __Pyx_GIVEREF(__pyx_t_1);
6985     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
6986     __Pyx_GIVEREF(__pyx_t_3);
6987     __pyx_t_1 = 0;
6988     __pyx_t_3 = 0;
6989     __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6990     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
6991     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
6992     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6993     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
6994     PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
6995     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
6996     __pyx_t_3 = 0;
6997     __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
6998     __Pyx_GOTREF(__pyx_t_3);
6999     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
7000     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
7001     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7002     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7003     goto __pyx_L3;
7004   }
7005   __pyx_L3:;
7006 
7007   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":37
7008  *     if size != <Py_ssize_t>n: raise ValueError(
7009  *         "expecting %d items, got %d" % (size, n))
7010  *     return ary             # <<<<<<<<<<<<<<
7011  *
7012  * # -----------------------------------------------------------------------------
7013  */
7014   __Pyx_XDECREF(__pyx_r);
7015   __Pyx_INCREF(__pyx_v_ary);
7016   __pyx_r = __pyx_v_ary;
7017   goto __pyx_L0;
7018 
7019   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7020   goto __pyx_L0;
7021   __pyx_L1_error:;
7022   __Pyx_XDECREF(__pyx_t_1);
7023   __Pyx_XDECREF(__pyx_t_3);
7024   __Pyx_XDECREF(__pyx_t_4);
7025   __Pyx_AddTraceback("mpi4py.MPI.chkarray_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
7026   __pyx_r = 0;
7027   __pyx_L0:;
7028   __Pyx_XDECREF(__pyx_v_ary);
7029   __Pyx_XGIVEREF(__pyx_r);
7030   __Pyx_RefNannyFinishContext();
7031   return __pyx_r;
7032 }
7033 
7034 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":41
7035  * # -----------------------------------------------------------------------------
7036  *
7037  * cdef inline object asarray_int(object sequence,             # <<<<<<<<<<<<<<
7038  *                                Py_ssize_t size, int **p):
7039  *      cdef int *array = NULL
7040  */
7041 
__pyx_f_6mpi4py_3MPI_asarray_int(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,int ** __pyx_v_p)7042 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_int(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, int **__pyx_v_p) {
7043   int *__pyx_v_array;
7044   Py_ssize_t __pyx_v_i;
7045   Py_ssize_t __pyx_v_n;
7046   PyObject *__pyx_v_ob = 0;
7047   PyObject *__pyx_r = NULL;
7048   __Pyx_RefNannyDeclarations
7049   Py_ssize_t __pyx_t_1;
7050   int __pyx_t_2;
7051   PyObject *__pyx_t_3 = NULL;
7052   PyObject *__pyx_t_4 = NULL;
7053   PyObject *__pyx_t_5 = NULL;
7054   int __pyx_t_6;
7055   int __pyx_lineno = 0;
7056   const char *__pyx_filename = NULL;
7057   int __pyx_clineno = 0;
7058   __Pyx_RefNannySetupContext("asarray_int");
7059 
7060   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":43
7061  * cdef inline object asarray_int(object sequence,
7062  *                                Py_ssize_t size, int **p):
7063  *      cdef int *array = NULL             # <<<<<<<<<<<<<<
7064  *      cdef Py_ssize_t i = 0, n = len(sequence)
7065  *      if size != n: raise ValueError(
7066  */
7067   __pyx_v_array = NULL;
7068 
7069   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":44
7070  *                                Py_ssize_t size, int **p):
7071  *      cdef int *array = NULL
7072  *      cdef Py_ssize_t i = 0, n = len(sequence)             # <<<<<<<<<<<<<<
7073  *      if size != n: raise ValueError(
7074  *          "expecting %d items, got %d" % (size, n))
7075  */
7076   __pyx_v_i = 0;
7077   __pyx_t_1 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7078   __pyx_v_n = __pyx_t_1;
7079 
7080   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":45
7081  *      cdef int *array = NULL
7082  *      cdef Py_ssize_t i = 0, n = len(sequence)
7083  *      if size != n: raise ValueError(             # <<<<<<<<<<<<<<
7084  *          "expecting %d items, got %d" % (size, n))
7085  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
7086  */
7087   __pyx_t_2 = (__pyx_v_size != __pyx_v_n);
7088   if (__pyx_t_2) {
7089 
7090     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":46
7091  *      cdef Py_ssize_t i = 0, n = len(sequence)
7092  *      if size != n: raise ValueError(
7093  *          "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
7094  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
7095  *      for i from 0 <= i < n:
7096  */
7097     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7098     __Pyx_GOTREF(__pyx_t_3);
7099     __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7100     __Pyx_GOTREF(__pyx_t_4);
7101     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7102     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7103     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
7104     __Pyx_GIVEREF(__pyx_t_3);
7105     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
7106     __Pyx_GIVEREF(__pyx_t_4);
7107     __pyx_t_3 = 0;
7108     __pyx_t_4 = 0;
7109     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7110     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
7111     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7112     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7113     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7114     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
7115     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
7116     __pyx_t_4 = 0;
7117     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7118     __Pyx_GOTREF(__pyx_t_4);
7119     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7120     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
7121     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7122     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7123     goto __pyx_L3;
7124   }
7125   __pyx_L3:;
7126 
7127   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":47
7128  *      if size != n: raise ValueError(
7129  *          "expecting %d items, got %d" % (size, n))
7130  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)             # <<<<<<<<<<<<<<
7131  *      for i from 0 <= i < n:
7132  *          array[i] = sequence[i]
7133  */
7134   __pyx_t_4 = PyMPI_Allocate(__pyx_v_n, (sizeof(int)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7135   __Pyx_GOTREF(__pyx_t_4);
7136   __pyx_v_ob = __pyx_t_4;
7137   __pyx_t_4 = 0;
7138 
7139   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":48
7140  *          "expecting %d items, got %d" % (size, n))
7141  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
7142  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
7143  *          array[i] = sequence[i]
7144  *      p[0] = array
7145  */
7146   __pyx_t_1 = __pyx_v_n;
7147   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
7148 
7149     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":49
7150  *      cdef object ob = allocate(n, sizeof(int), <void**>&array)
7151  *      for i from 0 <= i < n:
7152  *          array[i] = sequence[i]             # <<<<<<<<<<<<<<
7153  *      p[0] = array
7154  *      return ob
7155  */
7156     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7157     __Pyx_GOTREF(__pyx_t_4);
7158     __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7159     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7160     (__pyx_v_array[__pyx_v_i]) = __pyx_t_6;
7161   }
7162 
7163   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":50
7164  *      for i from 0 <= i < n:
7165  *          array[i] = sequence[i]
7166  *      p[0] = array             # <<<<<<<<<<<<<<
7167  *      return ob
7168  *
7169  */
7170   (__pyx_v_p[0]) = __pyx_v_array;
7171 
7172   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":51
7173  *          array[i] = sequence[i]
7174  *      p[0] = array
7175  *      return ob             # <<<<<<<<<<<<<<
7176  *
7177  * cdef inline object asarray_Aint(object sequence,
7178  */
7179   __Pyx_XDECREF(__pyx_r);
7180   __Pyx_INCREF(__pyx_v_ob);
7181   __pyx_r = __pyx_v_ob;
7182   goto __pyx_L0;
7183 
7184   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7185   goto __pyx_L0;
7186   __pyx_L1_error:;
7187   __Pyx_XDECREF(__pyx_t_3);
7188   __Pyx_XDECREF(__pyx_t_4);
7189   __Pyx_XDECREF(__pyx_t_5);
7190   __Pyx_AddTraceback("mpi4py.MPI.asarray_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
7191   __pyx_r = 0;
7192   __pyx_L0:;
7193   __Pyx_XDECREF(__pyx_v_ob);
7194   __Pyx_XGIVEREF(__pyx_r);
7195   __Pyx_RefNannyFinishContext();
7196   return __pyx_r;
7197 }
7198 
7199 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":53
7200  *      return ob
7201  *
7202  * cdef inline object asarray_Aint(object sequence,             # <<<<<<<<<<<<<<
7203  *                                 Py_ssize_t size, MPI_Aint **p):
7204  *      cdef MPI_Aint *array = NULL
7205  */
7206 
__pyx_f_6mpi4py_3MPI_asarray_Aint(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,MPI_Aint ** __pyx_v_p)7207 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Aint(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, MPI_Aint **__pyx_v_p) {
7208   MPI_Aint *__pyx_v_array;
7209   Py_ssize_t __pyx_v_i;
7210   Py_ssize_t __pyx_v_n;
7211   PyObject *__pyx_v_ob = 0;
7212   PyObject *__pyx_r = NULL;
7213   __Pyx_RefNannyDeclarations
7214   Py_ssize_t __pyx_t_1;
7215   int __pyx_t_2;
7216   PyObject *__pyx_t_3 = NULL;
7217   PyObject *__pyx_t_4 = NULL;
7218   PyObject *__pyx_t_5 = NULL;
7219   MPI_Aint __pyx_t_6;
7220   int __pyx_lineno = 0;
7221   const char *__pyx_filename = NULL;
7222   int __pyx_clineno = 0;
7223   __Pyx_RefNannySetupContext("asarray_Aint");
7224 
7225   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":55
7226  * cdef inline object asarray_Aint(object sequence,
7227  *                                 Py_ssize_t size, MPI_Aint **p):
7228  *      cdef MPI_Aint *array = NULL             # <<<<<<<<<<<<<<
7229  *      cdef Py_ssize_t i = 0, n = len(sequence)
7230  *      if size != n: raise ValueError(
7231  */
7232   __pyx_v_array = NULL;
7233 
7234   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":56
7235  *                                 Py_ssize_t size, MPI_Aint **p):
7236  *      cdef MPI_Aint *array = NULL
7237  *      cdef Py_ssize_t i = 0, n = len(sequence)             # <<<<<<<<<<<<<<
7238  *      if size != n: raise ValueError(
7239  *          "expecting %d items, got %d" % (size, n))
7240  */
7241   __pyx_v_i = 0;
7242   __pyx_t_1 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7243   __pyx_v_n = __pyx_t_1;
7244 
7245   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":57
7246  *      cdef MPI_Aint *array = NULL
7247  *      cdef Py_ssize_t i = 0, n = len(sequence)
7248  *      if size != n: raise ValueError(             # <<<<<<<<<<<<<<
7249  *          "expecting %d items, got %d" % (size, n))
7250  *      cdef object ob = allocate(n, sizeof(MPI_Aint), <void**>&array)
7251  */
7252   __pyx_t_2 = (__pyx_v_size != __pyx_v_n);
7253   if (__pyx_t_2) {
7254 
7255     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":58
7256  *      cdef Py_ssize_t i = 0, n = len(sequence)
7257  *      if size != n: raise ValueError(
7258  *          "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
7259  *      cdef object ob = allocate(n, sizeof(MPI_Aint), <void**>&array)
7260  *      for i from 0 <= i < n:
7261  */
7262     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7263     __Pyx_GOTREF(__pyx_t_3);
7264     __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7265     __Pyx_GOTREF(__pyx_t_4);
7266     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7267     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7268     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
7269     __Pyx_GIVEREF(__pyx_t_3);
7270     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
7271     __Pyx_GIVEREF(__pyx_t_4);
7272     __pyx_t_3 = 0;
7273     __pyx_t_4 = 0;
7274     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7275     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
7276     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7277     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7278     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7279     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
7280     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
7281     __pyx_t_4 = 0;
7282     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7283     __Pyx_GOTREF(__pyx_t_4);
7284     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7285     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
7286     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7287     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7288     goto __pyx_L3;
7289   }
7290   __pyx_L3:;
7291 
7292   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":59
7293  *      if size != n: raise ValueError(
7294  *          "expecting %d items, got %d" % (size, n))
7295  *      cdef object ob = allocate(n, sizeof(MPI_Aint), <void**>&array)             # <<<<<<<<<<<<<<
7296  *      for i from 0 <= i < n:
7297  *          array[i] = sequence[i]
7298  */
7299   __pyx_t_4 = PyMPI_Allocate(__pyx_v_n, (sizeof(MPI_Aint)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7300   __Pyx_GOTREF(__pyx_t_4);
7301   __pyx_v_ob = __pyx_t_4;
7302   __pyx_t_4 = 0;
7303 
7304   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":60
7305  *          "expecting %d items, got %d" % (size, n))
7306  *      cdef object ob = allocate(n, sizeof(MPI_Aint), <void**>&array)
7307  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
7308  *          array[i] = sequence[i]
7309  *      p[0] = array
7310  */
7311   __pyx_t_1 = __pyx_v_n;
7312   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
7313 
7314     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":61
7315  *      cdef object ob = allocate(n, sizeof(MPI_Aint), <void**>&array)
7316  *      for i from 0 <= i < n:
7317  *          array[i] = sequence[i]             # <<<<<<<<<<<<<<
7318  *      p[0] = array
7319  *      return ob
7320  */
7321     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7322     __Pyx_GOTREF(__pyx_t_4);
7323     __pyx_t_6 = __Pyx_PyInt_from_py_MPI_Aint(__pyx_t_4); if (unlikely((__pyx_t_6 == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7324     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7325     (__pyx_v_array[__pyx_v_i]) = __pyx_t_6;
7326   }
7327 
7328   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":62
7329  *      for i from 0 <= i < n:
7330  *          array[i] = sequence[i]
7331  *      p[0] = array             # <<<<<<<<<<<<<<
7332  *      return ob
7333  *
7334  */
7335   (__pyx_v_p[0]) = __pyx_v_array;
7336 
7337   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":63
7338  *          array[i] = sequence[i]
7339  *      p[0] = array
7340  *      return ob             # <<<<<<<<<<<<<<
7341  *
7342  * cdef inline object asarray_Datatype(object sequence,
7343  */
7344   __Pyx_XDECREF(__pyx_r);
7345   __Pyx_INCREF(__pyx_v_ob);
7346   __pyx_r = __pyx_v_ob;
7347   goto __pyx_L0;
7348 
7349   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7350   goto __pyx_L0;
7351   __pyx_L1_error:;
7352   __Pyx_XDECREF(__pyx_t_3);
7353   __Pyx_XDECREF(__pyx_t_4);
7354   __Pyx_XDECREF(__pyx_t_5);
7355   __Pyx_AddTraceback("mpi4py.MPI.asarray_Aint", __pyx_clineno, __pyx_lineno, __pyx_filename);
7356   __pyx_r = 0;
7357   __pyx_L0:;
7358   __Pyx_XDECREF(__pyx_v_ob);
7359   __Pyx_XGIVEREF(__pyx_r);
7360   __Pyx_RefNannyFinishContext();
7361   return __pyx_r;
7362 }
7363 
7364 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":65
7365  *      return ob
7366  *
7367  * cdef inline object asarray_Datatype(object sequence,             # <<<<<<<<<<<<<<
7368  *                                     Py_ssize_t size, MPI_Datatype **p):
7369  *      cdef MPI_Datatype *array = NULL
7370  */
7371 
__pyx_f_6mpi4py_3MPI_asarray_Datatype(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,MPI_Datatype ** __pyx_v_p)7372 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Datatype(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, MPI_Datatype **__pyx_v_p) {
7373   MPI_Datatype *__pyx_v_array;
7374   Py_ssize_t __pyx_v_i;
7375   Py_ssize_t __pyx_v_n;
7376   PyObject *__pyx_v_ob = 0;
7377   PyObject *__pyx_r = NULL;
7378   __Pyx_RefNannyDeclarations
7379   Py_ssize_t __pyx_t_1;
7380   int __pyx_t_2;
7381   PyObject *__pyx_t_3 = NULL;
7382   PyObject *__pyx_t_4 = NULL;
7383   PyObject *__pyx_t_5 = NULL;
7384   int __pyx_lineno = 0;
7385   const char *__pyx_filename = NULL;
7386   int __pyx_clineno = 0;
7387   __Pyx_RefNannySetupContext("asarray_Datatype");
7388 
7389   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":67
7390  * cdef inline object asarray_Datatype(object sequence,
7391  *                                     Py_ssize_t size, MPI_Datatype **p):
7392  *      cdef MPI_Datatype *array = NULL             # <<<<<<<<<<<<<<
7393  *      cdef Py_ssize_t i = 0, n = len(sequence)
7394  *      if size != n: raise ValueError(
7395  */
7396   __pyx_v_array = NULL;
7397 
7398   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":68
7399  *                                     Py_ssize_t size, MPI_Datatype **p):
7400  *      cdef MPI_Datatype *array = NULL
7401  *      cdef Py_ssize_t i = 0, n = len(sequence)             # <<<<<<<<<<<<<<
7402  *      if size != n: raise ValueError(
7403  *          "expecting %d items, got %d" % (size, n))
7404  */
7405   __pyx_v_i = 0;
7406   __pyx_t_1 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7407   __pyx_v_n = __pyx_t_1;
7408 
7409   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":69
7410  *      cdef MPI_Datatype *array = NULL
7411  *      cdef Py_ssize_t i = 0, n = len(sequence)
7412  *      if size != n: raise ValueError(             # <<<<<<<<<<<<<<
7413  *          "expecting %d items, got %d" % (size, n))
7414  *      cdef object ob = allocate(n, sizeof(MPI_Datatype), <void**>&array)
7415  */
7416   __pyx_t_2 = (__pyx_v_size != __pyx_v_n);
7417   if (__pyx_t_2) {
7418 
7419     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":70
7420  *      cdef Py_ssize_t i = 0, n = len(sequence)
7421  *      if size != n: raise ValueError(
7422  *          "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
7423  *      cdef object ob = allocate(n, sizeof(MPI_Datatype), <void**>&array)
7424  *      for i from 0 <= i < n:
7425  */
7426     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7427     __Pyx_GOTREF(__pyx_t_3);
7428     __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7429     __Pyx_GOTREF(__pyx_t_4);
7430     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7431     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7432     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
7433     __Pyx_GIVEREF(__pyx_t_3);
7434     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
7435     __Pyx_GIVEREF(__pyx_t_4);
7436     __pyx_t_3 = 0;
7437     __pyx_t_4 = 0;
7438     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7439     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
7440     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7441     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7442     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7443     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
7444     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
7445     __pyx_t_4 = 0;
7446     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7447     __Pyx_GOTREF(__pyx_t_4);
7448     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7449     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
7450     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7451     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7452     goto __pyx_L3;
7453   }
7454   __pyx_L3:;
7455 
7456   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":71
7457  *      if size != n: raise ValueError(
7458  *          "expecting %d items, got %d" % (size, n))
7459  *      cdef object ob = allocate(n, sizeof(MPI_Datatype), <void**>&array)             # <<<<<<<<<<<<<<
7460  *      for i from 0 <= i < n:
7461  *          array[i] = (<Datatype?>sequence[i]).ob_mpi
7462  */
7463   __pyx_t_4 = PyMPI_Allocate(__pyx_v_n, (sizeof(MPI_Datatype)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7464   __Pyx_GOTREF(__pyx_t_4);
7465   __pyx_v_ob = __pyx_t_4;
7466   __pyx_t_4 = 0;
7467 
7468   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":72
7469  *          "expecting %d items, got %d" % (size, n))
7470  *      cdef object ob = allocate(n, sizeof(MPI_Datatype), <void**>&array)
7471  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
7472  *          array[i] = (<Datatype?>sequence[i]).ob_mpi
7473  *      p[0] = array
7474  */
7475   __pyx_t_1 = __pyx_v_n;
7476   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
7477 
7478     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":73
7479  *      cdef object ob = allocate(n, sizeof(MPI_Datatype), <void**>&array)
7480  *      for i from 0 <= i < n:
7481  *          array[i] = (<Datatype?>sequence[i]).ob_mpi             # <<<<<<<<<<<<<<
7482  *      p[0] = array
7483  *      return ob
7484  */
7485     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7486     __Pyx_GOTREF(__pyx_t_4);
7487     if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_6mpi4py_3MPI_Datatype)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7488     (__pyx_v_array[__pyx_v_i]) = ((struct PyMPIDatatypeObject *)__pyx_t_4)->ob_mpi;
7489     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7490   }
7491 
7492   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":74
7493  *      for i from 0 <= i < n:
7494  *          array[i] = (<Datatype?>sequence[i]).ob_mpi
7495  *      p[0] = array             # <<<<<<<<<<<<<<
7496  *      return ob
7497  *
7498  */
7499   (__pyx_v_p[0]) = __pyx_v_array;
7500 
7501   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":75
7502  *          array[i] = (<Datatype?>sequence[i]).ob_mpi
7503  *      p[0] = array
7504  *      return ob             # <<<<<<<<<<<<<<
7505  *
7506  * cdef inline object asarray_Info(object sequence,
7507  */
7508   __Pyx_XDECREF(__pyx_r);
7509   __Pyx_INCREF(__pyx_v_ob);
7510   __pyx_r = __pyx_v_ob;
7511   goto __pyx_L0;
7512 
7513   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7514   goto __pyx_L0;
7515   __pyx_L1_error:;
7516   __Pyx_XDECREF(__pyx_t_3);
7517   __Pyx_XDECREF(__pyx_t_4);
7518   __Pyx_XDECREF(__pyx_t_5);
7519   __Pyx_AddTraceback("mpi4py.MPI.asarray_Datatype", __pyx_clineno, __pyx_lineno, __pyx_filename);
7520   __pyx_r = 0;
7521   __pyx_L0:;
7522   __Pyx_XDECREF(__pyx_v_ob);
7523   __Pyx_XGIVEREF(__pyx_r);
7524   __Pyx_RefNannyFinishContext();
7525   return __pyx_r;
7526 }
7527 
7528 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":77
7529  *      return ob
7530  *
7531  * cdef inline object asarray_Info(object sequence,             # <<<<<<<<<<<<<<
7532  *                                 Py_ssize_t size, MPI_Info **p):
7533  *      cdef MPI_Info *array = NULL
7534  */
7535 
__pyx_f_6mpi4py_3MPI_asarray_Info(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,MPI_Info ** __pyx_v_p)7536 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_Info(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, MPI_Info **__pyx_v_p) {
7537   MPI_Info *__pyx_v_array;
7538   Py_ssize_t __pyx_v_i;
7539   Py_ssize_t __pyx_v_n;
7540   MPI_Info __pyx_v_info;
7541   PyObject *__pyx_v_ob = 0;
7542   PyObject *__pyx_r = NULL;
7543   __Pyx_RefNannyDeclarations
7544   int __pyx_t_1;
7545   PyObject *__pyx_t_2 = NULL;
7546   int __pyx_t_3;
7547   int __pyx_t_4;
7548   Py_ssize_t __pyx_t_5;
7549   PyObject *__pyx_t_6 = NULL;
7550   PyObject *__pyx_t_7 = NULL;
7551   int __pyx_lineno = 0;
7552   const char *__pyx_filename = NULL;
7553   int __pyx_clineno = 0;
7554   __Pyx_RefNannySetupContext("asarray_Info");
7555 
7556   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":79
7557  * cdef inline object asarray_Info(object sequence,
7558  *                                 Py_ssize_t size, MPI_Info **p):
7559  *      cdef MPI_Info *array = NULL             # <<<<<<<<<<<<<<
7560  *      cdef Py_ssize_t i = 0, n = size
7561  *      cdef MPI_Info info = MPI_INFO_NULL
7562  */
7563   __pyx_v_array = NULL;
7564 
7565   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":80
7566  *                                 Py_ssize_t size, MPI_Info **p):
7567  *      cdef MPI_Info *array = NULL
7568  *      cdef Py_ssize_t i = 0, n = size             # <<<<<<<<<<<<<<
7569  *      cdef MPI_Info info = MPI_INFO_NULL
7570  *      cdef object ob
7571  */
7572   __pyx_v_i = 0;
7573   __pyx_v_n = __pyx_v_size;
7574 
7575   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":81
7576  *      cdef MPI_Info *array = NULL
7577  *      cdef Py_ssize_t i = 0, n = size
7578  *      cdef MPI_Info info = MPI_INFO_NULL             # <<<<<<<<<<<<<<
7579  *      cdef object ob
7580  *      if sequence is None or isinstance(sequence, Info):
7581  */
7582   __pyx_v_info = MPI_INFO_NULL;
7583 
7584   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":83
7585  *      cdef MPI_Info info = MPI_INFO_NULL
7586  *      cdef object ob
7587  *      if sequence is None or isinstance(sequence, Info):             # <<<<<<<<<<<<<<
7588  *          if sequence is not None:
7589  *              info = (<Info?>sequence).ob_mpi
7590  */
7591   __pyx_t_1 = (__pyx_v_sequence == Py_None);
7592   if (!__pyx_t_1) {
7593     __pyx_t_2 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info));
7594     __Pyx_INCREF(__pyx_t_2);
7595     __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_sequence, __pyx_t_2);
7596     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7597     __pyx_t_4 = __pyx_t_3;
7598   } else {
7599     __pyx_t_4 = __pyx_t_1;
7600   }
7601   if (__pyx_t_4) {
7602 
7603     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":84
7604  *      cdef object ob
7605  *      if sequence is None or isinstance(sequence, Info):
7606  *          if sequence is not None:             # <<<<<<<<<<<<<<
7607  *              info = (<Info?>sequence).ob_mpi
7608  *          ob = allocate(size, sizeof(MPI_Info), <void**>&array)
7609  */
7610     __pyx_t_4 = (__pyx_v_sequence != Py_None);
7611     if (__pyx_t_4) {
7612 
7613       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":85
7614  *      if sequence is None or isinstance(sequence, Info):
7615  *          if sequence is not None:
7616  *              info = (<Info?>sequence).ob_mpi             # <<<<<<<<<<<<<<
7617  *          ob = allocate(size, sizeof(MPI_Info), <void**>&array)
7618  *          for i from 0 <= i < size:
7619  */
7620       if (!(likely(__Pyx_TypeTest(__pyx_v_sequence, __pyx_ptype_6mpi4py_3MPI_Info)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7621       __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_v_sequence)->ob_mpi;
7622       goto __pyx_L4;
7623     }
7624     __pyx_L4:;
7625 
7626     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":86
7627  *          if sequence is not None:
7628  *              info = (<Info?>sequence).ob_mpi
7629  *          ob = allocate(size, sizeof(MPI_Info), <void**>&array)             # <<<<<<<<<<<<<<
7630  *          for i from 0 <= i < size:
7631  *              array[i] = info
7632  */
7633     __pyx_t_2 = PyMPI_Allocate(__pyx_v_size, (sizeof(MPI_Info)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7634     __Pyx_GOTREF(__pyx_t_2);
7635     __pyx_v_ob = __pyx_t_2;
7636     __pyx_t_2 = 0;
7637 
7638     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":87
7639  *              info = (<Info?>sequence).ob_mpi
7640  *          ob = allocate(size, sizeof(MPI_Info), <void**>&array)
7641  *          for i from 0 <= i < size:             # <<<<<<<<<<<<<<
7642  *              array[i] = info
7643  *      else:
7644  */
7645     __pyx_t_5 = __pyx_v_size;
7646     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
7647 
7648       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":88
7649  *          ob = allocate(size, sizeof(MPI_Info), <void**>&array)
7650  *          for i from 0 <= i < size:
7651  *              array[i] = info             # <<<<<<<<<<<<<<
7652  *      else:
7653  *          n = len(sequence)
7654  */
7655       (__pyx_v_array[__pyx_v_i]) = __pyx_v_info;
7656     }
7657     goto __pyx_L3;
7658   }
7659   /*else*/ {
7660 
7661     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":90
7662  *              array[i] = info
7663  *      else:
7664  *          n = len(sequence)             # <<<<<<<<<<<<<<
7665  *          if size != n: raise ValueError(
7666  *              "expecting %d items, got %d" % (size, n))
7667  */
7668     __pyx_t_5 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7669     __pyx_v_n = __pyx_t_5;
7670 
7671     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":91
7672  *      else:
7673  *          n = len(sequence)
7674  *          if size != n: raise ValueError(             # <<<<<<<<<<<<<<
7675  *              "expecting %d items, got %d" % (size, n))
7676  *          ob = allocate(size, sizeof(MPI_Datatype), <void**>&array)
7677  */
7678     __pyx_t_4 = (__pyx_v_size != __pyx_v_n);
7679     if (__pyx_t_4) {
7680 
7681       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":92
7682  *          n = len(sequence)
7683  *          if size != n: raise ValueError(
7684  *              "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
7685  *          ob = allocate(size, sizeof(MPI_Datatype), <void**>&array)
7686  *          for i from 0 <= i < size:
7687  */
7688       __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7689       __Pyx_GOTREF(__pyx_t_2);
7690       __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7691       __Pyx_GOTREF(__pyx_t_6);
7692       __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7693       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
7694       PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
7695       __Pyx_GIVEREF(__pyx_t_2);
7696       PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
7697       __Pyx_GIVEREF(__pyx_t_6);
7698       __pyx_t_2 = 0;
7699       __pyx_t_6 = 0;
7700       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7701       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
7702       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
7703       __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7704       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
7705       PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6));
7706       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
7707       __pyx_t_6 = 0;
7708       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7709       __Pyx_GOTREF(__pyx_t_6);
7710       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
7711       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
7712       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7713       {__pyx_filename = __pyx_f[3]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7714       goto __pyx_L7;
7715     }
7716     __pyx_L7:;
7717 
7718     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":93
7719  *          if size != n: raise ValueError(
7720  *              "expecting %d items, got %d" % (size, n))
7721  *          ob = allocate(size, sizeof(MPI_Datatype), <void**>&array)             # <<<<<<<<<<<<<<
7722  *          for i from 0 <= i < size:
7723  *              array[i] = (<Info?>sequence[i]).ob_mpi
7724  */
7725     __pyx_t_6 = PyMPI_Allocate(__pyx_v_size, (sizeof(MPI_Datatype)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7726     __Pyx_GOTREF(__pyx_t_6);
7727     __pyx_v_ob = __pyx_t_6;
7728     __pyx_t_6 = 0;
7729 
7730     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":94
7731  *              "expecting %d items, got %d" % (size, n))
7732  *          ob = allocate(size, sizeof(MPI_Datatype), <void**>&array)
7733  *          for i from 0 <= i < size:             # <<<<<<<<<<<<<<
7734  *              array[i] = (<Info?>sequence[i]).ob_mpi
7735  *      p[0] = array
7736  */
7737     __pyx_t_5 = __pyx_v_size;
7738     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
7739 
7740       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":95
7741  *          ob = allocate(size, sizeof(MPI_Datatype), <void**>&array)
7742  *          for i from 0 <= i < size:
7743  *              array[i] = (<Info?>sequence[i]).ob_mpi             # <<<<<<<<<<<<<<
7744  *      p[0] = array
7745  *      return ob
7746  */
7747       __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_6) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7748       __Pyx_GOTREF(__pyx_t_6);
7749       if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_6mpi4py_3MPI_Info)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7750       (__pyx_v_array[__pyx_v_i]) = ((struct PyMPIInfoObject *)__pyx_t_6)->ob_mpi;
7751       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7752     }
7753   }
7754   __pyx_L3:;
7755 
7756   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":96
7757  *          for i from 0 <= i < size:
7758  *              array[i] = (<Info?>sequence[i]).ob_mpi
7759  *      p[0] = array             # <<<<<<<<<<<<<<
7760  *      return ob
7761  *
7762  */
7763   (__pyx_v_p[0]) = __pyx_v_array;
7764 
7765   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":97
7766  *              array[i] = (<Info?>sequence[i]).ob_mpi
7767  *      p[0] = array
7768  *      return ob             # <<<<<<<<<<<<<<
7769  *
7770  * # -----------------------------------------------------------------------------
7771  */
7772   __Pyx_XDECREF(__pyx_r);
7773   __Pyx_INCREF(__pyx_v_ob);
7774   __pyx_r = __pyx_v_ob;
7775   goto __pyx_L0;
7776 
7777   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7778   goto __pyx_L0;
7779   __pyx_L1_error:;
7780   __Pyx_XDECREF(__pyx_t_2);
7781   __Pyx_XDECREF(__pyx_t_6);
7782   __Pyx_XDECREF(__pyx_t_7);
7783   __Pyx_AddTraceback("mpi4py.MPI.asarray_Info", __pyx_clineno, __pyx_lineno, __pyx_filename);
7784   __pyx_r = 0;
7785   __pyx_L0:;
7786   __Pyx_XDECREF(__pyx_v_ob);
7787   __Pyx_XGIVEREF(__pyx_r);
7788   __Pyx_RefNannyFinishContext();
7789   return __pyx_r;
7790 }
7791 
7792 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":101
7793  * # -----------------------------------------------------------------------------
7794  *
7795  * cdef inline object asarray_str(object sequence,             # <<<<<<<<<<<<<<
7796  *                                Py_ssize_t size, char ***p):
7797  *      cdef Py_ssize_t i = 0, n = len(sequence)
7798  */
7799 
__pyx_f_6mpi4py_3MPI_asarray_str(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,char *** __pyx_v_p)7800 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_str(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, char ***__pyx_v_p) {
7801   Py_ssize_t __pyx_v_i;
7802   Py_ssize_t __pyx_v_n;
7803   char **__pyx_v_array;
7804   PyObject *__pyx_v_ob = 0;
7805   PyObject *__pyx_r = NULL;
7806   __Pyx_RefNannyDeclarations
7807   Py_ssize_t __pyx_t_1;
7808   int __pyx_t_2;
7809   PyObject *__pyx_t_3 = NULL;
7810   PyObject *__pyx_t_4 = NULL;
7811   PyObject *__pyx_t_5 = NULL;
7812   int __pyx_lineno = 0;
7813   const char *__pyx_filename = NULL;
7814   int __pyx_clineno = 0;
7815   __Pyx_RefNannySetupContext("asarray_str");
7816 
7817   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":103
7818  * cdef inline object asarray_str(object sequence,
7819  *                                Py_ssize_t size, char ***p):
7820  *      cdef Py_ssize_t i = 0, n = len(sequence)             # <<<<<<<<<<<<<<
7821  *      if size != n: raise ValueError(
7822  *          "expecting %d items, got %d" % (size, n))
7823  */
7824   __pyx_v_i = 0;
7825   __pyx_t_1 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7826   __pyx_v_n = __pyx_t_1;
7827 
7828   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":104
7829  *                                Py_ssize_t size, char ***p):
7830  *      cdef Py_ssize_t i = 0, n = len(sequence)
7831  *      if size != n: raise ValueError(             # <<<<<<<<<<<<<<
7832  *          "expecting %d items, got %d" % (size, n))
7833  *      cdef char** array = NULL
7834  */
7835   __pyx_t_2 = (__pyx_v_size != __pyx_v_n);
7836   if (__pyx_t_2) {
7837 
7838     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":105
7839  *      cdef Py_ssize_t i = 0, n = len(sequence)
7840  *      if size != n: raise ValueError(
7841  *          "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
7842  *      cdef char** array = NULL
7843  *      cdef object ob = allocate((n+1), sizeof(char*), <void**>&array)
7844  */
7845     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7846     __Pyx_GOTREF(__pyx_t_3);
7847     __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7848     __Pyx_GOTREF(__pyx_t_4);
7849     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7850     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7851     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
7852     __Pyx_GIVEREF(__pyx_t_3);
7853     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
7854     __Pyx_GIVEREF(__pyx_t_4);
7855     __pyx_t_3 = 0;
7856     __pyx_t_4 = 0;
7857     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7858     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
7859     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7860     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7861     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7862     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
7863     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
7864     __pyx_t_4 = 0;
7865     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7866     __Pyx_GOTREF(__pyx_t_4);
7867     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
7868     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
7869     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7870     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7871     goto __pyx_L3;
7872   }
7873   __pyx_L3:;
7874 
7875   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":106
7876  *      if size != n: raise ValueError(
7877  *          "expecting %d items, got %d" % (size, n))
7878  *      cdef char** array = NULL             # <<<<<<<<<<<<<<
7879  *      cdef object ob = allocate((n+1), sizeof(char*), <void**>&array)
7880  *      for i from 0 <= i < n:
7881  */
7882   __pyx_v_array = NULL;
7883 
7884   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":107
7885  *          "expecting %d items, got %d" % (size, n))
7886  *      cdef char** array = NULL
7887  *      cdef object ob = allocate((n+1), sizeof(char*), <void**>&array)             # <<<<<<<<<<<<<<
7888  *      for i from 0 <= i < n:
7889  *          sequence[i] = asmpistr(sequence[i], &array[i], NULL)
7890  */
7891   __pyx_t_4 = PyMPI_Allocate((__pyx_v_n + 1), (sizeof(char *)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7892   __Pyx_GOTREF(__pyx_t_4);
7893   __pyx_v_ob = __pyx_t_4;
7894   __pyx_t_4 = 0;
7895 
7896   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":108
7897  *      cdef char** array = NULL
7898  *      cdef object ob = allocate((n+1), sizeof(char*), <void**>&array)
7899  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
7900  *          sequence[i] = asmpistr(sequence[i], &array[i], NULL)
7901  *      array[n] = NULL
7902  */
7903   __pyx_t_1 = __pyx_v_n;
7904   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
7905 
7906     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":109
7907  *      cdef object ob = allocate((n+1), sizeof(char*), <void**>&array)
7908  *      for i from 0 <= i < n:
7909  *          sequence[i] = asmpistr(sequence[i], &array[i], NULL)             # <<<<<<<<<<<<<<
7910  *      array[n] = NULL
7911  *      p[0] = array
7912  */
7913     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7914     __Pyx_GOTREF(__pyx_t_4);
7915     __pyx_t_5 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_t_4, (&(__pyx_v_array[__pyx_v_i])), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7916     __Pyx_GOTREF(__pyx_t_5);
7917     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7918     if (__Pyx_SetItemInt(__pyx_v_sequence, __pyx_v_i, __pyx_t_5, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7919     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7920   }
7921 
7922   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":110
7923  *      for i from 0 <= i < n:
7924  *          sequence[i] = asmpistr(sequence[i], &array[i], NULL)
7925  *      array[n] = NULL             # <<<<<<<<<<<<<<
7926  *      p[0] = array
7927  *      return (sequence, ob)
7928  */
7929   (__pyx_v_array[__pyx_v_n]) = NULL;
7930 
7931   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":111
7932  *          sequence[i] = asmpistr(sequence[i], &array[i], NULL)
7933  *      array[n] = NULL
7934  *      p[0] = array             # <<<<<<<<<<<<<<
7935  *      return (sequence, ob)
7936  *
7937  */
7938   (__pyx_v_p[0]) = __pyx_v_array;
7939 
7940   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":112
7941  *      array[n] = NULL
7942  *      p[0] = array
7943  *      return (sequence, ob)             # <<<<<<<<<<<<<<
7944  *
7945  * cdef inline object asarray_argv(object sequence, char ***p):
7946  */
7947   __Pyx_XDECREF(__pyx_r);
7948   __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7949   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
7950   __Pyx_INCREF(__pyx_v_sequence);
7951   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_sequence);
7952   __Pyx_GIVEREF(__pyx_v_sequence);
7953   __Pyx_INCREF(__pyx_v_ob);
7954   PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_ob);
7955   __Pyx_GIVEREF(__pyx_v_ob);
7956   __pyx_r = ((PyObject *)__pyx_t_5);
7957   __pyx_t_5 = 0;
7958   goto __pyx_L0;
7959 
7960   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7961   goto __pyx_L0;
7962   __pyx_L1_error:;
7963   __Pyx_XDECREF(__pyx_t_3);
7964   __Pyx_XDECREF(__pyx_t_4);
7965   __Pyx_XDECREF(__pyx_t_5);
7966   __Pyx_AddTraceback("mpi4py.MPI.asarray_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
7967   __pyx_r = 0;
7968   __pyx_L0:;
7969   __Pyx_XDECREF(__pyx_v_ob);
7970   __Pyx_XGIVEREF(__pyx_r);
7971   __Pyx_RefNannyFinishContext();
7972   return __pyx_r;
7973 }
7974 
7975 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":114
7976  *      return (sequence, ob)
7977  *
7978  * cdef inline object asarray_argv(object sequence, char ***p):             # <<<<<<<<<<<<<<
7979  *      if sequence is None:
7980  *          p[0] = MPI_ARGV_NULL
7981  */
7982 
__pyx_f_6mpi4py_3MPI_asarray_argv(PyObject * __pyx_v_sequence,char *** __pyx_v_p)7983 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_argv(PyObject *__pyx_v_sequence, char ***__pyx_v_p) {
7984   Py_ssize_t __pyx_v_size;
7985   PyObject *__pyx_r = NULL;
7986   __Pyx_RefNannyDeclarations
7987   int __pyx_t_1;
7988   Py_ssize_t __pyx_t_2;
7989   PyObject *__pyx_t_3 = NULL;
7990   int __pyx_lineno = 0;
7991   const char *__pyx_filename = NULL;
7992   int __pyx_clineno = 0;
7993   __Pyx_RefNannySetupContext("asarray_argv");
7994 
7995   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":115
7996  *
7997  * cdef inline object asarray_argv(object sequence, char ***p):
7998  *      if sequence is None:             # <<<<<<<<<<<<<<
7999  *          p[0] = MPI_ARGV_NULL
8000  *          return None
8001  */
8002   __pyx_t_1 = (__pyx_v_sequence == Py_None);
8003   if (__pyx_t_1) {
8004 
8005     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":116
8006  * cdef inline object asarray_argv(object sequence, char ***p):
8007  *      if sequence is None:
8008  *          p[0] = MPI_ARGV_NULL             # <<<<<<<<<<<<<<
8009  *          return None
8010  *      cdef Py_ssize_t size = len(sequence)
8011  */
8012     (__pyx_v_p[0]) = MPI_ARGV_NULL;
8013 
8014     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":117
8015  *      if sequence is None:
8016  *          p[0] = MPI_ARGV_NULL
8017  *          return None             # <<<<<<<<<<<<<<
8018  *      cdef Py_ssize_t size = len(sequence)
8019  *      return asarray_str(sequence, size, p)
8020  */
8021     __Pyx_XDECREF(__pyx_r);
8022     __Pyx_INCREF(Py_None);
8023     __pyx_r = Py_None;
8024     goto __pyx_L0;
8025     goto __pyx_L3;
8026   }
8027   __pyx_L3:;
8028 
8029   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":118
8030  *          p[0] = MPI_ARGV_NULL
8031  *          return None
8032  *      cdef Py_ssize_t size = len(sequence)             # <<<<<<<<<<<<<<
8033  *      return asarray_str(sequence, size, p)
8034  *
8035  */
8036   __pyx_t_2 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8037   __pyx_v_size = __pyx_t_2;
8038 
8039   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":119
8040  *          return None
8041  *      cdef Py_ssize_t size = len(sequence)
8042  *      return asarray_str(sequence, size, p)             # <<<<<<<<<<<<<<
8043  *
8044  * cdef inline object asarray_argvs(object sequence,
8045  */
8046   __Pyx_XDECREF(__pyx_r);
8047   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asarray_str(__pyx_v_sequence, __pyx_v_size, __pyx_v_p); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8048   __Pyx_GOTREF(__pyx_t_3);
8049   __pyx_r = __pyx_t_3;
8050   __pyx_t_3 = 0;
8051   goto __pyx_L0;
8052 
8053   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8054   goto __pyx_L0;
8055   __pyx_L1_error:;
8056   __Pyx_XDECREF(__pyx_t_3);
8057   __Pyx_AddTraceback("mpi4py.MPI.asarray_argv", __pyx_clineno, __pyx_lineno, __pyx_filename);
8058   __pyx_r = 0;
8059   __pyx_L0:;
8060   __Pyx_XGIVEREF(__pyx_r);
8061   __Pyx_RefNannyFinishContext();
8062   return __pyx_r;
8063 }
8064 
8065 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":121
8066  *      return asarray_str(sequence, size, p)
8067  *
8068  * cdef inline object asarray_argvs(object sequence,             # <<<<<<<<<<<<<<
8069  *                                  Py_ssize_t size, char ****p):
8070  *      if sequence is None:
8071  */
8072 
__pyx_f_6mpi4py_3MPI_asarray_argvs(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,char **** __pyx_v_p)8073 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_argvs(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, char ****__pyx_v_p) {
8074   Py_ssize_t __pyx_v_i;
8075   Py_ssize_t __pyx_v_n;
8076   char ***__pyx_v_array;
8077   PyObject *__pyx_v_ob = 0;
8078   PyObject *__pyx_r = NULL;
8079   __Pyx_RefNannyDeclarations
8080   int __pyx_t_1;
8081   Py_ssize_t __pyx_t_2;
8082   PyObject *__pyx_t_3 = NULL;
8083   PyObject *__pyx_t_4 = NULL;
8084   PyObject *__pyx_t_5 = NULL;
8085   int __pyx_lineno = 0;
8086   const char *__pyx_filename = NULL;
8087   int __pyx_clineno = 0;
8088   __Pyx_RefNannySetupContext("asarray_argvs");
8089 
8090   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":123
8091  * cdef inline object asarray_argvs(object sequence,
8092  *                                  Py_ssize_t size, char ****p):
8093  *      if sequence is None:             # <<<<<<<<<<<<<<
8094  *          p[0] = MPI_ARGVS_NULL
8095  *          return None
8096  */
8097   __pyx_t_1 = (__pyx_v_sequence == Py_None);
8098   if (__pyx_t_1) {
8099 
8100     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":124
8101  *                                  Py_ssize_t size, char ****p):
8102  *      if sequence is None:
8103  *          p[0] = MPI_ARGVS_NULL             # <<<<<<<<<<<<<<
8104  *          return None
8105  *      cdef Py_ssize_t i = 0, n = len(sequence)
8106  */
8107     (__pyx_v_p[0]) = MPI_ARGVS_NULL;
8108 
8109     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":125
8110  *      if sequence is None:
8111  *          p[0] = MPI_ARGVS_NULL
8112  *          return None             # <<<<<<<<<<<<<<
8113  *      cdef Py_ssize_t i = 0, n = len(sequence)
8114  *      if size != n: raise ValueError(
8115  */
8116     __Pyx_XDECREF(__pyx_r);
8117     __Pyx_INCREF(Py_None);
8118     __pyx_r = Py_None;
8119     goto __pyx_L0;
8120     goto __pyx_L3;
8121   }
8122   __pyx_L3:;
8123 
8124   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":126
8125  *          p[0] = MPI_ARGVS_NULL
8126  *          return None
8127  *      cdef Py_ssize_t i = 0, n = len(sequence)             # <<<<<<<<<<<<<<
8128  *      if size != n: raise ValueError(
8129  *          "expecting %d items, got %d" % (size, n))
8130  */
8131   __pyx_v_i = 0;
8132   __pyx_t_2 = PyObject_Length(__pyx_v_sequence); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8133   __pyx_v_n = __pyx_t_2;
8134 
8135   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":127
8136  *          return None
8137  *      cdef Py_ssize_t i = 0, n = len(sequence)
8138  *      if size != n: raise ValueError(             # <<<<<<<<<<<<<<
8139  *          "expecting %d items, got %d" % (size, n))
8140  *      cdef char*** array = NULL
8141  */
8142   __pyx_t_1 = (__pyx_v_size != __pyx_v_n);
8143   if (__pyx_t_1) {
8144 
8145     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":128
8146  *      cdef Py_ssize_t i = 0, n = len(sequence)
8147  *      if size != n: raise ValueError(
8148  *          "expecting %d items, got %d" % (size, n))             # <<<<<<<<<<<<<<
8149  *      cdef char*** array = NULL
8150  *      cdef object ob = allocate((n+1), sizeof(char**), <void**>&array)
8151  */
8152     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8153     __Pyx_GOTREF(__pyx_t_3);
8154     __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8155     __Pyx_GOTREF(__pyx_t_4);
8156     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8157     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
8158     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
8159     __Pyx_GIVEREF(__pyx_t_3);
8160     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
8161     __Pyx_GIVEREF(__pyx_t_4);
8162     __pyx_t_3 = 0;
8163     __pyx_t_4 = 0;
8164     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8165     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
8166     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
8167     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8168     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
8169     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
8170     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
8171     __pyx_t_4 = 0;
8172     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8173     __Pyx_GOTREF(__pyx_t_4);
8174     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
8175     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
8176     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8177     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8178     goto __pyx_L4;
8179   }
8180   __pyx_L4:;
8181 
8182   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":129
8183  *      if size != n: raise ValueError(
8184  *          "expecting %d items, got %d" % (size, n))
8185  *      cdef char*** array = NULL             # <<<<<<<<<<<<<<
8186  *      cdef object ob = allocate((n+1), sizeof(char**), <void**>&array)
8187  *      for i from 0 <= i < n:
8188  */
8189   __pyx_v_array = NULL;
8190 
8191   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":130
8192  *          "expecting %d items, got %d" % (size, n))
8193  *      cdef char*** array = NULL
8194  *      cdef object ob = allocate((n+1), sizeof(char**), <void**>&array)             # <<<<<<<<<<<<<<
8195  *      for i from 0 <= i < n:
8196  *          sequence[i] = asarray_argv(sequence[i], &array[i])
8197  */
8198   __pyx_t_4 = PyMPI_Allocate((__pyx_v_n + 1), (sizeof(char **)), ((void **)(&__pyx_v_array))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8199   __Pyx_GOTREF(__pyx_t_4);
8200   __pyx_v_ob = __pyx_t_4;
8201   __pyx_t_4 = 0;
8202 
8203   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":131
8204  *      cdef char*** array = NULL
8205  *      cdef object ob = allocate((n+1), sizeof(char**), <void**>&array)
8206  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
8207  *          sequence[i] = asarray_argv(sequence[i], &array[i])
8208  *      array[n] = NULL
8209  */
8210   __pyx_t_2 = __pyx_v_n;
8211   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
8212 
8213     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":132
8214  *      cdef object ob = allocate((n+1), sizeof(char**), <void**>&array)
8215  *      for i from 0 <= i < n:
8216  *          sequence[i] = asarray_argv(sequence[i], &array[i])             # <<<<<<<<<<<<<<
8217  *      array[n] = NULL
8218  *      p[0] = array
8219  */
8220     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sequence, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8221     __Pyx_GOTREF(__pyx_t_4);
8222     __pyx_t_5 = __pyx_f_6mpi4py_3MPI_asarray_argv(__pyx_t_4, (&(__pyx_v_array[__pyx_v_i]))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8223     __Pyx_GOTREF(__pyx_t_5);
8224     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8225     if (__Pyx_SetItemInt(__pyx_v_sequence, __pyx_v_i, __pyx_t_5, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8226     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8227   }
8228 
8229   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":133
8230  *      for i from 0 <= i < n:
8231  *          sequence[i] = asarray_argv(sequence[i], &array[i])
8232  *      array[n] = NULL             # <<<<<<<<<<<<<<
8233  *      p[0] = array
8234  *      return (sequence, ob)
8235  */
8236   (__pyx_v_array[__pyx_v_n]) = NULL;
8237 
8238   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":134
8239  *          sequence[i] = asarray_argv(sequence[i], &array[i])
8240  *      array[n] = NULL
8241  *      p[0] = array             # <<<<<<<<<<<<<<
8242  *      return (sequence, ob)
8243  *
8244  */
8245   (__pyx_v_p[0]) = __pyx_v_array;
8246 
8247   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":135
8248  *      array[n] = NULL
8249  *      p[0] = array
8250  *      return (sequence, ob)             # <<<<<<<<<<<<<<
8251  *
8252  * cdef inline object asarray_nprocs(object sequence,
8253  */
8254   __Pyx_XDECREF(__pyx_r);
8255   __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8256   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
8257   __Pyx_INCREF(__pyx_v_sequence);
8258   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_sequence);
8259   __Pyx_GIVEREF(__pyx_v_sequence);
8260   __Pyx_INCREF(__pyx_v_ob);
8261   PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_ob);
8262   __Pyx_GIVEREF(__pyx_v_ob);
8263   __pyx_r = ((PyObject *)__pyx_t_5);
8264   __pyx_t_5 = 0;
8265   goto __pyx_L0;
8266 
8267   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8268   goto __pyx_L0;
8269   __pyx_L1_error:;
8270   __Pyx_XDECREF(__pyx_t_3);
8271   __Pyx_XDECREF(__pyx_t_4);
8272   __Pyx_XDECREF(__pyx_t_5);
8273   __Pyx_AddTraceback("mpi4py.MPI.asarray_argvs", __pyx_clineno, __pyx_lineno, __pyx_filename);
8274   __pyx_r = 0;
8275   __pyx_L0:;
8276   __Pyx_XDECREF(__pyx_v_ob);
8277   __Pyx_XGIVEREF(__pyx_r);
8278   __Pyx_RefNannyFinishContext();
8279   return __pyx_r;
8280 }
8281 
8282 /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":137
8283  *      return (sequence, ob)
8284  *
8285  * cdef inline object asarray_nprocs(object sequence,             # <<<<<<<<<<<<<<
8286  *                                   Py_ssize_t size, int **p):
8287  *      cdef Py_ssize_t i = 0
8288  */
8289 
__pyx_f_6mpi4py_3MPI_asarray_nprocs(PyObject * __pyx_v_sequence,Py_ssize_t __pyx_v_size,int ** __pyx_v_p)8290 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_asarray_nprocs(PyObject *__pyx_v_sequence, Py_ssize_t __pyx_v_size, int **__pyx_v_p) {
8291   Py_ssize_t __pyx_v_i;
8292   int __pyx_v_value;
8293   int *__pyx_v_array;
8294   PyObject *__pyx_v_ob = 0;
8295   PyObject *__pyx_r = NULL;
8296   __Pyx_RefNannyDeclarations
8297   int __pyx_t_1;
8298   int __pyx_t_2;
8299   int __pyx_t_3;
8300   PyObject *__pyx_t_4 = NULL;
8301   Py_ssize_t __pyx_t_5;
8302   int __pyx_lineno = 0;
8303   const char *__pyx_filename = NULL;
8304   int __pyx_clineno = 0;
8305   __Pyx_RefNannySetupContext("asarray_nprocs");
8306 
8307   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":139
8308  * cdef inline object asarray_nprocs(object sequence,
8309  *                                   Py_ssize_t size, int **p):
8310  *      cdef Py_ssize_t i = 0             # <<<<<<<<<<<<<<
8311  *      cdef int value = 1
8312  *      cdef int *array = NULL
8313  */
8314   __pyx_v_i = 0;
8315 
8316   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":140
8317  *                                   Py_ssize_t size, int **p):
8318  *      cdef Py_ssize_t i = 0
8319  *      cdef int value = 1             # <<<<<<<<<<<<<<
8320  *      cdef int *array = NULL
8321  *      cdef object ob
8322  */
8323   __pyx_v_value = 1;
8324 
8325   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":141
8326  *      cdef Py_ssize_t i = 0
8327  *      cdef int value = 1
8328  *      cdef int *array = NULL             # <<<<<<<<<<<<<<
8329  *      cdef object ob
8330  *      if sequence is None or is_int(sequence):
8331  */
8332   __pyx_v_array = NULL;
8333 
8334   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":143
8335  *      cdef int *array = NULL
8336  *      cdef object ob
8337  *      if sequence is None or is_int(sequence):             # <<<<<<<<<<<<<<
8338  *          if sequence is None:
8339  *              value = 1
8340  */
8341   __pyx_t_1 = (__pyx_v_sequence == Py_None);
8342   if (!__pyx_t_1) {
8343     __pyx_t_2 = PyInt_Check(__pyx_v_sequence);
8344   } else {
8345     __pyx_t_2 = __pyx_t_1;
8346   }
8347   if (__pyx_t_2) {
8348 
8349     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":144
8350  *      cdef object ob
8351  *      if sequence is None or is_int(sequence):
8352  *          if sequence is None:             # <<<<<<<<<<<<<<
8353  *              value = 1
8354  *          else:
8355  */
8356     __pyx_t_2 = (__pyx_v_sequence == Py_None);
8357     if (__pyx_t_2) {
8358 
8359       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":145
8360  *      if sequence is None or is_int(sequence):
8361  *          if sequence is None:
8362  *              value = 1             # <<<<<<<<<<<<<<
8363  *          else:
8364  *              value = sequence
8365  */
8366       __pyx_v_value = 1;
8367       goto __pyx_L4;
8368     }
8369     /*else*/ {
8370 
8371       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":147
8372  *              value = 1
8373  *          else:
8374  *              value = sequence             # <<<<<<<<<<<<<<
8375  *          ob = newarray_int(size, &array)
8376  *          for i from 0 <= i < size:
8377  */
8378       __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_sequence); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8379       __pyx_v_value = __pyx_t_3;
8380     }
8381     __pyx_L4:;
8382 
8383     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":148
8384  *          else:
8385  *              value = sequence
8386  *          ob = newarray_int(size, &array)             # <<<<<<<<<<<<<<
8387  *          for i from 0 <= i < size:
8388  *              array[i] = value
8389  */
8390     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_size, (&__pyx_v_array)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8391     __Pyx_GOTREF(__pyx_t_4);
8392     __pyx_v_ob = __pyx_t_4;
8393     __pyx_t_4 = 0;
8394 
8395     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":149
8396  *              value = sequence
8397  *          ob = newarray_int(size, &array)
8398  *          for i from 0 <= i < size:             # <<<<<<<<<<<<<<
8399  *              array[i] = value
8400  *      else:
8401  */
8402     __pyx_t_5 = __pyx_v_size;
8403     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
8404 
8405       /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":150
8406  *          ob = newarray_int(size, &array)
8407  *          for i from 0 <= i < size:
8408  *              array[i] = value             # <<<<<<<<<<<<<<
8409  *      else:
8410  *          ob = asarray_int(sequence, <int>size, &array)
8411  */
8412       (__pyx_v_array[__pyx_v_i]) = __pyx_v_value;
8413     }
8414     goto __pyx_L3;
8415   }
8416   /*else*/ {
8417 
8418     /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":152
8419  *              array[i] = value
8420  *      else:
8421  *          ob = asarray_int(sequence, <int>size, &array)             # <<<<<<<<<<<<<<
8422  *      p[0] = array
8423  *      return ob
8424  */
8425     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_int(__pyx_v_sequence, ((int)__pyx_v_size), (&__pyx_v_array)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8426     __Pyx_GOTREF(__pyx_t_4);
8427     __pyx_v_ob = __pyx_t_4;
8428     __pyx_t_4 = 0;
8429   }
8430   __pyx_L3:;
8431 
8432   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":153
8433  *      else:
8434  *          ob = asarray_int(sequence, <int>size, &array)
8435  *      p[0] = array             # <<<<<<<<<<<<<<
8436  *      return ob
8437  *
8438  */
8439   (__pyx_v_p[0]) = __pyx_v_array;
8440 
8441   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":154
8442  *          ob = asarray_int(sequence, <int>size, &array)
8443  *      p[0] = array
8444  *      return ob             # <<<<<<<<<<<<<<
8445  *
8446  * # -----------------------------------------------------------------------------
8447  */
8448   __Pyx_XDECREF(__pyx_r);
8449   __Pyx_INCREF(__pyx_v_ob);
8450   __pyx_r = __pyx_v_ob;
8451   goto __pyx_L0;
8452 
8453   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8454   goto __pyx_L0;
8455   __pyx_L1_error:;
8456   __Pyx_XDECREF(__pyx_t_4);
8457   __Pyx_AddTraceback("mpi4py.MPI.asarray_nprocs", __pyx_clineno, __pyx_lineno, __pyx_filename);
8458   __pyx_r = 0;
8459   __pyx_L0:;
8460   __Pyx_XDECREF(__pyx_v_ob);
8461   __Pyx_XGIVEREF(__pyx_r);
8462   __Pyx_RefNannyFinishContext();
8463   return __pyx_r;
8464 }
8465 
8466 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":19
8467  * # Status
8468  *
8469  * cdef inline MPI_Status *arg_Status(object status):             # <<<<<<<<<<<<<<
8470  *     if status is None: return MPI_STATUS_IGNORE
8471  *     return &((<Status>status).ob_mpi)
8472  */
8473 
__pyx_f_6mpi4py_3MPI_arg_Status(PyObject * __pyx_v_status)8474 static CYTHON_INLINE MPI_Status *__pyx_f_6mpi4py_3MPI_arg_Status(PyObject *__pyx_v_status) {
8475   MPI_Status *__pyx_r;
8476   __Pyx_RefNannyDeclarations
8477   int __pyx_t_1;
8478   __Pyx_RefNannySetupContext("arg_Status");
8479 
8480   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":20
8481  *
8482  * cdef inline MPI_Status *arg_Status(object status):
8483  *     if status is None: return MPI_STATUS_IGNORE             # <<<<<<<<<<<<<<
8484  *     return &((<Status>status).ob_mpi)
8485  *
8486  */
8487   __pyx_t_1 = (__pyx_v_status == Py_None);
8488   if (__pyx_t_1) {
8489     __pyx_r = MPI_STATUS_IGNORE;
8490     goto __pyx_L0;
8491     goto __pyx_L3;
8492   }
8493   __pyx_L3:;
8494 
8495   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":21
8496  * cdef inline MPI_Status *arg_Status(object status):
8497  *     if status is None: return MPI_STATUS_IGNORE
8498  *     return &((<Status>status).ob_mpi)             # <<<<<<<<<<<<<<
8499  *
8500  * cdef inline int equal_Status(MPI_Status* s1, MPI_Status* s2) nogil:
8501  */
8502   __pyx_r = (&((struct PyMPIStatusObject *)__pyx_v_status)->ob_mpi);
8503   goto __pyx_L0;
8504 
8505   __pyx_r = 0;
8506   __pyx_L0:;
8507   __Pyx_RefNannyFinishContext();
8508   return __pyx_r;
8509 }
8510 
8511 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":23
8512  *     return &((<Status>status).ob_mpi)
8513  *
8514  * cdef inline int equal_Status(MPI_Status* s1, MPI_Status* s2) nogil:             # <<<<<<<<<<<<<<
8515  *    cdef size_t i=0, n=sizeof(MPI_Status)
8516  *    cdef unsigned char* a = <unsigned char*>s1
8517  */
8518 
__pyx_f_6mpi4py_3MPI_equal_Status(MPI_Status * __pyx_v_s1,MPI_Status * __pyx_v_s2)8519 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_equal_Status(MPI_Status *__pyx_v_s1, MPI_Status *__pyx_v_s2) {
8520   size_t __pyx_v_i;
8521   size_t __pyx_v_n;
8522   unsigned char *__pyx_v_a;
8523   unsigned char *__pyx_v_b;
8524   int __pyx_r;
8525   size_t __pyx_t_1;
8526   int __pyx_t_2;
8527 
8528   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":24
8529  *
8530  * cdef inline int equal_Status(MPI_Status* s1, MPI_Status* s2) nogil:
8531  *    cdef size_t i=0, n=sizeof(MPI_Status)             # <<<<<<<<<<<<<<
8532  *    cdef unsigned char* a = <unsigned char*>s1
8533  *    cdef unsigned char* b = <unsigned char*>s2
8534  */
8535   __pyx_v_i = 0;
8536   __pyx_v_n = (sizeof(MPI_Status));
8537 
8538   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":25
8539  * cdef inline int equal_Status(MPI_Status* s1, MPI_Status* s2) nogil:
8540  *    cdef size_t i=0, n=sizeof(MPI_Status)
8541  *    cdef unsigned char* a = <unsigned char*>s1             # <<<<<<<<<<<<<<
8542  *    cdef unsigned char* b = <unsigned char*>s2
8543  *    for i from 0 <= i < n:
8544  */
8545   __pyx_v_a = ((unsigned char *)__pyx_v_s1);
8546 
8547   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":26
8548  *    cdef size_t i=0, n=sizeof(MPI_Status)
8549  *    cdef unsigned char* a = <unsigned char*>s1
8550  *    cdef unsigned char* b = <unsigned char*>s2             # <<<<<<<<<<<<<<
8551  *    for i from 0 <= i < n:
8552  *        if a[i] != b[i]:
8553  */
8554   __pyx_v_b = ((unsigned char *)__pyx_v_s2);
8555 
8556   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":27
8557  *    cdef unsigned char* a = <unsigned char*>s1
8558  *    cdef unsigned char* b = <unsigned char*>s2
8559  *    for i from 0 <= i < n:             # <<<<<<<<<<<<<<
8560  *        if a[i] != b[i]:
8561  *            return 0
8562  */
8563   __pyx_t_1 = __pyx_v_n;
8564   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
8565 
8566     /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":28
8567  *    cdef unsigned char* b = <unsigned char*>s2
8568  *    for i from 0 <= i < n:
8569  *        if a[i] != b[i]:             # <<<<<<<<<<<<<<
8570  *            return 0
8571  *    return 1
8572  */
8573     __pyx_t_2 = ((__pyx_v_a[__pyx_v_i]) != (__pyx_v_b[__pyx_v_i]));
8574     if (__pyx_t_2) {
8575 
8576       /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":29
8577  *    for i from 0 <= i < n:
8578  *        if a[i] != b[i]:
8579  *            return 0             # <<<<<<<<<<<<<<
8580  *    return 1
8581  *
8582  */
8583       __pyx_r = 0;
8584       goto __pyx_L0;
8585       goto __pyx_L5;
8586     }
8587     __pyx_L5:;
8588   }
8589 
8590   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":30
8591  *        if a[i] != b[i]:
8592  *            return 0
8593  *    return 1             # <<<<<<<<<<<<<<
8594  *
8595  * #------------------------------------------------------------------------------
8596  */
8597   __pyx_r = 1;
8598   goto __pyx_L0;
8599 
8600   __pyx_r = 0;
8601   __pyx_L0:;
8602   return __pyx_r;
8603 }
8604 
8605 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":5
8606  * cdef dict type_keyval = {}
8607  *
8608  * cdef inline int type_keyval_new(int keyval,             # <<<<<<<<<<<<<<
8609  *                                 object copy_fn,object delete_fn) except -1:
8610  *     type_keyval[keyval] = (copy_fn, delete_fn)
8611  */
8612 
__pyx_f_6mpi4py_3MPI_type_keyval_new(int __pyx_v_keyval,PyObject * __pyx_v_copy_fn,PyObject * __pyx_v_delete_fn)8613 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_keyval_new(int __pyx_v_keyval, PyObject *__pyx_v_copy_fn, PyObject *__pyx_v_delete_fn) {
8614   int __pyx_r;
8615   __Pyx_RefNannyDeclarations
8616   PyObject *__pyx_t_1 = NULL;
8617   int __pyx_lineno = 0;
8618   const char *__pyx_filename = NULL;
8619   int __pyx_clineno = 0;
8620   __Pyx_RefNannySetupContext("type_keyval_new");
8621 
8622   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":7
8623  * cdef inline int type_keyval_new(int keyval,
8624  *                                 object copy_fn,object delete_fn) except -1:
8625  *     type_keyval[keyval] = (copy_fn, delete_fn)             # <<<<<<<<<<<<<<
8626  *     return 0
8627  *
8628  */
8629   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8630   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
8631   __Pyx_INCREF(__pyx_v_copy_fn);
8632   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_copy_fn);
8633   __Pyx_GIVEREF(__pyx_v_copy_fn);
8634   __Pyx_INCREF(__pyx_v_delete_fn);
8635   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_delete_fn);
8636   __Pyx_GIVEREF(__pyx_v_delete_fn);
8637   if (__Pyx_SetItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_v_keyval, ((PyObject *)__pyx_t_1), sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8638   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
8639 
8640   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":8
8641  *                                 object copy_fn,object delete_fn) except -1:
8642  *     type_keyval[keyval] = (copy_fn, delete_fn)
8643  *     return 0             # <<<<<<<<<<<<<<
8644  *
8645  * cdef inline int type_keyval_del(int keyval) except -1:
8646  */
8647   __pyx_r = 0;
8648   goto __pyx_L0;
8649 
8650   __pyx_r = 0;
8651   goto __pyx_L0;
8652   __pyx_L1_error:;
8653   __Pyx_XDECREF(__pyx_t_1);
8654   __Pyx_AddTraceback("mpi4py.MPI.type_keyval_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
8655   __pyx_r = -1;
8656   __pyx_L0:;
8657   __Pyx_RefNannyFinishContext();
8658   return __pyx_r;
8659 }
8660 
8661 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":10
8662  *     return 0
8663  *
8664  * cdef inline int type_keyval_del(int keyval) except -1:             # <<<<<<<<<<<<<<
8665  *     try: del type_keyval[keyval]
8666  *     except KeyError: pass
8667  */
8668 
__pyx_f_6mpi4py_3MPI_type_keyval_del(int __pyx_v_keyval)8669 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_keyval_del(int __pyx_v_keyval) {
8670   int __pyx_r;
8671   __Pyx_RefNannyDeclarations
8672   PyObject *__pyx_t_1 = NULL;
8673   PyObject *__pyx_t_2 = NULL;
8674   PyObject *__pyx_t_3 = NULL;
8675   int __pyx_t_4;
8676   int __pyx_lineno = 0;
8677   const char *__pyx_filename = NULL;
8678   int __pyx_clineno = 0;
8679   __Pyx_RefNannySetupContext("type_keyval_del");
8680 
8681   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":11
8682  *
8683  * cdef inline int type_keyval_del(int keyval) except -1:
8684  *     try: del type_keyval[keyval]             # <<<<<<<<<<<<<<
8685  *     except KeyError: pass
8686  *     return 0
8687  */
8688   {
8689     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
8690     __Pyx_XGOTREF(__pyx_t_1);
8691     __Pyx_XGOTREF(__pyx_t_2);
8692     __Pyx_XGOTREF(__pyx_t_3);
8693     /*try:*/ {
8694       if (__Pyx_DelItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_v_keyval, sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
8695     }
8696     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
8697     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8698     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8699     goto __pyx_L10_try_end;
8700     __pyx_L3_error:;
8701 
8702     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":12
8703  * cdef inline int type_keyval_del(int keyval) except -1:
8704  *     try: del type_keyval[keyval]
8705  *     except KeyError: pass             # <<<<<<<<<<<<<<
8706  *     return 0
8707  *
8708  */
8709     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
8710     if (__pyx_t_4) {
8711       PyErr_Restore(0,0,0);
8712       goto __pyx_L4_exception_handled;
8713     }
8714     __Pyx_XGIVEREF(__pyx_t_1);
8715     __Pyx_XGIVEREF(__pyx_t_2);
8716     __Pyx_XGIVEREF(__pyx_t_3);
8717     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
8718     goto __pyx_L1_error;
8719     __pyx_L4_exception_handled:;
8720     __Pyx_XGIVEREF(__pyx_t_1);
8721     __Pyx_XGIVEREF(__pyx_t_2);
8722     __Pyx_XGIVEREF(__pyx_t_3);
8723     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
8724     __pyx_L10_try_end:;
8725   }
8726 
8727   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":13
8728  *     try: del type_keyval[keyval]
8729  *     except KeyError: pass
8730  *     return 0             # <<<<<<<<<<<<<<
8731  *
8732  * cdef inline int type_attr_copy(MPI_Datatype datatype,
8733  */
8734   __pyx_r = 0;
8735   goto __pyx_L0;
8736 
8737   __pyx_r = 0;
8738   goto __pyx_L0;
8739   __pyx_L1_error:;
8740   __Pyx_AddTraceback("mpi4py.MPI.type_keyval_del", __pyx_clineno, __pyx_lineno, __pyx_filename);
8741   __pyx_r = -1;
8742   __pyx_L0:;
8743   __Pyx_RefNannyFinishContext();
8744   return __pyx_r;
8745 }
8746 
8747 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":15
8748  *     return 0
8749  *
8750  * cdef inline int type_attr_copy(MPI_Datatype datatype,             # <<<<<<<<<<<<<<
8751  *                                int keyval,
8752  *                                void *extra_state,
8753  */
8754 
__pyx_f_6mpi4py_3MPI_type_attr_copy(MPI_Datatype __pyx_v_datatype,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)8755 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_attr_copy(MPI_Datatype __pyx_v_datatype, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
8756   PyObject *__pyx_v_entry = 0;
8757   PyObject *__pyx_v_copy_fn = 0;
8758   PyObject *__pyx_v_attrval = 0;
8759   void **__pyx_v_aptr;
8760   int __pyx_r;
8761   __Pyx_RefNannyDeclarations
8762   PyObject *__pyx_t_1 = NULL;
8763   PyObject *__pyx_t_2 = NULL;
8764   int __pyx_t_3;
8765   int __pyx_t_4;
8766   int __pyx_t_5;
8767   int __pyx_lineno = 0;
8768   const char *__pyx_filename = NULL;
8769   int __pyx_clineno = 0;
8770   __Pyx_RefNannySetupContext("type_attr_copy");
8771 
8772   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":21
8773  *                                void *attrval_out,
8774  *                                int *flag) except -1:
8775  *     cdef tuple entry = type_keyval.get(keyval)             # <<<<<<<<<<<<<<
8776  *     cdef object copy_fn = None
8777  *     if entry is not None: copy_fn = entry[0]
8778  */
8779   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval) == Py_None)) {
8780     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8781   }
8782   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8783   __Pyx_GOTREF(__pyx_t_1);
8784   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8785   __Pyx_GOTREF(__pyx_t_2);
8786   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8787   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8788   __pyx_v_entry = ((PyObject*)__pyx_t_2);
8789   __pyx_t_2 = 0;
8790 
8791   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":22
8792  *                                int *flag) except -1:
8793  *     cdef tuple entry = type_keyval.get(keyval)
8794  *     cdef object copy_fn = None             # <<<<<<<<<<<<<<
8795  *     if entry is not None: copy_fn = entry[0]
8796  *     if copy_fn is None or copy_fn is False:
8797  */
8798   __Pyx_INCREF(Py_None);
8799   __pyx_v_copy_fn = Py_None;
8800 
8801   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":23
8802  *     cdef tuple entry = type_keyval.get(keyval)
8803  *     cdef object copy_fn = None
8804  *     if entry is not None: copy_fn = entry[0]             # <<<<<<<<<<<<<<
8805  *     if copy_fn is None or copy_fn is False:
8806  *         flag[0] = 0
8807  */
8808   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
8809   if (__pyx_t_3) {
8810     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8811     __Pyx_GOTREF(__pyx_t_2);
8812     __Pyx_DECREF(__pyx_v_copy_fn);
8813     __pyx_v_copy_fn = __pyx_t_2;
8814     __pyx_t_2 = 0;
8815     goto __pyx_L3;
8816   }
8817   __pyx_L3:;
8818 
8819   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":24
8820  *     cdef object copy_fn = None
8821  *     if entry is not None: copy_fn = entry[0]
8822  *     if copy_fn is None or copy_fn is False:             # <<<<<<<<<<<<<<
8823  *         flag[0] = 0
8824  *         return 0
8825  */
8826   __pyx_t_3 = (__pyx_v_copy_fn == Py_None);
8827   if (!__pyx_t_3) {
8828     __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8829     __Pyx_GOTREF(__pyx_t_2);
8830     __pyx_t_4 = (__pyx_v_copy_fn == __pyx_t_2);
8831     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8832     __pyx_t_5 = __pyx_t_4;
8833   } else {
8834     __pyx_t_5 = __pyx_t_3;
8835   }
8836   if (__pyx_t_5) {
8837 
8838     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":25
8839  *     if entry is not None: copy_fn = entry[0]
8840  *     if copy_fn is None or copy_fn is False:
8841  *         flag[0] = 0             # <<<<<<<<<<<<<<
8842  *         return 0
8843  *     cdef object attrval = <object>attrval_in
8844  */
8845     (__pyx_v_flag[0]) = 0;
8846 
8847     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":26
8848  *     if copy_fn is None or copy_fn is False:
8849  *         flag[0] = 0
8850  *         return 0             # <<<<<<<<<<<<<<
8851  *     cdef object attrval = <object>attrval_in
8852  *     cdef void **aptr = <void **>attrval_out
8853  */
8854     __pyx_r = 0;
8855     goto __pyx_L0;
8856     goto __pyx_L4;
8857   }
8858   __pyx_L4:;
8859 
8860   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":27
8861  *         flag[0] = 0
8862  *         return 0
8863  *     cdef object attrval = <object>attrval_in             # <<<<<<<<<<<<<<
8864  *     cdef void **aptr = <void **>attrval_out
8865  *     if copy_fn is not True:
8866  */
8867   __Pyx_INCREF(((PyObject *)__pyx_v_attrval_in));
8868   __pyx_v_attrval = ((PyObject *)__pyx_v_attrval_in);
8869 
8870   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":28
8871  *         return 0
8872  *     cdef object attrval = <object>attrval_in
8873  *     cdef void **aptr = <void **>attrval_out             # <<<<<<<<<<<<<<
8874  *     if copy_fn is not True:
8875  *         attrval = copy_fn(attrval)
8876  */
8877   __pyx_v_aptr = ((void **)__pyx_v_attrval_out);
8878 
8879   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":29
8880  *     cdef object attrval = <object>attrval_in
8881  *     cdef void **aptr = <void **>attrval_out
8882  *     if copy_fn is not True:             # <<<<<<<<<<<<<<
8883  *         attrval = copy_fn(attrval)
8884  *     Py_INCREF(attrval)
8885  */
8886   __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8887   __Pyx_GOTREF(__pyx_t_2);
8888   __pyx_t_5 = (__pyx_v_copy_fn != __pyx_t_2);
8889   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8890   if (__pyx_t_5) {
8891 
8892     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":30
8893  *     cdef void **aptr = <void **>attrval_out
8894  *     if copy_fn is not True:
8895  *         attrval = copy_fn(attrval)             # <<<<<<<<<<<<<<
8896  *     Py_INCREF(attrval)
8897  *     aptr[0] = <void*>attrval
8898  */
8899     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8900     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
8901     __Pyx_INCREF(__pyx_v_attrval);
8902     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attrval);
8903     __Pyx_GIVEREF(__pyx_v_attrval);
8904     __pyx_t_1 = PyObject_Call(__pyx_v_copy_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8905     __Pyx_GOTREF(__pyx_t_1);
8906     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
8907     __Pyx_DECREF(__pyx_v_attrval);
8908     __pyx_v_attrval = __pyx_t_1;
8909     __pyx_t_1 = 0;
8910     goto __pyx_L5;
8911   }
8912   __pyx_L5:;
8913 
8914   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":31
8915  *     if copy_fn is not True:
8916  *         attrval = copy_fn(attrval)
8917  *     Py_INCREF(attrval)             # <<<<<<<<<<<<<<
8918  *     aptr[0] = <void*>attrval
8919  *     flag[0] = 1
8920  */
8921   Py_INCREF(__pyx_v_attrval);
8922 
8923   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":32
8924  *         attrval = copy_fn(attrval)
8925  *     Py_INCREF(attrval)
8926  *     aptr[0] = <void*>attrval             # <<<<<<<<<<<<<<
8927  *     flag[0] = 1
8928  *     return 0
8929  */
8930   (__pyx_v_aptr[0]) = ((void *)__pyx_v_attrval);
8931 
8932   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":33
8933  *     Py_INCREF(attrval)
8934  *     aptr[0] = <void*>attrval
8935  *     flag[0] = 1             # <<<<<<<<<<<<<<
8936  *     return 0
8937  *
8938  */
8939   (__pyx_v_flag[0]) = 1;
8940 
8941   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":34
8942  *     aptr[0] = <void*>attrval
8943  *     flag[0] = 1
8944  *     return 0             # <<<<<<<<<<<<<<
8945  *
8946  * cdef inline int type_attr_delete(MPI_Datatype datatype,
8947  */
8948   __pyx_r = 0;
8949   goto __pyx_L0;
8950 
8951   __pyx_r = 0;
8952   goto __pyx_L0;
8953   __pyx_L1_error:;
8954   __Pyx_XDECREF(__pyx_t_1);
8955   __Pyx_XDECREF(__pyx_t_2);
8956   __Pyx_AddTraceback("mpi4py.MPI.type_attr_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
8957   __pyx_r = -1;
8958   __pyx_L0:;
8959   __Pyx_XDECREF(__pyx_v_entry);
8960   __Pyx_XDECREF(__pyx_v_copy_fn);
8961   __Pyx_XDECREF(__pyx_v_attrval);
8962   __Pyx_RefNannyFinishContext();
8963   return __pyx_r;
8964 }
8965 
8966 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":36
8967  *     return 0
8968  *
8969  * cdef inline int type_attr_delete(MPI_Datatype datatype,             # <<<<<<<<<<<<<<
8970  *                                  int keyval,
8971  *                                  void *attrval,
8972  */
8973 
__pyx_f_6mpi4py_3MPI_type_attr_delete(MPI_Datatype __pyx_v_datatype,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)8974 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_type_attr_delete(MPI_Datatype __pyx_v_datatype, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
8975   PyObject *__pyx_v_entry = 0;
8976   PyObject *__pyx_v_delete_fn = 0;
8977   int __pyx_r;
8978   __Pyx_RefNannyDeclarations
8979   PyObject *__pyx_t_1 = NULL;
8980   PyObject *__pyx_t_2 = NULL;
8981   int __pyx_t_3;
8982   int __pyx_lineno = 0;
8983   const char *__pyx_filename = NULL;
8984   int __pyx_clineno = 0;
8985   __Pyx_RefNannySetupContext("type_attr_delete");
8986 
8987   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":40
8988  *                                  void *attrval,
8989  *                                  void *extra_state) except -1:
8990  *     cdef tuple entry = type_keyval.get(keyval)             # <<<<<<<<<<<<<<
8991  *     cdef object delete_fn = None
8992  *     if entry is not None: delete_fn = entry[1]
8993  */
8994   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval) == Py_None)) {
8995     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8996   }
8997   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8998   __Pyx_GOTREF(__pyx_t_1);
8999   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9000   __Pyx_GOTREF(__pyx_t_2);
9001   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9002   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9003   __pyx_v_entry = ((PyObject*)__pyx_t_2);
9004   __pyx_t_2 = 0;
9005 
9006   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":41
9007  *                                  void *extra_state) except -1:
9008  *     cdef tuple entry = type_keyval.get(keyval)
9009  *     cdef object delete_fn = None             # <<<<<<<<<<<<<<
9010  *     if entry is not None: delete_fn = entry[1]
9011  *     if delete_fn is not None:
9012  */
9013   __Pyx_INCREF(Py_None);
9014   __pyx_v_delete_fn = Py_None;
9015 
9016   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":42
9017  *     cdef tuple entry = type_keyval.get(keyval)
9018  *     cdef object delete_fn = None
9019  *     if entry is not None: delete_fn = entry[1]             # <<<<<<<<<<<<<<
9020  *     if delete_fn is not None:
9021  *         delete_fn(<object>attrval)
9022  */
9023   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
9024   if (__pyx_t_3) {
9025     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9026     __Pyx_GOTREF(__pyx_t_2);
9027     __Pyx_DECREF(__pyx_v_delete_fn);
9028     __pyx_v_delete_fn = __pyx_t_2;
9029     __pyx_t_2 = 0;
9030     goto __pyx_L3;
9031   }
9032   __pyx_L3:;
9033 
9034   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":43
9035  *     cdef object delete_fn = None
9036  *     if entry is not None: delete_fn = entry[1]
9037  *     if delete_fn is not None:             # <<<<<<<<<<<<<<
9038  *         delete_fn(<object>attrval)
9039  *     Py_DECREF(<object>attrval)
9040  */
9041   __pyx_t_3 = (__pyx_v_delete_fn != Py_None);
9042   if (__pyx_t_3) {
9043 
9044     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":44
9045  *     if entry is not None: delete_fn = entry[1]
9046  *     if delete_fn is not None:
9047  *         delete_fn(<object>attrval)             # <<<<<<<<<<<<<<
9048  *     Py_DECREF(<object>attrval)
9049  *     return 0
9050  */
9051     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9052     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
9053     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
9054     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_attrval));
9055     __Pyx_GIVEREF(((PyObject *)__pyx_v_attrval));
9056     __pyx_t_1 = PyObject_Call(__pyx_v_delete_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9057     __Pyx_GOTREF(__pyx_t_1);
9058     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
9059     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9060     goto __pyx_L4;
9061   }
9062   __pyx_L4:;
9063 
9064   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":45
9065  *     if delete_fn is not None:
9066  *         delete_fn(<object>attrval)
9067  *     Py_DECREF(<object>attrval)             # <<<<<<<<<<<<<<
9068  *     return 0
9069  *
9070  */
9071   Py_DECREF(((PyObject *)__pyx_v_attrval));
9072 
9073   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":46
9074  *         delete_fn(<object>attrval)
9075  *     Py_DECREF(<object>attrval)
9076  *     return 0             # <<<<<<<<<<<<<<
9077  *
9078  * @cython.callspec("PyMPIAPI")
9079  */
9080   __pyx_r = 0;
9081   goto __pyx_L0;
9082 
9083   __pyx_r = 0;
9084   goto __pyx_L0;
9085   __pyx_L1_error:;
9086   __Pyx_XDECREF(__pyx_t_1);
9087   __Pyx_XDECREF(__pyx_t_2);
9088   __Pyx_AddTraceback("mpi4py.MPI.type_attr_delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
9089   __pyx_r = -1;
9090   __pyx_L0:;
9091   __Pyx_XDECREF(__pyx_v_entry);
9092   __Pyx_XDECREF(__pyx_v_delete_fn);
9093   __Pyx_RefNannyFinishContext();
9094   return __pyx_r;
9095 }
9096 
9097 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":49
9098  *
9099  * @cython.callspec("PyMPIAPI")
9100  * cdef int type_attr_copy_fn(MPI_Datatype datatype,             # <<<<<<<<<<<<<<
9101  *                            int keyval,
9102  *                            void *extra_state,
9103  */
9104 
__pyx_f_6mpi4py_3MPI_type_attr_copy_fn(MPI_Datatype __pyx_v_datatype,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)9105 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_type_attr_copy_fn(MPI_Datatype __pyx_v_datatype, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
9106   PyObject *__pyx_v_exc = 0;
9107   int __pyx_r;
9108   __Pyx_RefNannyDeclarations
9109   int __pyx_t_1;
9110   PyObject *__pyx_t_2 = NULL;
9111   PyObject *__pyx_t_3 = NULL;
9112   PyObject *__pyx_t_4 = NULL;
9113   int __pyx_t_5;
9114   PyObject *__pyx_t_6 = NULL;
9115   PyObject *__pyx_t_7 = NULL;
9116   PyObject *__pyx_t_8 = NULL;
9117   PyObject *__pyx_t_9 = NULL;
9118   PyObject *__pyx_t_10 = NULL;
9119   int __pyx_lineno = 0;
9120   const char *__pyx_filename = NULL;
9121   int __pyx_clineno = 0;
9122   #ifdef WITH_THREAD
9123   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
9124   #endif
9125   __Pyx_RefNannySetupContext("type_attr_copy_fn");
9126 
9127   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":55
9128  *                            void *attrval_out,
9129  *                            int *flag) with gil:
9130  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
9131  *         return MPI_SUCCESS
9132  *     if attrval_in == NULL:
9133  */
9134   __pyx_t_1 = (!Py_IsInitialized());
9135   if (__pyx_t_1) {
9136 
9137     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":56
9138  *                            int *flag) with gil:
9139  *     if not Py_IsInitialized():
9140  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
9141  *     if attrval_in == NULL:
9142  *         return MPI_ERR_INTERN
9143  */
9144     __pyx_r = MPI_SUCCESS;
9145     goto __pyx_L0;
9146     goto __pyx_L3;
9147   }
9148   __pyx_L3:;
9149 
9150   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":57
9151  *     if not Py_IsInitialized():
9152  *         return MPI_SUCCESS
9153  *     if attrval_in == NULL:             # <<<<<<<<<<<<<<
9154  *         return MPI_ERR_INTERN
9155  *     if attrval_out == NULL:
9156  */
9157   __pyx_t_1 = (__pyx_v_attrval_in == NULL);
9158   if (__pyx_t_1) {
9159 
9160     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":58
9161  *         return MPI_SUCCESS
9162  *     if attrval_in == NULL:
9163  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
9164  *     if attrval_out == NULL:
9165  *         return MPI_ERR_INTERN
9166  */
9167     __pyx_r = MPI_ERR_INTERN;
9168     goto __pyx_L0;
9169     goto __pyx_L4;
9170   }
9171   __pyx_L4:;
9172 
9173   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":59
9174  *     if attrval_in == NULL:
9175  *         return MPI_ERR_INTERN
9176  *     if attrval_out == NULL:             # <<<<<<<<<<<<<<
9177  *         return MPI_ERR_INTERN
9178  *     cdef object exc
9179  */
9180   __pyx_t_1 = (__pyx_v_attrval_out == NULL);
9181   if (__pyx_t_1) {
9182 
9183     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":60
9184  *         return MPI_ERR_INTERN
9185  *     if attrval_out == NULL:
9186  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
9187  *     cdef object exc
9188  *     try:
9189  */
9190     __pyx_r = MPI_ERR_INTERN;
9191     goto __pyx_L0;
9192     goto __pyx_L5;
9193   }
9194   __pyx_L5:;
9195 
9196   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":62
9197  *         return MPI_ERR_INTERN
9198  *     cdef object exc
9199  *     try:             # <<<<<<<<<<<<<<
9200  *         type_attr_copy(datatype, keyval, extra_state,
9201  *                        attrval_in, attrval_out, flag)
9202  */
9203   {
9204     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
9205     __Pyx_XGOTREF(__pyx_t_2);
9206     __Pyx_XGOTREF(__pyx_t_3);
9207     __Pyx_XGOTREF(__pyx_t_4);
9208     /*try:*/ {
9209 
9210       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":64
9211  *     try:
9212  *         type_attr_copy(datatype, keyval, extra_state,
9213  *                        attrval_in, attrval_out, flag)             # <<<<<<<<<<<<<<
9214  *     except MPIException, exc:
9215  *         print_traceback()
9216  */
9217       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_type_attr_copy(__pyx_v_datatype, __pyx_v_keyval, __pyx_v_extra_state, __pyx_v_attrval_in, __pyx_v_attrval_out, __pyx_v_flag); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
9218     }
9219     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9220     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9221     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9222     goto __pyx_L13_try_end;
9223     __pyx_L6_error:;
9224 
9225     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":65
9226  *         type_attr_copy(datatype, keyval, extra_state,
9227  *                        attrval_in, attrval_out, flag)
9228  *     except MPIException, exc:             # <<<<<<<<<<<<<<
9229  *         print_traceback()
9230  *         return exc.Get_error_code()
9231  */
9232     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
9233     if (__pyx_t_5) {
9234       __Pyx_AddTraceback("mpi4py.MPI.type_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9235       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
9236       __Pyx_GOTREF(__pyx_t_6);
9237       __Pyx_GOTREF(__pyx_t_7);
9238       __Pyx_GOTREF(__pyx_t_8);
9239       __Pyx_INCREF(__pyx_t_7);
9240       __pyx_v_exc = __pyx_t_7;
9241 
9242       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":66
9243  *                        attrval_in, attrval_out, flag)
9244  *     except MPIException, exc:
9245  *         print_traceback()             # <<<<<<<<<<<<<<
9246  *         return exc.Get_error_code()
9247  *     except:
9248  */
9249       __pyx_f_6mpi4py_3MPI_print_traceback();
9250 
9251       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":67
9252  *     except MPIException, exc:
9253  *         print_traceback()
9254  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
9255  *     except:
9256  *         print_traceback()
9257  */
9258       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
9259       __Pyx_GOTREF(__pyx_t_9);
9260       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
9261       __Pyx_GOTREF(__pyx_t_10);
9262       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
9263       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
9264       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
9265       __pyx_r = __pyx_t_5;
9266       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9267       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9268       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9269       goto __pyx_L9_except_return;
9270       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9271       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9272       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9273       goto __pyx_L7_exception_handled;
9274     }
9275 
9276     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":68
9277  *         print_traceback()
9278  *         return exc.Get_error_code()
9279  *     except:             # <<<<<<<<<<<<<<
9280  *         print_traceback()
9281  *         return MPI_ERR_OTHER
9282  */
9283     /*except:*/ {
9284       __Pyx_AddTraceback("mpi4py.MPI.type_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9285       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
9286       __Pyx_GOTREF(__pyx_t_8);
9287       __Pyx_GOTREF(__pyx_t_7);
9288       __Pyx_GOTREF(__pyx_t_6);
9289 
9290       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":69
9291  *         return exc.Get_error_code()
9292  *     except:
9293  *         print_traceback()             # <<<<<<<<<<<<<<
9294  *         return MPI_ERR_OTHER
9295  *     return MPI_SUCCESS
9296  */
9297       __pyx_f_6mpi4py_3MPI_print_traceback();
9298 
9299       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":70
9300  *     except:
9301  *         print_traceback()
9302  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
9303  *     return MPI_SUCCESS
9304  *
9305  */
9306       __pyx_r = MPI_ERR_OTHER;
9307       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9308       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9309       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9310       goto __pyx_L9_except_return;
9311       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9312       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9313       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9314       goto __pyx_L7_exception_handled;
9315     }
9316     __pyx_L8_except_error:;
9317     __Pyx_XGIVEREF(__pyx_t_2);
9318     __Pyx_XGIVEREF(__pyx_t_3);
9319     __Pyx_XGIVEREF(__pyx_t_4);
9320     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9321     goto __pyx_L1_error;
9322     __pyx_L9_except_return:;
9323     __Pyx_XGIVEREF(__pyx_t_2);
9324     __Pyx_XGIVEREF(__pyx_t_3);
9325     __Pyx_XGIVEREF(__pyx_t_4);
9326     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9327     goto __pyx_L0;
9328     __pyx_L7_exception_handled:;
9329     __Pyx_XGIVEREF(__pyx_t_2);
9330     __Pyx_XGIVEREF(__pyx_t_3);
9331     __Pyx_XGIVEREF(__pyx_t_4);
9332     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9333     __pyx_L13_try_end:;
9334   }
9335 
9336   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":71
9337  *         print_traceback()
9338  *         return MPI_ERR_OTHER
9339  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
9340  *
9341  * @cython.callspec("PyMPIAPI")
9342  */
9343   __pyx_r = MPI_SUCCESS;
9344   goto __pyx_L0;
9345 
9346   __pyx_r = 0;
9347   goto __pyx_L0;
9348   __pyx_L1_error:;
9349   __Pyx_XDECREF(__pyx_t_6);
9350   __Pyx_XDECREF(__pyx_t_7);
9351   __Pyx_XDECREF(__pyx_t_8);
9352   __Pyx_XDECREF(__pyx_t_9);
9353   __Pyx_XDECREF(__pyx_t_10);
9354   __Pyx_WriteUnraisable("mpi4py.MPI.type_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9355   __pyx_r = 0;
9356   __pyx_L0:;
9357   __Pyx_XDECREF(__pyx_v_exc);
9358   __Pyx_RefNannyFinishContext();
9359   #ifdef WITH_THREAD
9360   PyGILState_Release(__pyx_gilstate_save);
9361   #endif
9362   return __pyx_r;
9363 }
9364 
9365 /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":74
9366  *
9367  * @cython.callspec("PyMPIAPI")
9368  * cdef int type_attr_delete_fn(MPI_Datatype datatype,             # <<<<<<<<<<<<<<
9369  *                              int keyval,
9370  *                              void *attrval,
9371  */
9372 
__pyx_f_6mpi4py_3MPI_type_attr_delete_fn(MPI_Datatype __pyx_v_datatype,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)9373 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_type_attr_delete_fn(MPI_Datatype __pyx_v_datatype, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
9374   PyObject *__pyx_v_exc = 0;
9375   int __pyx_r;
9376   __Pyx_RefNannyDeclarations
9377   int __pyx_t_1;
9378   PyObject *__pyx_t_2 = NULL;
9379   PyObject *__pyx_t_3 = NULL;
9380   PyObject *__pyx_t_4 = NULL;
9381   int __pyx_t_5;
9382   PyObject *__pyx_t_6 = NULL;
9383   PyObject *__pyx_t_7 = NULL;
9384   PyObject *__pyx_t_8 = NULL;
9385   PyObject *__pyx_t_9 = NULL;
9386   PyObject *__pyx_t_10 = NULL;
9387   int __pyx_lineno = 0;
9388   const char *__pyx_filename = NULL;
9389   int __pyx_clineno = 0;
9390   #ifdef WITH_THREAD
9391   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
9392   #endif
9393   __Pyx_RefNannySetupContext("type_attr_delete_fn");
9394 
9395   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":78
9396  *                              void *attrval,
9397  *                              void *extra_state) with gil:
9398  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
9399  *         return MPI_SUCCESS
9400  *     if attrval == NULL:
9401  */
9402   __pyx_t_1 = (!Py_IsInitialized());
9403   if (__pyx_t_1) {
9404 
9405     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":79
9406  *                              void *extra_state) with gil:
9407  *     if not Py_IsInitialized():
9408  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
9409  *     if attrval == NULL:
9410  *         return MPI_ERR_INTERN
9411  */
9412     __pyx_r = MPI_SUCCESS;
9413     goto __pyx_L0;
9414     goto __pyx_L3;
9415   }
9416   __pyx_L3:;
9417 
9418   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":80
9419  *     if not Py_IsInitialized():
9420  *         return MPI_SUCCESS
9421  *     if attrval == NULL:             # <<<<<<<<<<<<<<
9422  *         return MPI_ERR_INTERN
9423  *     cdef object exc
9424  */
9425   __pyx_t_1 = (__pyx_v_attrval == NULL);
9426   if (__pyx_t_1) {
9427 
9428     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":81
9429  *         return MPI_SUCCESS
9430  *     if attrval == NULL:
9431  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
9432  *     cdef object exc
9433  *     try:
9434  */
9435     __pyx_r = MPI_ERR_INTERN;
9436     goto __pyx_L0;
9437     goto __pyx_L4;
9438   }
9439   __pyx_L4:;
9440 
9441   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":83
9442  *         return MPI_ERR_INTERN
9443  *     cdef object exc
9444  *     try:             # <<<<<<<<<<<<<<
9445  *         type_attr_delete(datatype, keyval, attrval, extra_state)
9446  *     except MPIException, exc:
9447  */
9448   {
9449     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
9450     __Pyx_XGOTREF(__pyx_t_2);
9451     __Pyx_XGOTREF(__pyx_t_3);
9452     __Pyx_XGOTREF(__pyx_t_4);
9453     /*try:*/ {
9454 
9455       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":84
9456  *     cdef object exc
9457  *     try:
9458  *         type_attr_delete(datatype, keyval, attrval, extra_state)             # <<<<<<<<<<<<<<
9459  *     except MPIException, exc:
9460  *         print_traceback()
9461  */
9462       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_type_attr_delete(__pyx_v_datatype, __pyx_v_keyval, __pyx_v_attrval, __pyx_v_extra_state); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
9463     }
9464     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9465     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9466     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9467     goto __pyx_L12_try_end;
9468     __pyx_L5_error:;
9469 
9470     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":85
9471  *     try:
9472  *         type_attr_delete(datatype, keyval, attrval, extra_state)
9473  *     except MPIException, exc:             # <<<<<<<<<<<<<<
9474  *         print_traceback()
9475  *         return exc.Get_error_code()
9476  */
9477     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
9478     if (__pyx_t_5) {
9479       __Pyx_AddTraceback("mpi4py.MPI.type_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9480       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
9481       __Pyx_GOTREF(__pyx_t_6);
9482       __Pyx_GOTREF(__pyx_t_7);
9483       __Pyx_GOTREF(__pyx_t_8);
9484       __Pyx_INCREF(__pyx_t_7);
9485       __pyx_v_exc = __pyx_t_7;
9486 
9487       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":86
9488  *         type_attr_delete(datatype, keyval, attrval, extra_state)
9489  *     except MPIException, exc:
9490  *         print_traceback()             # <<<<<<<<<<<<<<
9491  *         return exc.Get_error_code()
9492  *     except:
9493  */
9494       __pyx_f_6mpi4py_3MPI_print_traceback();
9495 
9496       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":87
9497  *     except MPIException, exc:
9498  *         print_traceback()
9499  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
9500  *     except:
9501  *         print_traceback()
9502  */
9503       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
9504       __Pyx_GOTREF(__pyx_t_9);
9505       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
9506       __Pyx_GOTREF(__pyx_t_10);
9507       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
9508       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
9509       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
9510       __pyx_r = __pyx_t_5;
9511       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9512       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9513       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9514       goto __pyx_L8_except_return;
9515       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9516       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9517       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9518       goto __pyx_L6_exception_handled;
9519     }
9520 
9521     /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":88
9522  *         print_traceback()
9523  *         return exc.Get_error_code()
9524  *     except:             # <<<<<<<<<<<<<<
9525  *         print_traceback()
9526  *         return MPI_ERR_OTHER
9527  */
9528     /*except:*/ {
9529       __Pyx_AddTraceback("mpi4py.MPI.type_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9530       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
9531       __Pyx_GOTREF(__pyx_t_8);
9532       __Pyx_GOTREF(__pyx_t_7);
9533       __Pyx_GOTREF(__pyx_t_6);
9534 
9535       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":89
9536  *         return exc.Get_error_code()
9537  *     except:
9538  *         print_traceback()             # <<<<<<<<<<<<<<
9539  *         return MPI_ERR_OTHER
9540  *     return MPI_SUCCESS
9541  */
9542       __pyx_f_6mpi4py_3MPI_print_traceback();
9543 
9544       /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":90
9545  *     except:
9546  *         print_traceback()
9547  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
9548  *     return MPI_SUCCESS
9549  *
9550  */
9551       __pyx_r = MPI_ERR_OTHER;
9552       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9553       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9554       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9555       goto __pyx_L8_except_return;
9556       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9557       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9558       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9559       goto __pyx_L6_exception_handled;
9560     }
9561     __pyx_L7_except_error:;
9562     __Pyx_XGIVEREF(__pyx_t_2);
9563     __Pyx_XGIVEREF(__pyx_t_3);
9564     __Pyx_XGIVEREF(__pyx_t_4);
9565     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9566     goto __pyx_L1_error;
9567     __pyx_L8_except_return:;
9568     __Pyx_XGIVEREF(__pyx_t_2);
9569     __Pyx_XGIVEREF(__pyx_t_3);
9570     __Pyx_XGIVEREF(__pyx_t_4);
9571     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9572     goto __pyx_L0;
9573     __pyx_L6_exception_handled:;
9574     __Pyx_XGIVEREF(__pyx_t_2);
9575     __Pyx_XGIVEREF(__pyx_t_3);
9576     __Pyx_XGIVEREF(__pyx_t_4);
9577     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9578     __pyx_L12_try_end:;
9579   }
9580 
9581   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":91
9582  *         print_traceback()
9583  *         return MPI_ERR_OTHER
9584  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
9585  *
9586  * # -----------------------------------------------------------------------------
9587  */
9588   __pyx_r = MPI_SUCCESS;
9589   goto __pyx_L0;
9590 
9591   __pyx_r = 0;
9592   goto __pyx_L0;
9593   __pyx_L1_error:;
9594   __Pyx_XDECREF(__pyx_t_6);
9595   __Pyx_XDECREF(__pyx_t_7);
9596   __Pyx_XDECREF(__pyx_t_8);
9597   __Pyx_XDECREF(__pyx_t_9);
9598   __Pyx_XDECREF(__pyx_t_10);
9599   __Pyx_WriteUnraisable("mpi4py.MPI.type_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
9600   __pyx_r = 0;
9601   __pyx_L0:;
9602   __Pyx_XDECREF(__pyx_v_exc);
9603   __Pyx_RefNannyFinishContext();
9604   #ifdef WITH_THREAD
9605   PyGILState_Release(__pyx_gilstate_save);
9606   #endif
9607   return __pyx_r;
9608 }
9609 
9610 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":37
9611  * include "typeimpl.pxi"
9612  *
9613  * cdef inline Datatype new_Datatype(MPI_Datatype ob):             # <<<<<<<<<<<<<<
9614  *     cdef Datatype datatype = <Datatype>Datatype.__new__(Datatype)
9615  *     datatype.ob_mpi = ob
9616  */
9617 
__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_Datatype __pyx_v_ob)9618 static CYTHON_INLINE struct PyMPIDatatypeObject *__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_Datatype __pyx_v_ob) {
9619   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
9620   struct PyMPIDatatypeObject *__pyx_r = NULL;
9621   __Pyx_RefNannyDeclarations
9622   PyObject *__pyx_t_1 = NULL;
9623   int __pyx_lineno = 0;
9624   const char *__pyx_filename = NULL;
9625   int __pyx_clineno = 0;
9626   __Pyx_RefNannySetupContext("new_Datatype");
9627 
9628   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":38
9629  *
9630  * cdef inline Datatype new_Datatype(MPI_Datatype ob):
9631  *     cdef Datatype datatype = <Datatype>Datatype.__new__(Datatype)             # <<<<<<<<<<<<<<
9632  *     datatype.ob_mpi = ob
9633  *     return datatype
9634  */
9635   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9636   __Pyx_GOTREF(__pyx_t_1);
9637   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
9638   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
9639   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9640 
9641   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":39
9642  * cdef inline Datatype new_Datatype(MPI_Datatype ob):
9643  *     cdef Datatype datatype = <Datatype>Datatype.__new__(Datatype)
9644  *     datatype.ob_mpi = ob             # <<<<<<<<<<<<<<
9645  *     return datatype
9646  *
9647  */
9648   __pyx_v_datatype->ob_mpi = __pyx_v_ob;
9649 
9650   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":40
9651  *     cdef Datatype datatype = <Datatype>Datatype.__new__(Datatype)
9652  *     datatype.ob_mpi = ob
9653  *     return datatype             # <<<<<<<<<<<<<<
9654  *
9655  * cdef inline int del_Datatype(MPI_Datatype* ob):
9656  */
9657   __Pyx_XDECREF(((PyObject *)__pyx_r));
9658   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
9659   __pyx_r = __pyx_v_datatype;
9660   goto __pyx_L0;
9661 
9662   __pyx_r = ((struct PyMPIDatatypeObject *)Py_None); __Pyx_INCREF(Py_None);
9663   goto __pyx_L0;
9664   __pyx_L1_error:;
9665   __Pyx_XDECREF(__pyx_t_1);
9666   __Pyx_AddTraceback("mpi4py.MPI.new_Datatype", __pyx_clineno, __pyx_lineno, __pyx_filename);
9667   __pyx_r = 0;
9668   __pyx_L0:;
9669   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
9670   __Pyx_XGIVEREF((PyObject *)__pyx_r);
9671   __Pyx_RefNannyFinishContext();
9672   return __pyx_r;
9673 }
9674 
9675 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":42
9676  *     return datatype
9677  *
9678  * cdef inline int del_Datatype(MPI_Datatype* ob):             # <<<<<<<<<<<<<<
9679  *     #
9680  *     if ob    == NULL              : return 0
9681  */
9682 
__pyx_f_6mpi4py_3MPI_del_Datatype(MPI_Datatype * __pyx_v_ob)9683 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Datatype(MPI_Datatype *__pyx_v_ob) {
9684   int __pyx_r;
9685   __Pyx_RefNannyDeclarations
9686   int __pyx_t_1;
9687   __Pyx_RefNannySetupContext("del_Datatype");
9688 
9689   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":44
9690  * cdef inline int del_Datatype(MPI_Datatype* ob):
9691  *     #
9692  *     if ob    == NULL              : return 0             # <<<<<<<<<<<<<<
9693  *     if ob[0] == MPI_DATATYPE_NULL : return 0
9694  *     if not mpi_active()           : return 0
9695  */
9696   __pyx_t_1 = (__pyx_v_ob == NULL);
9697   if (__pyx_t_1) {
9698     __pyx_r = 0;
9699     goto __pyx_L0;
9700     goto __pyx_L3;
9701   }
9702   __pyx_L3:;
9703 
9704   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":45
9705  *     #
9706  *     if ob    == NULL              : return 0
9707  *     if ob[0] == MPI_DATATYPE_NULL : return 0             # <<<<<<<<<<<<<<
9708  *     if not mpi_active()           : return 0
9709  *     #
9710  */
9711   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_DATATYPE_NULL);
9712   if (__pyx_t_1) {
9713     __pyx_r = 0;
9714     goto __pyx_L0;
9715     goto __pyx_L4;
9716   }
9717   __pyx_L4:;
9718 
9719   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":46
9720  *     if ob    == NULL              : return 0
9721  *     if ob[0] == MPI_DATATYPE_NULL : return 0
9722  *     if not mpi_active()           : return 0             # <<<<<<<<<<<<<<
9723  *     #
9724  *     return MPI_Type_free(ob)
9725  */
9726   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
9727   if (__pyx_t_1) {
9728     __pyx_r = 0;
9729     goto __pyx_L0;
9730     goto __pyx_L5;
9731   }
9732   __pyx_L5:;
9733 
9734   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":48
9735  *     if not mpi_active()           : return 0
9736  *     #
9737  *     return MPI_Type_free(ob)             # <<<<<<<<<<<<<<
9738  *
9739  * cdef inline int named_Datatype(MPI_Datatype ob):
9740  */
9741   __pyx_r = MPI_Type_free(__pyx_v_ob);
9742   goto __pyx_L0;
9743 
9744   __pyx_r = 0;
9745   __pyx_L0:;
9746   __Pyx_RefNannyFinishContext();
9747   return __pyx_r;
9748 }
9749 
9750 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":50
9751  *     return MPI_Type_free(ob)
9752  *
9753  * cdef inline int named_Datatype(MPI_Datatype ob):             # <<<<<<<<<<<<<<
9754  *     if ob == MPI_DATATYPE_NULL: return 0
9755  *     cdef int ni = 0, na = 0, nt = 0, combiner = MPI_UNDEFINED
9756  */
9757 
__pyx_f_6mpi4py_3MPI_named_Datatype(MPI_Datatype __pyx_v_ob)9758 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_named_Datatype(MPI_Datatype __pyx_v_ob) {
9759   int __pyx_v_ni;
9760   int __pyx_v_na;
9761   int __pyx_v_nt;
9762   int __pyx_v_combiner;
9763   int __pyx_v_ierr;
9764   int __pyx_r;
9765   __Pyx_RefNannyDeclarations
9766   int __pyx_t_1;
9767   __Pyx_RefNannySetupContext("named_Datatype");
9768 
9769   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":51
9770  *
9771  * cdef inline int named_Datatype(MPI_Datatype ob):
9772  *     if ob == MPI_DATATYPE_NULL: return 0             # <<<<<<<<<<<<<<
9773  *     cdef int ni = 0, na = 0, nt = 0, combiner = MPI_UNDEFINED
9774  *     cdef int ierr = MPI_SUCCESS
9775  */
9776   __pyx_t_1 = (__pyx_v_ob == MPI_DATATYPE_NULL);
9777   if (__pyx_t_1) {
9778     __pyx_r = 0;
9779     goto __pyx_L0;
9780     goto __pyx_L3;
9781   }
9782   __pyx_L3:;
9783 
9784   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":52
9785  * cdef inline int named_Datatype(MPI_Datatype ob):
9786  *     if ob == MPI_DATATYPE_NULL: return 0
9787  *     cdef int ni = 0, na = 0, nt = 0, combiner = MPI_UNDEFINED             # <<<<<<<<<<<<<<
9788  *     cdef int ierr = MPI_SUCCESS
9789  *     ierr = MPI_Type_get_envelope(ob, &ni, &na, &nt, &combiner)
9790  */
9791   __pyx_v_ni = 0;
9792   __pyx_v_na = 0;
9793   __pyx_v_nt = 0;
9794   __pyx_v_combiner = MPI_UNDEFINED;
9795 
9796   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":53
9797  *     if ob == MPI_DATATYPE_NULL: return 0
9798  *     cdef int ni = 0, na = 0, nt = 0, combiner = MPI_UNDEFINED
9799  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
9800  *     ierr = MPI_Type_get_envelope(ob, &ni, &na, &nt, &combiner)
9801  *     if ierr: return 0 # XXX
9802  */
9803   __pyx_v_ierr = MPI_SUCCESS;
9804 
9805   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":54
9806  *     cdef int ni = 0, na = 0, nt = 0, combiner = MPI_UNDEFINED
9807  *     cdef int ierr = MPI_SUCCESS
9808  *     ierr = MPI_Type_get_envelope(ob, &ni, &na, &nt, &combiner)             # <<<<<<<<<<<<<<
9809  *     if ierr: return 0 # XXX
9810  *     return combiner == MPI_COMBINER_NAMED
9811  */
9812   __pyx_v_ierr = MPI_Type_get_envelope(__pyx_v_ob, (&__pyx_v_ni), (&__pyx_v_na), (&__pyx_v_nt), (&__pyx_v_combiner));
9813 
9814   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":55
9815  *     cdef int ierr = MPI_SUCCESS
9816  *     ierr = MPI_Type_get_envelope(ob, &ni, &na, &nt, &combiner)
9817  *     if ierr: return 0 # XXX             # <<<<<<<<<<<<<<
9818  *     return combiner == MPI_COMBINER_NAMED
9819  *
9820  */
9821   if (__pyx_v_ierr) {
9822     __pyx_r = 0;
9823     goto __pyx_L0;
9824     goto __pyx_L4;
9825   }
9826   __pyx_L4:;
9827 
9828   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":56
9829  *     ierr = MPI_Type_get_envelope(ob, &ni, &na, &nt, &combiner)
9830  *     if ierr: return 0 # XXX
9831  *     return combiner == MPI_COMBINER_NAMED             # <<<<<<<<<<<<<<
9832  *
9833  * cdef void fix_fileview_Datatype(Datatype datatype):
9834  */
9835   __pyx_r = (__pyx_v_combiner == MPI_COMBINER_NAMED);
9836   goto __pyx_L0;
9837 
9838   __pyx_r = 0;
9839   __pyx_L0:;
9840   __Pyx_RefNannyFinishContext();
9841   return __pyx_r;
9842 }
9843 
9844 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":58
9845  *     return combiner == MPI_COMBINER_NAMED
9846  *
9847  * cdef void fix_fileview_Datatype(Datatype datatype):             # <<<<<<<<<<<<<<
9848  *     cdef MPI_Datatype ob = datatype.ob_mpi
9849  *     if ob == MPI_DATATYPE_NULL: return
9850  */
9851 
__pyx_f_6mpi4py_3MPI_fix_fileview_Datatype(struct PyMPIDatatypeObject * __pyx_v_datatype)9852 static void __pyx_f_6mpi4py_3MPI_fix_fileview_Datatype(struct PyMPIDatatypeObject *__pyx_v_datatype) {
9853   MPI_Datatype __pyx_v_ob;
9854   __Pyx_RefNannyDeclarations
9855   int __pyx_t_1;
9856   int __pyx_t_2;
9857   __Pyx_RefNannySetupContext("fix_fileview_Datatype");
9858 
9859   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":59
9860  *
9861  * cdef void fix_fileview_Datatype(Datatype datatype):
9862  *     cdef MPI_Datatype ob = datatype.ob_mpi             # <<<<<<<<<<<<<<
9863  *     if ob == MPI_DATATYPE_NULL: return
9864  *     if named_Datatype(ob): pass
9865  */
9866   __pyx_v_ob = __pyx_v_datatype->ob_mpi;
9867 
9868   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":60
9869  * cdef void fix_fileview_Datatype(Datatype datatype):
9870  *     cdef MPI_Datatype ob = datatype.ob_mpi
9871  *     if ob == MPI_DATATYPE_NULL: return             # <<<<<<<<<<<<<<
9872  *     if named_Datatype(ob): pass
9873  *
9874  */
9875   __pyx_t_1 = (__pyx_v_ob == MPI_DATATYPE_NULL);
9876   if (__pyx_t_1) {
9877     goto __pyx_L0;
9878     goto __pyx_L3;
9879   }
9880   __pyx_L3:;
9881 
9882   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":61
9883  *     cdef MPI_Datatype ob = datatype.ob_mpi
9884  *     if ob == MPI_DATATYPE_NULL: return
9885  *     if named_Datatype(ob): pass             # <<<<<<<<<<<<<<
9886  *
9887  * #------------------------------------------------------------------------------
9888  */
9889   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_named_Datatype(__pyx_v_ob);
9890   if (__pyx_t_2) {
9891     goto __pyx_L4;
9892   }
9893   __pyx_L4:;
9894 
9895   __pyx_L0:;
9896   __Pyx_RefNannyFinishContext();
9897 }
9898 
9899 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":8
9900  * empty_status.MPI_ERROR  = MPI_SUCCESS
9901  *
9902  * cdef object acquire_rs(object requests,             # <<<<<<<<<<<<<<
9903  *                        object statuses,
9904  *                        int         *count,
9905  */
9906 
__pyx_f_6mpi4py_3MPI_acquire_rs(PyObject * __pyx_v_requests,PyObject * __pyx_v_statuses,int * __pyx_v_count,MPI_Request ** __pyx_v_rp,MPI_Status ** __pyx_v_sp)9907 static PyObject *__pyx_f_6mpi4py_3MPI_acquire_rs(PyObject *__pyx_v_requests, PyObject *__pyx_v_statuses, int *__pyx_v_count, MPI_Request **__pyx_v_rp, MPI_Status **__pyx_v_sp) {
9908   MPI_Request *__pyx_v_array_r;
9909   MPI_Status *__pyx_v_array_s;
9910   PyObject *__pyx_v_ob_r = 0;
9911   PyObject *__pyx_v_ob_s = 0;
9912   Py_ssize_t __pyx_v_i;
9913   Py_ssize_t __pyx_v_n;
9914   PyObject *__pyx_r = NULL;
9915   __Pyx_RefNannyDeclarations
9916   Py_ssize_t __pyx_t_1;
9917   PyObject *__pyx_t_2 = NULL;
9918   int __pyx_t_3;
9919   int __pyx_lineno = 0;
9920   const char *__pyx_filename = NULL;
9921   int __pyx_clineno = 0;
9922   __Pyx_RefNannySetupContext("acquire_rs");
9923 
9924   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":13
9925  *                        MPI_Request *rp[],
9926  *                        MPI_Status  *sp[]):
9927  *      cdef MPI_Request *array_r = NULL             # <<<<<<<<<<<<<<
9928  *      cdef MPI_Status  *array_s = NULL
9929  *      cdef object ob_r = None, ob_s = None
9930  */
9931   __pyx_v_array_r = NULL;
9932 
9933   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":14
9934  *                        MPI_Status  *sp[]):
9935  *      cdef MPI_Request *array_r = NULL
9936  *      cdef MPI_Status  *array_s = NULL             # <<<<<<<<<<<<<<
9937  *      cdef object ob_r = None, ob_s = None
9938  *      cdef Py_ssize_t i = 0, n = len(requests)
9939  */
9940   __pyx_v_array_s = NULL;
9941 
9942   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":15
9943  *      cdef MPI_Request *array_r = NULL
9944  *      cdef MPI_Status  *array_s = NULL
9945  *      cdef object ob_r = None, ob_s = None             # <<<<<<<<<<<<<<
9946  *      cdef Py_ssize_t i = 0, n = len(requests)
9947  *      count[0] = <int>n # XXX overflow ?
9948  */
9949   __Pyx_INCREF(Py_None);
9950   __pyx_v_ob_r = Py_None;
9951   __Pyx_INCREF(Py_None);
9952   __pyx_v_ob_s = Py_None;
9953 
9954   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":16
9955  *      cdef MPI_Status  *array_s = NULL
9956  *      cdef object ob_r = None, ob_s = None
9957  *      cdef Py_ssize_t i = 0, n = len(requests)             # <<<<<<<<<<<<<<
9958  *      count[0] = <int>n # XXX overflow ?
9959  *      ob_r = allocate(n, sizeof(MPI_Request), <void**>&array_r)
9960  */
9961   __pyx_v_i = 0;
9962   __pyx_t_1 = PyObject_Length(__pyx_v_requests); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9963   __pyx_v_n = __pyx_t_1;
9964 
9965   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":17
9966  *      cdef object ob_r = None, ob_s = None
9967  *      cdef Py_ssize_t i = 0, n = len(requests)
9968  *      count[0] = <int>n # XXX overflow ?             # <<<<<<<<<<<<<<
9969  *      ob_r = allocate(n, sizeof(MPI_Request), <void**>&array_r)
9970  *      for i from 0 <= i < n:
9971  */
9972   (__pyx_v_count[0]) = ((int)__pyx_v_n);
9973 
9974   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":18
9975  *      cdef Py_ssize_t i = 0, n = len(requests)
9976  *      count[0] = <int>n # XXX overflow ?
9977  *      ob_r = allocate(n, sizeof(MPI_Request), <void**>&array_r)             # <<<<<<<<<<<<<<
9978  *      for i from 0 <= i < n:
9979  *          array_r[i] = (<Request?>requests[i]).ob_mpi
9980  */
9981   __pyx_t_2 = PyMPI_Allocate(__pyx_v_n, (sizeof(MPI_Request)), ((void **)(&__pyx_v_array_r))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9982   __Pyx_GOTREF(__pyx_t_2);
9983   __Pyx_DECREF(__pyx_v_ob_r);
9984   __pyx_v_ob_r = __pyx_t_2;
9985   __pyx_t_2 = 0;
9986 
9987   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":19
9988  *      count[0] = <int>n # XXX overflow ?
9989  *      ob_r = allocate(n, sizeof(MPI_Request), <void**>&array_r)
9990  *      for i from 0 <= i < n:             # <<<<<<<<<<<<<<
9991  *          array_r[i] = (<Request?>requests[i]).ob_mpi
9992  *      rp[0] = array_r
9993  */
9994   __pyx_t_1 = __pyx_v_n;
9995   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
9996 
9997     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":20
9998  *      ob_r = allocate(n, sizeof(MPI_Request), <void**>&array_r)
9999  *      for i from 0 <= i < n:
10000  *          array_r[i] = (<Request?>requests[i]).ob_mpi             # <<<<<<<<<<<<<<
10001  *      rp[0] = array_r
10002  *      if statuses is not None:
10003  */
10004     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_requests, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10005     __Pyx_GOTREF(__pyx_t_2);
10006     if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Request)))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10007     (__pyx_v_array_r[__pyx_v_i]) = ((struct PyMPIRequestObject *)__pyx_t_2)->ob_mpi;
10008     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10009   }
10010 
10011   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":21
10012  *      for i from 0 <= i < n:
10013  *          array_r[i] = (<Request?>requests[i]).ob_mpi
10014  *      rp[0] = array_r             # <<<<<<<<<<<<<<
10015  *      if statuses is not None:
10016  *          ob_s = allocate(n, sizeof(MPI_Status), <void**>&array_s)
10017  */
10018   (__pyx_v_rp[0]) = __pyx_v_array_r;
10019 
10020   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":22
10021  *          array_r[i] = (<Request?>requests[i]).ob_mpi
10022  *      rp[0] = array_r
10023  *      if statuses is not None:             # <<<<<<<<<<<<<<
10024  *          ob_s = allocate(n, sizeof(MPI_Status), <void**>&array_s)
10025  *          for i from 0 <= i < n:
10026  */
10027   __pyx_t_3 = (__pyx_v_statuses != Py_None);
10028   if (__pyx_t_3) {
10029 
10030     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":23
10031  *      rp[0] = array_r
10032  *      if statuses is not None:
10033  *          ob_s = allocate(n, sizeof(MPI_Status), <void**>&array_s)             # <<<<<<<<<<<<<<
10034  *          for i from 0 <= i < n:
10035  *              array_s[i] = empty_status
10036  */
10037     __pyx_t_2 = PyMPI_Allocate(__pyx_v_n, (sizeof(MPI_Status)), ((void **)(&__pyx_v_array_s))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10038     __Pyx_GOTREF(__pyx_t_2);
10039     __Pyx_DECREF(__pyx_v_ob_s);
10040     __pyx_v_ob_s = __pyx_t_2;
10041     __pyx_t_2 = 0;
10042 
10043     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":24
10044  *      if statuses is not None:
10045  *          ob_s = allocate(n, sizeof(MPI_Status), <void**>&array_s)
10046  *          for i from 0 <= i < n:             # <<<<<<<<<<<<<<
10047  *              array_s[i] = empty_status
10048  *          sp[0] = array_s
10049  */
10050     __pyx_t_1 = __pyx_v_n;
10051     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
10052 
10053       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":25
10054  *          ob_s = allocate(n, sizeof(MPI_Status), <void**>&array_s)
10055  *          for i from 0 <= i < n:
10056  *              array_s[i] = empty_status             # <<<<<<<<<<<<<<
10057  *          sp[0] = array_s
10058  *      return (ob_r, ob_s)
10059  */
10060       (__pyx_v_array_s[__pyx_v_i]) = __pyx_v_6mpi4py_3MPI_empty_status;
10061     }
10062 
10063     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":26
10064  *          for i from 0 <= i < n:
10065  *              array_s[i] = empty_status
10066  *          sp[0] = array_s             # <<<<<<<<<<<<<<
10067  *      return (ob_r, ob_s)
10068  *
10069  */
10070     (__pyx_v_sp[0]) = __pyx_v_array_s;
10071     goto __pyx_L5;
10072   }
10073   __pyx_L5:;
10074 
10075   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":27
10076  *              array_s[i] = empty_status
10077  *          sp[0] = array_s
10078  *      return (ob_r, ob_s)             # <<<<<<<<<<<<<<
10079  *
10080  * cdef int release_rs(object requests,
10081  */
10082   __Pyx_XDECREF(__pyx_r);
10083   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10084   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
10085   __Pyx_INCREF(__pyx_v_ob_r);
10086   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ob_r);
10087   __Pyx_GIVEREF(__pyx_v_ob_r);
10088   __Pyx_INCREF(__pyx_v_ob_s);
10089   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_ob_s);
10090   __Pyx_GIVEREF(__pyx_v_ob_s);
10091   __pyx_r = ((PyObject *)__pyx_t_2);
10092   __pyx_t_2 = 0;
10093   goto __pyx_L0;
10094 
10095   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10096   goto __pyx_L0;
10097   __pyx_L1_error:;
10098   __Pyx_XDECREF(__pyx_t_2);
10099   __Pyx_AddTraceback("mpi4py.MPI.acquire_rs", __pyx_clineno, __pyx_lineno, __pyx_filename);
10100   __pyx_r = 0;
10101   __pyx_L0:;
10102   __Pyx_XDECREF(__pyx_v_ob_r);
10103   __Pyx_XDECREF(__pyx_v_ob_s);
10104   __Pyx_XGIVEREF(__pyx_r);
10105   __Pyx_RefNannyFinishContext();
10106   return __pyx_r;
10107 }
10108 
10109 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":29
10110  *      return (ob_r, ob_s)
10111  *
10112  * cdef int release_rs(object requests,             # <<<<<<<<<<<<<<
10113  *                     object statuses,
10114  *                     int         count,
10115  */
10116 
__pyx_f_6mpi4py_3MPI_release_rs(PyObject * __pyx_v_requests,PyObject * __pyx_v_statuses,int __pyx_v_count,MPI_Request * __pyx_v_rp,MPI_Status * __pyx_v_sp)10117 static int __pyx_f_6mpi4py_3MPI_release_rs(PyObject *__pyx_v_requests, PyObject *__pyx_v_statuses, int __pyx_v_count, MPI_Request *__pyx_v_rp, MPI_Status *__pyx_v_sp) {
10118   Py_ssize_t __pyx_v_i;
10119   Py_ssize_t __pyx_v_nr;
10120   Py_ssize_t __pyx_v_ns;
10121   struct PyMPIRequestObject *__pyx_v_req = 0;
10122   int __pyx_r;
10123   __Pyx_RefNannyDeclarations
10124   Py_ssize_t __pyx_t_1;
10125   PyObject *__pyx_t_2 = NULL;
10126   int __pyx_t_3;
10127   PyObject *__pyx_t_4 = NULL;
10128   int __pyx_lineno = 0;
10129   const char *__pyx_filename = NULL;
10130   int __pyx_clineno = 0;
10131   __Pyx_RefNannySetupContext("release_rs");
10132   __Pyx_INCREF(__pyx_v_statuses);
10133 
10134   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":34
10135  *                     MPI_Request rp[],
10136  *                     MPI_Status  sp[]) except -1:
10137  *     cdef Py_ssize_t i = 0, nr = count, ns = 0             # <<<<<<<<<<<<<<
10138  *     cdef Request req = None
10139  *     for i from 0 <= i < nr:
10140  */
10141   __pyx_v_i = 0;
10142   __pyx_v_nr = __pyx_v_count;
10143   __pyx_v_ns = 0;
10144 
10145   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":35
10146  *                     MPI_Status  sp[]) except -1:
10147  *     cdef Py_ssize_t i = 0, nr = count, ns = 0
10148  *     cdef Request req = None             # <<<<<<<<<<<<<<
10149  *     for i from 0 <= i < nr:
10150  *         req = <Request>requests[i]
10151  */
10152   __Pyx_INCREF(Py_None);
10153   __pyx_v_req = ((struct PyMPIRequestObject *)Py_None);
10154 
10155   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":36
10156  *     cdef Py_ssize_t i = 0, nr = count, ns = 0
10157  *     cdef Request req = None
10158  *     for i from 0 <= i < nr:             # <<<<<<<<<<<<<<
10159  *         req = <Request>requests[i]
10160  *         req.ob_mpi = rp[i]
10161  */
10162   __pyx_t_1 = __pyx_v_nr;
10163   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
10164 
10165     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":37
10166  *     cdef Request req = None
10167  *     for i from 0 <= i < nr:
10168  *         req = <Request>requests[i]             # <<<<<<<<<<<<<<
10169  *         req.ob_mpi = rp[i]
10170  *         if rp[i] == MPI_REQUEST_NULL:
10171  */
10172     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_requests, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10173     __Pyx_GOTREF(__pyx_t_2);
10174     __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_2)));
10175     __Pyx_DECREF(((PyObject *)__pyx_v_req));
10176     __pyx_v_req = ((struct PyMPIRequestObject *)__pyx_t_2);
10177     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10178 
10179     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":38
10180  *     for i from 0 <= i < nr:
10181  *         req = <Request>requests[i]
10182  *         req.ob_mpi = rp[i]             # <<<<<<<<<<<<<<
10183  *         if rp[i] == MPI_REQUEST_NULL:
10184  *             req.ob_buf = None
10185  */
10186     __pyx_v_req->ob_mpi = (__pyx_v_rp[__pyx_v_i]);
10187 
10188     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":39
10189  *         req = <Request>requests[i]
10190  *         req.ob_mpi = rp[i]
10191  *         if rp[i] == MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
10192  *             req.ob_buf = None
10193  *     if statuses is not None:
10194  */
10195     __pyx_t_3 = ((__pyx_v_rp[__pyx_v_i]) == MPI_REQUEST_NULL);
10196     if (__pyx_t_3) {
10197 
10198       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":40
10199  *         req.ob_mpi = rp[i]
10200  *         if rp[i] == MPI_REQUEST_NULL:
10201  *             req.ob_buf = None             # <<<<<<<<<<<<<<
10202  *     if statuses is not None:
10203  *         ns = len(statuses)
10204  */
10205       __Pyx_INCREF(Py_None);
10206       __Pyx_GIVEREF(Py_None);
10207       __Pyx_GOTREF(__pyx_v_req->ob_buf);
10208       __Pyx_DECREF(__pyx_v_req->ob_buf);
10209       __pyx_v_req->ob_buf = Py_None;
10210       goto __pyx_L5;
10211     }
10212     __pyx_L5:;
10213   }
10214 
10215   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":41
10216  *         if rp[i] == MPI_REQUEST_NULL:
10217  *             req.ob_buf = None
10218  *     if statuses is not None:             # <<<<<<<<<<<<<<
10219  *         ns = len(statuses)
10220  *         if nr > ns :
10221  */
10222   __pyx_t_3 = (__pyx_v_statuses != Py_None);
10223   if (__pyx_t_3) {
10224 
10225     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":42
10226  *             req.ob_buf = None
10227  *     if statuses is not None:
10228  *         ns = len(statuses)             # <<<<<<<<<<<<<<
10229  *         if nr > ns :
10230  *             if isinstance(statuses, list):
10231  */
10232     __pyx_t_1 = PyObject_Length(__pyx_v_statuses); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10233     __pyx_v_ns = __pyx_t_1;
10234 
10235     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":43
10236  *     if statuses is not None:
10237  *         ns = len(statuses)
10238  *         if nr > ns :             # <<<<<<<<<<<<<<
10239  *             if isinstance(statuses, list):
10240  *                 statuses += [Status.__new__(Status)
10241  */
10242     __pyx_t_3 = (__pyx_v_nr > __pyx_v_ns);
10243     if (__pyx_t_3) {
10244 
10245       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":44
10246  *         ns = len(statuses)
10247  *         if nr > ns :
10248  *             if isinstance(statuses, list):             # <<<<<<<<<<<<<<
10249  *                 statuses += [Status.__new__(Status)
10250  *                              for i from ns <= i < nr]
10251  */
10252       __pyx_t_2 = ((PyObject *)((PyObject*)(&PyList_Type)));
10253       __Pyx_INCREF(__pyx_t_2);
10254       __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_statuses, __pyx_t_2);
10255       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10256       if (__pyx_t_3) {
10257 
10258         /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":45
10259  *         if nr > ns :
10260  *             if isinstance(statuses, list):
10261  *                 statuses += [Status.__new__(Status)             # <<<<<<<<<<<<<<
10262  *                              for i from ns <= i < nr]
10263  *                 ns = nr
10264  */
10265         __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10266         __Pyx_GOTREF(((PyObject *)__pyx_t_2));
10267 
10268         /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":46
10269  *             if isinstance(statuses, list):
10270  *                 statuses += [Status.__new__(Status)
10271  *                              for i from ns <= i < nr]             # <<<<<<<<<<<<<<
10272  *                 ns = nr
10273  *         for i from 0 <= i < ns:
10274  */
10275         __pyx_t_1 = __pyx_v_nr;
10276         for (__pyx_v_i = __pyx_v_ns; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
10277 
10278           /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":45
10279  *         if nr > ns :
10280  *             if isinstance(statuses, list):
10281  *                 statuses += [Status.__new__(Status)             # <<<<<<<<<<<<<<
10282  *                              for i from ns <= i < nr]
10283  *                 ns = nr
10284  */
10285           __pyx_t_4 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Status)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10286           __Pyx_GOTREF(__pyx_t_4);
10287           if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10288           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10289         }
10290         __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_statuses, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10291         __Pyx_GOTREF(__pyx_t_4);
10292         __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
10293         __Pyx_DECREF(__pyx_v_statuses);
10294         __pyx_v_statuses = __pyx_t_4;
10295         __pyx_t_4 = 0;
10296 
10297         /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":47
10298  *                 statuses += [Status.__new__(Status)
10299  *                              for i from ns <= i < nr]
10300  *                 ns = nr             # <<<<<<<<<<<<<<
10301  *         for i from 0 <= i < ns:
10302  *             (<Status?>statuses[i]).ob_mpi = sp[i]
10303  */
10304         __pyx_v_ns = __pyx_v_nr;
10305         goto __pyx_L8;
10306       }
10307       __pyx_L8:;
10308       goto __pyx_L7;
10309     }
10310     __pyx_L7:;
10311 
10312     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":48
10313  *                              for i from ns <= i < nr]
10314  *                 ns = nr
10315  *         for i from 0 <= i < ns:             # <<<<<<<<<<<<<<
10316  *             (<Status?>statuses[i]).ob_mpi = sp[i]
10317  *     return 0
10318  */
10319     __pyx_t_1 = __pyx_v_ns;
10320     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
10321 
10322       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":49
10323  *                 ns = nr
10324  *         for i from 0 <= i < ns:
10325  *             (<Status?>statuses[i]).ob_mpi = sp[i]             # <<<<<<<<<<<<<<
10326  *     return 0
10327  *
10328  */
10329       __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_statuses, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_4) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10330       __Pyx_GOTREF(__pyx_t_4);
10331       if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_6mpi4py_3MPI_Status)))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10332       ((struct PyMPIStatusObject *)__pyx_t_4)->ob_mpi = (__pyx_v_sp[__pyx_v_i]);
10333       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10334     }
10335     goto __pyx_L6;
10336   }
10337   __pyx_L6:;
10338 
10339   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":50
10340  *         for i from 0 <= i < ns:
10341  *             (<Status?>statuses[i]).ob_mpi = sp[i]
10342  *     return 0             # <<<<<<<<<<<<<<
10343  *
10344  * # -----------------------------------------------------------------------------
10345  */
10346   __pyx_r = 0;
10347   goto __pyx_L0;
10348 
10349   __pyx_r = 0;
10350   goto __pyx_L0;
10351   __pyx_L1_error:;
10352   __Pyx_XDECREF(__pyx_t_2);
10353   __Pyx_XDECREF(__pyx_t_4);
10354   __Pyx_AddTraceback("mpi4py.MPI.release_rs", __pyx_clineno, __pyx_lineno, __pyx_filename);
10355   __pyx_r = -1;
10356   __pyx_L0:;
10357   __Pyx_XDECREF((PyObject *)__pyx_v_req);
10358   __Pyx_XDECREF(__pyx_v_statuses);
10359   __Pyx_RefNannyFinishContext();
10360   return __pyx_r;
10361 }
10362 
10363 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":62
10364  *     cdef dict  kargs
10365  *
10366  *     def __cinit__(self, query_fn, free_fn, cancel_fn, args, kargs):             # <<<<<<<<<<<<<<
10367  *         self.query_fn  = query_fn
10368  *         self.free_fn   = free_fn
10369  */
10370 
10371 static int __pyx_pf_6mpi4py_3MPI_7_p_greq___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_7_p_greq___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)10372 static int __pyx_pf_6mpi4py_3MPI_7_p_greq___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10373   PyObject *__pyx_v_query_fn = 0;
10374   PyObject *__pyx_v_free_fn = 0;
10375   PyObject *__pyx_v_cancel_fn = 0;
10376   PyObject *__pyx_v_args = 0;
10377   PyObject *__pyx_v_kargs = 0;
10378   int __pyx_r;
10379   __Pyx_RefNannyDeclarations
10380   PyObject *__pyx_t_1 = NULL;
10381   int __pyx_t_2;
10382   PyObject *__pyx_t_3 = NULL;
10383   PyObject *__pyx_t_4 = NULL;
10384   int __pyx_lineno = 0;
10385   const char *__pyx_filename = NULL;
10386   int __pyx_clineno = 0;
10387   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__query_fn,&__pyx_n_s__free_fn,&__pyx_n_s__cancel_fn,&__pyx_n_s__args,&__pyx_n_s__kargs,0};
10388   __Pyx_RefNannySetupContext("__cinit__");
10389   {
10390     PyObject* values[5] = {0,0,0,0,0};
10391     if (unlikely(__pyx_kwds)) {
10392       Py_ssize_t kw_args;
10393       switch (PyTuple_GET_SIZE(__pyx_args)) {
10394         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10395         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10396         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10397         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10398         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10399         case  0: break;
10400         default: goto __pyx_L5_argtuple_error;
10401       }
10402       kw_args = PyDict_Size(__pyx_kwds);
10403       switch (PyTuple_GET_SIZE(__pyx_args)) {
10404         case  0:
10405         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__query_fn);
10406         if (likely(values[0])) kw_args--;
10407         else goto __pyx_L5_argtuple_error;
10408         case  1:
10409         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__free_fn);
10410         if (likely(values[1])) kw_args--;
10411         else {
10412           __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10413         }
10414         case  2:
10415         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cancel_fn);
10416         if (likely(values[2])) kw_args--;
10417         else {
10418           __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 2); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10419         }
10420         case  3:
10421         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__args);
10422         if (likely(values[3])) kw_args--;
10423         else {
10424           __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 3); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10425         }
10426         case  4:
10427         values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__kargs);
10428         if (likely(values[4])) kw_args--;
10429         else {
10430           __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 4); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10431         }
10432       }
10433       if (unlikely(kw_args > 0)) {
10434         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10435       }
10436     } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
10437       goto __pyx_L5_argtuple_error;
10438     } else {
10439       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10440       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10441       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10442       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10443       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10444     }
10445     __pyx_v_query_fn = values[0];
10446     __pyx_v_free_fn = values[1];
10447     __pyx_v_cancel_fn = values[2];
10448     __pyx_v_args = values[3];
10449     __pyx_v_kargs = values[4];
10450   }
10451   goto __pyx_L4_argument_unpacking_done;
10452   __pyx_L5_argtuple_error:;
10453   __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10454   __pyx_L3_error:;
10455   __Pyx_AddTraceback("mpi4py.MPI._p_greq.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10456   __Pyx_RefNannyFinishContext();
10457   return -1;
10458   __pyx_L4_argument_unpacking_done:;
10459 
10460   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":63
10461  *
10462  *     def __cinit__(self, query_fn, free_fn, cancel_fn, args, kargs):
10463  *         self.query_fn  = query_fn             # <<<<<<<<<<<<<<
10464  *         self.free_fn   = free_fn
10465  *         self.cancel_fn = cancel_fn
10466  */
10467   __Pyx_INCREF(__pyx_v_query_fn);
10468   __Pyx_GIVEREF(__pyx_v_query_fn);
10469   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->query_fn);
10470   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->query_fn);
10471   ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->query_fn = __pyx_v_query_fn;
10472 
10473   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":64
10474  *     def __cinit__(self, query_fn, free_fn, cancel_fn, args, kargs):
10475  *         self.query_fn  = query_fn
10476  *         self.free_fn   = free_fn             # <<<<<<<<<<<<<<
10477  *         self.cancel_fn = cancel_fn
10478  *         self.args  = tuple(args) if args  is not None else ()
10479  */
10480   __Pyx_INCREF(__pyx_v_free_fn);
10481   __Pyx_GIVEREF(__pyx_v_free_fn);
10482   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->free_fn);
10483   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->free_fn);
10484   ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->free_fn = __pyx_v_free_fn;
10485 
10486   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":65
10487  *         self.query_fn  = query_fn
10488  *         self.free_fn   = free_fn
10489  *         self.cancel_fn = cancel_fn             # <<<<<<<<<<<<<<
10490  *         self.args  = tuple(args) if args  is not None else ()
10491  *         self.kargs = dict(kargs) if kargs is not None else {}
10492  */
10493   __Pyx_INCREF(__pyx_v_cancel_fn);
10494   __Pyx_GIVEREF(__pyx_v_cancel_fn);
10495   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->cancel_fn);
10496   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->cancel_fn);
10497   ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->cancel_fn = __pyx_v_cancel_fn;
10498 
10499   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":66
10500  *         self.free_fn   = free_fn
10501  *         self.cancel_fn = cancel_fn
10502  *         self.args  = tuple(args) if args  is not None else ()             # <<<<<<<<<<<<<<
10503  *         self.kargs = dict(kargs) if kargs is not None else {}
10504  *
10505  */
10506   __pyx_t_2 = (__pyx_v_args != Py_None);
10507   if (__pyx_t_2) {
10508     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10509     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
10510     __Pyx_INCREF(__pyx_v_args);
10511     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_args);
10512     __Pyx_GIVEREF(__pyx_v_args);
10513     __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10514     __Pyx_GOTREF(__pyx_t_4);
10515     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
10516     __pyx_t_1 = __pyx_t_4;
10517     __pyx_t_4 = 0;
10518   } else {
10519     __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));
10520     __pyx_t_1 = __pyx_empty_tuple;
10521   }
10522   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
10523   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->args);
10524   __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->args));
10525   ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->args = __pyx_t_1;
10526   __pyx_t_1 = 0;
10527 
10528   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":67
10529  *         self.cancel_fn = cancel_fn
10530  *         self.args  = tuple(args) if args  is not None else ()
10531  *         self.kargs = dict(kargs) if kargs is not None else {}             # <<<<<<<<<<<<<<
10532  *
10533  *     cdef int query(self, MPI_Status *status) except -1:
10534  */
10535   __pyx_t_2 = (__pyx_v_kargs != Py_None);
10536   if (__pyx_t_2) {
10537     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10538     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
10539     __Pyx_INCREF(__pyx_v_kargs);
10540     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_kargs);
10541     __Pyx_GIVEREF(__pyx_v_kargs);
10542     __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10543     __Pyx_GOTREF(__pyx_t_3);
10544     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
10545     __pyx_t_1 = __pyx_t_3;
10546     __pyx_t_3 = 0;
10547   } else {
10548     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10549     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
10550     __pyx_t_1 = __pyx_t_3;
10551     __pyx_t_3 = 0;
10552   }
10553   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
10554   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->kargs);
10555   __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->kargs));
10556   ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_self)->kargs = __pyx_t_1;
10557   __pyx_t_1 = 0;
10558 
10559   __pyx_r = 0;
10560   goto __pyx_L0;
10561   __pyx_L1_error:;
10562   __Pyx_XDECREF(__pyx_t_1);
10563   __Pyx_XDECREF(__pyx_t_3);
10564   __Pyx_XDECREF(__pyx_t_4);
10565   __Pyx_AddTraceback("mpi4py.MPI._p_greq.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10566   __pyx_r = -1;
10567   __pyx_L0:;
10568   __Pyx_RefNannyFinishContext();
10569   return __pyx_r;
10570 }
10571 
10572 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":69
10573  *         self.kargs = dict(kargs) if kargs is not None else {}
10574  *
10575  *     cdef int query(self, MPI_Status *status) except -1:             # <<<<<<<<<<<<<<
10576  *         status.MPI_SOURCE = MPI_ANY_SOURCE
10577  *         status.MPI_TAG = MPI_ANY_TAG
10578  */
10579 
__pyx_f_6mpi4py_3MPI_7_p_greq_query(struct __pyx_obj_6mpi4py_3MPI__p_greq * __pyx_v_self,MPI_Status * __pyx_v_status)10580 static int __pyx_f_6mpi4py_3MPI_7_p_greq_query(struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_self, MPI_Status *__pyx_v_status) {
10581   struct PyMPIStatusObject *__pyx_v_sts = 0;
10582   int __pyx_r;
10583   __Pyx_RefNannyDeclarations
10584   PyObject *__pyx_t_1 = NULL;
10585   int __pyx_t_2;
10586   PyObject *__pyx_t_3 = NULL;
10587   PyObject *__pyx_t_4 = NULL;
10588   int __pyx_lineno = 0;
10589   const char *__pyx_filename = NULL;
10590   int __pyx_clineno = 0;
10591   __Pyx_RefNannySetupContext("query");
10592 
10593   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":70
10594  *
10595  *     cdef int query(self, MPI_Status *status) except -1:
10596  *         status.MPI_SOURCE = MPI_ANY_SOURCE             # <<<<<<<<<<<<<<
10597  *         status.MPI_TAG = MPI_ANY_TAG
10598  *         MPI_Status_set_elements(status, MPI_BYTE, 0)
10599  */
10600   __pyx_v_status->MPI_SOURCE = MPI_ANY_SOURCE;
10601 
10602   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":71
10603  *     cdef int query(self, MPI_Status *status) except -1:
10604  *         status.MPI_SOURCE = MPI_ANY_SOURCE
10605  *         status.MPI_TAG = MPI_ANY_TAG             # <<<<<<<<<<<<<<
10606  *         MPI_Status_set_elements(status, MPI_BYTE, 0)
10607  *         MPI_Status_set_cancelled(status, 0)
10608  */
10609   __pyx_v_status->MPI_TAG = MPI_ANY_TAG;
10610 
10611   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":72
10612  *         status.MPI_SOURCE = MPI_ANY_SOURCE
10613  *         status.MPI_TAG = MPI_ANY_TAG
10614  *         MPI_Status_set_elements(status, MPI_BYTE, 0)             # <<<<<<<<<<<<<<
10615  *         MPI_Status_set_cancelled(status, 0)
10616  *         cdef Status sts = <Status>Status.__new__(Status)
10617  */
10618   MPI_Status_set_elements(__pyx_v_status, MPI_BYTE, 0);
10619 
10620   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":73
10621  *         status.MPI_TAG = MPI_ANY_TAG
10622  *         MPI_Status_set_elements(status, MPI_BYTE, 0)
10623  *         MPI_Status_set_cancelled(status, 0)             # <<<<<<<<<<<<<<
10624  *         cdef Status sts = <Status>Status.__new__(Status)
10625  *         if self.query_fn is not None:
10626  */
10627   MPI_Status_set_cancelled(__pyx_v_status, 0);
10628 
10629   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":74
10630  *         MPI_Status_set_elements(status, MPI_BYTE, 0)
10631  *         MPI_Status_set_cancelled(status, 0)
10632  *         cdef Status sts = <Status>Status.__new__(Status)             # <<<<<<<<<<<<<<
10633  *         if self.query_fn is not None:
10634  *             sts.ob_mpi = status[0]
10635  */
10636   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Status)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10637   __Pyx_GOTREF(__pyx_t_1);
10638   __Pyx_INCREF(((PyObject *)((struct PyMPIStatusObject *)__pyx_t_1)));
10639   __pyx_v_sts = ((struct PyMPIStatusObject *)__pyx_t_1);
10640   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10641 
10642   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":75
10643  *         MPI_Status_set_cancelled(status, 0)
10644  *         cdef Status sts = <Status>Status.__new__(Status)
10645  *         if self.query_fn is not None:             # <<<<<<<<<<<<<<
10646  *             sts.ob_mpi = status[0]
10647  *             self.query_fn(sts, *self.args, **self.kargs)
10648  */
10649   __pyx_t_2 = (__pyx_v_self->query_fn != Py_None);
10650   if (__pyx_t_2) {
10651 
10652     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":76
10653  *         cdef Status sts = <Status>Status.__new__(Status)
10654  *         if self.query_fn is not None:
10655  *             sts.ob_mpi = status[0]             # <<<<<<<<<<<<<<
10656  *             self.query_fn(sts, *self.args, **self.kargs)
10657  *             status[0] = sts.ob_mpi
10658  */
10659     __pyx_v_sts->ob_mpi = (__pyx_v_status[0]);
10660 
10661     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":77
10662  *         if self.query_fn is not None:
10663  *             sts.ob_mpi = status[0]
10664  *             self.query_fn(sts, *self.args, **self.kargs)             # <<<<<<<<<<<<<<
10665  *             status[0] = sts.ob_mpi
10666  *             if self.cancel_fn is None:
10667  */
10668     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10669     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
10670     __Pyx_INCREF(((PyObject *)__pyx_v_sts));
10671     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_sts));
10672     __Pyx_GIVEREF(((PyObject *)__pyx_v_sts));
10673     __pyx_t_3 = PySequence_Tuple(((PyObject *)__pyx_v_self->args)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10674     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
10675     __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10676     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
10677     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
10678     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
10679     __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_v_self->query_fn, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_v_self->kargs)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10680     __Pyx_GOTREF(__pyx_t_3);
10681     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
10682     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10683 
10684     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":78
10685  *             sts.ob_mpi = status[0]
10686  *             self.query_fn(sts, *self.args, **self.kargs)
10687  *             status[0] = sts.ob_mpi             # <<<<<<<<<<<<<<
10688  *             if self.cancel_fn is None:
10689  *                 MPI_Status_set_cancelled(status, 0)
10690  */
10691     (__pyx_v_status[0]) = __pyx_v_sts->ob_mpi;
10692 
10693     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":79
10694  *             self.query_fn(sts, *self.args, **self.kargs)
10695  *             status[0] = sts.ob_mpi
10696  *             if self.cancel_fn is None:             # <<<<<<<<<<<<<<
10697  *                 MPI_Status_set_cancelled(status, 0)
10698  *         return MPI_SUCCESS
10699  */
10700     __pyx_t_2 = (__pyx_v_self->cancel_fn == Py_None);
10701     if (__pyx_t_2) {
10702 
10703       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":80
10704  *             status[0] = sts.ob_mpi
10705  *             if self.cancel_fn is None:
10706  *                 MPI_Status_set_cancelled(status, 0)             # <<<<<<<<<<<<<<
10707  *         return MPI_SUCCESS
10708  *
10709  */
10710       MPI_Status_set_cancelled(__pyx_v_status, 0);
10711       goto __pyx_L4;
10712     }
10713     __pyx_L4:;
10714     goto __pyx_L3;
10715   }
10716   __pyx_L3:;
10717 
10718   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":81
10719  *             if self.cancel_fn is None:
10720  *                 MPI_Status_set_cancelled(status, 0)
10721  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
10722  *
10723  *     cdef int free(self) except -1:
10724  */
10725   __pyx_r = MPI_SUCCESS;
10726   goto __pyx_L0;
10727 
10728   __pyx_r = 0;
10729   goto __pyx_L0;
10730   __pyx_L1_error:;
10731   __Pyx_XDECREF(__pyx_t_1);
10732   __Pyx_XDECREF(__pyx_t_3);
10733   __Pyx_XDECREF(__pyx_t_4);
10734   __Pyx_AddTraceback("mpi4py.MPI._p_greq.query", __pyx_clineno, __pyx_lineno, __pyx_filename);
10735   __pyx_r = -1;
10736   __pyx_L0:;
10737   __Pyx_XDECREF((PyObject *)__pyx_v_sts);
10738   __Pyx_RefNannyFinishContext();
10739   return __pyx_r;
10740 }
10741 
10742 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":83
10743  *         return MPI_SUCCESS
10744  *
10745  *     cdef int free(self) except -1:             # <<<<<<<<<<<<<<
10746  *         if self.free_fn is not None:
10747  *             self.free_fn(*self.args, **self.kargs)
10748  */
10749 
__pyx_f_6mpi4py_3MPI_7_p_greq_free(struct __pyx_obj_6mpi4py_3MPI__p_greq * __pyx_v_self)10750 static int __pyx_f_6mpi4py_3MPI_7_p_greq_free(struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_self) {
10751   int __pyx_r;
10752   __Pyx_RefNannyDeclarations
10753   int __pyx_t_1;
10754   PyObject *__pyx_t_2 = NULL;
10755   PyObject *__pyx_t_3 = NULL;
10756   int __pyx_lineno = 0;
10757   const char *__pyx_filename = NULL;
10758   int __pyx_clineno = 0;
10759   __Pyx_RefNannySetupContext("free");
10760 
10761   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":84
10762  *
10763  *     cdef int free(self) except -1:
10764  *         if self.free_fn is not None:             # <<<<<<<<<<<<<<
10765  *             self.free_fn(*self.args, **self.kargs)
10766  *         return MPI_SUCCESS
10767  */
10768   __pyx_t_1 = (__pyx_v_self->free_fn != Py_None);
10769   if (__pyx_t_1) {
10770 
10771     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":85
10772  *     cdef int free(self) except -1:
10773  *         if self.free_fn is not None:
10774  *             self.free_fn(*self.args, **self.kargs)             # <<<<<<<<<<<<<<
10775  *         return MPI_SUCCESS
10776  *
10777  */
10778     __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_self->args)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10779     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
10780     __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_v_self->free_fn, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_v_self->kargs)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10781     __Pyx_GOTREF(__pyx_t_3);
10782     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
10783     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10784     goto __pyx_L3;
10785   }
10786   __pyx_L3:;
10787 
10788   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":86
10789  *         if self.free_fn is not None:
10790  *             self.free_fn(*self.args, **self.kargs)
10791  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
10792  *
10793  *     cdef int cancel(self, bint completed) except -1:
10794  */
10795   __pyx_r = MPI_SUCCESS;
10796   goto __pyx_L0;
10797 
10798   __pyx_r = 0;
10799   goto __pyx_L0;
10800   __pyx_L1_error:;
10801   __Pyx_XDECREF(__pyx_t_2);
10802   __Pyx_XDECREF(__pyx_t_3);
10803   __Pyx_AddTraceback("mpi4py.MPI._p_greq.free", __pyx_clineno, __pyx_lineno, __pyx_filename);
10804   __pyx_r = -1;
10805   __pyx_L0:;
10806   __Pyx_RefNannyFinishContext();
10807   return __pyx_r;
10808 }
10809 
10810 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":88
10811  *         return MPI_SUCCESS
10812  *
10813  *     cdef int cancel(self, bint completed) except -1:             # <<<<<<<<<<<<<<
10814  *         if self.cancel_fn is not None:
10815  *             self.cancel_fn(completed, *self.args, **self.kargs)
10816  */
10817 
__pyx_f_6mpi4py_3MPI_7_p_greq_cancel(struct __pyx_obj_6mpi4py_3MPI__p_greq * __pyx_v_self,int __pyx_v_completed)10818 static int __pyx_f_6mpi4py_3MPI_7_p_greq_cancel(struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_self, int __pyx_v_completed) {
10819   int __pyx_r;
10820   __Pyx_RefNannyDeclarations
10821   int __pyx_t_1;
10822   PyObject *__pyx_t_2 = NULL;
10823   PyObject *__pyx_t_3 = NULL;
10824   PyObject *__pyx_t_4 = NULL;
10825   int __pyx_lineno = 0;
10826   const char *__pyx_filename = NULL;
10827   int __pyx_clineno = 0;
10828   __Pyx_RefNannySetupContext("cancel");
10829 
10830   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":89
10831  *
10832  *     cdef int cancel(self, bint completed) except -1:
10833  *         if self.cancel_fn is not None:             # <<<<<<<<<<<<<<
10834  *             self.cancel_fn(completed, *self.args, **self.kargs)
10835  *         return MPI_SUCCESS
10836  */
10837   __pyx_t_1 = (__pyx_v_self->cancel_fn != Py_None);
10838   if (__pyx_t_1) {
10839 
10840     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":90
10841  *     cdef int cancel(self, bint completed) except -1:
10842  *         if self.cancel_fn is not None:
10843  *             self.cancel_fn(completed, *self.args, **self.kargs)             # <<<<<<<<<<<<<<
10844  *         return MPI_SUCCESS
10845  *
10846  */
10847     __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_completed); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10848     __Pyx_GOTREF(__pyx_t_2);
10849     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10850     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
10851     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
10852     __Pyx_GIVEREF(__pyx_t_2);
10853     __pyx_t_2 = 0;
10854     __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_self->args)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10855     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
10856     __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10857     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
10858     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
10859     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
10860     __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_v_self->cancel_fn, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_v_self->kargs)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10861     __Pyx_GOTREF(__pyx_t_2);
10862     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
10863     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10864     goto __pyx_L3;
10865   }
10866   __pyx_L3:;
10867 
10868   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":91
10869  *         if self.cancel_fn is not None:
10870  *             self.cancel_fn(completed, *self.args, **self.kargs)
10871  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
10872  *
10873  * # ---
10874  */
10875   __pyx_r = MPI_SUCCESS;
10876   goto __pyx_L0;
10877 
10878   __pyx_r = 0;
10879   goto __pyx_L0;
10880   __pyx_L1_error:;
10881   __Pyx_XDECREF(__pyx_t_2);
10882   __Pyx_XDECREF(__pyx_t_3);
10883   __Pyx_XDECREF(__pyx_t_4);
10884   __Pyx_AddTraceback("mpi4py.MPI._p_greq.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
10885   __pyx_r = -1;
10886   __pyx_L0:;
10887   __Pyx_RefNannyFinishContext();
10888   return __pyx_r;
10889 }
10890 
10891 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":95
10892  * # ---
10893  *
10894  * cdef int greq_query(void *extra_state, MPI_Status *status) with gil:             # <<<<<<<<<<<<<<
10895  *     cdef _p_greq state = <_p_greq>extra_state
10896  *     cdef int ierr = MPI_SUCCESS
10897  */
10898 
__pyx_f_6mpi4py_3MPI_greq_query(void * __pyx_v_extra_state,MPI_Status * __pyx_v_status)10899 static int __pyx_f_6mpi4py_3MPI_greq_query(void *__pyx_v_extra_state, MPI_Status *__pyx_v_status) {
10900   struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_state = 0;
10901   int __pyx_v_ierr;
10902   PyObject *__pyx_v_exc = 0;
10903   int __pyx_r;
10904   __Pyx_RefNannyDeclarations
10905   PyObject *__pyx_t_1 = NULL;
10906   PyObject *__pyx_t_2 = NULL;
10907   PyObject *__pyx_t_3 = NULL;
10908   int __pyx_t_4;
10909   PyObject *__pyx_t_5 = NULL;
10910   PyObject *__pyx_t_6 = NULL;
10911   PyObject *__pyx_t_7 = NULL;
10912   PyObject *__pyx_t_8 = NULL;
10913   PyObject *__pyx_t_9 = NULL;
10914   int __pyx_lineno = 0;
10915   const char *__pyx_filename = NULL;
10916   int __pyx_clineno = 0;
10917   #ifdef WITH_THREAD
10918   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
10919   #endif
10920   __Pyx_RefNannySetupContext("greq_query");
10921 
10922   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":96
10923  *
10924  * cdef int greq_query(void *extra_state, MPI_Status *status) with gil:
10925  *     cdef _p_greq state = <_p_greq>extra_state             # <<<<<<<<<<<<<<
10926  *     cdef int ierr = MPI_SUCCESS
10927  *     cdef object exc
10928  */
10929   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state)));
10930   __pyx_v_state = ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state);
10931 
10932   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":97
10933  * cdef int greq_query(void *extra_state, MPI_Status *status) with gil:
10934  *     cdef _p_greq state = <_p_greq>extra_state
10935  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
10936  *     cdef object exc
10937  *     try:
10938  */
10939   __pyx_v_ierr = MPI_SUCCESS;
10940 
10941   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":99
10942  *     cdef int ierr = MPI_SUCCESS
10943  *     cdef object exc
10944  *     try:             # <<<<<<<<<<<<<<
10945  *         ierr = state.query(status)
10946  *     except MPIException, exc:
10947  */
10948   {
10949     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
10950     __Pyx_XGOTREF(__pyx_t_1);
10951     __Pyx_XGOTREF(__pyx_t_2);
10952     __Pyx_XGOTREF(__pyx_t_3);
10953     /*try:*/ {
10954 
10955       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":100
10956  *     cdef object exc
10957  *     try:
10958  *         ierr = state.query(status)             # <<<<<<<<<<<<<<
10959  *     except MPIException, exc:
10960  *         print_traceback()
10961  */
10962       __pyx_t_4 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq *)__pyx_v_state->__pyx_vtab)->query(__pyx_v_state, __pyx_v_status); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
10963       __pyx_v_ierr = __pyx_t_4;
10964     }
10965     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
10966     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
10967     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10968     goto __pyx_L10_try_end;
10969     __pyx_L3_error:;
10970 
10971     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":101
10972  *     try:
10973  *         ierr = state.query(status)
10974  *     except MPIException, exc:             # <<<<<<<<<<<<<<
10975  *         print_traceback()
10976  *         ierr = exc.Get_error_code()
10977  */
10978     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
10979     if (__pyx_t_4) {
10980       __Pyx_AddTraceback("mpi4py.MPI.greq_query", __pyx_clineno, __pyx_lineno, __pyx_filename);
10981       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
10982       __Pyx_GOTREF(__pyx_t_5);
10983       __Pyx_GOTREF(__pyx_t_6);
10984       __Pyx_GOTREF(__pyx_t_7);
10985       __Pyx_INCREF(__pyx_t_6);
10986       __pyx_v_exc = __pyx_t_6;
10987 
10988       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":102
10989  *         ierr = state.query(status)
10990  *     except MPIException, exc:
10991  *         print_traceback()             # <<<<<<<<<<<<<<
10992  *         ierr = exc.Get_error_code()
10993  *     except:
10994  */
10995       __pyx_f_6mpi4py_3MPI_print_traceback();
10996 
10997       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":103
10998  *     except MPIException, exc:
10999  *         print_traceback()
11000  *         ierr = exc.Get_error_code()             # <<<<<<<<<<<<<<
11001  *     except:
11002  *         print_traceback()
11003  */
11004       __pyx_t_8 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11005       __Pyx_GOTREF(__pyx_t_8);
11006       __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11007       __Pyx_GOTREF(__pyx_t_9);
11008       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11009       __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11010       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
11011       __pyx_v_ierr = __pyx_t_4;
11012       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11013       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11014       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11015       goto __pyx_L4_exception_handled;
11016     }
11017 
11018     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":104
11019  *         print_traceback()
11020  *         ierr = exc.Get_error_code()
11021  *     except:             # <<<<<<<<<<<<<<
11022  *         print_traceback()
11023  *         ierr = MPI_ERR_OTHER
11024  */
11025     /*except:*/ {
11026       __Pyx_AddTraceback("mpi4py.MPI.greq_query", __pyx_clineno, __pyx_lineno, __pyx_filename);
11027       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11028       __Pyx_GOTREF(__pyx_t_7);
11029       __Pyx_GOTREF(__pyx_t_6);
11030       __Pyx_GOTREF(__pyx_t_5);
11031 
11032       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":105
11033  *         ierr = exc.Get_error_code()
11034  *     except:
11035  *         print_traceback()             # <<<<<<<<<<<<<<
11036  *         ierr = MPI_ERR_OTHER
11037  *     return ierr
11038  */
11039       __pyx_f_6mpi4py_3MPI_print_traceback();
11040 
11041       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":106
11042  *     except:
11043  *         print_traceback()
11044  *         ierr = MPI_ERR_OTHER             # <<<<<<<<<<<<<<
11045  *     return ierr
11046  *
11047  */
11048       __pyx_v_ierr = MPI_ERR_OTHER;
11049       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11050       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11051       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11052       goto __pyx_L4_exception_handled;
11053     }
11054     __pyx_L5_except_error:;
11055     __Pyx_XGIVEREF(__pyx_t_1);
11056     __Pyx_XGIVEREF(__pyx_t_2);
11057     __Pyx_XGIVEREF(__pyx_t_3);
11058     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11059     goto __pyx_L1_error;
11060     __pyx_L4_exception_handled:;
11061     __Pyx_XGIVEREF(__pyx_t_1);
11062     __Pyx_XGIVEREF(__pyx_t_2);
11063     __Pyx_XGIVEREF(__pyx_t_3);
11064     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11065     __pyx_L10_try_end:;
11066   }
11067 
11068   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":107
11069  *         print_traceback()
11070  *         ierr = MPI_ERR_OTHER
11071  *     return ierr             # <<<<<<<<<<<<<<
11072  *
11073  * cdef int greq_free(void *extra_state) with gil:
11074  */
11075   __pyx_r = __pyx_v_ierr;
11076   goto __pyx_L0;
11077 
11078   __pyx_r = 0;
11079   goto __pyx_L0;
11080   __pyx_L1_error:;
11081   __Pyx_XDECREF(__pyx_t_5);
11082   __Pyx_XDECREF(__pyx_t_6);
11083   __Pyx_XDECREF(__pyx_t_7);
11084   __Pyx_XDECREF(__pyx_t_8);
11085   __Pyx_XDECREF(__pyx_t_9);
11086   __Pyx_WriteUnraisable("mpi4py.MPI.greq_query", __pyx_clineno, __pyx_lineno, __pyx_filename);
11087   __pyx_r = 0;
11088   __pyx_L0:;
11089   __Pyx_XDECREF((PyObject *)__pyx_v_state);
11090   __Pyx_XDECREF(__pyx_v_exc);
11091   __Pyx_RefNannyFinishContext();
11092   #ifdef WITH_THREAD
11093   PyGILState_Release(__pyx_gilstate_save);
11094   #endif
11095   return __pyx_r;
11096 }
11097 
11098 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":109
11099  *     return ierr
11100  *
11101  * cdef int greq_free(void *extra_state) with gil:             # <<<<<<<<<<<<<<
11102  *     cdef _p_greq state = <_p_greq>extra_state
11103  *     cdef int ierr = MPI_SUCCESS
11104  */
11105 
__pyx_f_6mpi4py_3MPI_greq_free(void * __pyx_v_extra_state)11106 static int __pyx_f_6mpi4py_3MPI_greq_free(void *__pyx_v_extra_state) {
11107   struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_state = 0;
11108   int __pyx_v_ierr;
11109   PyObject *__pyx_v_exc = 0;
11110   int __pyx_r;
11111   __Pyx_RefNannyDeclarations
11112   PyObject *__pyx_t_1 = NULL;
11113   PyObject *__pyx_t_2 = NULL;
11114   PyObject *__pyx_t_3 = NULL;
11115   int __pyx_t_4;
11116   PyObject *__pyx_t_5 = NULL;
11117   PyObject *__pyx_t_6 = NULL;
11118   PyObject *__pyx_t_7 = NULL;
11119   PyObject *__pyx_t_8 = NULL;
11120   PyObject *__pyx_t_9 = NULL;
11121   int __pyx_lineno = 0;
11122   const char *__pyx_filename = NULL;
11123   int __pyx_clineno = 0;
11124   #ifdef WITH_THREAD
11125   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
11126   #endif
11127   __Pyx_RefNannySetupContext("greq_free");
11128 
11129   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":110
11130  *
11131  * cdef int greq_free(void *extra_state) with gil:
11132  *     cdef _p_greq state = <_p_greq>extra_state             # <<<<<<<<<<<<<<
11133  *     cdef int ierr = MPI_SUCCESS
11134  *     cdef object exc
11135  */
11136   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state)));
11137   __pyx_v_state = ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state);
11138 
11139   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":111
11140  * cdef int greq_free(void *extra_state) with gil:
11141  *     cdef _p_greq state = <_p_greq>extra_state
11142  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
11143  *     cdef object exc
11144  *     try:
11145  */
11146   __pyx_v_ierr = MPI_SUCCESS;
11147 
11148   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":113
11149  *     cdef int ierr = MPI_SUCCESS
11150  *     cdef object exc
11151  *     try:             # <<<<<<<<<<<<<<
11152  *         ierr = state.free()
11153  *     except MPIException, exc:
11154  */
11155   {
11156     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
11157     __Pyx_XGOTREF(__pyx_t_1);
11158     __Pyx_XGOTREF(__pyx_t_2);
11159     __Pyx_XGOTREF(__pyx_t_3);
11160     /*try:*/ {
11161 
11162       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":114
11163  *     cdef object exc
11164  *     try:
11165  *         ierr = state.free()             # <<<<<<<<<<<<<<
11166  *     except MPIException, exc:
11167  *         print_traceback()
11168  */
11169       __pyx_t_4 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq *)__pyx_v_state->__pyx_vtab)->free(__pyx_v_state); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
11170       __pyx_v_ierr = __pyx_t_4;
11171     }
11172     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
11173     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
11174     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
11175     goto __pyx_L10_try_end;
11176     __pyx_L3_error:;
11177 
11178     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":115
11179  *     try:
11180  *         ierr = state.free()
11181  *     except MPIException, exc:             # <<<<<<<<<<<<<<
11182  *         print_traceback()
11183  *         ierr = exc.Get_error_code()
11184  */
11185     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
11186     if (__pyx_t_4) {
11187       __Pyx_AddTraceback("mpi4py.MPI.greq_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
11188       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11189       __Pyx_GOTREF(__pyx_t_5);
11190       __Pyx_GOTREF(__pyx_t_6);
11191       __Pyx_GOTREF(__pyx_t_7);
11192       __Pyx_INCREF(__pyx_t_6);
11193       __pyx_v_exc = __pyx_t_6;
11194 
11195       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":116
11196  *         ierr = state.free()
11197  *     except MPIException, exc:
11198  *         print_traceback()             # <<<<<<<<<<<<<<
11199  *         ierr = exc.Get_error_code()
11200  *     except:
11201  */
11202       __pyx_f_6mpi4py_3MPI_print_traceback();
11203 
11204       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":117
11205  *     except MPIException, exc:
11206  *         print_traceback()
11207  *         ierr = exc.Get_error_code()             # <<<<<<<<<<<<<<
11208  *     except:
11209  *         print_traceback()
11210  */
11211       __pyx_t_8 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11212       __Pyx_GOTREF(__pyx_t_8);
11213       __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11214       __Pyx_GOTREF(__pyx_t_9);
11215       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11216       __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11217       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
11218       __pyx_v_ierr = __pyx_t_4;
11219       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11220       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11221       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11222       goto __pyx_L4_exception_handled;
11223     }
11224 
11225     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":118
11226  *         print_traceback()
11227  *         ierr = exc.Get_error_code()
11228  *     except:             # <<<<<<<<<<<<<<
11229  *         print_traceback()
11230  *         ierr = MPI_ERR_OTHER
11231  */
11232     /*except:*/ {
11233       __Pyx_AddTraceback("mpi4py.MPI.greq_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
11234       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11235       __Pyx_GOTREF(__pyx_t_7);
11236       __Pyx_GOTREF(__pyx_t_6);
11237       __Pyx_GOTREF(__pyx_t_5);
11238 
11239       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":119
11240  *         ierr = exc.Get_error_code()
11241  *     except:
11242  *         print_traceback()             # <<<<<<<<<<<<<<
11243  *         ierr = MPI_ERR_OTHER
11244  *     Py_DECREF(<object>extra_state)
11245  */
11246       __pyx_f_6mpi4py_3MPI_print_traceback();
11247 
11248       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":120
11249  *     except:
11250  *         print_traceback()
11251  *         ierr = MPI_ERR_OTHER             # <<<<<<<<<<<<<<
11252  *     Py_DECREF(<object>extra_state)
11253  *     return ierr
11254  */
11255       __pyx_v_ierr = MPI_ERR_OTHER;
11256       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11257       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11258       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11259       goto __pyx_L4_exception_handled;
11260     }
11261     __pyx_L5_except_error:;
11262     __Pyx_XGIVEREF(__pyx_t_1);
11263     __Pyx_XGIVEREF(__pyx_t_2);
11264     __Pyx_XGIVEREF(__pyx_t_3);
11265     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11266     goto __pyx_L1_error;
11267     __pyx_L4_exception_handled:;
11268     __Pyx_XGIVEREF(__pyx_t_1);
11269     __Pyx_XGIVEREF(__pyx_t_2);
11270     __Pyx_XGIVEREF(__pyx_t_3);
11271     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11272     __pyx_L10_try_end:;
11273   }
11274 
11275   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":121
11276  *         print_traceback()
11277  *         ierr = MPI_ERR_OTHER
11278  *     Py_DECREF(<object>extra_state)             # <<<<<<<<<<<<<<
11279  *     return ierr
11280  *
11281  */
11282   Py_DECREF(((PyObject *)__pyx_v_extra_state));
11283 
11284   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":122
11285  *         ierr = MPI_ERR_OTHER
11286  *     Py_DECREF(<object>extra_state)
11287  *     return ierr             # <<<<<<<<<<<<<<
11288  *
11289  * cdef int greq_cancel(void *extra_state, int completed) with gil:
11290  */
11291   __pyx_r = __pyx_v_ierr;
11292   goto __pyx_L0;
11293 
11294   __pyx_r = 0;
11295   goto __pyx_L0;
11296   __pyx_L1_error:;
11297   __Pyx_XDECREF(__pyx_t_5);
11298   __Pyx_XDECREF(__pyx_t_6);
11299   __Pyx_XDECREF(__pyx_t_7);
11300   __Pyx_XDECREF(__pyx_t_8);
11301   __Pyx_XDECREF(__pyx_t_9);
11302   __Pyx_WriteUnraisable("mpi4py.MPI.greq_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
11303   __pyx_r = 0;
11304   __pyx_L0:;
11305   __Pyx_XDECREF((PyObject *)__pyx_v_state);
11306   __Pyx_XDECREF(__pyx_v_exc);
11307   __Pyx_RefNannyFinishContext();
11308   #ifdef WITH_THREAD
11309   PyGILState_Release(__pyx_gilstate_save);
11310   #endif
11311   return __pyx_r;
11312 }
11313 
11314 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":124
11315  *     return ierr
11316  *
11317  * cdef int greq_cancel(void *extra_state, int completed) with gil:             # <<<<<<<<<<<<<<
11318  *     cdef _p_greq state = <_p_greq>extra_state
11319  *     cdef int ierr = MPI_SUCCESS
11320  */
11321 
__pyx_f_6mpi4py_3MPI_greq_cancel(void * __pyx_v_extra_state,int __pyx_v_completed)11322 static int __pyx_f_6mpi4py_3MPI_greq_cancel(void *__pyx_v_extra_state, int __pyx_v_completed) {
11323   struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_state = 0;
11324   int __pyx_v_ierr;
11325   PyObject *__pyx_v_exc = 0;
11326   int __pyx_r;
11327   __Pyx_RefNannyDeclarations
11328   PyObject *__pyx_t_1 = NULL;
11329   PyObject *__pyx_t_2 = NULL;
11330   PyObject *__pyx_t_3 = NULL;
11331   int __pyx_t_4;
11332   PyObject *__pyx_t_5 = NULL;
11333   PyObject *__pyx_t_6 = NULL;
11334   PyObject *__pyx_t_7 = NULL;
11335   PyObject *__pyx_t_8 = NULL;
11336   PyObject *__pyx_t_9 = NULL;
11337   int __pyx_lineno = 0;
11338   const char *__pyx_filename = NULL;
11339   int __pyx_clineno = 0;
11340   #ifdef WITH_THREAD
11341   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
11342   #endif
11343   __Pyx_RefNannySetupContext("greq_cancel");
11344 
11345   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":125
11346  *
11347  * cdef int greq_cancel(void *extra_state, int completed) with gil:
11348  *     cdef _p_greq state = <_p_greq>extra_state             # <<<<<<<<<<<<<<
11349  *     cdef int ierr = MPI_SUCCESS
11350  *     cdef object exc
11351  */
11352   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state)));
11353   __pyx_v_state = ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_v_extra_state);
11354 
11355   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":126
11356  * cdef int greq_cancel(void *extra_state, int completed) with gil:
11357  *     cdef _p_greq state = <_p_greq>extra_state
11358  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
11359  *     cdef object exc
11360  *     try:
11361  */
11362   __pyx_v_ierr = MPI_SUCCESS;
11363 
11364   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":128
11365  *     cdef int ierr = MPI_SUCCESS
11366  *     cdef object exc
11367  *     try:             # <<<<<<<<<<<<<<
11368  *         ierr = state.cancel(completed)
11369  *     except MPIException, exc:
11370  */
11371   {
11372     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
11373     __Pyx_XGOTREF(__pyx_t_1);
11374     __Pyx_XGOTREF(__pyx_t_2);
11375     __Pyx_XGOTREF(__pyx_t_3);
11376     /*try:*/ {
11377 
11378       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":129
11379  *     cdef object exc
11380  *     try:
11381  *         ierr = state.cancel(completed)             # <<<<<<<<<<<<<<
11382  *     except MPIException, exc:
11383  *         print_traceback()
11384  */
11385       __pyx_t_4 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq *)__pyx_v_state->__pyx_vtab)->cancel(__pyx_v_state, __pyx_v_completed); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
11386       __pyx_v_ierr = __pyx_t_4;
11387     }
11388     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
11389     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
11390     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
11391     goto __pyx_L10_try_end;
11392     __pyx_L3_error:;
11393 
11394     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":130
11395  *     try:
11396  *         ierr = state.cancel(completed)
11397  *     except MPIException, exc:             # <<<<<<<<<<<<<<
11398  *         print_traceback()
11399  *         ierr = exc.Get_error_code()
11400  */
11401     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
11402     if (__pyx_t_4) {
11403       __Pyx_AddTraceback("mpi4py.MPI.greq_cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
11404       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11405       __Pyx_GOTREF(__pyx_t_5);
11406       __Pyx_GOTREF(__pyx_t_6);
11407       __Pyx_GOTREF(__pyx_t_7);
11408       __Pyx_INCREF(__pyx_t_6);
11409       __pyx_v_exc = __pyx_t_6;
11410 
11411       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":131
11412  *         ierr = state.cancel(completed)
11413  *     except MPIException, exc:
11414  *         print_traceback()             # <<<<<<<<<<<<<<
11415  *         ierr = exc.Get_error_code()
11416  *     except:
11417  */
11418       __pyx_f_6mpi4py_3MPI_print_traceback();
11419 
11420       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":132
11421  *     except MPIException, exc:
11422  *         print_traceback()
11423  *         ierr = exc.Get_error_code()             # <<<<<<<<<<<<<<
11424  *     except:
11425  *         print_traceback()
11426  */
11427       __pyx_t_8 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11428       __Pyx_GOTREF(__pyx_t_8);
11429       __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11430       __Pyx_GOTREF(__pyx_t_9);
11431       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11432       __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11433       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
11434       __pyx_v_ierr = __pyx_t_4;
11435       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11436       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11437       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11438       goto __pyx_L4_exception_handled;
11439     }
11440 
11441     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":133
11442  *         print_traceback()
11443  *         ierr = exc.Get_error_code()
11444  *     except:             # <<<<<<<<<<<<<<
11445  *         print_traceback()
11446  *         ierr = MPI_ERR_OTHER
11447  */
11448     /*except:*/ {
11449       __Pyx_AddTraceback("mpi4py.MPI.greq_cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
11450       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
11451       __Pyx_GOTREF(__pyx_t_7);
11452       __Pyx_GOTREF(__pyx_t_6);
11453       __Pyx_GOTREF(__pyx_t_5);
11454 
11455       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":134
11456  *         ierr = exc.Get_error_code()
11457  *     except:
11458  *         print_traceback()             # <<<<<<<<<<<<<<
11459  *         ierr = MPI_ERR_OTHER
11460  *     return ierr
11461  */
11462       __pyx_f_6mpi4py_3MPI_print_traceback();
11463 
11464       /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":135
11465  *     except:
11466  *         print_traceback()
11467  *         ierr = MPI_ERR_OTHER             # <<<<<<<<<<<<<<
11468  *     return ierr
11469  *
11470  */
11471       __pyx_v_ierr = MPI_ERR_OTHER;
11472       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11473       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11474       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11475       goto __pyx_L4_exception_handled;
11476     }
11477     __pyx_L5_except_error:;
11478     __Pyx_XGIVEREF(__pyx_t_1);
11479     __Pyx_XGIVEREF(__pyx_t_2);
11480     __Pyx_XGIVEREF(__pyx_t_3);
11481     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11482     goto __pyx_L1_error;
11483     __pyx_L4_exception_handled:;
11484     __Pyx_XGIVEREF(__pyx_t_1);
11485     __Pyx_XGIVEREF(__pyx_t_2);
11486     __Pyx_XGIVEREF(__pyx_t_3);
11487     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
11488     __pyx_L10_try_end:;
11489   }
11490 
11491   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":136
11492  *         print_traceback()
11493  *         ierr = MPI_ERR_OTHER
11494  *     return ierr             # <<<<<<<<<<<<<<
11495  *
11496  * # ---
11497  */
11498   __pyx_r = __pyx_v_ierr;
11499   goto __pyx_L0;
11500 
11501   __pyx_r = 0;
11502   goto __pyx_L0;
11503   __pyx_L1_error:;
11504   __Pyx_XDECREF(__pyx_t_5);
11505   __Pyx_XDECREF(__pyx_t_6);
11506   __Pyx_XDECREF(__pyx_t_7);
11507   __Pyx_XDECREF(__pyx_t_8);
11508   __Pyx_XDECREF(__pyx_t_9);
11509   __Pyx_WriteUnraisable("mpi4py.MPI.greq_cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
11510   __pyx_r = 0;
11511   __pyx_L0:;
11512   __Pyx_XDECREF((PyObject *)__pyx_v_state);
11513   __Pyx_XDECREF(__pyx_v_exc);
11514   __Pyx_RefNannyFinishContext();
11515   #ifdef WITH_THREAD
11516   PyGILState_Release(__pyx_gilstate_save);
11517   #endif
11518   return __pyx_r;
11519 }
11520 
11521 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":141
11522  *
11523  * @cython.callspec("PyMPIAPI")
11524  * cdef int greq_query_fn(void *extra_state, MPI_Status *status) nogil:             # <<<<<<<<<<<<<<
11525  *     if extra_state == NULL:
11526  *         return MPI_ERR_INTERN
11527  */
11528 
__pyx_f_6mpi4py_3MPI_greq_query_fn(void * __pyx_v_extra_state,MPI_Status * __pyx_v_status)11529 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_query_fn(void *__pyx_v_extra_state, MPI_Status *__pyx_v_status) {
11530   int __pyx_r;
11531   int __pyx_t_1;
11532 
11533   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":142
11534  * @cython.callspec("PyMPIAPI")
11535  * cdef int greq_query_fn(void *extra_state, MPI_Status *status) nogil:
11536  *     if extra_state == NULL:             # <<<<<<<<<<<<<<
11537  *         return MPI_ERR_INTERN
11538  *     if status == NULL:
11539  */
11540   __pyx_t_1 = (__pyx_v_extra_state == NULL);
11541   if (__pyx_t_1) {
11542 
11543     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":143
11544  * cdef int greq_query_fn(void *extra_state, MPI_Status *status) nogil:
11545  *     if extra_state == NULL:
11546  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11547  *     if status == NULL:
11548  *         return MPI_ERR_INTERN
11549  */
11550     __pyx_r = MPI_ERR_INTERN;
11551     goto __pyx_L0;
11552     goto __pyx_L3;
11553   }
11554   __pyx_L3:;
11555 
11556   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":144
11557  *     if extra_state == NULL:
11558  *         return MPI_ERR_INTERN
11559  *     if status == NULL:             # <<<<<<<<<<<<<<
11560  *         return MPI_ERR_INTERN
11561  *     if not Py_IsInitialized():
11562  */
11563   __pyx_t_1 = (__pyx_v_status == NULL);
11564   if (__pyx_t_1) {
11565 
11566     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":145
11567  *         return MPI_ERR_INTERN
11568  *     if status == NULL:
11569  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11570  *     if not Py_IsInitialized():
11571  *         return MPI_ERR_INTERN
11572  */
11573     __pyx_r = MPI_ERR_INTERN;
11574     goto __pyx_L0;
11575     goto __pyx_L4;
11576   }
11577   __pyx_L4:;
11578 
11579   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":146
11580  *     if status == NULL:
11581  *         return MPI_ERR_INTERN
11582  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
11583  *         return MPI_ERR_INTERN
11584  *     return greq_query(extra_state, status)
11585  */
11586   __pyx_t_1 = (!Py_IsInitialized());
11587   if (__pyx_t_1) {
11588 
11589     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":147
11590  *         return MPI_ERR_INTERN
11591  *     if not Py_IsInitialized():
11592  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11593  *     return greq_query(extra_state, status)
11594  *
11595  */
11596     __pyx_r = MPI_ERR_INTERN;
11597     goto __pyx_L0;
11598     goto __pyx_L5;
11599   }
11600   __pyx_L5:;
11601 
11602   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":148
11603  *     if not Py_IsInitialized():
11604  *         return MPI_ERR_INTERN
11605  *     return greq_query(extra_state, status)             # <<<<<<<<<<<<<<
11606  *
11607  * @cython.callspec("PyMPIAPI")
11608  */
11609   __pyx_r = __pyx_f_6mpi4py_3MPI_greq_query(__pyx_v_extra_state, __pyx_v_status);
11610   goto __pyx_L0;
11611 
11612   __pyx_r = 0;
11613   __pyx_L0:;
11614   return __pyx_r;
11615 }
11616 
11617 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":151
11618  *
11619  * @cython.callspec("PyMPIAPI")
11620  * cdef int greq_free_fn(void *extra_state) nogil:             # <<<<<<<<<<<<<<
11621  *     if extra_state == NULL:
11622  *         return MPI_ERR_INTERN
11623  */
11624 
__pyx_f_6mpi4py_3MPI_greq_free_fn(void * __pyx_v_extra_state)11625 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_free_fn(void *__pyx_v_extra_state) {
11626   int __pyx_r;
11627   int __pyx_t_1;
11628 
11629   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":152
11630  * @cython.callspec("PyMPIAPI")
11631  * cdef int greq_free_fn(void *extra_state) nogil:
11632  *     if extra_state == NULL:             # <<<<<<<<<<<<<<
11633  *         return MPI_ERR_INTERN
11634  *     if not Py_IsInitialized():
11635  */
11636   __pyx_t_1 = (__pyx_v_extra_state == NULL);
11637   if (__pyx_t_1) {
11638 
11639     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":153
11640  * cdef int greq_free_fn(void *extra_state) nogil:
11641  *     if extra_state == NULL:
11642  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11643  *     if not Py_IsInitialized():
11644  *         return MPI_ERR_INTERN
11645  */
11646     __pyx_r = MPI_ERR_INTERN;
11647     goto __pyx_L0;
11648     goto __pyx_L3;
11649   }
11650   __pyx_L3:;
11651 
11652   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":154
11653  *     if extra_state == NULL:
11654  *         return MPI_ERR_INTERN
11655  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
11656  *         return MPI_ERR_INTERN
11657  *     return greq_free(extra_state)
11658  */
11659   __pyx_t_1 = (!Py_IsInitialized());
11660   if (__pyx_t_1) {
11661 
11662     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":155
11663  *         return MPI_ERR_INTERN
11664  *     if not Py_IsInitialized():
11665  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11666  *     return greq_free(extra_state)
11667  *
11668  */
11669     __pyx_r = MPI_ERR_INTERN;
11670     goto __pyx_L0;
11671     goto __pyx_L4;
11672   }
11673   __pyx_L4:;
11674 
11675   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":156
11676  *     if not Py_IsInitialized():
11677  *         return MPI_ERR_INTERN
11678  *     return greq_free(extra_state)             # <<<<<<<<<<<<<<
11679  *
11680  * @cython.callspec("PyMPIAPI")
11681  */
11682   __pyx_r = __pyx_f_6mpi4py_3MPI_greq_free(__pyx_v_extra_state);
11683   goto __pyx_L0;
11684 
11685   __pyx_r = 0;
11686   __pyx_L0:;
11687   return __pyx_r;
11688 }
11689 
11690 /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":159
11691  *
11692  * @cython.callspec("PyMPIAPI")
11693  * cdef int greq_cancel_fn(void *extra_state, int completed) nogil:             # <<<<<<<<<<<<<<
11694  *     if extra_state == NULL:
11695  *         return MPI_ERR_INTERN
11696  */
11697 
__pyx_f_6mpi4py_3MPI_greq_cancel_fn(void * __pyx_v_extra_state,int __pyx_v_completed)11698 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_greq_cancel_fn(void *__pyx_v_extra_state, int __pyx_v_completed) {
11699   int __pyx_r;
11700   int __pyx_t_1;
11701 
11702   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":160
11703  * @cython.callspec("PyMPIAPI")
11704  * cdef int greq_cancel_fn(void *extra_state, int completed) nogil:
11705  *     if extra_state == NULL:             # <<<<<<<<<<<<<<
11706  *         return MPI_ERR_INTERN
11707  *     if not Py_IsInitialized():
11708  */
11709   __pyx_t_1 = (__pyx_v_extra_state == NULL);
11710   if (__pyx_t_1) {
11711 
11712     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":161
11713  * cdef int greq_cancel_fn(void *extra_state, int completed) nogil:
11714  *     if extra_state == NULL:
11715  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11716  *     if not Py_IsInitialized():
11717  *         return MPI_ERR_INTERN
11718  */
11719     __pyx_r = MPI_ERR_INTERN;
11720     goto __pyx_L0;
11721     goto __pyx_L3;
11722   }
11723   __pyx_L3:;
11724 
11725   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":162
11726  *     if extra_state == NULL:
11727  *         return MPI_ERR_INTERN
11728  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
11729  *         return MPI_ERR_INTERN
11730  *     return greq_cancel(extra_state, completed)
11731  */
11732   __pyx_t_1 = (!Py_IsInitialized());
11733   if (__pyx_t_1) {
11734 
11735     /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":163
11736  *         return MPI_ERR_INTERN
11737  *     if not Py_IsInitialized():
11738  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
11739  *     return greq_cancel(extra_state, completed)
11740  *
11741  */
11742     __pyx_r = MPI_ERR_INTERN;
11743     goto __pyx_L0;
11744     goto __pyx_L4;
11745   }
11746   __pyx_L4:;
11747 
11748   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":164
11749  *     if not Py_IsInitialized():
11750  *         return MPI_ERR_INTERN
11751  *     return greq_cancel(extra_state, completed)             # <<<<<<<<<<<<<<
11752  *
11753  * # -----------------------------------------------------------------------------
11754  */
11755   __pyx_r = __pyx_f_6mpi4py_3MPI_greq_cancel(__pyx_v_extra_state, __pyx_v_completed);
11756   goto __pyx_L0;
11757 
11758   __pyx_r = 0;
11759   __pyx_L0:;
11760   return __pyx_r;
11761 }
11762 
11763 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":68
11764  * include "reqimpl.pxi"
11765  *
11766  * cdef inline Request new_Request(MPI_Request ob):             # <<<<<<<<<<<<<<
11767  *     cdef Request request = <Request>Request.__new__(Request)
11768  *     request.ob_mpi = ob
11769  */
11770 
__pyx_f_6mpi4py_3MPI_new_Request(MPI_Request __pyx_v_ob)11771 static CYTHON_INLINE struct PyMPIRequestObject *__pyx_f_6mpi4py_3MPI_new_Request(MPI_Request __pyx_v_ob) {
11772   struct PyMPIRequestObject *__pyx_v_request = 0;
11773   struct PyMPIRequestObject *__pyx_r = NULL;
11774   __Pyx_RefNannyDeclarations
11775   PyObject *__pyx_t_1 = NULL;
11776   int __pyx_lineno = 0;
11777   const char *__pyx_filename = NULL;
11778   int __pyx_clineno = 0;
11779   __Pyx_RefNannySetupContext("new_Request");
11780 
11781   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":69
11782  *
11783  * cdef inline Request new_Request(MPI_Request ob):
11784  *     cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
11785  *     request.ob_mpi = ob
11786  *     return request
11787  */
11788   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11789   __Pyx_GOTREF(__pyx_t_1);
11790   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
11791   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
11792   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11793 
11794   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":70
11795  * cdef inline Request new_Request(MPI_Request ob):
11796  *     cdef Request request = <Request>Request.__new__(Request)
11797  *     request.ob_mpi = ob             # <<<<<<<<<<<<<<
11798  *     return request
11799  *
11800  */
11801   __pyx_v_request->ob_mpi = __pyx_v_ob;
11802 
11803   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":71
11804  *     cdef Request request = <Request>Request.__new__(Request)
11805  *     request.ob_mpi = ob
11806  *     return request             # <<<<<<<<<<<<<<
11807  *
11808  * cdef inline int del_Request(MPI_Request* ob):
11809  */
11810   __Pyx_XDECREF(((PyObject *)__pyx_r));
11811   __Pyx_INCREF(((PyObject *)__pyx_v_request));
11812   __pyx_r = __pyx_v_request;
11813   goto __pyx_L0;
11814 
11815   __pyx_r = ((struct PyMPIRequestObject *)Py_None); __Pyx_INCREF(Py_None);
11816   goto __pyx_L0;
11817   __pyx_L1_error:;
11818   __Pyx_XDECREF(__pyx_t_1);
11819   __Pyx_AddTraceback("mpi4py.MPI.new_Request", __pyx_clineno, __pyx_lineno, __pyx_filename);
11820   __pyx_r = 0;
11821   __pyx_L0:;
11822   __Pyx_XDECREF((PyObject *)__pyx_v_request);
11823   __Pyx_XGIVEREF((PyObject *)__pyx_r);
11824   __Pyx_RefNannyFinishContext();
11825   return __pyx_r;
11826 }
11827 
11828 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":73
11829  *     return request
11830  *
11831  * cdef inline int del_Request(MPI_Request* ob):             # <<<<<<<<<<<<<<
11832  *     #
11833  *     if ob    == NULL             : return 0
11834  */
11835 
__pyx_f_6mpi4py_3MPI_del_Request(MPI_Request * __pyx_v_ob)11836 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Request(MPI_Request *__pyx_v_ob) {
11837   int __pyx_r;
11838   __Pyx_RefNannyDeclarations
11839   int __pyx_t_1;
11840   __Pyx_RefNannySetupContext("del_Request");
11841 
11842   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":75
11843  * cdef inline int del_Request(MPI_Request* ob):
11844  *     #
11845  *     if ob    == NULL             : return 0             # <<<<<<<<<<<<<<
11846  *     if ob[0] == MPI_REQUEST_NULL : return 0
11847  *     if not mpi_active()          : return 0
11848  */
11849   __pyx_t_1 = (__pyx_v_ob == NULL);
11850   if (__pyx_t_1) {
11851     __pyx_r = 0;
11852     goto __pyx_L0;
11853     goto __pyx_L3;
11854   }
11855   __pyx_L3:;
11856 
11857   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":76
11858  *     #
11859  *     if ob    == NULL             : return 0
11860  *     if ob[0] == MPI_REQUEST_NULL : return 0             # <<<<<<<<<<<<<<
11861  *     if not mpi_active()          : return 0
11862  *     #
11863  */
11864   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_REQUEST_NULL);
11865   if (__pyx_t_1) {
11866     __pyx_r = 0;
11867     goto __pyx_L0;
11868     goto __pyx_L4;
11869   }
11870   __pyx_L4:;
11871 
11872   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":77
11873  *     if ob    == NULL             : return 0
11874  *     if ob[0] == MPI_REQUEST_NULL : return 0
11875  *     if not mpi_active()          : return 0             # <<<<<<<<<<<<<<
11876  *     #
11877  *     return MPI_Request_free(ob)
11878  */
11879   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
11880   if (__pyx_t_1) {
11881     __pyx_r = 0;
11882     goto __pyx_L0;
11883     goto __pyx_L5;
11884   }
11885   __pyx_L5:;
11886 
11887   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":79
11888  *     if not mpi_active()          : return 0
11889  *     #
11890  *     return MPI_Request_free(ob)             # <<<<<<<<<<<<<<
11891  *
11892  * #------------------------------------------------------------------------------
11893  */
11894   __pyx_r = MPI_Request_free(__pyx_v_ob);
11895   goto __pyx_L0;
11896 
11897   __pyx_r = 0;
11898   __pyx_L0:;
11899   __Pyx_RefNannyFinishContext();
11900   return __pyx_r;
11901 }
11902 
11903 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":3
11904  * # -----------------------------------------------------------------------------
11905  *
11906  * cdef object _op_MAX(object x, object y):             # <<<<<<<<<<<<<<
11907  *     """maximum"""
11908  *     return max(x, y)
11909  */
11910 
__pyx_f_6mpi4py_3MPI__op_MAX(PyObject * __pyx_v_x,PyObject * __pyx_v_y)11911 static PyObject *__pyx_f_6mpi4py_3MPI__op_MAX(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
11912   PyObject *__pyx_r = NULL;
11913   __Pyx_RefNannyDeclarations
11914   PyObject *__pyx_t_1 = NULL;
11915   PyObject *__pyx_t_2 = NULL;
11916   PyObject *__pyx_t_3 = NULL;
11917   PyObject *__pyx_t_4 = NULL;
11918   int __pyx_t_5;
11919   int __pyx_lineno = 0;
11920   const char *__pyx_filename = NULL;
11921   int __pyx_clineno = 0;
11922   __Pyx_RefNannySetupContext("_op_MAX");
11923 
11924   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":5
11925  * cdef object _op_MAX(object x, object y):
11926  *     """maximum"""
11927  *     return max(x, y)             # <<<<<<<<<<<<<<
11928  *
11929  * cdef object _op_MIN(object x, object y):
11930  */
11931   __Pyx_XDECREF(__pyx_r);
11932   __Pyx_INCREF(__pyx_v_y);
11933   __pyx_t_1 = __pyx_v_y;
11934   __Pyx_INCREF(__pyx_v_x);
11935   __pyx_t_2 = __pyx_v_x;
11936   __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11937   __Pyx_GOTREF(__pyx_t_4);
11938   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11939   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11940   if (__pyx_t_5) {
11941     __Pyx_INCREF(__pyx_t_1);
11942     __pyx_t_3 = __pyx_t_1;
11943   } else {
11944     __Pyx_INCREF(__pyx_t_2);
11945     __pyx_t_3 = __pyx_t_2;
11946   }
11947   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11948   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11949   __Pyx_INCREF(__pyx_t_3);
11950   __pyx_r = __pyx_t_3;
11951   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11952   goto __pyx_L0;
11953 
11954   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11955   goto __pyx_L0;
11956   __pyx_L1_error:;
11957   __Pyx_XDECREF(__pyx_t_1);
11958   __Pyx_XDECREF(__pyx_t_2);
11959   __Pyx_XDECREF(__pyx_t_3);
11960   __Pyx_XDECREF(__pyx_t_4);
11961   __Pyx_AddTraceback("mpi4py.MPI._op_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
11962   __pyx_r = 0;
11963   __pyx_L0:;
11964   __Pyx_XGIVEREF(__pyx_r);
11965   __Pyx_RefNannyFinishContext();
11966   return __pyx_r;
11967 }
11968 
11969 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":7
11970  *     return max(x, y)
11971  *
11972  * cdef object _op_MIN(object x, object y):             # <<<<<<<<<<<<<<
11973  *     """minimum"""
11974  *     return min(x, y)
11975  */
11976 
__pyx_f_6mpi4py_3MPI__op_MIN(PyObject * __pyx_v_x,PyObject * __pyx_v_y)11977 static PyObject *__pyx_f_6mpi4py_3MPI__op_MIN(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
11978   PyObject *__pyx_r = NULL;
11979   __Pyx_RefNannyDeclarations
11980   PyObject *__pyx_t_1 = NULL;
11981   PyObject *__pyx_t_2 = NULL;
11982   PyObject *__pyx_t_3 = NULL;
11983   PyObject *__pyx_t_4 = NULL;
11984   int __pyx_t_5;
11985   int __pyx_lineno = 0;
11986   const char *__pyx_filename = NULL;
11987   int __pyx_clineno = 0;
11988   __Pyx_RefNannySetupContext("_op_MIN");
11989 
11990   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":9
11991  * cdef object _op_MIN(object x, object y):
11992  *     """minimum"""
11993  *     return min(x, y)             # <<<<<<<<<<<<<<
11994  *
11995  * cdef object _op_SUM(object x, object y):
11996  */
11997   __Pyx_XDECREF(__pyx_r);
11998   __Pyx_INCREF(__pyx_v_y);
11999   __pyx_t_1 = __pyx_v_y;
12000   __Pyx_INCREF(__pyx_v_x);
12001   __pyx_t_2 = __pyx_v_x;
12002   __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12003   __Pyx_GOTREF(__pyx_t_4);
12004   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12005   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12006   if (__pyx_t_5) {
12007     __Pyx_INCREF(__pyx_t_1);
12008     __pyx_t_3 = __pyx_t_1;
12009   } else {
12010     __Pyx_INCREF(__pyx_t_2);
12011     __pyx_t_3 = __pyx_t_2;
12012   }
12013   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12014   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12015   __Pyx_INCREF(__pyx_t_3);
12016   __pyx_r = __pyx_t_3;
12017   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12018   goto __pyx_L0;
12019 
12020   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12021   goto __pyx_L0;
12022   __pyx_L1_error:;
12023   __Pyx_XDECREF(__pyx_t_1);
12024   __Pyx_XDECREF(__pyx_t_2);
12025   __Pyx_XDECREF(__pyx_t_3);
12026   __Pyx_XDECREF(__pyx_t_4);
12027   __Pyx_AddTraceback("mpi4py.MPI._op_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
12028   __pyx_r = 0;
12029   __pyx_L0:;
12030   __Pyx_XGIVEREF(__pyx_r);
12031   __Pyx_RefNannyFinishContext();
12032   return __pyx_r;
12033 }
12034 
12035 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":11
12036  *     return min(x, y)
12037  *
12038  * cdef object _op_SUM(object x, object y):             # <<<<<<<<<<<<<<
12039  *     """sum"""
12040  *     return x + y
12041  */
12042 
__pyx_f_6mpi4py_3MPI__op_SUM(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12043 static PyObject *__pyx_f_6mpi4py_3MPI__op_SUM(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12044   PyObject *__pyx_r = NULL;
12045   __Pyx_RefNannyDeclarations
12046   PyObject *__pyx_t_1 = NULL;
12047   int __pyx_lineno = 0;
12048   const char *__pyx_filename = NULL;
12049   int __pyx_clineno = 0;
12050   __Pyx_RefNannySetupContext("_op_SUM");
12051 
12052   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":13
12053  * cdef object _op_SUM(object x, object y):
12054  *     """sum"""
12055  *     return x + y             # <<<<<<<<<<<<<<
12056  *
12057  * cdef object _op_PROD(object x, object y):
12058  */
12059   __Pyx_XDECREF(__pyx_r);
12060   __pyx_t_1 = PyNumber_Add(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12061   __Pyx_GOTREF(__pyx_t_1);
12062   __pyx_r = __pyx_t_1;
12063   __pyx_t_1 = 0;
12064   goto __pyx_L0;
12065 
12066   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12067   goto __pyx_L0;
12068   __pyx_L1_error:;
12069   __Pyx_XDECREF(__pyx_t_1);
12070   __Pyx_AddTraceback("mpi4py.MPI._op_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename);
12071   __pyx_r = 0;
12072   __pyx_L0:;
12073   __Pyx_XGIVEREF(__pyx_r);
12074   __Pyx_RefNannyFinishContext();
12075   return __pyx_r;
12076 }
12077 
12078 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":15
12079  *     return x + y
12080  *
12081  * cdef object _op_PROD(object x, object y):             # <<<<<<<<<<<<<<
12082  *     """product"""
12083  *     return x * y
12084  */
12085 
__pyx_f_6mpi4py_3MPI__op_PROD(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12086 static PyObject *__pyx_f_6mpi4py_3MPI__op_PROD(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12087   PyObject *__pyx_r = NULL;
12088   __Pyx_RefNannyDeclarations
12089   PyObject *__pyx_t_1 = NULL;
12090   int __pyx_lineno = 0;
12091   const char *__pyx_filename = NULL;
12092   int __pyx_clineno = 0;
12093   __Pyx_RefNannySetupContext("_op_PROD");
12094 
12095   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":17
12096  * cdef object _op_PROD(object x, object y):
12097  *     """product"""
12098  *     return x * y             # <<<<<<<<<<<<<<
12099  *
12100  * cdef object _op_BAND(object x, object y):
12101  */
12102   __Pyx_XDECREF(__pyx_r);
12103   __pyx_t_1 = PyNumber_Multiply(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12104   __Pyx_GOTREF(__pyx_t_1);
12105   __pyx_r = __pyx_t_1;
12106   __pyx_t_1 = 0;
12107   goto __pyx_L0;
12108 
12109   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12110   goto __pyx_L0;
12111   __pyx_L1_error:;
12112   __Pyx_XDECREF(__pyx_t_1);
12113   __Pyx_AddTraceback("mpi4py.MPI._op_PROD", __pyx_clineno, __pyx_lineno, __pyx_filename);
12114   __pyx_r = 0;
12115   __pyx_L0:;
12116   __Pyx_XGIVEREF(__pyx_r);
12117   __Pyx_RefNannyFinishContext();
12118   return __pyx_r;
12119 }
12120 
12121 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":19
12122  *     return x * y
12123  *
12124  * cdef object _op_BAND(object x, object y):             # <<<<<<<<<<<<<<
12125  *     """bit-wise and"""
12126  *     return x & y
12127  */
12128 
__pyx_f_6mpi4py_3MPI__op_BAND(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12129 static PyObject *__pyx_f_6mpi4py_3MPI__op_BAND(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12130   PyObject *__pyx_r = NULL;
12131   __Pyx_RefNannyDeclarations
12132   PyObject *__pyx_t_1 = NULL;
12133   int __pyx_lineno = 0;
12134   const char *__pyx_filename = NULL;
12135   int __pyx_clineno = 0;
12136   __Pyx_RefNannySetupContext("_op_BAND");
12137 
12138   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":21
12139  * cdef object _op_BAND(object x, object y):
12140  *     """bit-wise and"""
12141  *     return x & y             # <<<<<<<<<<<<<<
12142  *
12143  * cdef object _op_BOR(object x, object y):
12144  */
12145   __Pyx_XDECREF(__pyx_r);
12146   __pyx_t_1 = PyNumber_And(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12147   __Pyx_GOTREF(__pyx_t_1);
12148   __pyx_r = __pyx_t_1;
12149   __pyx_t_1 = 0;
12150   goto __pyx_L0;
12151 
12152   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12153   goto __pyx_L0;
12154   __pyx_L1_error:;
12155   __Pyx_XDECREF(__pyx_t_1);
12156   __Pyx_AddTraceback("mpi4py.MPI._op_BAND", __pyx_clineno, __pyx_lineno, __pyx_filename);
12157   __pyx_r = 0;
12158   __pyx_L0:;
12159   __Pyx_XGIVEREF(__pyx_r);
12160   __Pyx_RefNannyFinishContext();
12161   return __pyx_r;
12162 }
12163 
12164 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":23
12165  *     return x & y
12166  *
12167  * cdef object _op_BOR(object x, object y):             # <<<<<<<<<<<<<<
12168  *     """bit-wise or"""
12169  *     return x | y
12170  */
12171 
__pyx_f_6mpi4py_3MPI__op_BOR(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12172 static PyObject *__pyx_f_6mpi4py_3MPI__op_BOR(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12173   PyObject *__pyx_r = NULL;
12174   __Pyx_RefNannyDeclarations
12175   PyObject *__pyx_t_1 = NULL;
12176   int __pyx_lineno = 0;
12177   const char *__pyx_filename = NULL;
12178   int __pyx_clineno = 0;
12179   __Pyx_RefNannySetupContext("_op_BOR");
12180 
12181   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":25
12182  * cdef object _op_BOR(object x, object y):
12183  *     """bit-wise or"""
12184  *     return x | y             # <<<<<<<<<<<<<<
12185  *
12186  * cdef object _op_BXOR(object x, object y):
12187  */
12188   __Pyx_XDECREF(__pyx_r);
12189   __pyx_t_1 = PyNumber_Or(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12190   __Pyx_GOTREF(__pyx_t_1);
12191   __pyx_r = __pyx_t_1;
12192   __pyx_t_1 = 0;
12193   goto __pyx_L0;
12194 
12195   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12196   goto __pyx_L0;
12197   __pyx_L1_error:;
12198   __Pyx_XDECREF(__pyx_t_1);
12199   __Pyx_AddTraceback("mpi4py.MPI._op_BOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
12200   __pyx_r = 0;
12201   __pyx_L0:;
12202   __Pyx_XGIVEREF(__pyx_r);
12203   __Pyx_RefNannyFinishContext();
12204   return __pyx_r;
12205 }
12206 
12207 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":27
12208  *     return x | y
12209  *
12210  * cdef object _op_BXOR(object x, object y):             # <<<<<<<<<<<<<<
12211  *     """bit-wise xor"""
12212  *     return x ^ y
12213  */
12214 
__pyx_f_6mpi4py_3MPI__op_BXOR(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12215 static PyObject *__pyx_f_6mpi4py_3MPI__op_BXOR(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12216   PyObject *__pyx_r = NULL;
12217   __Pyx_RefNannyDeclarations
12218   PyObject *__pyx_t_1 = NULL;
12219   int __pyx_lineno = 0;
12220   const char *__pyx_filename = NULL;
12221   int __pyx_clineno = 0;
12222   __Pyx_RefNannySetupContext("_op_BXOR");
12223 
12224   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":29
12225  * cdef object _op_BXOR(object x, object y):
12226  *     """bit-wise xor"""
12227  *     return x ^ y             # <<<<<<<<<<<<<<
12228  *
12229  * cdef object _op_LAND(object x, object y):
12230  */
12231   __Pyx_XDECREF(__pyx_r);
12232   __pyx_t_1 = PyNumber_Xor(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12233   __Pyx_GOTREF(__pyx_t_1);
12234   __pyx_r = __pyx_t_1;
12235   __pyx_t_1 = 0;
12236   goto __pyx_L0;
12237 
12238   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12239   goto __pyx_L0;
12240   __pyx_L1_error:;
12241   __Pyx_XDECREF(__pyx_t_1);
12242   __Pyx_AddTraceback("mpi4py.MPI._op_BXOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
12243   __pyx_r = 0;
12244   __pyx_L0:;
12245   __Pyx_XGIVEREF(__pyx_r);
12246   __Pyx_RefNannyFinishContext();
12247   return __pyx_r;
12248 }
12249 
12250 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":31
12251  *     return x ^ y
12252  *
12253  * cdef object _op_LAND(object x, object y):             # <<<<<<<<<<<<<<
12254  *     """logical and"""
12255  *     return bool(x) & bool(y)
12256  */
12257 
__pyx_f_6mpi4py_3MPI__op_LAND(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12258 static PyObject *__pyx_f_6mpi4py_3MPI__op_LAND(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12259   PyObject *__pyx_r = NULL;
12260   __Pyx_RefNannyDeclarations
12261   int __pyx_t_1;
12262   PyObject *__pyx_t_2 = NULL;
12263   PyObject *__pyx_t_3 = NULL;
12264   PyObject *__pyx_t_4 = NULL;
12265   int __pyx_lineno = 0;
12266   const char *__pyx_filename = NULL;
12267   int __pyx_clineno = 0;
12268   __Pyx_RefNannySetupContext("_op_LAND");
12269 
12270   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":33
12271  * cdef object _op_LAND(object x, object y):
12272  *     """logical and"""
12273  *     return bool(x) & bool(y)             # <<<<<<<<<<<<<<
12274  *
12275  * cdef object _op_LOR(object x, object y):
12276  */
12277   __Pyx_XDECREF(__pyx_r);
12278   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12279   __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12280   __Pyx_GOTREF(__pyx_t_2);
12281   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_y); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12282   __pyx_t_3 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12283   __Pyx_GOTREF(__pyx_t_3);
12284   __pyx_t_4 = PyNumber_And(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12285   __Pyx_GOTREF(__pyx_t_4);
12286   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12287   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12288   __pyx_r = __pyx_t_4;
12289   __pyx_t_4 = 0;
12290   goto __pyx_L0;
12291 
12292   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12293   goto __pyx_L0;
12294   __pyx_L1_error:;
12295   __Pyx_XDECREF(__pyx_t_2);
12296   __Pyx_XDECREF(__pyx_t_3);
12297   __Pyx_XDECREF(__pyx_t_4);
12298   __Pyx_AddTraceback("mpi4py.MPI._op_LAND", __pyx_clineno, __pyx_lineno, __pyx_filename);
12299   __pyx_r = 0;
12300   __pyx_L0:;
12301   __Pyx_XGIVEREF(__pyx_r);
12302   __Pyx_RefNannyFinishContext();
12303   return __pyx_r;
12304 }
12305 
12306 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":35
12307  *     return bool(x) & bool(y)
12308  *
12309  * cdef object _op_LOR(object x, object y):             # <<<<<<<<<<<<<<
12310  *     """logical or"""
12311  *     return bool(x) | bool(y)
12312  */
12313 
__pyx_f_6mpi4py_3MPI__op_LOR(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12314 static PyObject *__pyx_f_6mpi4py_3MPI__op_LOR(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12315   PyObject *__pyx_r = NULL;
12316   __Pyx_RefNannyDeclarations
12317   int __pyx_t_1;
12318   PyObject *__pyx_t_2 = NULL;
12319   PyObject *__pyx_t_3 = NULL;
12320   PyObject *__pyx_t_4 = NULL;
12321   int __pyx_lineno = 0;
12322   const char *__pyx_filename = NULL;
12323   int __pyx_clineno = 0;
12324   __Pyx_RefNannySetupContext("_op_LOR");
12325 
12326   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":37
12327  * cdef object _op_LOR(object x, object y):
12328  *     """logical or"""
12329  *     return bool(x) | bool(y)             # <<<<<<<<<<<<<<
12330  *
12331  * cdef object _op_LXOR(object x, object y):
12332  */
12333   __Pyx_XDECREF(__pyx_r);
12334   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12335   __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12336   __Pyx_GOTREF(__pyx_t_2);
12337   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_y); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12338   __pyx_t_3 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12339   __Pyx_GOTREF(__pyx_t_3);
12340   __pyx_t_4 = PyNumber_Or(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12341   __Pyx_GOTREF(__pyx_t_4);
12342   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12343   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12344   __pyx_r = __pyx_t_4;
12345   __pyx_t_4 = 0;
12346   goto __pyx_L0;
12347 
12348   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12349   goto __pyx_L0;
12350   __pyx_L1_error:;
12351   __Pyx_XDECREF(__pyx_t_2);
12352   __Pyx_XDECREF(__pyx_t_3);
12353   __Pyx_XDECREF(__pyx_t_4);
12354   __Pyx_AddTraceback("mpi4py.MPI._op_LOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
12355   __pyx_r = 0;
12356   __pyx_L0:;
12357   __Pyx_XGIVEREF(__pyx_r);
12358   __Pyx_RefNannyFinishContext();
12359   return __pyx_r;
12360 }
12361 
12362 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":39
12363  *     return bool(x) | bool(y)
12364  *
12365  * cdef object _op_LXOR(object x, object y):             # <<<<<<<<<<<<<<
12366  *     """logical xor"""
12367  *     return bool(x) ^ bool(y)
12368  */
12369 
__pyx_f_6mpi4py_3MPI__op_LXOR(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12370 static PyObject *__pyx_f_6mpi4py_3MPI__op_LXOR(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12371   PyObject *__pyx_r = NULL;
12372   __Pyx_RefNannyDeclarations
12373   int __pyx_t_1;
12374   PyObject *__pyx_t_2 = NULL;
12375   PyObject *__pyx_t_3 = NULL;
12376   PyObject *__pyx_t_4 = NULL;
12377   int __pyx_lineno = 0;
12378   const char *__pyx_filename = NULL;
12379   int __pyx_clineno = 0;
12380   __Pyx_RefNannySetupContext("_op_LXOR");
12381 
12382   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":41
12383  * cdef object _op_LXOR(object x, object y):
12384  *     """logical xor"""
12385  *     return bool(x) ^ bool(y)             # <<<<<<<<<<<<<<
12386  *
12387  * cdef object _op_MAXLOC(object x, object y):
12388  */
12389   __Pyx_XDECREF(__pyx_r);
12390   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12391   __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12392   __Pyx_GOTREF(__pyx_t_2);
12393   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_y); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12394   __pyx_t_3 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12395   __Pyx_GOTREF(__pyx_t_3);
12396   __pyx_t_4 = PyNumber_Xor(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12397   __Pyx_GOTREF(__pyx_t_4);
12398   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12399   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12400   __pyx_r = __pyx_t_4;
12401   __pyx_t_4 = 0;
12402   goto __pyx_L0;
12403 
12404   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12405   goto __pyx_L0;
12406   __pyx_L1_error:;
12407   __Pyx_XDECREF(__pyx_t_2);
12408   __Pyx_XDECREF(__pyx_t_3);
12409   __Pyx_XDECREF(__pyx_t_4);
12410   __Pyx_AddTraceback("mpi4py.MPI._op_LXOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
12411   __pyx_r = 0;
12412   __pyx_L0:;
12413   __Pyx_XGIVEREF(__pyx_r);
12414   __Pyx_RefNannyFinishContext();
12415   return __pyx_r;
12416 }
12417 
12418 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":43
12419  *     return bool(x) ^ bool(y)
12420  *
12421  * cdef object _op_MAXLOC(object x, object y):             # <<<<<<<<<<<<<<
12422  *     """maximum and location"""
12423  *     cdef object i, j, u, v, w, k
12424  */
12425 
__pyx_f_6mpi4py_3MPI__op_MAXLOC(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12426 static PyObject *__pyx_f_6mpi4py_3MPI__op_MAXLOC(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12427   PyObject *__pyx_v_i = 0;
12428   PyObject *__pyx_v_j = 0;
12429   PyObject *__pyx_v_u = 0;
12430   PyObject *__pyx_v_v = 0;
12431   PyObject *__pyx_v_w = 0;
12432   PyObject *__pyx_v_k = 0;
12433   PyObject *__pyx_r = NULL;
12434   __Pyx_RefNannyDeclarations
12435   PyObject *__pyx_t_1 = NULL;
12436   PyObject *__pyx_t_2 = NULL;
12437   PyObject *__pyx_t_3 = NULL;
12438   PyObject *(*__pyx_t_4)(PyObject *);
12439   PyObject *__pyx_t_5 = NULL;
12440   int __pyx_t_6;
12441   int __pyx_lineno = 0;
12442   const char *__pyx_filename = NULL;
12443   int __pyx_clineno = 0;
12444   __Pyx_RefNannySetupContext("_op_MAXLOC");
12445 
12446   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":46
12447  *     """maximum and location"""
12448  *     cdef object i, j, u, v, w, k
12449  *     u, i = x             # <<<<<<<<<<<<<<
12450  *     v, j = y
12451  *     w = max(u, v)
12452  */
12453   if ((likely(PyTuple_CheckExact(__pyx_v_x))) || (PyList_CheckExact(__pyx_v_x))) {
12454     PyObject* sequence = __pyx_v_x;
12455     if (likely(PyTuple_CheckExact(sequence))) {
12456       if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
12457         if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12458         else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
12459         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12460       }
12461       __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
12462       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
12463     } else {
12464       if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
12465         if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12466         else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
12467         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12468       }
12469       __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
12470       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
12471     }
12472     __Pyx_INCREF(__pyx_t_1);
12473     __Pyx_INCREF(__pyx_t_2);
12474   } else {
12475     Py_ssize_t index = -1;
12476     __pyx_t_3 = PyObject_GetIter(__pyx_v_x); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12477     __Pyx_GOTREF(__pyx_t_3);
12478     __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
12479     index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
12480     __Pyx_GOTREF(__pyx_t_1);
12481     index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
12482     __Pyx_GOTREF(__pyx_t_2);
12483     if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12484     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12485     goto __pyx_L4_unpacking_done;
12486     __pyx_L3_unpacking_failed:;
12487     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12488     if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
12489     if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
12490     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12491     __pyx_L4_unpacking_done:;
12492   }
12493   __pyx_v_u = __pyx_t_1;
12494   __pyx_t_1 = 0;
12495   __pyx_v_i = __pyx_t_2;
12496   __pyx_t_2 = 0;
12497 
12498   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":47
12499  *     cdef object i, j, u, v, w, k
12500  *     u, i = x
12501  *     v, j = y             # <<<<<<<<<<<<<<
12502  *     w = max(u, v)
12503  *     k = None
12504  */
12505   if ((likely(PyTuple_CheckExact(__pyx_v_y))) || (PyList_CheckExact(__pyx_v_y))) {
12506     PyObject* sequence = __pyx_v_y;
12507     if (likely(PyTuple_CheckExact(sequence))) {
12508       if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
12509         if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12510         else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
12511         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12512       }
12513       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
12514       __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);
12515     } else {
12516       if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
12517         if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12518         else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
12519         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12520       }
12521       __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
12522       __pyx_t_1 = PyList_GET_ITEM(sequence, 1);
12523     }
12524     __Pyx_INCREF(__pyx_t_2);
12525     __Pyx_INCREF(__pyx_t_1);
12526   } else {
12527     Py_ssize_t index = -1;
12528     __pyx_t_3 = PyObject_GetIter(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12529     __Pyx_GOTREF(__pyx_t_3);
12530     __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
12531     index = 0; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed;
12532     __Pyx_GOTREF(__pyx_t_2);
12533     index = 1; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed;
12534     __Pyx_GOTREF(__pyx_t_1);
12535     if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12536     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12537     goto __pyx_L6_unpacking_done;
12538     __pyx_L5_unpacking_failed:;
12539     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12540     if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
12541     if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
12542     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12543     __pyx_L6_unpacking_done:;
12544   }
12545   __pyx_v_v = __pyx_t_2;
12546   __pyx_t_2 = 0;
12547   __pyx_v_j = __pyx_t_1;
12548   __pyx_t_1 = 0;
12549 
12550   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":48
12551  *     u, i = x
12552  *     v, j = y
12553  *     w = max(u, v)             # <<<<<<<<<<<<<<
12554  *     k = None
12555  *     if u == v:
12556  */
12557   __Pyx_INCREF(__pyx_v_v);
12558   __pyx_t_1 = __pyx_v_v;
12559   __Pyx_INCREF(__pyx_v_u);
12560   __pyx_t_2 = __pyx_v_u;
12561   __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12562   __Pyx_GOTREF(__pyx_t_5);
12563   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12564   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12565   if (__pyx_t_6) {
12566     __Pyx_INCREF(__pyx_t_1);
12567     __pyx_t_3 = __pyx_t_1;
12568   } else {
12569     __Pyx_INCREF(__pyx_t_2);
12570     __pyx_t_3 = __pyx_t_2;
12571   }
12572   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12573   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12574   __Pyx_INCREF(__pyx_t_3);
12575   __pyx_v_w = __pyx_t_3;
12576   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12577 
12578   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":49
12579  *     v, j = y
12580  *     w = max(u, v)
12581  *     k = None             # <<<<<<<<<<<<<<
12582  *     if u == v:
12583  *         k = min(i, j)
12584  */
12585   __Pyx_INCREF(Py_None);
12586   __pyx_v_k = Py_None;
12587 
12588   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":50
12589  *     w = max(u, v)
12590  *     k = None
12591  *     if u == v:             # <<<<<<<<<<<<<<
12592  *         k = min(i, j)
12593  *     elif u <  v:
12594  */
12595   __pyx_t_3 = PyObject_RichCompare(__pyx_v_u, __pyx_v_v, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12596   __Pyx_GOTREF(__pyx_t_3);
12597   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12598   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12599   if (__pyx_t_6) {
12600 
12601     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":51
12602  *     k = None
12603  *     if u == v:
12604  *         k = min(i, j)             # <<<<<<<<<<<<<<
12605  *     elif u <  v:
12606  *         k = j
12607  */
12608     __Pyx_INCREF(__pyx_v_j);
12609     __pyx_t_3 = __pyx_v_j;
12610     __Pyx_INCREF(__pyx_v_i);
12611     __pyx_t_1 = __pyx_v_i;
12612     __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12613     __Pyx_GOTREF(__pyx_t_5);
12614     __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12615     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12616     if (__pyx_t_6) {
12617       __Pyx_INCREF(__pyx_t_3);
12618       __pyx_t_2 = __pyx_t_3;
12619     } else {
12620       __Pyx_INCREF(__pyx_t_1);
12621       __pyx_t_2 = __pyx_t_1;
12622     }
12623     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12624     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12625     __Pyx_INCREF(__pyx_t_2);
12626     __Pyx_DECREF(__pyx_v_k);
12627     __pyx_v_k = __pyx_t_2;
12628     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12629     goto __pyx_L7;
12630   }
12631 
12632   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":52
12633  *     if u == v:
12634  *         k = min(i, j)
12635  *     elif u <  v:             # <<<<<<<<<<<<<<
12636  *         k = j
12637  *     else:
12638  */
12639   __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_v_v, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12640   __Pyx_GOTREF(__pyx_t_2);
12641   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12642   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12643   if (__pyx_t_6) {
12644 
12645     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":53
12646  *         k = min(i, j)
12647  *     elif u <  v:
12648  *         k = j             # <<<<<<<<<<<<<<
12649  *     else:
12650  *         k = i
12651  */
12652     __Pyx_INCREF(__pyx_v_j);
12653     __Pyx_DECREF(__pyx_v_k);
12654     __pyx_v_k = __pyx_v_j;
12655     goto __pyx_L7;
12656   }
12657   /*else*/ {
12658 
12659     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":55
12660  *         k = j
12661  *     else:
12662  *         k = i             # <<<<<<<<<<<<<<
12663  *     return (w, k)
12664  *
12665  */
12666     __Pyx_INCREF(__pyx_v_i);
12667     __Pyx_DECREF(__pyx_v_k);
12668     __pyx_v_k = __pyx_v_i;
12669   }
12670   __pyx_L7:;
12671 
12672   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":56
12673  *     else:
12674  *         k = i
12675  *     return (w, k)             # <<<<<<<<<<<<<<
12676  *
12677  * cdef object _op_MINLOC(object x, object y):
12678  */
12679   __Pyx_XDECREF(__pyx_r);
12680   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12681   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
12682   __Pyx_INCREF(__pyx_v_w);
12683   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_w);
12684   __Pyx_GIVEREF(__pyx_v_w);
12685   __Pyx_INCREF(__pyx_v_k);
12686   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_k);
12687   __Pyx_GIVEREF(__pyx_v_k);
12688   __pyx_r = ((PyObject *)__pyx_t_2);
12689   __pyx_t_2 = 0;
12690   goto __pyx_L0;
12691 
12692   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12693   goto __pyx_L0;
12694   __pyx_L1_error:;
12695   __Pyx_XDECREF(__pyx_t_1);
12696   __Pyx_XDECREF(__pyx_t_2);
12697   __Pyx_XDECREF(__pyx_t_3);
12698   __Pyx_XDECREF(__pyx_t_5);
12699   __Pyx_AddTraceback("mpi4py.MPI._op_MAXLOC", __pyx_clineno, __pyx_lineno, __pyx_filename);
12700   __pyx_r = 0;
12701   __pyx_L0:;
12702   __Pyx_XDECREF(__pyx_v_i);
12703   __Pyx_XDECREF(__pyx_v_j);
12704   __Pyx_XDECREF(__pyx_v_u);
12705   __Pyx_XDECREF(__pyx_v_v);
12706   __Pyx_XDECREF(__pyx_v_w);
12707   __Pyx_XDECREF(__pyx_v_k);
12708   __Pyx_XGIVEREF(__pyx_r);
12709   __Pyx_RefNannyFinishContext();
12710   return __pyx_r;
12711 }
12712 
12713 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":58
12714  *     return (w, k)
12715  *
12716  * cdef object _op_MINLOC(object x, object y):             # <<<<<<<<<<<<<<
12717  *     """minimum and location"""
12718  *     cdef object i, j, u, v, w, k
12719  */
12720 
__pyx_f_6mpi4py_3MPI__op_MINLOC(PyObject * __pyx_v_x,PyObject * __pyx_v_y)12721 static PyObject *__pyx_f_6mpi4py_3MPI__op_MINLOC(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
12722   PyObject *__pyx_v_i = 0;
12723   PyObject *__pyx_v_j = 0;
12724   PyObject *__pyx_v_u = 0;
12725   PyObject *__pyx_v_v = 0;
12726   PyObject *__pyx_v_w = 0;
12727   PyObject *__pyx_v_k = 0;
12728   PyObject *__pyx_r = NULL;
12729   __Pyx_RefNannyDeclarations
12730   PyObject *__pyx_t_1 = NULL;
12731   PyObject *__pyx_t_2 = NULL;
12732   PyObject *__pyx_t_3 = NULL;
12733   PyObject *(*__pyx_t_4)(PyObject *);
12734   PyObject *__pyx_t_5 = NULL;
12735   int __pyx_t_6;
12736   int __pyx_lineno = 0;
12737   const char *__pyx_filename = NULL;
12738   int __pyx_clineno = 0;
12739   __Pyx_RefNannySetupContext("_op_MINLOC");
12740 
12741   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":61
12742  *     """minimum and location"""
12743  *     cdef object i, j, u, v, w, k
12744  *     u, i = x             # <<<<<<<<<<<<<<
12745  *     v, j = y
12746  *     w = min(u, v)
12747  */
12748   if ((likely(PyTuple_CheckExact(__pyx_v_x))) || (PyList_CheckExact(__pyx_v_x))) {
12749     PyObject* sequence = __pyx_v_x;
12750     if (likely(PyTuple_CheckExact(sequence))) {
12751       if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
12752         if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12753         else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
12754         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12755       }
12756       __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
12757       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
12758     } else {
12759       if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
12760         if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12761         else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
12762         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12763       }
12764       __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
12765       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
12766     }
12767     __Pyx_INCREF(__pyx_t_1);
12768     __Pyx_INCREF(__pyx_t_2);
12769   } else {
12770     Py_ssize_t index = -1;
12771     __pyx_t_3 = PyObject_GetIter(__pyx_v_x); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12772     __Pyx_GOTREF(__pyx_t_3);
12773     __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
12774     index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
12775     __Pyx_GOTREF(__pyx_t_1);
12776     index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
12777     __Pyx_GOTREF(__pyx_t_2);
12778     if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12779     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12780     goto __pyx_L4_unpacking_done;
12781     __pyx_L3_unpacking_failed:;
12782     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12783     if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
12784     if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
12785     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12786     __pyx_L4_unpacking_done:;
12787   }
12788   __pyx_v_u = __pyx_t_1;
12789   __pyx_t_1 = 0;
12790   __pyx_v_i = __pyx_t_2;
12791   __pyx_t_2 = 0;
12792 
12793   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":62
12794  *     cdef object i, j, u, v, w, k
12795  *     u, i = x
12796  *     v, j = y             # <<<<<<<<<<<<<<
12797  *     w = min(u, v)
12798  *     k = None
12799  */
12800   if ((likely(PyTuple_CheckExact(__pyx_v_y))) || (PyList_CheckExact(__pyx_v_y))) {
12801     PyObject* sequence = __pyx_v_y;
12802     if (likely(PyTuple_CheckExact(sequence))) {
12803       if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
12804         if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12805         else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
12806         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12807       }
12808       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
12809       __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);
12810     } else {
12811       if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
12812         if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
12813         else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
12814         {__pyx_filename = __pyx_f[12]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12815       }
12816       __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
12817       __pyx_t_1 = PyList_GET_ITEM(sequence, 1);
12818     }
12819     __Pyx_INCREF(__pyx_t_2);
12820     __Pyx_INCREF(__pyx_t_1);
12821   } else {
12822     Py_ssize_t index = -1;
12823     __pyx_t_3 = PyObject_GetIter(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12824     __Pyx_GOTREF(__pyx_t_3);
12825     __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
12826     index = 0; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed;
12827     __Pyx_GOTREF(__pyx_t_2);
12828     index = 1; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed;
12829     __Pyx_GOTREF(__pyx_t_1);
12830     if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12831     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12832     goto __pyx_L6_unpacking_done;
12833     __pyx_L5_unpacking_failed:;
12834     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12835     if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
12836     if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
12837     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12838     __pyx_L6_unpacking_done:;
12839   }
12840   __pyx_v_v = __pyx_t_2;
12841   __pyx_t_2 = 0;
12842   __pyx_v_j = __pyx_t_1;
12843   __pyx_t_1 = 0;
12844 
12845   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":63
12846  *     u, i = x
12847  *     v, j = y
12848  *     w = min(u, v)             # <<<<<<<<<<<<<<
12849  *     k = None
12850  *     if u == v:
12851  */
12852   __Pyx_INCREF(__pyx_v_v);
12853   __pyx_t_1 = __pyx_v_v;
12854   __Pyx_INCREF(__pyx_v_u);
12855   __pyx_t_2 = __pyx_v_u;
12856   __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12857   __Pyx_GOTREF(__pyx_t_5);
12858   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12859   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12860   if (__pyx_t_6) {
12861     __Pyx_INCREF(__pyx_t_1);
12862     __pyx_t_3 = __pyx_t_1;
12863   } else {
12864     __Pyx_INCREF(__pyx_t_2);
12865     __pyx_t_3 = __pyx_t_2;
12866   }
12867   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12868   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12869   __Pyx_INCREF(__pyx_t_3);
12870   __pyx_v_w = __pyx_t_3;
12871   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12872 
12873   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":64
12874  *     v, j = y
12875  *     w = min(u, v)
12876  *     k = None             # <<<<<<<<<<<<<<
12877  *     if u == v:
12878  *         k = min(i, j)
12879  */
12880   __Pyx_INCREF(Py_None);
12881   __pyx_v_k = Py_None;
12882 
12883   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":65
12884  *     w = min(u, v)
12885  *     k = None
12886  *     if u == v:             # <<<<<<<<<<<<<<
12887  *         k = min(i, j)
12888  *     elif u <  v:
12889  */
12890   __pyx_t_3 = PyObject_RichCompare(__pyx_v_u, __pyx_v_v, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12891   __Pyx_GOTREF(__pyx_t_3);
12892   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12893   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12894   if (__pyx_t_6) {
12895 
12896     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":66
12897  *     k = None
12898  *     if u == v:
12899  *         k = min(i, j)             # <<<<<<<<<<<<<<
12900  *     elif u <  v:
12901  *         k = i
12902  */
12903     __Pyx_INCREF(__pyx_v_j);
12904     __pyx_t_3 = __pyx_v_j;
12905     __Pyx_INCREF(__pyx_v_i);
12906     __pyx_t_1 = __pyx_v_i;
12907     __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12908     __Pyx_GOTREF(__pyx_t_5);
12909     __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12910     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12911     if (__pyx_t_6) {
12912       __Pyx_INCREF(__pyx_t_3);
12913       __pyx_t_2 = __pyx_t_3;
12914     } else {
12915       __Pyx_INCREF(__pyx_t_1);
12916       __pyx_t_2 = __pyx_t_1;
12917     }
12918     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12919     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12920     __Pyx_INCREF(__pyx_t_2);
12921     __Pyx_DECREF(__pyx_v_k);
12922     __pyx_v_k = __pyx_t_2;
12923     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12924     goto __pyx_L7;
12925   }
12926 
12927   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":67
12928  *     if u == v:
12929  *         k = min(i, j)
12930  *     elif u <  v:             # <<<<<<<<<<<<<<
12931  *         k = i
12932  *     else:
12933  */
12934   __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_v_v, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12935   __Pyx_GOTREF(__pyx_t_2);
12936   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12937   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12938   if (__pyx_t_6) {
12939 
12940     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":68
12941  *         k = min(i, j)
12942  *     elif u <  v:
12943  *         k = i             # <<<<<<<<<<<<<<
12944  *     else:
12945  *         k = j
12946  */
12947     __Pyx_INCREF(__pyx_v_i);
12948     __Pyx_DECREF(__pyx_v_k);
12949     __pyx_v_k = __pyx_v_i;
12950     goto __pyx_L7;
12951   }
12952   /*else*/ {
12953 
12954     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":70
12955  *         k = i
12956  *     else:
12957  *         k = j             # <<<<<<<<<<<<<<
12958  *     return (w, k)
12959  *
12960  */
12961     __Pyx_INCREF(__pyx_v_j);
12962     __Pyx_DECREF(__pyx_v_k);
12963     __pyx_v_k = __pyx_v_j;
12964   }
12965   __pyx_L7:;
12966 
12967   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":71
12968  *     else:
12969  *         k = j
12970  *     return (w, k)             # <<<<<<<<<<<<<<
12971  *
12972  * cdef object _op_REPLACE(object x, object y):
12973  */
12974   __Pyx_XDECREF(__pyx_r);
12975   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12976   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
12977   __Pyx_INCREF(__pyx_v_w);
12978   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_w);
12979   __Pyx_GIVEREF(__pyx_v_w);
12980   __Pyx_INCREF(__pyx_v_k);
12981   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_k);
12982   __Pyx_GIVEREF(__pyx_v_k);
12983   __pyx_r = ((PyObject *)__pyx_t_2);
12984   __pyx_t_2 = 0;
12985   goto __pyx_L0;
12986 
12987   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12988   goto __pyx_L0;
12989   __pyx_L1_error:;
12990   __Pyx_XDECREF(__pyx_t_1);
12991   __Pyx_XDECREF(__pyx_t_2);
12992   __Pyx_XDECREF(__pyx_t_3);
12993   __Pyx_XDECREF(__pyx_t_5);
12994   __Pyx_AddTraceback("mpi4py.MPI._op_MINLOC", __pyx_clineno, __pyx_lineno, __pyx_filename);
12995   __pyx_r = 0;
12996   __pyx_L0:;
12997   __Pyx_XDECREF(__pyx_v_i);
12998   __Pyx_XDECREF(__pyx_v_j);
12999   __Pyx_XDECREF(__pyx_v_u);
13000   __Pyx_XDECREF(__pyx_v_v);
13001   __Pyx_XDECREF(__pyx_v_w);
13002   __Pyx_XDECREF(__pyx_v_k);
13003   __Pyx_XGIVEREF(__pyx_r);
13004   __Pyx_RefNannyFinishContext();
13005   return __pyx_r;
13006 }
13007 
13008 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":73
13009  *     return (w, k)
13010  *
13011  * cdef object _op_REPLACE(object x, object y):             # <<<<<<<<<<<<<<
13012  *     """replace,  (x, y) -> x"""
13013  *     return x
13014  */
13015 
__pyx_f_6mpi4py_3MPI__op_REPLACE(PyObject * __pyx_v_x,PyObject * __pyx_v_y)13016 static PyObject *__pyx_f_6mpi4py_3MPI__op_REPLACE(PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
13017   PyObject *__pyx_r = NULL;
13018   __Pyx_RefNannyDeclarations
13019   __Pyx_RefNannySetupContext("_op_REPLACE");
13020 
13021   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":75
13022  * cdef object _op_REPLACE(object x, object y):
13023  *     """replace,  (x, y) -> x"""
13024  *     return x             # <<<<<<<<<<<<<<
13025  *
13026  * # -----------------------------------------------------------------------------
13027  */
13028   __Pyx_XDECREF(__pyx_r);
13029   __Pyx_INCREF(__pyx_v_x);
13030   __pyx_r = __pyx_v_x;
13031   goto __pyx_L0;
13032 
13033   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13034   __pyx_L0:;
13035   __Pyx_XGIVEREF(__pyx_r);
13036   __Pyx_RefNannyFinishContext();
13037   return __pyx_r;
13038 }
13039 
13040 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":81
13041  * cdef object op_user_registry = [None]*(1+16)
13042  *
13043  * cdef inline object op_user_py(int index, object x, object y, object dt):             # <<<<<<<<<<<<<<
13044  *     return op_user_registry[index](x, y, dt)
13045  *
13046  */
13047 
__pyx_f_6mpi4py_3MPI_op_user_py(int __pyx_v_index,PyObject * __pyx_v_x,PyObject * __pyx_v_y,PyObject * __pyx_v_dt)13048 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_op_user_py(int __pyx_v_index, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_dt) {
13049   PyObject *__pyx_r = NULL;
13050   __Pyx_RefNannyDeclarations
13051   PyObject *__pyx_t_1 = NULL;
13052   PyObject *__pyx_t_2 = NULL;
13053   PyObject *__pyx_t_3 = NULL;
13054   int __pyx_lineno = 0;
13055   const char *__pyx_filename = NULL;
13056   int __pyx_clineno = 0;
13057   __Pyx_RefNannySetupContext("op_user_py");
13058 
13059   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":82
13060  *
13061  * cdef inline object op_user_py(int index, object x, object y, object dt):
13062  *     return op_user_registry[index](x, y, dt)             # <<<<<<<<<<<<<<
13063  *
13064  * cdef inline void op_user_mpi(
13065  */
13066   __Pyx_XDECREF(__pyx_r);
13067   __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_6mpi4py_3MPI_op_user_registry, __pyx_v_index, sizeof(int), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13068   __Pyx_GOTREF(__pyx_t_1);
13069   __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13070   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
13071   __Pyx_INCREF(__pyx_v_x);
13072   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_x);
13073   __Pyx_GIVEREF(__pyx_v_x);
13074   __Pyx_INCREF(__pyx_v_y);
13075   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_y);
13076   __Pyx_GIVEREF(__pyx_v_y);
13077   __Pyx_INCREF(__pyx_v_dt);
13078   PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_dt);
13079   __Pyx_GIVEREF(__pyx_v_dt);
13080   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13081   __Pyx_GOTREF(__pyx_t_3);
13082   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13083   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
13084   __pyx_r = __pyx_t_3;
13085   __pyx_t_3 = 0;
13086   goto __pyx_L0;
13087 
13088   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13089   goto __pyx_L0;
13090   __pyx_L1_error:;
13091   __Pyx_XDECREF(__pyx_t_1);
13092   __Pyx_XDECREF(__pyx_t_2);
13093   __Pyx_XDECREF(__pyx_t_3);
13094   __Pyx_AddTraceback("mpi4py.MPI.op_user_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
13095   __pyx_r = 0;
13096   __pyx_L0:;
13097   __Pyx_XGIVEREF(__pyx_r);
13098   __Pyx_RefNannyFinishContext();
13099   return __pyx_r;
13100 }
13101 
13102 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":84
13103  *     return op_user_registry[index](x, y, dt)
13104  *
13105  * cdef inline void op_user_mpi(             # <<<<<<<<<<<<<<
13106  *     int index, void *a, void *b, MPI_Aint n, MPI_Datatype *t) with gil:
13107  *     # errors in user-defined reduction operations are unrecoverable
13108  */
13109 
__pyx_f_6mpi4py_3MPI_op_user_mpi(int __pyx_v_index,void * __pyx_v_a,void * __pyx_v_b,MPI_Aint __pyx_v_n,MPI_Datatype * __pyx_v_t)13110 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_op_user_mpi(int __pyx_v_index, void *__pyx_v_a, void *__pyx_v_b, MPI_Aint __pyx_v_n, MPI_Datatype *__pyx_v_t) {
13111   __Pyx_RefNannyDeclarations
13112   PyObject *__pyx_t_1 = NULL;
13113   PyObject *__pyx_t_2 = NULL;
13114   PyObject *__pyx_t_3 = NULL;
13115   PyObject *__pyx_t_4 = NULL;
13116   PyObject *__pyx_t_5 = NULL;
13117   PyObject *__pyx_t_6 = NULL;
13118   PyObject *__pyx_t_7 = NULL;
13119   int __pyx_lineno = 0;
13120   const char *__pyx_filename = NULL;
13121   int __pyx_clineno = 0;
13122   #ifdef WITH_THREAD
13123   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
13124   #endif
13125   __Pyx_RefNannySetupContext("op_user_mpi");
13126 
13127   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":87
13128  *     int index, void *a, void *b, MPI_Aint n, MPI_Datatype *t) with gil:
13129  *     # errors in user-defined reduction operations are unrecoverable
13130  *     try:             # <<<<<<<<<<<<<<
13131  *         op_user_py(index, tomemory(a, n), tomemory(b, n), new_Datatype(t[0]))
13132  *     except:
13133  */
13134   {
13135     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
13136     __Pyx_XGOTREF(__pyx_t_1);
13137     __Pyx_XGOTREF(__pyx_t_2);
13138     __Pyx_XGOTREF(__pyx_t_3);
13139     /*try:*/ {
13140 
13141       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":88
13142  *     # errors in user-defined reduction operations are unrecoverable
13143  *     try:
13144  *         op_user_py(index, tomemory(a, n), tomemory(b, n), new_Datatype(t[0]))             # <<<<<<<<<<<<<<
13145  *     except:
13146  *         # print the full exception traceback and abort.
13147  */
13148       __pyx_t_4 = __pyx_f_6mpi4py_3MPI_tomemory(__pyx_v_a, __pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13149       __Pyx_GOTREF(__pyx_t_4);
13150       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_tomemory(__pyx_v_b, __pyx_v_n); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13151       __Pyx_GOTREF(__pyx_t_5);
13152       __pyx_t_6 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype((__pyx_v_t[0]))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13153       __Pyx_GOTREF(__pyx_t_6);
13154       __pyx_t_7 = __pyx_f_6mpi4py_3MPI_op_user_py(__pyx_v_index, __pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13155       __Pyx_GOTREF(__pyx_t_7);
13156       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13157       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13158       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13159       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13160     }
13161     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
13162     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
13163     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13164     goto __pyx_L10_try_end;
13165     __pyx_L3_error:;
13166     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
13167     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
13168     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13169     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
13170 
13171     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":89
13172  *     try:
13173  *         op_user_py(index, tomemory(a, n), tomemory(b, n), new_Datatype(t[0]))
13174  *     except:             # <<<<<<<<<<<<<<
13175  *         # print the full exception traceback and abort.
13176  *         PySys_WriteStderr(b"Fatal Python error: exception in "
13177  */
13178     /*except:*/ {
13179       __Pyx_AddTraceback("mpi4py.MPI.op_user_mpi", __pyx_clineno, __pyx_lineno, __pyx_filename);
13180       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
13181       __Pyx_GOTREF(__pyx_t_7);
13182       __Pyx_GOTREF(__pyx_t_6);
13183       __Pyx_GOTREF(__pyx_t_5);
13184 
13185       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":91
13186  *     except:
13187  *         # print the full exception traceback and abort.
13188  *         PySys_WriteStderr(b"Fatal Python error: exception in "             # <<<<<<<<<<<<<<
13189  *                           b"user-defined reduction operation\n", 0)
13190  *         print_traceback()
13191  */
13192       PySys_WriteStderr(__pyx_k_11, 0);
13193 
13194       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":93
13195  *         PySys_WriteStderr(b"Fatal Python error: exception in "
13196  *                           b"user-defined reduction operation\n", 0)
13197  *         print_traceback()             # <<<<<<<<<<<<<<
13198  *         MPI_Abort(MPI_COMM_WORLD, 1)
13199  *
13200  */
13201       __pyx_f_6mpi4py_3MPI_print_traceback();
13202 
13203       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":94
13204  *                           b"user-defined reduction operation\n", 0)
13205  *         print_traceback()
13206  *         MPI_Abort(MPI_COMM_WORLD, 1)             # <<<<<<<<<<<<<<
13207  *
13208  * cdef inline void op_user_call(
13209  */
13210       MPI_Abort(MPI_COMM_WORLD, 1);
13211       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13212       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13213       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13214       goto __pyx_L4_exception_handled;
13215     }
13216     __pyx_L5_except_error:;
13217     __Pyx_XGIVEREF(__pyx_t_1);
13218     __Pyx_XGIVEREF(__pyx_t_2);
13219     __Pyx_XGIVEREF(__pyx_t_3);
13220     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
13221     goto __pyx_L1_error;
13222     __pyx_L4_exception_handled:;
13223     __Pyx_XGIVEREF(__pyx_t_1);
13224     __Pyx_XGIVEREF(__pyx_t_2);
13225     __Pyx_XGIVEREF(__pyx_t_3);
13226     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
13227     __pyx_L10_try_end:;
13228   }
13229 
13230   goto __pyx_L0;
13231   __pyx_L1_error:;
13232   __Pyx_XDECREF(__pyx_t_4);
13233   __Pyx_XDECREF(__pyx_t_5);
13234   __Pyx_XDECREF(__pyx_t_6);
13235   __Pyx_XDECREF(__pyx_t_7);
13236   __Pyx_WriteUnraisable("mpi4py.MPI.op_user_mpi", __pyx_clineno, __pyx_lineno, __pyx_filename);
13237   __pyx_L0:;
13238   __Pyx_RefNannyFinishContext();
13239   #ifdef WITH_THREAD
13240   PyGILState_Release(__pyx_gilstate_save);
13241   #endif
13242 }
13243 
13244 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":96
13245  *         MPI_Abort(MPI_COMM_WORLD, 1)
13246  *
13247  * cdef inline void op_user_call(             # <<<<<<<<<<<<<<
13248  *     int index, void *a, void *b, int *plen, MPI_Datatype *t) nogil:
13249  *     # make it abort if Python has finalized
13250  */
13251 
__pyx_f_6mpi4py_3MPI_op_user_call(int __pyx_v_index,void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_plen,MPI_Datatype * __pyx_v_t)13252 static CYTHON_INLINE void __pyx_f_6mpi4py_3MPI_op_user_call(int __pyx_v_index, void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_plen, MPI_Datatype *__pyx_v_t) {
13253   MPI_Aint __pyx_v_lb;
13254   MPI_Aint __pyx_v_extent;
13255   MPI_Aint __pyx_v_n;
13256   int __pyx_t_1;
13257 
13258   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":99
13259  *     int index, void *a, void *b, int *plen, MPI_Datatype *t) nogil:
13260  *     # make it abort if Python has finalized
13261  *     if not Py_IsInitialized(): MPI_Abort(MPI_COMM_WORLD, 1)             # <<<<<<<<<<<<<<
13262  *     # make it abort if module clenaup has been done
13263  *     if (<void*>op_user_registry) == NULL: MPI_Abort(MPI_COMM_WORLD, 1)
13264  */
13265   __pyx_t_1 = (!Py_IsInitialized());
13266   if (__pyx_t_1) {
13267     MPI_Abort(MPI_COMM_WORLD, 1);
13268     goto __pyx_L3;
13269   }
13270   __pyx_L3:;
13271 
13272   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":101
13273  *     if not Py_IsInitialized(): MPI_Abort(MPI_COMM_WORLD, 1)
13274  *     # make it abort if module clenaup has been done
13275  *     if (<void*>op_user_registry) == NULL: MPI_Abort(MPI_COMM_WORLD, 1)             # <<<<<<<<<<<<<<
13276  *     # compute the byte-size of memory buffers
13277  *     cdef MPI_Aint lb=0, extent=0
13278  */
13279   __pyx_t_1 = (((void *)__pyx_v_6mpi4py_3MPI_op_user_registry) == NULL);
13280   if (__pyx_t_1) {
13281     MPI_Abort(MPI_COMM_WORLD, 1);
13282     goto __pyx_L4;
13283   }
13284   __pyx_L4:;
13285 
13286   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":103
13287  *     if (<void*>op_user_registry) == NULL: MPI_Abort(MPI_COMM_WORLD, 1)
13288  *     # compute the byte-size of memory buffers
13289  *     cdef MPI_Aint lb=0, extent=0             # <<<<<<<<<<<<<<
13290  *     MPI_Type_get_extent(t[0], &lb, &extent)
13291  *     cdef MPI_Aint n = <MPI_Aint>plen[0] * extent
13292  */
13293   __pyx_v_lb = 0;
13294   __pyx_v_extent = 0;
13295 
13296   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":104
13297  *     # compute the byte-size of memory buffers
13298  *     cdef MPI_Aint lb=0, extent=0
13299  *     MPI_Type_get_extent(t[0], &lb, &extent)             # <<<<<<<<<<<<<<
13300  *     cdef MPI_Aint n = <MPI_Aint>plen[0] * extent
13301  *     # make the actual GIL-safe Python call
13302  */
13303   MPI_Type_get_extent((__pyx_v_t[0]), (&__pyx_v_lb), (&__pyx_v_extent));
13304 
13305   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":105
13306  *     cdef MPI_Aint lb=0, extent=0
13307  *     MPI_Type_get_extent(t[0], &lb, &extent)
13308  *     cdef MPI_Aint n = <MPI_Aint>plen[0] * extent             # <<<<<<<<<<<<<<
13309  *     # make the actual GIL-safe Python call
13310  *     op_user_mpi(index, a, b, n, t)
13311  */
13312   __pyx_v_n = (((MPI_Aint)(__pyx_v_plen[0])) * __pyx_v_extent);
13313 
13314   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":107
13315  *     cdef MPI_Aint n = <MPI_Aint>plen[0] * extent
13316  *     # make the actual GIL-safe Python call
13317  *     op_user_mpi(index, a, b, n, t)             # <<<<<<<<<<<<<<
13318  *
13319  * @cython.callspec("PyMPIAPI")
13320  */
13321   __pyx_f_6mpi4py_3MPI_op_user_mpi(__pyx_v_index, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13322 
13323 }
13324 
13325 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":110
13326  *
13327  * @cython.callspec("PyMPIAPI")
13328  * cdef void op_user_01(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13329  *     op_user_call( 1, a, b, n, t)
13330  * @cython.callspec("PyMPIAPI")
13331  */
13332 
__pyx_f_6mpi4py_3MPI_op_user_01(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13333 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_01(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13334 
13335   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":111
13336  * @cython.callspec("PyMPIAPI")
13337  * cdef void op_user_01(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13338  *     op_user_call( 1, a, b, n, t)             # <<<<<<<<<<<<<<
13339  * @cython.callspec("PyMPIAPI")
13340  * cdef void op_user_02(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13341  */
13342   __pyx_f_6mpi4py_3MPI_op_user_call(1, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13343 
13344 }
13345 
13346 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":113
13347  *     op_user_call( 1, a, b, n, t)
13348  * @cython.callspec("PyMPIAPI")
13349  * cdef void op_user_02(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13350  *     op_user_call( 2, a, b, n, t)
13351  * @cython.callspec("PyMPIAPI")
13352  */
13353 
__pyx_f_6mpi4py_3MPI_op_user_02(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13354 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_02(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13355 
13356   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":114
13357  * @cython.callspec("PyMPIAPI")
13358  * cdef void op_user_02(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13359  *     op_user_call( 2, a, b, n, t)             # <<<<<<<<<<<<<<
13360  * @cython.callspec("PyMPIAPI")
13361  * cdef void op_user_03(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13362  */
13363   __pyx_f_6mpi4py_3MPI_op_user_call(2, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13364 
13365 }
13366 
13367 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":116
13368  *     op_user_call( 2, a, b, n, t)
13369  * @cython.callspec("PyMPIAPI")
13370  * cdef void op_user_03(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13371  *     op_user_call( 3, a, b, n, t)
13372  * @cython.callspec("PyMPIAPI")
13373  */
13374 
__pyx_f_6mpi4py_3MPI_op_user_03(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13375 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_03(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13376 
13377   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":117
13378  * @cython.callspec("PyMPIAPI")
13379  * cdef void op_user_03(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13380  *     op_user_call( 3, a, b, n, t)             # <<<<<<<<<<<<<<
13381  * @cython.callspec("PyMPIAPI")
13382  * cdef void op_user_04(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13383  */
13384   __pyx_f_6mpi4py_3MPI_op_user_call(3, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13385 
13386 }
13387 
13388 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":119
13389  *     op_user_call( 3, a, b, n, t)
13390  * @cython.callspec("PyMPIAPI")
13391  * cdef void op_user_04(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13392  *     op_user_call( 4, a, b, n, t)
13393  * @cython.callspec("PyMPIAPI")
13394  */
13395 
__pyx_f_6mpi4py_3MPI_op_user_04(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13396 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_04(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13397 
13398   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":120
13399  * @cython.callspec("PyMPIAPI")
13400  * cdef void op_user_04(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13401  *     op_user_call( 4, a, b, n, t)             # <<<<<<<<<<<<<<
13402  * @cython.callspec("PyMPIAPI")
13403  * cdef void op_user_05(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13404  */
13405   __pyx_f_6mpi4py_3MPI_op_user_call(4, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13406 
13407 }
13408 
13409 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":122
13410  *     op_user_call( 4, a, b, n, t)
13411  * @cython.callspec("PyMPIAPI")
13412  * cdef void op_user_05(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13413  *     op_user_call( 5, a, b, n, t)
13414  * @cython.callspec("PyMPIAPI")
13415  */
13416 
__pyx_f_6mpi4py_3MPI_op_user_05(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13417 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_05(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13418 
13419   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":123
13420  * @cython.callspec("PyMPIAPI")
13421  * cdef void op_user_05(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13422  *     op_user_call( 5, a, b, n, t)             # <<<<<<<<<<<<<<
13423  * @cython.callspec("PyMPIAPI")
13424  * cdef void op_user_06(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13425  */
13426   __pyx_f_6mpi4py_3MPI_op_user_call(5, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13427 
13428 }
13429 
13430 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":125
13431  *     op_user_call( 5, a, b, n, t)
13432  * @cython.callspec("PyMPIAPI")
13433  * cdef void op_user_06(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13434  *     op_user_call( 6, a, b, n, t)
13435  * @cython.callspec("PyMPIAPI")
13436  */
13437 
__pyx_f_6mpi4py_3MPI_op_user_06(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13438 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_06(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13439 
13440   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":126
13441  * @cython.callspec("PyMPIAPI")
13442  * cdef void op_user_06(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13443  *     op_user_call( 6, a, b, n, t)             # <<<<<<<<<<<<<<
13444  * @cython.callspec("PyMPIAPI")
13445  * cdef void op_user_07(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13446  */
13447   __pyx_f_6mpi4py_3MPI_op_user_call(6, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13448 
13449 }
13450 
13451 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":128
13452  *     op_user_call( 6, a, b, n, t)
13453  * @cython.callspec("PyMPIAPI")
13454  * cdef void op_user_07(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13455  *     op_user_call( 7, a, b, n, t)
13456  * @cython.callspec("PyMPIAPI")
13457  */
13458 
__pyx_f_6mpi4py_3MPI_op_user_07(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13459 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_07(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13460 
13461   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":129
13462  * @cython.callspec("PyMPIAPI")
13463  * cdef void op_user_07(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13464  *     op_user_call( 7, a, b, n, t)             # <<<<<<<<<<<<<<
13465  * @cython.callspec("PyMPIAPI")
13466  * cdef void op_user_08(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13467  */
13468   __pyx_f_6mpi4py_3MPI_op_user_call(7, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13469 
13470 }
13471 
13472 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":131
13473  *     op_user_call( 7, a, b, n, t)
13474  * @cython.callspec("PyMPIAPI")
13475  * cdef void op_user_08(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13476  *     op_user_call( 8, a, b, n, t)
13477  * @cython.callspec("PyMPIAPI")
13478  */
13479 
__pyx_f_6mpi4py_3MPI_op_user_08(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13480 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_08(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13481 
13482   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":132
13483  * @cython.callspec("PyMPIAPI")
13484  * cdef void op_user_08(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13485  *     op_user_call( 8, a, b, n, t)             # <<<<<<<<<<<<<<
13486  * @cython.callspec("PyMPIAPI")
13487  * cdef void op_user_09(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13488  */
13489   __pyx_f_6mpi4py_3MPI_op_user_call(8, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13490 
13491 }
13492 
13493 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":134
13494  *     op_user_call( 8, a, b, n, t)
13495  * @cython.callspec("PyMPIAPI")
13496  * cdef void op_user_09(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13497  *     op_user_call( 9, a, b, n, t)
13498  * @cython.callspec("PyMPIAPI")
13499  */
13500 
__pyx_f_6mpi4py_3MPI_op_user_09(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13501 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_09(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13502 
13503   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":135
13504  * @cython.callspec("PyMPIAPI")
13505  * cdef void op_user_09(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13506  *     op_user_call( 9, a, b, n, t)             # <<<<<<<<<<<<<<
13507  * @cython.callspec("PyMPIAPI")
13508  * cdef void op_user_10(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13509  */
13510   __pyx_f_6mpi4py_3MPI_op_user_call(9, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13511 
13512 }
13513 
13514 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":137
13515  *     op_user_call( 9, a, b, n, t)
13516  * @cython.callspec("PyMPIAPI")
13517  * cdef void op_user_10(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13518  *     op_user_call(10, a, b, n, t)
13519  * @cython.callspec("PyMPIAPI")
13520  */
13521 
__pyx_f_6mpi4py_3MPI_op_user_10(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13522 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_10(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13523 
13524   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":138
13525  * @cython.callspec("PyMPIAPI")
13526  * cdef void op_user_10(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13527  *     op_user_call(10, a, b, n, t)             # <<<<<<<<<<<<<<
13528  * @cython.callspec("PyMPIAPI")
13529  * cdef void op_user_11(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13530  */
13531   __pyx_f_6mpi4py_3MPI_op_user_call(10, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13532 
13533 }
13534 
13535 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":140
13536  *     op_user_call(10, a, b, n, t)
13537  * @cython.callspec("PyMPIAPI")
13538  * cdef void op_user_11(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13539  *     op_user_call(11, a, b, n, t)
13540  * @cython.callspec("PyMPIAPI")
13541  */
13542 
__pyx_f_6mpi4py_3MPI_op_user_11(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13543 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_11(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13544 
13545   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":141
13546  * @cython.callspec("PyMPIAPI")
13547  * cdef void op_user_11(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13548  *     op_user_call(11, a, b, n, t)             # <<<<<<<<<<<<<<
13549  * @cython.callspec("PyMPIAPI")
13550  * cdef void op_user_12(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13551  */
13552   __pyx_f_6mpi4py_3MPI_op_user_call(11, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13553 
13554 }
13555 
13556 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":143
13557  *     op_user_call(11, a, b, n, t)
13558  * @cython.callspec("PyMPIAPI")
13559  * cdef void op_user_12(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13560  *     op_user_call(12, a, b, n, t)
13561  * @cython.callspec("PyMPIAPI")
13562  */
13563 
__pyx_f_6mpi4py_3MPI_op_user_12(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13564 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_12(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13565 
13566   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":144
13567  * @cython.callspec("PyMPIAPI")
13568  * cdef void op_user_12(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13569  *     op_user_call(12, a, b, n, t)             # <<<<<<<<<<<<<<
13570  * @cython.callspec("PyMPIAPI")
13571  * cdef void op_user_13(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13572  */
13573   __pyx_f_6mpi4py_3MPI_op_user_call(12, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13574 
13575 }
13576 
13577 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":146
13578  *     op_user_call(12, a, b, n, t)
13579  * @cython.callspec("PyMPIAPI")
13580  * cdef void op_user_13(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13581  *     op_user_call(13, a, b, n, t)
13582  * @cython.callspec("PyMPIAPI")
13583  */
13584 
__pyx_f_6mpi4py_3MPI_op_user_13(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13585 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_13(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13586 
13587   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":147
13588  * @cython.callspec("PyMPIAPI")
13589  * cdef void op_user_13(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13590  *     op_user_call(13, a, b, n, t)             # <<<<<<<<<<<<<<
13591  * @cython.callspec("PyMPIAPI")
13592  * cdef void op_user_14(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13593  */
13594   __pyx_f_6mpi4py_3MPI_op_user_call(13, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13595 
13596 }
13597 
13598 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":149
13599  *     op_user_call(13, a, b, n, t)
13600  * @cython.callspec("PyMPIAPI")
13601  * cdef void op_user_14(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13602  *     op_user_call(14, a, b, n, t)
13603  * @cython.callspec("PyMPIAPI")
13604  */
13605 
__pyx_f_6mpi4py_3MPI_op_user_14(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13606 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_14(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13607 
13608   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":150
13609  * @cython.callspec("PyMPIAPI")
13610  * cdef void op_user_14(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13611  *     op_user_call(14, a, b, n, t)             # <<<<<<<<<<<<<<
13612  * @cython.callspec("PyMPIAPI")
13613  * cdef void op_user_15(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13614  */
13615   __pyx_f_6mpi4py_3MPI_op_user_call(14, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13616 
13617 }
13618 
13619 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":152
13620  *     op_user_call(14, a, b, n, t)
13621  * @cython.callspec("PyMPIAPI")
13622  * cdef void op_user_15(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13623  *     op_user_call(15, a, b, n, t)
13624  * @cython.callspec("PyMPIAPI")
13625  */
13626 
__pyx_f_6mpi4py_3MPI_op_user_15(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13627 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_15(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13628 
13629   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":153
13630  * @cython.callspec("PyMPIAPI")
13631  * cdef void op_user_15(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13632  *     op_user_call(15, a, b, n, t)             # <<<<<<<<<<<<<<
13633  * @cython.callspec("PyMPIAPI")
13634  * cdef void op_user_16(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13635  */
13636   __pyx_f_6mpi4py_3MPI_op_user_call(15, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13637 
13638 }
13639 
13640 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":155
13641  *     op_user_call(15, a, b, n, t)
13642  * @cython.callspec("PyMPIAPI")
13643  * cdef void op_user_16(void *a, void *b, int *n, MPI_Datatype *t) nogil:             # <<<<<<<<<<<<<<
13644  *     op_user_call(15, a, b, n, t)
13645  *
13646  */
13647 
__pyx_f_6mpi4py_3MPI_op_user_16(void * __pyx_v_a,void * __pyx_v_b,int * __pyx_v_n,MPI_Datatype * __pyx_v_t)13648 static void PyMPIAPI __pyx_f_6mpi4py_3MPI_op_user_16(void *__pyx_v_a, void *__pyx_v_b, int *__pyx_v_n, MPI_Datatype *__pyx_v_t) {
13649 
13650   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":156
13651  * @cython.callspec("PyMPIAPI")
13652  * cdef void op_user_16(void *a, void *b, int *n, MPI_Datatype *t) nogil:
13653  *     op_user_call(15, a, b, n, t)             # <<<<<<<<<<<<<<
13654  *
13655  *
13656  */
13657   __pyx_f_6mpi4py_3MPI_op_user_call(15, __pyx_v_a, __pyx_v_b, __pyx_v_n, __pyx_v_t);
13658 
13659 }
13660 
13661 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":159
13662  *
13663  *
13664  * cdef MPI_User_function *op_user_map(int index) nogil:             # <<<<<<<<<<<<<<
13665  *     if   index ==  1: return op_user_01
13666  *     elif index ==  2: return op_user_02
13667  */
13668 
__pyx_f_6mpi4py_3MPI_op_user_map(int __pyx_v_index)13669 static MPI_User_function *__pyx_f_6mpi4py_3MPI_op_user_map(int __pyx_v_index) {
13670   MPI_User_function *__pyx_r;
13671 
13672   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":175
13673  *     elif index == 14: return op_user_14
13674  *     elif index == 15: return op_user_15
13675  *     elif index == 16: return op_user_16             # <<<<<<<<<<<<<<
13676  *     else:             return NULL
13677  *
13678  */
13679   switch (__pyx_v_index) {
13680 
13681     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":160
13682  *
13683  * cdef MPI_User_function *op_user_map(int index) nogil:
13684  *     if   index ==  1: return op_user_01             # <<<<<<<<<<<<<<
13685  *     elif index ==  2: return op_user_02
13686  *     elif index ==  3: return op_user_03
13687  */
13688     case 1:
13689     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_01;
13690     goto __pyx_L0;
13691     break;
13692 
13693     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":161
13694  * cdef MPI_User_function *op_user_map(int index) nogil:
13695  *     if   index ==  1: return op_user_01
13696  *     elif index ==  2: return op_user_02             # <<<<<<<<<<<<<<
13697  *     elif index ==  3: return op_user_03
13698  *     elif index ==  4: return op_user_04
13699  */
13700     case 2:
13701     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_02;
13702     goto __pyx_L0;
13703     break;
13704 
13705     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":162
13706  *     if   index ==  1: return op_user_01
13707  *     elif index ==  2: return op_user_02
13708  *     elif index ==  3: return op_user_03             # <<<<<<<<<<<<<<
13709  *     elif index ==  4: return op_user_04
13710  *     elif index ==  5: return op_user_05
13711  */
13712     case 3:
13713     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_03;
13714     goto __pyx_L0;
13715     break;
13716 
13717     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":163
13718  *     elif index ==  2: return op_user_02
13719  *     elif index ==  3: return op_user_03
13720  *     elif index ==  4: return op_user_04             # <<<<<<<<<<<<<<
13721  *     elif index ==  5: return op_user_05
13722  *     elif index ==  6: return op_user_06
13723  */
13724     case 4:
13725     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_04;
13726     goto __pyx_L0;
13727     break;
13728 
13729     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":164
13730  *     elif index ==  3: return op_user_03
13731  *     elif index ==  4: return op_user_04
13732  *     elif index ==  5: return op_user_05             # <<<<<<<<<<<<<<
13733  *     elif index ==  6: return op_user_06
13734  *     elif index ==  7: return op_user_07
13735  */
13736     case 5:
13737     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_05;
13738     goto __pyx_L0;
13739     break;
13740 
13741     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":165
13742  *     elif index ==  4: return op_user_04
13743  *     elif index ==  5: return op_user_05
13744  *     elif index ==  6: return op_user_06             # <<<<<<<<<<<<<<
13745  *     elif index ==  7: return op_user_07
13746  *     elif index ==  8: return op_user_08
13747  */
13748     case 6:
13749     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_06;
13750     goto __pyx_L0;
13751     break;
13752 
13753     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":166
13754  *     elif index ==  5: return op_user_05
13755  *     elif index ==  6: return op_user_06
13756  *     elif index ==  7: return op_user_07             # <<<<<<<<<<<<<<
13757  *     elif index ==  8: return op_user_08
13758  *     elif index ==  9: return op_user_09
13759  */
13760     case 7:
13761     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_07;
13762     goto __pyx_L0;
13763     break;
13764 
13765     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":167
13766  *     elif index ==  6: return op_user_06
13767  *     elif index ==  7: return op_user_07
13768  *     elif index ==  8: return op_user_08             # <<<<<<<<<<<<<<
13769  *     elif index ==  9: return op_user_09
13770  *     elif index == 10: return op_user_10
13771  */
13772     case 8:
13773     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_08;
13774     goto __pyx_L0;
13775     break;
13776 
13777     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":168
13778  *     elif index ==  7: return op_user_07
13779  *     elif index ==  8: return op_user_08
13780  *     elif index ==  9: return op_user_09             # <<<<<<<<<<<<<<
13781  *     elif index == 10: return op_user_10
13782  *     elif index == 11: return op_user_11
13783  */
13784     case 9:
13785     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_09;
13786     goto __pyx_L0;
13787     break;
13788 
13789     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":169
13790  *     elif index ==  8: return op_user_08
13791  *     elif index ==  9: return op_user_09
13792  *     elif index == 10: return op_user_10             # <<<<<<<<<<<<<<
13793  *     elif index == 11: return op_user_11
13794  *     elif index == 12: return op_user_12
13795  */
13796     case 10:
13797     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_10;
13798     goto __pyx_L0;
13799     break;
13800 
13801     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":170
13802  *     elif index ==  9: return op_user_09
13803  *     elif index == 10: return op_user_10
13804  *     elif index == 11: return op_user_11             # <<<<<<<<<<<<<<
13805  *     elif index == 12: return op_user_12
13806  *     elif index == 13: return op_user_13
13807  */
13808     case 11:
13809     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_11;
13810     goto __pyx_L0;
13811     break;
13812 
13813     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":171
13814  *     elif index == 10: return op_user_10
13815  *     elif index == 11: return op_user_11
13816  *     elif index == 12: return op_user_12             # <<<<<<<<<<<<<<
13817  *     elif index == 13: return op_user_13
13818  *     elif index == 14: return op_user_14
13819  */
13820     case 12:
13821     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_12;
13822     goto __pyx_L0;
13823     break;
13824 
13825     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":172
13826  *     elif index == 11: return op_user_11
13827  *     elif index == 12: return op_user_12
13828  *     elif index == 13: return op_user_13             # <<<<<<<<<<<<<<
13829  *     elif index == 14: return op_user_14
13830  *     elif index == 15: return op_user_15
13831  */
13832     case 13:
13833     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_13;
13834     goto __pyx_L0;
13835     break;
13836 
13837     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":173
13838  *     elif index == 12: return op_user_12
13839  *     elif index == 13: return op_user_13
13840  *     elif index == 14: return op_user_14             # <<<<<<<<<<<<<<
13841  *     elif index == 15: return op_user_15
13842  *     elif index == 16: return op_user_16
13843  */
13844     case 14:
13845     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_14;
13846     goto __pyx_L0;
13847     break;
13848 
13849     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":174
13850  *     elif index == 13: return op_user_13
13851  *     elif index == 14: return op_user_14
13852  *     elif index == 15: return op_user_15             # <<<<<<<<<<<<<<
13853  *     elif index == 16: return op_user_16
13854  *     else:             return NULL
13855  */
13856     case 15:
13857     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_15;
13858     goto __pyx_L0;
13859     break;
13860 
13861     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":175
13862  *     elif index == 14: return op_user_14
13863  *     elif index == 15: return op_user_15
13864  *     elif index == 16: return op_user_16             # <<<<<<<<<<<<<<
13865  *     else:             return NULL
13866  *
13867  */
13868     case 16:
13869     __pyx_r = __pyx_f_6mpi4py_3MPI_op_user_16;
13870     goto __pyx_L0;
13871     break;
13872     default:
13873 
13874     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":176
13875  *     elif index == 15: return op_user_15
13876  *     elif index == 16: return op_user_16
13877  *     else:             return NULL             # <<<<<<<<<<<<<<
13878  *
13879  * cdef int op_user_new(object function, MPI_User_function **cfunction) except -1:
13880  */
13881     __pyx_r = NULL;
13882     goto __pyx_L0;
13883     break;
13884   }
13885 
13886   __pyx_r = 0;
13887   __pyx_L0:;
13888   return __pyx_r;
13889 }
13890 
13891 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":178
13892  *     else:             return NULL
13893  *
13894  * cdef int op_user_new(object function, MPI_User_function **cfunction) except -1:             # <<<<<<<<<<<<<<
13895  *     # find a free slot in the registry
13896  *     cdef int index = 0
13897  */
13898 
__pyx_f_6mpi4py_3MPI_op_user_new(PyObject * __pyx_v_function,MPI_User_function ** __pyx_v_cfunction)13899 static int __pyx_f_6mpi4py_3MPI_op_user_new(PyObject *__pyx_v_function, MPI_User_function **__pyx_v_cfunction) {
13900   int __pyx_v_index;
13901   int __pyx_r;
13902   __Pyx_RefNannyDeclarations
13903   PyObject *__pyx_t_1 = NULL;
13904   PyObject *__pyx_t_2 = NULL;
13905   PyObject *__pyx_t_3 = NULL;
13906   PyObject *__pyx_t_4 = NULL;
13907   PyObject *__pyx_t_5 = NULL;
13908   int __pyx_t_6;
13909   PyObject *__pyx_t_7 = NULL;
13910   PyObject *__pyx_t_8 = NULL;
13911   int __pyx_lineno = 0;
13912   const char *__pyx_filename = NULL;
13913   int __pyx_clineno = 0;
13914   __Pyx_RefNannySetupContext("op_user_new");
13915 
13916   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":180
13917  * cdef int op_user_new(object function, MPI_User_function **cfunction) except -1:
13918  *     # find a free slot in the registry
13919  *     cdef int index = 0             # <<<<<<<<<<<<<<
13920  *     try:
13921  *         index = op_user_registry.index(None, 1)
13922  */
13923   __pyx_v_index = 0;
13924 
13925   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":181
13926  *     # find a free slot in the registry
13927  *     cdef int index = 0
13928  *     try:             # <<<<<<<<<<<<<<
13929  *         index = op_user_registry.index(None, 1)
13930  *     except ValueError:
13931  */
13932   {
13933     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
13934     __Pyx_XGOTREF(__pyx_t_1);
13935     __Pyx_XGOTREF(__pyx_t_2);
13936     __Pyx_XGOTREF(__pyx_t_3);
13937     /*try:*/ {
13938 
13939       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":182
13940  *     cdef int index = 0
13941  *     try:
13942  *         index = op_user_registry.index(None, 1)             # <<<<<<<<<<<<<<
13943  *     except ValueError:
13944  *         raise RuntimeError("cannot create too many "
13945  */
13946       __pyx_t_4 = PyObject_GetAttr(__pyx_v_6mpi4py_3MPI_op_user_registry, __pyx_n_s__index); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13947       __Pyx_GOTREF(__pyx_t_4);
13948       __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_12), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13949       __Pyx_GOTREF(__pyx_t_5);
13950       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13951       __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13952       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13953       __pyx_v_index = __pyx_t_6;
13954     }
13955     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
13956     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
13957     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
13958     goto __pyx_L10_try_end;
13959     __pyx_L3_error:;
13960     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
13961     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
13962 
13963     /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":183
13964  *     try:
13965  *         index = op_user_registry.index(None, 1)
13966  *     except ValueError:             # <<<<<<<<<<<<<<
13967  *         raise RuntimeError("cannot create too many "
13968  *                            "user-defined reduction operations")
13969  */
13970     __pyx_t_6 = PyErr_ExceptionMatches(__pyx_builtin_ValueError);
13971     if (__pyx_t_6) {
13972       __Pyx_AddTraceback("mpi4py.MPI.op_user_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
13973       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
13974       __Pyx_GOTREF(__pyx_t_5);
13975       __Pyx_GOTREF(__pyx_t_4);
13976       __Pyx_GOTREF(__pyx_t_7);
13977 
13978       /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":184
13979  *         index = op_user_registry.index(None, 1)
13980  *     except ValueError:
13981  *         raise RuntimeError("cannot create too many "             # <<<<<<<<<<<<<<
13982  *                            "user-defined reduction operations")
13983  *     # the line below will fail
13984  */
13985       __pyx_t_8 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
13986       __Pyx_GOTREF(__pyx_t_8);
13987       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
13988       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
13989       {__pyx_filename = __pyx_f[12]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
13990       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13991       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13992       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13993       goto __pyx_L4_exception_handled;
13994     }
13995     __pyx_L5_except_error:;
13996     __Pyx_XGIVEREF(__pyx_t_1);
13997     __Pyx_XGIVEREF(__pyx_t_2);
13998     __Pyx_XGIVEREF(__pyx_t_3);
13999     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
14000     goto __pyx_L1_error;
14001     __pyx_L4_exception_handled:;
14002     __Pyx_XGIVEREF(__pyx_t_1);
14003     __Pyx_XGIVEREF(__pyx_t_2);
14004     __Pyx_XGIVEREF(__pyx_t_3);
14005     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
14006     __pyx_L10_try_end:;
14007   }
14008 
14009   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":188
14010  *     # the line below will fail
14011  *     # if the function is not callable
14012  *     function.__call__             # <<<<<<<<<<<<<<
14013  *     # register the Python function,
14014  *     # map it to the associated C function,
14015  */
14016   __pyx_t_7 = PyObject_GetAttr(__pyx_v_function, __pyx_n_s____call__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14017   __Pyx_GOTREF(__pyx_t_7);
14018   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
14019 
14020   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":192
14021  *     # map it to the associated C function,
14022  *     # and return the slot index in registry
14023  *     op_user_registry[index] = function             # <<<<<<<<<<<<<<
14024  *     cfunction[0] = op_user_map(index)
14025  *     return index
14026  */
14027   if (__Pyx_SetItemInt(__pyx_v_6mpi4py_3MPI_op_user_registry, __pyx_v_index, __pyx_v_function, sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14028 
14029   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":193
14030  *     # and return the slot index in registry
14031  *     op_user_registry[index] = function
14032  *     cfunction[0] = op_user_map(index)             # <<<<<<<<<<<<<<
14033  *     return index
14034  *
14035  */
14036   (__pyx_v_cfunction[0]) = __pyx_f_6mpi4py_3MPI_op_user_map(__pyx_v_index);
14037 
14038   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":194
14039  *     op_user_registry[index] = function
14040  *     cfunction[0] = op_user_map(index)
14041  *     return index             # <<<<<<<<<<<<<<
14042  *
14043  * cdef int op_user_del(int *index) except -1:
14044  */
14045   __pyx_r = __pyx_v_index;
14046   goto __pyx_L0;
14047 
14048   __pyx_r = 0;
14049   goto __pyx_L0;
14050   __pyx_L1_error:;
14051   __Pyx_XDECREF(__pyx_t_4);
14052   __Pyx_XDECREF(__pyx_t_5);
14053   __Pyx_XDECREF(__pyx_t_7);
14054   __Pyx_XDECREF(__pyx_t_8);
14055   __Pyx_AddTraceback("mpi4py.MPI.op_user_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
14056   __pyx_r = -1;
14057   __pyx_L0:;
14058   __Pyx_RefNannyFinishContext();
14059   return __pyx_r;
14060 }
14061 
14062 /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":196
14063  *     return index
14064  *
14065  * cdef int op_user_del(int *index) except -1:             # <<<<<<<<<<<<<<
14066  *     # free slot in the registry
14067  *     cdef Py_ssize_t idx = index[0]
14068  */
14069 
__pyx_f_6mpi4py_3MPI_op_user_del(int * __pyx_v_index)14070 static int __pyx_f_6mpi4py_3MPI_op_user_del(int *__pyx_v_index) {
14071   Py_ssize_t __pyx_v_idx;
14072   int __pyx_r;
14073   __Pyx_RefNannyDeclarations
14074   int __pyx_t_1;
14075   int __pyx_lineno = 0;
14076   const char *__pyx_filename = NULL;
14077   int __pyx_clineno = 0;
14078   __Pyx_RefNannySetupContext("op_user_del");
14079 
14080   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":198
14081  * cdef int op_user_del(int *index) except -1:
14082  *     # free slot in the registry
14083  *     cdef Py_ssize_t idx = index[0]             # <<<<<<<<<<<<<<
14084  *     index[0] = 0 # clear the value
14085  *     if idx > 0: op_user_registry[idx] = None
14086  */
14087   __pyx_v_idx = (__pyx_v_index[0]);
14088 
14089   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":199
14090  *     # free slot in the registry
14091  *     cdef Py_ssize_t idx = index[0]
14092  *     index[0] = 0 # clear the value             # <<<<<<<<<<<<<<
14093  *     if idx > 0: op_user_registry[idx] = None
14094  *     return 0
14095  */
14096   (__pyx_v_index[0]) = 0;
14097 
14098   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":200
14099  *     cdef Py_ssize_t idx = index[0]
14100  *     index[0] = 0 # clear the value
14101  *     if idx > 0: op_user_registry[idx] = None             # <<<<<<<<<<<<<<
14102  *     return 0
14103  *
14104  */
14105   __pyx_t_1 = (__pyx_v_idx > 0);
14106   if (__pyx_t_1) {
14107     if (__Pyx_SetItemInt(__pyx_v_6mpi4py_3MPI_op_user_registry, __pyx_v_idx, Py_None, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14108     goto __pyx_L3;
14109   }
14110   __pyx_L3:;
14111 
14112   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":201
14113  *     index[0] = 0 # clear the value
14114  *     if idx > 0: op_user_registry[idx] = None
14115  *     return 0             # <<<<<<<<<<<<<<
14116  *
14117  * # -----------------------------------------------------------------------------
14118  */
14119   __pyx_r = 0;
14120   goto __pyx_L0;
14121 
14122   __pyx_r = 0;
14123   goto __pyx_L0;
14124   __pyx_L1_error:;
14125   __Pyx_AddTraceback("mpi4py.MPI.op_user_del", __pyx_clineno, __pyx_lineno, __pyx_filename);
14126   __pyx_r = -1;
14127   __pyx_L0:;
14128   __Pyx_RefNannyFinishContext();
14129   return __pyx_r;
14130 }
14131 
14132 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":86
14133  * include "opimpl.pxi"
14134  *
14135  * cdef inline Op new_Op(MPI_Op ob):             # <<<<<<<<<<<<<<
14136  *     cdef Op op = <Op>Op.__new__(Op)
14137  *     op.ob_mpi = ob
14138  */
14139 
__pyx_f_6mpi4py_3MPI_new_Op(MPI_Op __pyx_v_ob)14140 static CYTHON_INLINE struct PyMPIOpObject *__pyx_f_6mpi4py_3MPI_new_Op(MPI_Op __pyx_v_ob) {
14141   struct PyMPIOpObject *__pyx_v_op = 0;
14142   struct PyMPIOpObject *__pyx_r = NULL;
14143   __Pyx_RefNannyDeclarations
14144   PyObject *__pyx_t_1 = NULL;
14145   int __pyx_t_2;
14146   int __pyx_lineno = 0;
14147   const char *__pyx_filename = NULL;
14148   int __pyx_clineno = 0;
14149   __Pyx_RefNannySetupContext("new_Op");
14150 
14151   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":87
14152  *
14153  * cdef inline Op new_Op(MPI_Op ob):
14154  *     cdef Op op = <Op>Op.__new__(Op)             # <<<<<<<<<<<<<<
14155  *     op.ob_mpi = ob
14156  *     if   ob == MPI_OP_NULL : op.ob_func = NULL
14157  */
14158   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Op)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14159   __Pyx_GOTREF(__pyx_t_1);
14160   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_t_1)));
14161   __pyx_v_op = ((struct PyMPIOpObject *)__pyx_t_1);
14162   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14163 
14164   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":88
14165  * cdef inline Op new_Op(MPI_Op ob):
14166  *     cdef Op op = <Op>Op.__new__(Op)
14167  *     op.ob_mpi = ob             # <<<<<<<<<<<<<<
14168  *     if   ob == MPI_OP_NULL : op.ob_func = NULL
14169  *     elif ob == MPI_MAX     : op.ob_func = _op_MAX
14170  */
14171   __pyx_v_op->ob_mpi = __pyx_v_ob;
14172 
14173   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":89
14174  *     cdef Op op = <Op>Op.__new__(Op)
14175  *     op.ob_mpi = ob
14176  *     if   ob == MPI_OP_NULL : op.ob_func = NULL             # <<<<<<<<<<<<<<
14177  *     elif ob == MPI_MAX     : op.ob_func = _op_MAX
14178  *     elif ob == MPI_MIN     : op.ob_func = _op_MIN
14179  */
14180   __pyx_t_2 = (__pyx_v_ob == MPI_OP_NULL);
14181   if (__pyx_t_2) {
14182     __pyx_v_op->ob_func = NULL;
14183     goto __pyx_L3;
14184   }
14185 
14186   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":90
14187  *     op.ob_mpi = ob
14188  *     if   ob == MPI_OP_NULL : op.ob_func = NULL
14189  *     elif ob == MPI_MAX     : op.ob_func = _op_MAX             # <<<<<<<<<<<<<<
14190  *     elif ob == MPI_MIN     : op.ob_func = _op_MIN
14191  *     elif ob == MPI_SUM     : op.ob_func = _op_SUM
14192  */
14193   __pyx_t_2 = (__pyx_v_ob == MPI_MAX);
14194   if (__pyx_t_2) {
14195     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_MAX;
14196     goto __pyx_L3;
14197   }
14198 
14199   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":91
14200  *     if   ob == MPI_OP_NULL : op.ob_func = NULL
14201  *     elif ob == MPI_MAX     : op.ob_func = _op_MAX
14202  *     elif ob == MPI_MIN     : op.ob_func = _op_MIN             # <<<<<<<<<<<<<<
14203  *     elif ob == MPI_SUM     : op.ob_func = _op_SUM
14204  *     elif ob == MPI_PROD    : op.ob_func = _op_PROD
14205  */
14206   __pyx_t_2 = (__pyx_v_ob == MPI_MIN);
14207   if (__pyx_t_2) {
14208     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_MIN;
14209     goto __pyx_L3;
14210   }
14211 
14212   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":92
14213  *     elif ob == MPI_MAX     : op.ob_func = _op_MAX
14214  *     elif ob == MPI_MIN     : op.ob_func = _op_MIN
14215  *     elif ob == MPI_SUM     : op.ob_func = _op_SUM             # <<<<<<<<<<<<<<
14216  *     elif ob == MPI_PROD    : op.ob_func = _op_PROD
14217  *     elif ob == MPI_LAND    : op.ob_func = _op_LAND
14218  */
14219   __pyx_t_2 = (__pyx_v_ob == MPI_SUM);
14220   if (__pyx_t_2) {
14221     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_SUM;
14222     goto __pyx_L3;
14223   }
14224 
14225   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":93
14226  *     elif ob == MPI_MIN     : op.ob_func = _op_MIN
14227  *     elif ob == MPI_SUM     : op.ob_func = _op_SUM
14228  *     elif ob == MPI_PROD    : op.ob_func = _op_PROD             # <<<<<<<<<<<<<<
14229  *     elif ob == MPI_LAND    : op.ob_func = _op_LAND
14230  *     elif ob == MPI_BAND    : op.ob_func = _op_BAND
14231  */
14232   __pyx_t_2 = (__pyx_v_ob == MPI_PROD);
14233   if (__pyx_t_2) {
14234     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_PROD;
14235     goto __pyx_L3;
14236   }
14237 
14238   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":94
14239  *     elif ob == MPI_SUM     : op.ob_func = _op_SUM
14240  *     elif ob == MPI_PROD    : op.ob_func = _op_PROD
14241  *     elif ob == MPI_LAND    : op.ob_func = _op_LAND             # <<<<<<<<<<<<<<
14242  *     elif ob == MPI_BAND    : op.ob_func = _op_BAND
14243  *     elif ob == MPI_LOR     : op.ob_func = _op_LOR
14244  */
14245   __pyx_t_2 = (__pyx_v_ob == MPI_LAND);
14246   if (__pyx_t_2) {
14247     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_LAND;
14248     goto __pyx_L3;
14249   }
14250 
14251   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":95
14252  *     elif ob == MPI_PROD    : op.ob_func = _op_PROD
14253  *     elif ob == MPI_LAND    : op.ob_func = _op_LAND
14254  *     elif ob == MPI_BAND    : op.ob_func = _op_BAND             # <<<<<<<<<<<<<<
14255  *     elif ob == MPI_LOR     : op.ob_func = _op_LOR
14256  *     elif ob == MPI_BOR     : op.ob_func = _op_BOR
14257  */
14258   __pyx_t_2 = (__pyx_v_ob == MPI_BAND);
14259   if (__pyx_t_2) {
14260     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_BAND;
14261     goto __pyx_L3;
14262   }
14263 
14264   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":96
14265  *     elif ob == MPI_LAND    : op.ob_func = _op_LAND
14266  *     elif ob == MPI_BAND    : op.ob_func = _op_BAND
14267  *     elif ob == MPI_LOR     : op.ob_func = _op_LOR             # <<<<<<<<<<<<<<
14268  *     elif ob == MPI_BOR     : op.ob_func = _op_BOR
14269  *     elif ob == MPI_LXOR    : op.ob_func = _op_LXOR
14270  */
14271   __pyx_t_2 = (__pyx_v_ob == MPI_LOR);
14272   if (__pyx_t_2) {
14273     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_LOR;
14274     goto __pyx_L3;
14275   }
14276 
14277   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":97
14278  *     elif ob == MPI_BAND    : op.ob_func = _op_BAND
14279  *     elif ob == MPI_LOR     : op.ob_func = _op_LOR
14280  *     elif ob == MPI_BOR     : op.ob_func = _op_BOR             # <<<<<<<<<<<<<<
14281  *     elif ob == MPI_LXOR    : op.ob_func = _op_LXOR
14282  *     elif ob == MPI_BXOR    : op.ob_func = _op_BXOR
14283  */
14284   __pyx_t_2 = (__pyx_v_ob == MPI_BOR);
14285   if (__pyx_t_2) {
14286     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_BOR;
14287     goto __pyx_L3;
14288   }
14289 
14290   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":98
14291  *     elif ob == MPI_LOR     : op.ob_func = _op_LOR
14292  *     elif ob == MPI_BOR     : op.ob_func = _op_BOR
14293  *     elif ob == MPI_LXOR    : op.ob_func = _op_LXOR             # <<<<<<<<<<<<<<
14294  *     elif ob == MPI_BXOR    : op.ob_func = _op_BXOR
14295  *     elif ob == MPI_MAXLOC  : op.ob_func = _op_MAXLOC
14296  */
14297   __pyx_t_2 = (__pyx_v_ob == MPI_LXOR);
14298   if (__pyx_t_2) {
14299     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_LXOR;
14300     goto __pyx_L3;
14301   }
14302 
14303   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":99
14304  *     elif ob == MPI_BOR     : op.ob_func = _op_BOR
14305  *     elif ob == MPI_LXOR    : op.ob_func = _op_LXOR
14306  *     elif ob == MPI_BXOR    : op.ob_func = _op_BXOR             # <<<<<<<<<<<<<<
14307  *     elif ob == MPI_MAXLOC  : op.ob_func = _op_MAXLOC
14308  *     elif ob == MPI_MINLOC  : op.ob_func = _op_MINLOC
14309  */
14310   __pyx_t_2 = (__pyx_v_ob == MPI_BXOR);
14311   if (__pyx_t_2) {
14312     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_BXOR;
14313     goto __pyx_L3;
14314   }
14315 
14316   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":100
14317  *     elif ob == MPI_LXOR    : op.ob_func = _op_LXOR
14318  *     elif ob == MPI_BXOR    : op.ob_func = _op_BXOR
14319  *     elif ob == MPI_MAXLOC  : op.ob_func = _op_MAXLOC             # <<<<<<<<<<<<<<
14320  *     elif ob == MPI_MINLOC  : op.ob_func = _op_MINLOC
14321  *     elif ob == MPI_REPLACE : op.ob_func = _op_REPLACE
14322  */
14323   __pyx_t_2 = (__pyx_v_ob == MPI_MAXLOC);
14324   if (__pyx_t_2) {
14325     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_MAXLOC;
14326     goto __pyx_L3;
14327   }
14328 
14329   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":101
14330  *     elif ob == MPI_BXOR    : op.ob_func = _op_BXOR
14331  *     elif ob == MPI_MAXLOC  : op.ob_func = _op_MAXLOC
14332  *     elif ob == MPI_MINLOC  : op.ob_func = _op_MINLOC             # <<<<<<<<<<<<<<
14333  *     elif ob == MPI_REPLACE : op.ob_func = _op_REPLACE
14334  *     return op
14335  */
14336   __pyx_t_2 = (__pyx_v_ob == MPI_MINLOC);
14337   if (__pyx_t_2) {
14338     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_MINLOC;
14339     goto __pyx_L3;
14340   }
14341 
14342   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":102
14343  *     elif ob == MPI_MAXLOC  : op.ob_func = _op_MAXLOC
14344  *     elif ob == MPI_MINLOC  : op.ob_func = _op_MINLOC
14345  *     elif ob == MPI_REPLACE : op.ob_func = _op_REPLACE             # <<<<<<<<<<<<<<
14346  *     return op
14347  *
14348  */
14349   __pyx_t_2 = (__pyx_v_ob == MPI_REPLACE);
14350   if (__pyx_t_2) {
14351     __pyx_v_op->ob_func = __pyx_f_6mpi4py_3MPI__op_REPLACE;
14352     goto __pyx_L3;
14353   }
14354   __pyx_L3:;
14355 
14356   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":103
14357  *     elif ob == MPI_MINLOC  : op.ob_func = _op_MINLOC
14358  *     elif ob == MPI_REPLACE : op.ob_func = _op_REPLACE
14359  *     return op             # <<<<<<<<<<<<<<
14360  *
14361  * cdef inline int del_Op(MPI_Op* ob):
14362  */
14363   __Pyx_XDECREF(((PyObject *)__pyx_r));
14364   __Pyx_INCREF(((PyObject *)__pyx_v_op));
14365   __pyx_r = __pyx_v_op;
14366   goto __pyx_L0;
14367 
14368   __pyx_r = ((struct PyMPIOpObject *)Py_None); __Pyx_INCREF(Py_None);
14369   goto __pyx_L0;
14370   __pyx_L1_error:;
14371   __Pyx_XDECREF(__pyx_t_1);
14372   __Pyx_AddTraceback("mpi4py.MPI.new_Op", __pyx_clineno, __pyx_lineno, __pyx_filename);
14373   __pyx_r = 0;
14374   __pyx_L0:;
14375   __Pyx_XDECREF((PyObject *)__pyx_v_op);
14376   __Pyx_XGIVEREF((PyObject *)__pyx_r);
14377   __Pyx_RefNannyFinishContext();
14378   return __pyx_r;
14379 }
14380 
14381 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":105
14382  *     return op
14383  *
14384  * cdef inline int del_Op(MPI_Op* ob):             # <<<<<<<<<<<<<<
14385  *     #
14386  *     if ob    == NULL        : return 0
14387  */
14388 
__pyx_f_6mpi4py_3MPI_del_Op(MPI_Op * __pyx_v_ob)14389 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Op(MPI_Op *__pyx_v_ob) {
14390   int __pyx_r;
14391   __Pyx_RefNannyDeclarations
14392   int __pyx_t_1;
14393   __Pyx_RefNannySetupContext("del_Op");
14394 
14395   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":107
14396  * cdef inline int del_Op(MPI_Op* ob):
14397  *     #
14398  *     if ob    == NULL        : return 0             # <<<<<<<<<<<<<<
14399  *     if ob[0] == MPI_OP_NULL : return 0
14400  *     if ob[0] == MPI_MAX     : return 0
14401  */
14402   __pyx_t_1 = (__pyx_v_ob == NULL);
14403   if (__pyx_t_1) {
14404     __pyx_r = 0;
14405     goto __pyx_L0;
14406     goto __pyx_L3;
14407   }
14408   __pyx_L3:;
14409 
14410   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":108
14411  *     #
14412  *     if ob    == NULL        : return 0
14413  *     if ob[0] == MPI_OP_NULL : return 0             # <<<<<<<<<<<<<<
14414  *     if ob[0] == MPI_MAX     : return 0
14415  *     if ob[0] == MPI_MIN     : return 0
14416  */
14417   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_OP_NULL);
14418   if (__pyx_t_1) {
14419     __pyx_r = 0;
14420     goto __pyx_L0;
14421     goto __pyx_L4;
14422   }
14423   __pyx_L4:;
14424 
14425   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":109
14426  *     if ob    == NULL        : return 0
14427  *     if ob[0] == MPI_OP_NULL : return 0
14428  *     if ob[0] == MPI_MAX     : return 0             # <<<<<<<<<<<<<<
14429  *     if ob[0] == MPI_MIN     : return 0
14430  *     if ob[0] == MPI_SUM     : return 0
14431  */
14432   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_MAX);
14433   if (__pyx_t_1) {
14434     __pyx_r = 0;
14435     goto __pyx_L0;
14436     goto __pyx_L5;
14437   }
14438   __pyx_L5:;
14439 
14440   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":110
14441  *     if ob[0] == MPI_OP_NULL : return 0
14442  *     if ob[0] == MPI_MAX     : return 0
14443  *     if ob[0] == MPI_MIN     : return 0             # <<<<<<<<<<<<<<
14444  *     if ob[0] == MPI_SUM     : return 0
14445  *     if ob[0] == MPI_PROD    : return 0
14446  */
14447   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_MIN);
14448   if (__pyx_t_1) {
14449     __pyx_r = 0;
14450     goto __pyx_L0;
14451     goto __pyx_L6;
14452   }
14453   __pyx_L6:;
14454 
14455   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":111
14456  *     if ob[0] == MPI_MAX     : return 0
14457  *     if ob[0] == MPI_MIN     : return 0
14458  *     if ob[0] == MPI_SUM     : return 0             # <<<<<<<<<<<<<<
14459  *     if ob[0] == MPI_PROD    : return 0
14460  *     if ob[0] == MPI_LAND    : return 0
14461  */
14462   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_SUM);
14463   if (__pyx_t_1) {
14464     __pyx_r = 0;
14465     goto __pyx_L0;
14466     goto __pyx_L7;
14467   }
14468   __pyx_L7:;
14469 
14470   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":112
14471  *     if ob[0] == MPI_MIN     : return 0
14472  *     if ob[0] == MPI_SUM     : return 0
14473  *     if ob[0] == MPI_PROD    : return 0             # <<<<<<<<<<<<<<
14474  *     if ob[0] == MPI_LAND    : return 0
14475  *     if ob[0] == MPI_BAND    : return 0
14476  */
14477   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_PROD);
14478   if (__pyx_t_1) {
14479     __pyx_r = 0;
14480     goto __pyx_L0;
14481     goto __pyx_L8;
14482   }
14483   __pyx_L8:;
14484 
14485   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":113
14486  *     if ob[0] == MPI_SUM     : return 0
14487  *     if ob[0] == MPI_PROD    : return 0
14488  *     if ob[0] == MPI_LAND    : return 0             # <<<<<<<<<<<<<<
14489  *     if ob[0] == MPI_BAND    : return 0
14490  *     if ob[0] == MPI_LOR     : return 0
14491  */
14492   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_LAND);
14493   if (__pyx_t_1) {
14494     __pyx_r = 0;
14495     goto __pyx_L0;
14496     goto __pyx_L9;
14497   }
14498   __pyx_L9:;
14499 
14500   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":114
14501  *     if ob[0] == MPI_PROD    : return 0
14502  *     if ob[0] == MPI_LAND    : return 0
14503  *     if ob[0] == MPI_BAND    : return 0             # <<<<<<<<<<<<<<
14504  *     if ob[0] == MPI_LOR     : return 0
14505  *     if ob[0] == MPI_BOR     : return 0
14506  */
14507   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_BAND);
14508   if (__pyx_t_1) {
14509     __pyx_r = 0;
14510     goto __pyx_L0;
14511     goto __pyx_L10;
14512   }
14513   __pyx_L10:;
14514 
14515   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":115
14516  *     if ob[0] == MPI_LAND    : return 0
14517  *     if ob[0] == MPI_BAND    : return 0
14518  *     if ob[0] == MPI_LOR     : return 0             # <<<<<<<<<<<<<<
14519  *     if ob[0] == MPI_BOR     : return 0
14520  *     if ob[0] == MPI_LXOR    : return 0
14521  */
14522   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_LOR);
14523   if (__pyx_t_1) {
14524     __pyx_r = 0;
14525     goto __pyx_L0;
14526     goto __pyx_L11;
14527   }
14528   __pyx_L11:;
14529 
14530   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":116
14531  *     if ob[0] == MPI_BAND    : return 0
14532  *     if ob[0] == MPI_LOR     : return 0
14533  *     if ob[0] == MPI_BOR     : return 0             # <<<<<<<<<<<<<<
14534  *     if ob[0] == MPI_LXOR    : return 0
14535  *     if ob[0] == MPI_BXOR    : return 0
14536  */
14537   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_BOR);
14538   if (__pyx_t_1) {
14539     __pyx_r = 0;
14540     goto __pyx_L0;
14541     goto __pyx_L12;
14542   }
14543   __pyx_L12:;
14544 
14545   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":117
14546  *     if ob[0] == MPI_LOR     : return 0
14547  *     if ob[0] == MPI_BOR     : return 0
14548  *     if ob[0] == MPI_LXOR    : return 0             # <<<<<<<<<<<<<<
14549  *     if ob[0] == MPI_BXOR    : return 0
14550  *     if ob[0] == MPI_MAXLOC  : return 0
14551  */
14552   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_LXOR);
14553   if (__pyx_t_1) {
14554     __pyx_r = 0;
14555     goto __pyx_L0;
14556     goto __pyx_L13;
14557   }
14558   __pyx_L13:;
14559 
14560   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":118
14561  *     if ob[0] == MPI_BOR     : return 0
14562  *     if ob[0] == MPI_LXOR    : return 0
14563  *     if ob[0] == MPI_BXOR    : return 0             # <<<<<<<<<<<<<<
14564  *     if ob[0] == MPI_MAXLOC  : return 0
14565  *     if ob[0] == MPI_MINLOC  : return 0
14566  */
14567   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_BXOR);
14568   if (__pyx_t_1) {
14569     __pyx_r = 0;
14570     goto __pyx_L0;
14571     goto __pyx_L14;
14572   }
14573   __pyx_L14:;
14574 
14575   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":119
14576  *     if ob[0] == MPI_LXOR    : return 0
14577  *     if ob[0] == MPI_BXOR    : return 0
14578  *     if ob[0] == MPI_MAXLOC  : return 0             # <<<<<<<<<<<<<<
14579  *     if ob[0] == MPI_MINLOC  : return 0
14580  *     if ob[0] == MPI_REPLACE : return 0
14581  */
14582   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_MAXLOC);
14583   if (__pyx_t_1) {
14584     __pyx_r = 0;
14585     goto __pyx_L0;
14586     goto __pyx_L15;
14587   }
14588   __pyx_L15:;
14589 
14590   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":120
14591  *     if ob[0] == MPI_BXOR    : return 0
14592  *     if ob[0] == MPI_MAXLOC  : return 0
14593  *     if ob[0] == MPI_MINLOC  : return 0             # <<<<<<<<<<<<<<
14594  *     if ob[0] == MPI_REPLACE : return 0
14595  *     if not mpi_active()     : return 0
14596  */
14597   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_MINLOC);
14598   if (__pyx_t_1) {
14599     __pyx_r = 0;
14600     goto __pyx_L0;
14601     goto __pyx_L16;
14602   }
14603   __pyx_L16:;
14604 
14605   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":121
14606  *     if ob[0] == MPI_MAXLOC  : return 0
14607  *     if ob[0] == MPI_MINLOC  : return 0
14608  *     if ob[0] == MPI_REPLACE : return 0             # <<<<<<<<<<<<<<
14609  *     if not mpi_active()     : return 0
14610  *     #
14611  */
14612   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_REPLACE);
14613   if (__pyx_t_1) {
14614     __pyx_r = 0;
14615     goto __pyx_L0;
14616     goto __pyx_L17;
14617   }
14618   __pyx_L17:;
14619 
14620   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":122
14621  *     if ob[0] == MPI_MINLOC  : return 0
14622  *     if ob[0] == MPI_REPLACE : return 0
14623  *     if not mpi_active()     : return 0             # <<<<<<<<<<<<<<
14624  *     #
14625  *     return MPI_Op_free(ob)
14626  */
14627   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
14628   if (__pyx_t_1) {
14629     __pyx_r = 0;
14630     goto __pyx_L0;
14631     goto __pyx_L18;
14632   }
14633   __pyx_L18:;
14634 
14635   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":124
14636  *     if not mpi_active()     : return 0
14637  *     #
14638  *     return MPI_Op_free(ob)             # <<<<<<<<<<<<<<
14639  *
14640  * #------------------------------------------------------------------------------
14641  */
14642   __pyx_r = MPI_Op_free(__pyx_v_ob);
14643   goto __pyx_L0;
14644 
14645   __pyx_r = 0;
14646   __pyx_L0:;
14647   __Pyx_RefNannyFinishContext();
14648   return __pyx_r;
14649 }
14650 
14651 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":129
14652  * # Info
14653  *
14654  * cdef inline Info new_Info(MPI_Info ob):             # <<<<<<<<<<<<<<
14655  *     cdef Info info = <Info>Info.__new__(Info)
14656  *     info.ob_mpi = ob
14657  */
14658 
__pyx_f_6mpi4py_3MPI_new_Info(MPI_Info __pyx_v_ob)14659 static CYTHON_INLINE struct PyMPIInfoObject *__pyx_f_6mpi4py_3MPI_new_Info(MPI_Info __pyx_v_ob) {
14660   struct PyMPIInfoObject *__pyx_v_info = 0;
14661   struct PyMPIInfoObject *__pyx_r = NULL;
14662   __Pyx_RefNannyDeclarations
14663   PyObject *__pyx_t_1 = NULL;
14664   int __pyx_lineno = 0;
14665   const char *__pyx_filename = NULL;
14666   int __pyx_clineno = 0;
14667   __Pyx_RefNannySetupContext("new_Info");
14668 
14669   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":130
14670  *
14671  * cdef inline Info new_Info(MPI_Info ob):
14672  *     cdef Info info = <Info>Info.__new__(Info)             # <<<<<<<<<<<<<<
14673  *     info.ob_mpi = ob
14674  *     return info
14675  */
14676   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14677   __Pyx_GOTREF(__pyx_t_1);
14678   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
14679   __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_t_1);
14680   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14681 
14682   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":131
14683  * cdef inline Info new_Info(MPI_Info ob):
14684  *     cdef Info info = <Info>Info.__new__(Info)
14685  *     info.ob_mpi = ob             # <<<<<<<<<<<<<<
14686  *     return info
14687  *
14688  */
14689   __pyx_v_info->ob_mpi = __pyx_v_ob;
14690 
14691   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":132
14692  *     cdef Info info = <Info>Info.__new__(Info)
14693  *     info.ob_mpi = ob
14694  *     return info             # <<<<<<<<<<<<<<
14695  *
14696  * cdef inline int del_Info(MPI_Info* ob):
14697  */
14698   __Pyx_XDECREF(((PyObject *)__pyx_r));
14699   __Pyx_INCREF(((PyObject *)__pyx_v_info));
14700   __pyx_r = __pyx_v_info;
14701   goto __pyx_L0;
14702 
14703   __pyx_r = ((struct PyMPIInfoObject *)Py_None); __Pyx_INCREF(Py_None);
14704   goto __pyx_L0;
14705   __pyx_L1_error:;
14706   __Pyx_XDECREF(__pyx_t_1);
14707   __Pyx_AddTraceback("mpi4py.MPI.new_Info", __pyx_clineno, __pyx_lineno, __pyx_filename);
14708   __pyx_r = 0;
14709   __pyx_L0:;
14710   __Pyx_XDECREF((PyObject *)__pyx_v_info);
14711   __Pyx_XGIVEREF((PyObject *)__pyx_r);
14712   __Pyx_RefNannyFinishContext();
14713   return __pyx_r;
14714 }
14715 
14716 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":134
14717  *     return info
14718  *
14719  * cdef inline int del_Info(MPI_Info* ob):             # <<<<<<<<<<<<<<
14720  *     #
14721  *     if ob    == NULL          : return 0
14722  */
14723 
__pyx_f_6mpi4py_3MPI_del_Info(MPI_Info * __pyx_v_ob)14724 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Info(MPI_Info *__pyx_v_ob) {
14725   int __pyx_r;
14726   __Pyx_RefNannyDeclarations
14727   int __pyx_t_1;
14728   __Pyx_RefNannySetupContext("del_Info");
14729 
14730   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":136
14731  * cdef inline int del_Info(MPI_Info* ob):
14732  *     #
14733  *     if ob    == NULL          : return 0             # <<<<<<<<<<<<<<
14734  *     if ob[0] == MPI_INFO_NULL : return 0
14735  *     if not mpi_active()       : return 0
14736  */
14737   __pyx_t_1 = (__pyx_v_ob == NULL);
14738   if (__pyx_t_1) {
14739     __pyx_r = 0;
14740     goto __pyx_L0;
14741     goto __pyx_L3;
14742   }
14743   __pyx_L3:;
14744 
14745   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":137
14746  *     #
14747  *     if ob    == NULL          : return 0
14748  *     if ob[0] == MPI_INFO_NULL : return 0             # <<<<<<<<<<<<<<
14749  *     if not mpi_active()       : return 0
14750  *     #
14751  */
14752   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_INFO_NULL);
14753   if (__pyx_t_1) {
14754     __pyx_r = 0;
14755     goto __pyx_L0;
14756     goto __pyx_L4;
14757   }
14758   __pyx_L4:;
14759 
14760   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":138
14761  *     if ob    == NULL          : return 0
14762  *     if ob[0] == MPI_INFO_NULL : return 0
14763  *     if not mpi_active()       : return 0             # <<<<<<<<<<<<<<
14764  *     #
14765  *     return MPI_Info_free(ob)
14766  */
14767   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
14768   if (__pyx_t_1) {
14769     __pyx_r = 0;
14770     goto __pyx_L0;
14771     goto __pyx_L5;
14772   }
14773   __pyx_L5:;
14774 
14775   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":140
14776  *     if not mpi_active()       : return 0
14777  *     #
14778  *     return MPI_Info_free(ob)             # <<<<<<<<<<<<<<
14779  *
14780  * cdef inline MPI_Info arg_Info(object info):
14781  */
14782   __pyx_r = MPI_Info_free(__pyx_v_ob);
14783   goto __pyx_L0;
14784 
14785   __pyx_r = 0;
14786   __pyx_L0:;
14787   __Pyx_RefNannyFinishContext();
14788   return __pyx_r;
14789 }
14790 
14791 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":142
14792  *     return MPI_Info_free(ob)
14793  *
14794  * cdef inline MPI_Info arg_Info(object info):             # <<<<<<<<<<<<<<
14795  *     if info is None: return MPI_INFO_NULL
14796  *     return (<Info>info).ob_mpi
14797  */
14798 
__pyx_f_6mpi4py_3MPI_arg_Info(PyObject * __pyx_v_info)14799 static CYTHON_INLINE MPI_Info __pyx_f_6mpi4py_3MPI_arg_Info(PyObject *__pyx_v_info) {
14800   MPI_Info __pyx_r;
14801   __Pyx_RefNannyDeclarations
14802   int __pyx_t_1;
14803   __Pyx_RefNannySetupContext("arg_Info");
14804 
14805   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":143
14806  *
14807  * cdef inline MPI_Info arg_Info(object info):
14808  *     if info is None: return MPI_INFO_NULL             # <<<<<<<<<<<<<<
14809  *     return (<Info>info).ob_mpi
14810  *
14811  */
14812   __pyx_t_1 = (__pyx_v_info == Py_None);
14813   if (__pyx_t_1) {
14814     __pyx_r = MPI_INFO_NULL;
14815     goto __pyx_L0;
14816     goto __pyx_L3;
14817   }
14818   __pyx_L3:;
14819 
14820   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":144
14821  * cdef inline MPI_Info arg_Info(object info):
14822  *     if info is None: return MPI_INFO_NULL
14823  *     return (<Info>info).ob_mpi             # <<<<<<<<<<<<<<
14824  *
14825  * #------------------------------------------------------------------------------
14826  */
14827   __pyx_r = ((struct PyMPIInfoObject *)__pyx_v_info)->ob_mpi;
14828   goto __pyx_L0;
14829 
14830   __pyx_r = 0;
14831   __pyx_L0:;
14832   __Pyx_RefNannyFinishContext();
14833   return __pyx_r;
14834 }
14835 
14836 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":149
14837  * # Group
14838  *
14839  * cdef inline Group new_Group(MPI_Group ob):             # <<<<<<<<<<<<<<
14840  *     cdef Group group = <Group>Group.__new__(Group)
14841  *     group.ob_mpi = ob
14842  */
14843 
__pyx_f_6mpi4py_3MPI_new_Group(MPI_Group __pyx_v_ob)14844 static CYTHON_INLINE struct PyMPIGroupObject *__pyx_f_6mpi4py_3MPI_new_Group(MPI_Group __pyx_v_ob) {
14845   struct PyMPIGroupObject *__pyx_v_group = 0;
14846   struct PyMPIGroupObject *__pyx_r = NULL;
14847   __Pyx_RefNannyDeclarations
14848   PyObject *__pyx_t_1 = NULL;
14849   int __pyx_lineno = 0;
14850   const char *__pyx_filename = NULL;
14851   int __pyx_clineno = 0;
14852   __Pyx_RefNannySetupContext("new_Group");
14853 
14854   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":150
14855  *
14856  * cdef inline Group new_Group(MPI_Group ob):
14857  *     cdef Group group = <Group>Group.__new__(Group)             # <<<<<<<<<<<<<<
14858  *     group.ob_mpi = ob
14859  *     return group
14860  */
14861   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14862   __Pyx_GOTREF(__pyx_t_1);
14863   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
14864   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
14865   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14866 
14867   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":151
14868  * cdef inline Group new_Group(MPI_Group ob):
14869  *     cdef Group group = <Group>Group.__new__(Group)
14870  *     group.ob_mpi = ob             # <<<<<<<<<<<<<<
14871  *     return group
14872  *
14873  */
14874   __pyx_v_group->ob_mpi = __pyx_v_ob;
14875 
14876   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":152
14877  *     cdef Group group = <Group>Group.__new__(Group)
14878  *     group.ob_mpi = ob
14879  *     return group             # <<<<<<<<<<<<<<
14880  *
14881  *
14882  */
14883   __Pyx_XDECREF(((PyObject *)__pyx_r));
14884   __Pyx_INCREF(((PyObject *)__pyx_v_group));
14885   __pyx_r = __pyx_v_group;
14886   goto __pyx_L0;
14887 
14888   __pyx_r = ((struct PyMPIGroupObject *)Py_None); __Pyx_INCREF(Py_None);
14889   goto __pyx_L0;
14890   __pyx_L1_error:;
14891   __Pyx_XDECREF(__pyx_t_1);
14892   __Pyx_AddTraceback("mpi4py.MPI.new_Group", __pyx_clineno, __pyx_lineno, __pyx_filename);
14893   __pyx_r = 0;
14894   __pyx_L0:;
14895   __Pyx_XDECREF((PyObject *)__pyx_v_group);
14896   __Pyx_XGIVEREF((PyObject *)__pyx_r);
14897   __Pyx_RefNannyFinishContext();
14898   return __pyx_r;
14899 }
14900 
14901 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":155
14902  *
14903  *
14904  * cdef inline int del_Group(MPI_Group* ob):             # <<<<<<<<<<<<<<
14905  *      #
14906  *      if ob    == NULL            : return 0
14907  */
14908 
__pyx_f_6mpi4py_3MPI_del_Group(MPI_Group * __pyx_v_ob)14909 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Group(MPI_Group *__pyx_v_ob) {
14910   int __pyx_r;
14911   __Pyx_RefNannyDeclarations
14912   int __pyx_t_1;
14913   __Pyx_RefNannySetupContext("del_Group");
14914 
14915   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":157
14916  * cdef inline int del_Group(MPI_Group* ob):
14917  *      #
14918  *      if ob    == NULL            : return 0             # <<<<<<<<<<<<<<
14919  *      if ob[0] == MPI_GROUP_NULL  : return 0
14920  *      if ob[0] == MPI_GROUP_EMPTY : return 0
14921  */
14922   __pyx_t_1 = (__pyx_v_ob == NULL);
14923   if (__pyx_t_1) {
14924     __pyx_r = 0;
14925     goto __pyx_L0;
14926     goto __pyx_L3;
14927   }
14928   __pyx_L3:;
14929 
14930   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":158
14931  *      #
14932  *      if ob    == NULL            : return 0
14933  *      if ob[0] == MPI_GROUP_NULL  : return 0             # <<<<<<<<<<<<<<
14934  *      if ob[0] == MPI_GROUP_EMPTY : return 0
14935  *      if not mpi_active()         : return 0
14936  */
14937   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_GROUP_NULL);
14938   if (__pyx_t_1) {
14939     __pyx_r = 0;
14940     goto __pyx_L0;
14941     goto __pyx_L4;
14942   }
14943   __pyx_L4:;
14944 
14945   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":159
14946  *      if ob    == NULL            : return 0
14947  *      if ob[0] == MPI_GROUP_NULL  : return 0
14948  *      if ob[0] == MPI_GROUP_EMPTY : return 0             # <<<<<<<<<<<<<<
14949  *      if not mpi_active()         : return 0
14950  *      #
14951  */
14952   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_GROUP_EMPTY);
14953   if (__pyx_t_1) {
14954     __pyx_r = 0;
14955     goto __pyx_L0;
14956     goto __pyx_L5;
14957   }
14958   __pyx_L5:;
14959 
14960   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":160
14961  *      if ob[0] == MPI_GROUP_NULL  : return 0
14962  *      if ob[0] == MPI_GROUP_EMPTY : return 0
14963  *      if not mpi_active()         : return 0             # <<<<<<<<<<<<<<
14964  *      #
14965  *      return MPI_Group_free(ob)
14966  */
14967   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
14968   if (__pyx_t_1) {
14969     __pyx_r = 0;
14970     goto __pyx_L0;
14971     goto __pyx_L6;
14972   }
14973   __pyx_L6:;
14974 
14975   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":162
14976  *      if not mpi_active()         : return 0
14977  *      #
14978  *      return MPI_Group_free(ob)             # <<<<<<<<<<<<<<
14979  *
14980  * #------------------------------------------------------------------------------
14981  */
14982   __pyx_r = MPI_Group_free(__pyx_v_ob);
14983   goto __pyx_L0;
14984 
14985   __pyx_r = 0;
14986   __pyx_L0:;
14987   __Pyx_RefNannyFinishContext();
14988   return __pyx_r;
14989 }
14990 
14991 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":5
14992  * cdef dict comm_keyval = {}
14993  *
14994  * cdef int comm_keyval_new(int keyval,             # <<<<<<<<<<<<<<
14995  *                          object copy_fn,object delete_fn) except -1:
14996  *     comm_keyval[keyval] = (copy_fn, delete_fn)
14997  */
14998 
__pyx_f_6mpi4py_3MPI_comm_keyval_new(int __pyx_v_keyval,PyObject * __pyx_v_copy_fn,PyObject * __pyx_v_delete_fn)14999 static int __pyx_f_6mpi4py_3MPI_comm_keyval_new(int __pyx_v_keyval, PyObject *__pyx_v_copy_fn, PyObject *__pyx_v_delete_fn) {
15000   int __pyx_r;
15001   __Pyx_RefNannyDeclarations
15002   PyObject *__pyx_t_1 = NULL;
15003   int __pyx_lineno = 0;
15004   const char *__pyx_filename = NULL;
15005   int __pyx_clineno = 0;
15006   __Pyx_RefNannySetupContext("comm_keyval_new");
15007 
15008   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":7
15009  * cdef int comm_keyval_new(int keyval,
15010  *                          object copy_fn,object delete_fn) except -1:
15011  *     comm_keyval[keyval] = (copy_fn, delete_fn)             # <<<<<<<<<<<<<<
15012  *     return 0
15013  *
15014  */
15015   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15016   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
15017   __Pyx_INCREF(__pyx_v_copy_fn);
15018   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_copy_fn);
15019   __Pyx_GIVEREF(__pyx_v_copy_fn);
15020   __Pyx_INCREF(__pyx_v_delete_fn);
15021   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_delete_fn);
15022   __Pyx_GIVEREF(__pyx_v_delete_fn);
15023   if (__Pyx_SetItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_v_keyval, ((PyObject *)__pyx_t_1), sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15024   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
15025 
15026   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":8
15027  *                          object copy_fn,object delete_fn) except -1:
15028  *     comm_keyval[keyval] = (copy_fn, delete_fn)
15029  *     return 0             # <<<<<<<<<<<<<<
15030  *
15031  * cdef int comm_keyval_del(int keyval) except -1:
15032  */
15033   __pyx_r = 0;
15034   goto __pyx_L0;
15035 
15036   __pyx_r = 0;
15037   goto __pyx_L0;
15038   __pyx_L1_error:;
15039   __Pyx_XDECREF(__pyx_t_1);
15040   __Pyx_AddTraceback("mpi4py.MPI.comm_keyval_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
15041   __pyx_r = -1;
15042   __pyx_L0:;
15043   __Pyx_RefNannyFinishContext();
15044   return __pyx_r;
15045 }
15046 
15047 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":10
15048  *     return 0
15049  *
15050  * cdef int comm_keyval_del(int keyval) except -1:             # <<<<<<<<<<<<<<
15051  *     try: del comm_keyval[keyval]
15052  *     except KeyError: pass
15053  */
15054 
__pyx_f_6mpi4py_3MPI_comm_keyval_del(int __pyx_v_keyval)15055 static int __pyx_f_6mpi4py_3MPI_comm_keyval_del(int __pyx_v_keyval) {
15056   int __pyx_r;
15057   __Pyx_RefNannyDeclarations
15058   PyObject *__pyx_t_1 = NULL;
15059   PyObject *__pyx_t_2 = NULL;
15060   PyObject *__pyx_t_3 = NULL;
15061   int __pyx_t_4;
15062   int __pyx_lineno = 0;
15063   const char *__pyx_filename = NULL;
15064   int __pyx_clineno = 0;
15065   __Pyx_RefNannySetupContext("comm_keyval_del");
15066 
15067   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":11
15068  *
15069  * cdef int comm_keyval_del(int keyval) except -1:
15070  *     try: del comm_keyval[keyval]             # <<<<<<<<<<<<<<
15071  *     except KeyError: pass
15072  *     return 0
15073  */
15074   {
15075     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
15076     __Pyx_XGOTREF(__pyx_t_1);
15077     __Pyx_XGOTREF(__pyx_t_2);
15078     __Pyx_XGOTREF(__pyx_t_3);
15079     /*try:*/ {
15080       if (__Pyx_DelItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_v_keyval, sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
15081     }
15082     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
15083     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
15084     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15085     goto __pyx_L10_try_end;
15086     __pyx_L3_error:;
15087 
15088     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":12
15089  * cdef int comm_keyval_del(int keyval) except -1:
15090  *     try: del comm_keyval[keyval]
15091  *     except KeyError: pass             # <<<<<<<<<<<<<<
15092  *     return 0
15093  *
15094  */
15095     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
15096     if (__pyx_t_4) {
15097       PyErr_Restore(0,0,0);
15098       goto __pyx_L4_exception_handled;
15099     }
15100     __Pyx_XGIVEREF(__pyx_t_1);
15101     __Pyx_XGIVEREF(__pyx_t_2);
15102     __Pyx_XGIVEREF(__pyx_t_3);
15103     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
15104     goto __pyx_L1_error;
15105     __pyx_L4_exception_handled:;
15106     __Pyx_XGIVEREF(__pyx_t_1);
15107     __Pyx_XGIVEREF(__pyx_t_2);
15108     __Pyx_XGIVEREF(__pyx_t_3);
15109     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
15110     __pyx_L10_try_end:;
15111   }
15112 
15113   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":13
15114  *     try: del comm_keyval[keyval]
15115  *     except KeyError: pass
15116  *     return 0             # <<<<<<<<<<<<<<
15117  *
15118  * cdef int comm_attr_copy(MPI_Comm comm,
15119  */
15120   __pyx_r = 0;
15121   goto __pyx_L0;
15122 
15123   __pyx_r = 0;
15124   goto __pyx_L0;
15125   __pyx_L1_error:;
15126   __Pyx_AddTraceback("mpi4py.MPI.comm_keyval_del", __pyx_clineno, __pyx_lineno, __pyx_filename);
15127   __pyx_r = -1;
15128   __pyx_L0:;
15129   __Pyx_RefNannyFinishContext();
15130   return __pyx_r;
15131 }
15132 
15133 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":15
15134  *     return 0
15135  *
15136  * cdef int comm_attr_copy(MPI_Comm comm,             # <<<<<<<<<<<<<<
15137  *                         int keyval,
15138  *                         void *extra_state,
15139  */
15140 
__pyx_f_6mpi4py_3MPI_comm_attr_copy(MPI_Comm __pyx_v_comm,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)15141 static int __pyx_f_6mpi4py_3MPI_comm_attr_copy(MPI_Comm __pyx_v_comm, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
15142   PyObject *__pyx_v_entry = 0;
15143   PyObject *__pyx_v_copy_fn = 0;
15144   PyObject *__pyx_v_attrval = 0;
15145   void **__pyx_v_aptr;
15146   int __pyx_r;
15147   __Pyx_RefNannyDeclarations
15148   PyObject *__pyx_t_1 = NULL;
15149   PyObject *__pyx_t_2 = NULL;
15150   int __pyx_t_3;
15151   int __pyx_t_4;
15152   int __pyx_t_5;
15153   int __pyx_lineno = 0;
15154   const char *__pyx_filename = NULL;
15155   int __pyx_clineno = 0;
15156   __Pyx_RefNannySetupContext("comm_attr_copy");
15157 
15158   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":21
15159  *                         void *attrval_out,
15160  *                         int *flag) except -1:
15161  *     cdef tuple entry = comm_keyval.get(keyval)             # <<<<<<<<<<<<<<
15162  *     cdef object copy_fn = None
15163  *     if entry is not None: copy_fn = entry[0]
15164  */
15165   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval) == Py_None)) {
15166     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15167   }
15168   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15169   __Pyx_GOTREF(__pyx_t_1);
15170   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15171   __Pyx_GOTREF(__pyx_t_2);
15172   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15173   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15174   __pyx_v_entry = ((PyObject*)__pyx_t_2);
15175   __pyx_t_2 = 0;
15176 
15177   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":22
15178  *                         int *flag) except -1:
15179  *     cdef tuple entry = comm_keyval.get(keyval)
15180  *     cdef object copy_fn = None             # <<<<<<<<<<<<<<
15181  *     if entry is not None: copy_fn = entry[0]
15182  *     if copy_fn is None or copy_fn is False:
15183  */
15184   __Pyx_INCREF(Py_None);
15185   __pyx_v_copy_fn = Py_None;
15186 
15187   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":23
15188  *     cdef tuple entry = comm_keyval.get(keyval)
15189  *     cdef object copy_fn = None
15190  *     if entry is not None: copy_fn = entry[0]             # <<<<<<<<<<<<<<
15191  *     if copy_fn is None or copy_fn is False:
15192  *         flag[0] = 0
15193  */
15194   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
15195   if (__pyx_t_3) {
15196     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15197     __Pyx_GOTREF(__pyx_t_2);
15198     __Pyx_DECREF(__pyx_v_copy_fn);
15199     __pyx_v_copy_fn = __pyx_t_2;
15200     __pyx_t_2 = 0;
15201     goto __pyx_L3;
15202   }
15203   __pyx_L3:;
15204 
15205   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":24
15206  *     cdef object copy_fn = None
15207  *     if entry is not None: copy_fn = entry[0]
15208  *     if copy_fn is None or copy_fn is False:             # <<<<<<<<<<<<<<
15209  *         flag[0] = 0
15210  *         return 0
15211  */
15212   __pyx_t_3 = (__pyx_v_copy_fn == Py_None);
15213   if (!__pyx_t_3) {
15214     __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15215     __Pyx_GOTREF(__pyx_t_2);
15216     __pyx_t_4 = (__pyx_v_copy_fn == __pyx_t_2);
15217     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15218     __pyx_t_5 = __pyx_t_4;
15219   } else {
15220     __pyx_t_5 = __pyx_t_3;
15221   }
15222   if (__pyx_t_5) {
15223 
15224     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":25
15225  *     if entry is not None: copy_fn = entry[0]
15226  *     if copy_fn is None or copy_fn is False:
15227  *         flag[0] = 0             # <<<<<<<<<<<<<<
15228  *         return 0
15229  *     cdef object attrval = <object>attrval_in
15230  */
15231     (__pyx_v_flag[0]) = 0;
15232 
15233     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":26
15234  *     if copy_fn is None or copy_fn is False:
15235  *         flag[0] = 0
15236  *         return 0             # <<<<<<<<<<<<<<
15237  *     cdef object attrval = <object>attrval_in
15238  *     cdef void **aptr = <void **>attrval_out
15239  */
15240     __pyx_r = 0;
15241     goto __pyx_L0;
15242     goto __pyx_L4;
15243   }
15244   __pyx_L4:;
15245 
15246   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":27
15247  *         flag[0] = 0
15248  *         return 0
15249  *     cdef object attrval = <object>attrval_in             # <<<<<<<<<<<<<<
15250  *     cdef void **aptr = <void **>attrval_out
15251  *     if copy_fn is not True:
15252  */
15253   __Pyx_INCREF(((PyObject *)__pyx_v_attrval_in));
15254   __pyx_v_attrval = ((PyObject *)__pyx_v_attrval_in);
15255 
15256   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":28
15257  *         return 0
15258  *     cdef object attrval = <object>attrval_in
15259  *     cdef void **aptr = <void **>attrval_out             # <<<<<<<<<<<<<<
15260  *     if copy_fn is not True:
15261  *         attrval = copy_fn(attrval)
15262  */
15263   __pyx_v_aptr = ((void **)__pyx_v_attrval_out);
15264 
15265   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":29
15266  *     cdef object attrval = <object>attrval_in
15267  *     cdef void **aptr = <void **>attrval_out
15268  *     if copy_fn is not True:             # <<<<<<<<<<<<<<
15269  *         attrval = copy_fn(attrval)
15270  *     Py_INCREF(attrval)
15271  */
15272   __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15273   __Pyx_GOTREF(__pyx_t_2);
15274   __pyx_t_5 = (__pyx_v_copy_fn != __pyx_t_2);
15275   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15276   if (__pyx_t_5) {
15277 
15278     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":30
15279  *     cdef void **aptr = <void **>attrval_out
15280  *     if copy_fn is not True:
15281  *         attrval = copy_fn(attrval)             # <<<<<<<<<<<<<<
15282  *     Py_INCREF(attrval)
15283  *     aptr[0] = <void*>attrval
15284  */
15285     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15286     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
15287     __Pyx_INCREF(__pyx_v_attrval);
15288     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attrval);
15289     __Pyx_GIVEREF(__pyx_v_attrval);
15290     __pyx_t_1 = PyObject_Call(__pyx_v_copy_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15291     __Pyx_GOTREF(__pyx_t_1);
15292     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
15293     __Pyx_DECREF(__pyx_v_attrval);
15294     __pyx_v_attrval = __pyx_t_1;
15295     __pyx_t_1 = 0;
15296     goto __pyx_L5;
15297   }
15298   __pyx_L5:;
15299 
15300   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":31
15301  *     if copy_fn is not True:
15302  *         attrval = copy_fn(attrval)
15303  *     Py_INCREF(attrval)             # <<<<<<<<<<<<<<
15304  *     aptr[0] = <void*>attrval
15305  *     flag[0] = 1
15306  */
15307   Py_INCREF(__pyx_v_attrval);
15308 
15309   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":32
15310  *         attrval = copy_fn(attrval)
15311  *     Py_INCREF(attrval)
15312  *     aptr[0] = <void*>attrval             # <<<<<<<<<<<<<<
15313  *     flag[0] = 1
15314  *     return 0
15315  */
15316   (__pyx_v_aptr[0]) = ((void *)__pyx_v_attrval);
15317 
15318   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":33
15319  *     Py_INCREF(attrval)
15320  *     aptr[0] = <void*>attrval
15321  *     flag[0] = 1             # <<<<<<<<<<<<<<
15322  *     return 0
15323  *
15324  */
15325   (__pyx_v_flag[0]) = 1;
15326 
15327   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":34
15328  *     aptr[0] = <void*>attrval
15329  *     flag[0] = 1
15330  *     return 0             # <<<<<<<<<<<<<<
15331  *
15332  * cdef int comm_attr_delete(MPI_Comm comm,
15333  */
15334   __pyx_r = 0;
15335   goto __pyx_L0;
15336 
15337   __pyx_r = 0;
15338   goto __pyx_L0;
15339   __pyx_L1_error:;
15340   __Pyx_XDECREF(__pyx_t_1);
15341   __Pyx_XDECREF(__pyx_t_2);
15342   __Pyx_AddTraceback("mpi4py.MPI.comm_attr_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
15343   __pyx_r = -1;
15344   __pyx_L0:;
15345   __Pyx_XDECREF(__pyx_v_entry);
15346   __Pyx_XDECREF(__pyx_v_copy_fn);
15347   __Pyx_XDECREF(__pyx_v_attrval);
15348   __Pyx_RefNannyFinishContext();
15349   return __pyx_r;
15350 }
15351 
15352 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":36
15353  *     return 0
15354  *
15355  * cdef int comm_attr_delete(MPI_Comm comm,             # <<<<<<<<<<<<<<
15356  *                           int keyval,
15357  *                           void *attrval,
15358  */
15359 
__pyx_f_6mpi4py_3MPI_comm_attr_delete(MPI_Comm __pyx_v_comm,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)15360 static int __pyx_f_6mpi4py_3MPI_comm_attr_delete(MPI_Comm __pyx_v_comm, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
15361   PyObject *__pyx_v_entry = 0;
15362   PyObject *__pyx_v_delete_fn = 0;
15363   int __pyx_r;
15364   __Pyx_RefNannyDeclarations
15365   PyObject *__pyx_t_1 = NULL;
15366   PyObject *__pyx_t_2 = NULL;
15367   int __pyx_t_3;
15368   int __pyx_lineno = 0;
15369   const char *__pyx_filename = NULL;
15370   int __pyx_clineno = 0;
15371   __Pyx_RefNannySetupContext("comm_attr_delete");
15372 
15373   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":40
15374  *                           void *attrval,
15375  *                           void *extra_state) except -1:
15376  *     cdef tuple entry = comm_keyval.get(keyval)             # <<<<<<<<<<<<<<
15377  *     cdef object delete_fn = None
15378  *     if entry is not None: delete_fn = entry[1]
15379  */
15380   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval) == Py_None)) {
15381     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15382   }
15383   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15384   __Pyx_GOTREF(__pyx_t_1);
15385   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15386   __Pyx_GOTREF(__pyx_t_2);
15387   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15388   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15389   __pyx_v_entry = ((PyObject*)__pyx_t_2);
15390   __pyx_t_2 = 0;
15391 
15392   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":41
15393  *                           void *extra_state) except -1:
15394  *     cdef tuple entry = comm_keyval.get(keyval)
15395  *     cdef object delete_fn = None             # <<<<<<<<<<<<<<
15396  *     if entry is not None: delete_fn = entry[1]
15397  *     if delete_fn is not None:
15398  */
15399   __Pyx_INCREF(Py_None);
15400   __pyx_v_delete_fn = Py_None;
15401 
15402   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":42
15403  *     cdef tuple entry = comm_keyval.get(keyval)
15404  *     cdef object delete_fn = None
15405  *     if entry is not None: delete_fn = entry[1]             # <<<<<<<<<<<<<<
15406  *     if delete_fn is not None:
15407  *         delete_fn(<object>attrval)
15408  */
15409   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
15410   if (__pyx_t_3) {
15411     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15412     __Pyx_GOTREF(__pyx_t_2);
15413     __Pyx_DECREF(__pyx_v_delete_fn);
15414     __pyx_v_delete_fn = __pyx_t_2;
15415     __pyx_t_2 = 0;
15416     goto __pyx_L3;
15417   }
15418   __pyx_L3:;
15419 
15420   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":43
15421  *     cdef object delete_fn = None
15422  *     if entry is not None: delete_fn = entry[1]
15423  *     if delete_fn is not None:             # <<<<<<<<<<<<<<
15424  *         delete_fn(<object>attrval)
15425  *     Py_DECREF(<object>attrval)
15426  */
15427   __pyx_t_3 = (__pyx_v_delete_fn != Py_None);
15428   if (__pyx_t_3) {
15429 
15430     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":44
15431  *     if entry is not None: delete_fn = entry[1]
15432  *     if delete_fn is not None:
15433  *         delete_fn(<object>attrval)             # <<<<<<<<<<<<<<
15434  *     Py_DECREF(<object>attrval)
15435  *     return 0
15436  */
15437     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15438     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
15439     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
15440     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_attrval));
15441     __Pyx_GIVEREF(((PyObject *)__pyx_v_attrval));
15442     __pyx_t_1 = PyObject_Call(__pyx_v_delete_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15443     __Pyx_GOTREF(__pyx_t_1);
15444     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
15445     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15446     goto __pyx_L4;
15447   }
15448   __pyx_L4:;
15449 
15450   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":45
15451  *     if delete_fn is not None:
15452  *         delete_fn(<object>attrval)
15453  *     Py_DECREF(<object>attrval)             # <<<<<<<<<<<<<<
15454  *     return 0
15455  *
15456  */
15457   Py_DECREF(((PyObject *)__pyx_v_attrval));
15458 
15459   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":46
15460  *         delete_fn(<object>attrval)
15461  *     Py_DECREF(<object>attrval)
15462  *     return 0             # <<<<<<<<<<<<<<
15463  *
15464  * @cython.callspec("PyMPIAPI")
15465  */
15466   __pyx_r = 0;
15467   goto __pyx_L0;
15468 
15469   __pyx_r = 0;
15470   goto __pyx_L0;
15471   __pyx_L1_error:;
15472   __Pyx_XDECREF(__pyx_t_1);
15473   __Pyx_XDECREF(__pyx_t_2);
15474   __Pyx_AddTraceback("mpi4py.MPI.comm_attr_delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
15475   __pyx_r = -1;
15476   __pyx_L0:;
15477   __Pyx_XDECREF(__pyx_v_entry);
15478   __Pyx_XDECREF(__pyx_v_delete_fn);
15479   __Pyx_RefNannyFinishContext();
15480   return __pyx_r;
15481 }
15482 
15483 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":49
15484  *
15485  * @cython.callspec("PyMPIAPI")
15486  * cdef int comm_attr_copy_fn(MPI_Comm comm,             # <<<<<<<<<<<<<<
15487  *                            int keyval,
15488  *                            void *extra_state,
15489  */
15490 
__pyx_f_6mpi4py_3MPI_comm_attr_copy_fn(MPI_Comm __pyx_v_comm,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)15491 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_comm_attr_copy_fn(MPI_Comm __pyx_v_comm, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
15492   PyObject *__pyx_v_exc = 0;
15493   int __pyx_r;
15494   __Pyx_RefNannyDeclarations
15495   int __pyx_t_1;
15496   PyObject *__pyx_t_2 = NULL;
15497   PyObject *__pyx_t_3 = NULL;
15498   PyObject *__pyx_t_4 = NULL;
15499   int __pyx_t_5;
15500   PyObject *__pyx_t_6 = NULL;
15501   PyObject *__pyx_t_7 = NULL;
15502   PyObject *__pyx_t_8 = NULL;
15503   PyObject *__pyx_t_9 = NULL;
15504   PyObject *__pyx_t_10 = NULL;
15505   int __pyx_lineno = 0;
15506   const char *__pyx_filename = NULL;
15507   int __pyx_clineno = 0;
15508   #ifdef WITH_THREAD
15509   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
15510   #endif
15511   __Pyx_RefNannySetupContext("comm_attr_copy_fn");
15512 
15513   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":55
15514  *                            void *attrval_out,
15515  *                            int *flag) with gil:
15516  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
15517  *         return MPI_SUCCESS
15518  *     if attrval_in == NULL:
15519  */
15520   __pyx_t_1 = (!Py_IsInitialized());
15521   if (__pyx_t_1) {
15522 
15523     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":56
15524  *                            int *flag) with gil:
15525  *     if not Py_IsInitialized():
15526  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
15527  *     if attrval_in == NULL:
15528  *         return MPI_ERR_INTERN
15529  */
15530     __pyx_r = MPI_SUCCESS;
15531     goto __pyx_L0;
15532     goto __pyx_L3;
15533   }
15534   __pyx_L3:;
15535 
15536   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":57
15537  *     if not Py_IsInitialized():
15538  *         return MPI_SUCCESS
15539  *     if attrval_in == NULL:             # <<<<<<<<<<<<<<
15540  *         return MPI_ERR_INTERN
15541  *     if attrval_out == NULL:
15542  */
15543   __pyx_t_1 = (__pyx_v_attrval_in == NULL);
15544   if (__pyx_t_1) {
15545 
15546     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":58
15547  *         return MPI_SUCCESS
15548  *     if attrval_in == NULL:
15549  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
15550  *     if attrval_out == NULL:
15551  *         return MPI_ERR_INTERN
15552  */
15553     __pyx_r = MPI_ERR_INTERN;
15554     goto __pyx_L0;
15555     goto __pyx_L4;
15556   }
15557   __pyx_L4:;
15558 
15559   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":59
15560  *     if attrval_in == NULL:
15561  *         return MPI_ERR_INTERN
15562  *     if attrval_out == NULL:             # <<<<<<<<<<<<<<
15563  *         return MPI_ERR_INTERN
15564  *     cdef object exc
15565  */
15566   __pyx_t_1 = (__pyx_v_attrval_out == NULL);
15567   if (__pyx_t_1) {
15568 
15569     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":60
15570  *         return MPI_ERR_INTERN
15571  *     if attrval_out == NULL:
15572  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
15573  *     cdef object exc
15574  *     try:
15575  */
15576     __pyx_r = MPI_ERR_INTERN;
15577     goto __pyx_L0;
15578     goto __pyx_L5;
15579   }
15580   __pyx_L5:;
15581 
15582   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":62
15583  *         return MPI_ERR_INTERN
15584  *     cdef object exc
15585  *     try:             # <<<<<<<<<<<<<<
15586  *         comm_attr_copy(comm, keyval, extra_state,
15587  *                        attrval_in, attrval_out, flag)
15588  */
15589   {
15590     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
15591     __Pyx_XGOTREF(__pyx_t_2);
15592     __Pyx_XGOTREF(__pyx_t_3);
15593     __Pyx_XGOTREF(__pyx_t_4);
15594     /*try:*/ {
15595 
15596       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":64
15597  *     try:
15598  *         comm_attr_copy(comm, keyval, extra_state,
15599  *                        attrval_in, attrval_out, flag)             # <<<<<<<<<<<<<<
15600  *     except MPIException, exc:
15601  *         print_traceback()
15602  */
15603       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_comm_attr_copy(__pyx_v_comm, __pyx_v_keyval, __pyx_v_extra_state, __pyx_v_attrval_in, __pyx_v_attrval_out, __pyx_v_flag); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
15604     }
15605     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
15606     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15607     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15608     goto __pyx_L13_try_end;
15609     __pyx_L6_error:;
15610 
15611     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":65
15612  *         comm_attr_copy(comm, keyval, extra_state,
15613  *                        attrval_in, attrval_out, flag)
15614  *     except MPIException, exc:             # <<<<<<<<<<<<<<
15615  *         print_traceback()
15616  *         return exc.Get_error_code()
15617  */
15618     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
15619     if (__pyx_t_5) {
15620       __Pyx_AddTraceback("mpi4py.MPI.comm_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15621       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
15622       __Pyx_GOTREF(__pyx_t_6);
15623       __Pyx_GOTREF(__pyx_t_7);
15624       __Pyx_GOTREF(__pyx_t_8);
15625       __Pyx_INCREF(__pyx_t_7);
15626       __pyx_v_exc = __pyx_t_7;
15627 
15628       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":66
15629  *                        attrval_in, attrval_out, flag)
15630  *     except MPIException, exc:
15631  *         print_traceback()             # <<<<<<<<<<<<<<
15632  *         return exc.Get_error_code()
15633  *     except:
15634  */
15635       __pyx_f_6mpi4py_3MPI_print_traceback();
15636 
15637       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":67
15638  *     except MPIException, exc:
15639  *         print_traceback()
15640  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
15641  *     except:
15642  *         print_traceback()
15643  */
15644       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
15645       __Pyx_GOTREF(__pyx_t_9);
15646       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
15647       __Pyx_GOTREF(__pyx_t_10);
15648       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
15649       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
15650       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
15651       __pyx_r = __pyx_t_5;
15652       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15653       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15654       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15655       goto __pyx_L9_except_return;
15656       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15657       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15658       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15659       goto __pyx_L7_exception_handled;
15660     }
15661 
15662     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":68
15663  *         print_traceback()
15664  *         return exc.Get_error_code()
15665  *     except:             # <<<<<<<<<<<<<<
15666  *         print_traceback()
15667  *         return MPI_ERR_OTHER
15668  */
15669     /*except:*/ {
15670       __Pyx_AddTraceback("mpi4py.MPI.comm_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15671       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
15672       __Pyx_GOTREF(__pyx_t_8);
15673       __Pyx_GOTREF(__pyx_t_7);
15674       __Pyx_GOTREF(__pyx_t_6);
15675 
15676       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":69
15677  *         return exc.Get_error_code()
15678  *     except:
15679  *         print_traceback()             # <<<<<<<<<<<<<<
15680  *         return MPI_ERR_OTHER
15681  *     return MPI_SUCCESS
15682  */
15683       __pyx_f_6mpi4py_3MPI_print_traceback();
15684 
15685       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":70
15686  *     except:
15687  *         print_traceback()
15688  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
15689  *     return MPI_SUCCESS
15690  *
15691  */
15692       __pyx_r = MPI_ERR_OTHER;
15693       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15694       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15695       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15696       goto __pyx_L9_except_return;
15697       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15698       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15699       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15700       goto __pyx_L7_exception_handled;
15701     }
15702     __pyx_L8_except_error:;
15703     __Pyx_XGIVEREF(__pyx_t_2);
15704     __Pyx_XGIVEREF(__pyx_t_3);
15705     __Pyx_XGIVEREF(__pyx_t_4);
15706     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15707     goto __pyx_L1_error;
15708     __pyx_L9_except_return:;
15709     __Pyx_XGIVEREF(__pyx_t_2);
15710     __Pyx_XGIVEREF(__pyx_t_3);
15711     __Pyx_XGIVEREF(__pyx_t_4);
15712     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15713     goto __pyx_L0;
15714     __pyx_L7_exception_handled:;
15715     __Pyx_XGIVEREF(__pyx_t_2);
15716     __Pyx_XGIVEREF(__pyx_t_3);
15717     __Pyx_XGIVEREF(__pyx_t_4);
15718     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15719     __pyx_L13_try_end:;
15720   }
15721 
15722   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":71
15723  *         print_traceback()
15724  *         return MPI_ERR_OTHER
15725  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
15726  *
15727  * @cython.callspec("PyMPIAPI")
15728  */
15729   __pyx_r = MPI_SUCCESS;
15730   goto __pyx_L0;
15731 
15732   __pyx_r = 0;
15733   goto __pyx_L0;
15734   __pyx_L1_error:;
15735   __Pyx_XDECREF(__pyx_t_6);
15736   __Pyx_XDECREF(__pyx_t_7);
15737   __Pyx_XDECREF(__pyx_t_8);
15738   __Pyx_XDECREF(__pyx_t_9);
15739   __Pyx_XDECREF(__pyx_t_10);
15740   __Pyx_WriteUnraisable("mpi4py.MPI.comm_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15741   __pyx_r = 0;
15742   __pyx_L0:;
15743   __Pyx_XDECREF(__pyx_v_exc);
15744   __Pyx_RefNannyFinishContext();
15745   #ifdef WITH_THREAD
15746   PyGILState_Release(__pyx_gilstate_save);
15747   #endif
15748   return __pyx_r;
15749 }
15750 
15751 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":74
15752  *
15753  * @cython.callspec("PyMPIAPI")
15754  * cdef int comm_attr_delete_fn(MPI_Comm comm,             # <<<<<<<<<<<<<<
15755  *                              int keyval,
15756  *                              void *attrval,
15757  */
15758 
__pyx_f_6mpi4py_3MPI_comm_attr_delete_fn(MPI_Comm __pyx_v_comm,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)15759 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_comm_attr_delete_fn(MPI_Comm __pyx_v_comm, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
15760   PyObject *__pyx_v_exc = 0;
15761   int __pyx_r;
15762   __Pyx_RefNannyDeclarations
15763   int __pyx_t_1;
15764   PyObject *__pyx_t_2 = NULL;
15765   PyObject *__pyx_t_3 = NULL;
15766   PyObject *__pyx_t_4 = NULL;
15767   int __pyx_t_5;
15768   PyObject *__pyx_t_6 = NULL;
15769   PyObject *__pyx_t_7 = NULL;
15770   PyObject *__pyx_t_8 = NULL;
15771   PyObject *__pyx_t_9 = NULL;
15772   PyObject *__pyx_t_10 = NULL;
15773   int __pyx_lineno = 0;
15774   const char *__pyx_filename = NULL;
15775   int __pyx_clineno = 0;
15776   #ifdef WITH_THREAD
15777   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
15778   #endif
15779   __Pyx_RefNannySetupContext("comm_attr_delete_fn");
15780 
15781   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":78
15782  *                              void *attrval,
15783  *                              void *extra_state) with gil:
15784  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
15785  *         return MPI_SUCCESS
15786  *     if attrval == NULL:
15787  */
15788   __pyx_t_1 = (!Py_IsInitialized());
15789   if (__pyx_t_1) {
15790 
15791     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":79
15792  *                              void *extra_state) with gil:
15793  *     if not Py_IsInitialized():
15794  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
15795  *     if attrval == NULL:
15796  *         return MPI_ERR_INTERN
15797  */
15798     __pyx_r = MPI_SUCCESS;
15799     goto __pyx_L0;
15800     goto __pyx_L3;
15801   }
15802   __pyx_L3:;
15803 
15804   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":80
15805  *     if not Py_IsInitialized():
15806  *         return MPI_SUCCESS
15807  *     if attrval == NULL:             # <<<<<<<<<<<<<<
15808  *         return MPI_ERR_INTERN
15809  *     cdef object exc
15810  */
15811   __pyx_t_1 = (__pyx_v_attrval == NULL);
15812   if (__pyx_t_1) {
15813 
15814     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":81
15815  *         return MPI_SUCCESS
15816  *     if attrval == NULL:
15817  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
15818  *     cdef object exc
15819  *     try:
15820  */
15821     __pyx_r = MPI_ERR_INTERN;
15822     goto __pyx_L0;
15823     goto __pyx_L4;
15824   }
15825   __pyx_L4:;
15826 
15827   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":83
15828  *         return MPI_ERR_INTERN
15829  *     cdef object exc
15830  *     try:             # <<<<<<<<<<<<<<
15831  *         comm_attr_delete(comm, keyval, attrval, extra_state)
15832  *     except MPIException, exc:
15833  */
15834   {
15835     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
15836     __Pyx_XGOTREF(__pyx_t_2);
15837     __Pyx_XGOTREF(__pyx_t_3);
15838     __Pyx_XGOTREF(__pyx_t_4);
15839     /*try:*/ {
15840 
15841       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":84
15842  *     cdef object exc
15843  *     try:
15844  *         comm_attr_delete(comm, keyval, attrval, extra_state)             # <<<<<<<<<<<<<<
15845  *     except MPIException, exc:
15846  *         print_traceback()
15847  */
15848       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_comm_attr_delete(__pyx_v_comm, __pyx_v_keyval, __pyx_v_attrval, __pyx_v_extra_state); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
15849     }
15850     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
15851     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15852     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15853     goto __pyx_L12_try_end;
15854     __pyx_L5_error:;
15855 
15856     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":85
15857  *     try:
15858  *         comm_attr_delete(comm, keyval, attrval, extra_state)
15859  *     except MPIException, exc:             # <<<<<<<<<<<<<<
15860  *         print_traceback()
15861  *         return exc.Get_error_code()
15862  */
15863     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
15864     if (__pyx_t_5) {
15865       __Pyx_AddTraceback("mpi4py.MPI.comm_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15866       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
15867       __Pyx_GOTREF(__pyx_t_6);
15868       __Pyx_GOTREF(__pyx_t_7);
15869       __Pyx_GOTREF(__pyx_t_8);
15870       __Pyx_INCREF(__pyx_t_7);
15871       __pyx_v_exc = __pyx_t_7;
15872 
15873       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":86
15874  *         comm_attr_delete(comm, keyval, attrval, extra_state)
15875  *     except MPIException, exc:
15876  *         print_traceback()             # <<<<<<<<<<<<<<
15877  *         return exc.Get_error_code()
15878  *     except:
15879  */
15880       __pyx_f_6mpi4py_3MPI_print_traceback();
15881 
15882       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":87
15883  *     except MPIException, exc:
15884  *         print_traceback()
15885  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
15886  *     except:
15887  *         print_traceback()
15888  */
15889       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
15890       __Pyx_GOTREF(__pyx_t_9);
15891       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
15892       __Pyx_GOTREF(__pyx_t_10);
15893       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
15894       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
15895       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
15896       __pyx_r = __pyx_t_5;
15897       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15898       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15899       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15900       goto __pyx_L8_except_return;
15901       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15902       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15903       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15904       goto __pyx_L6_exception_handled;
15905     }
15906 
15907     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":88
15908  *         print_traceback()
15909  *         return exc.Get_error_code()
15910  *     except:             # <<<<<<<<<<<<<<
15911  *         print_traceback()
15912  *         return MPI_ERR_OTHER
15913  */
15914     /*except:*/ {
15915       __Pyx_AddTraceback("mpi4py.MPI.comm_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15916       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
15917       __Pyx_GOTREF(__pyx_t_8);
15918       __Pyx_GOTREF(__pyx_t_7);
15919       __Pyx_GOTREF(__pyx_t_6);
15920 
15921       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":89
15922  *         return exc.Get_error_code()
15923  *     except:
15924  *         print_traceback()             # <<<<<<<<<<<<<<
15925  *         return MPI_ERR_OTHER
15926  *     return MPI_SUCCESS
15927  */
15928       __pyx_f_6mpi4py_3MPI_print_traceback();
15929 
15930       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":90
15931  *     except:
15932  *         print_traceback()
15933  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
15934  *     return MPI_SUCCESS
15935  *
15936  */
15937       __pyx_r = MPI_ERR_OTHER;
15938       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15939       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15940       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15941       goto __pyx_L8_except_return;
15942       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15943       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15944       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15945       goto __pyx_L6_exception_handled;
15946     }
15947     __pyx_L7_except_error:;
15948     __Pyx_XGIVEREF(__pyx_t_2);
15949     __Pyx_XGIVEREF(__pyx_t_3);
15950     __Pyx_XGIVEREF(__pyx_t_4);
15951     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15952     goto __pyx_L1_error;
15953     __pyx_L8_except_return:;
15954     __Pyx_XGIVEREF(__pyx_t_2);
15955     __Pyx_XGIVEREF(__pyx_t_3);
15956     __Pyx_XGIVEREF(__pyx_t_4);
15957     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15958     goto __pyx_L0;
15959     __pyx_L6_exception_handled:;
15960     __Pyx_XGIVEREF(__pyx_t_2);
15961     __Pyx_XGIVEREF(__pyx_t_3);
15962     __Pyx_XGIVEREF(__pyx_t_4);
15963     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
15964     __pyx_L12_try_end:;
15965   }
15966 
15967   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":91
15968  *         print_traceback()
15969  *         return MPI_ERR_OTHER
15970  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
15971  *
15972  * # -----------------------------------------------------------------------------
15973  */
15974   __pyx_r = MPI_SUCCESS;
15975   goto __pyx_L0;
15976 
15977   __pyx_r = 0;
15978   goto __pyx_L0;
15979   __pyx_L1_error:;
15980   __Pyx_XDECREF(__pyx_t_6);
15981   __Pyx_XDECREF(__pyx_t_7);
15982   __Pyx_XDECREF(__pyx_t_8);
15983   __Pyx_XDECREF(__pyx_t_9);
15984   __Pyx_XDECREF(__pyx_t_10);
15985   __Pyx_WriteUnraisable("mpi4py.MPI.comm_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15986   __pyx_r = 0;
15987   __pyx_L0:;
15988   __Pyx_XDECREF(__pyx_v_exc);
15989   __Pyx_RefNannyFinishContext();
15990   #ifdef WITH_THREAD
15991   PyGILState_Release(__pyx_gilstate_save);
15992   #endif
15993   return __pyx_r;
15994 }
15995 
15996 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":97
15997  * cdef _p_buffer _buffer = None
15998  *
15999  * cdef inline int attach_buffer(ob, void **p, int *n) except -1:             # <<<<<<<<<<<<<<
16000  *     global _buffer
16001  *     cdef void *bptr = NULL
16002  */
16003 
__pyx_f_6mpi4py_3MPI_attach_buffer(PyObject * __pyx_v_ob,void ** __pyx_v_p,int * __pyx_v_n)16004 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_attach_buffer(PyObject *__pyx_v_ob, void **__pyx_v_p, int *__pyx_v_n) {
16005   void *__pyx_v_bptr;
16006   MPI_Aint __pyx_v_blen;
16007   int __pyx_r;
16008   __Pyx_RefNannyDeclarations
16009   PyObject *__pyx_t_1 = NULL;
16010   int __pyx_lineno = 0;
16011   const char *__pyx_filename = NULL;
16012   int __pyx_clineno = 0;
16013   __Pyx_RefNannySetupContext("attach_buffer");
16014 
16015   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":99
16016  * cdef inline int attach_buffer(ob, void **p, int *n) except -1:
16017  *     global _buffer
16018  *     cdef void *bptr = NULL             # <<<<<<<<<<<<<<
16019  *     cdef MPI_Aint blen = 0
16020  *     _buffer = getbuffer_w(ob, &bptr, &blen)
16021  */
16022   __pyx_v_bptr = NULL;
16023 
16024   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":100
16025  *     global _buffer
16026  *     cdef void *bptr = NULL
16027  *     cdef MPI_Aint blen = 0             # <<<<<<<<<<<<<<
16028  *     _buffer = getbuffer_w(ob, &bptr, &blen)
16029  *     p[0] = bptr
16030  */
16031   __pyx_v_blen = 0;
16032 
16033   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":101
16034  *     cdef void *bptr = NULL
16035  *     cdef MPI_Aint blen = 0
16036  *     _buffer = getbuffer_w(ob, &bptr, &blen)             # <<<<<<<<<<<<<<
16037  *     p[0] = bptr
16038  *     n[0] = <int>blen # XXX Overflow ?
16039  */
16040   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_ob, (&__pyx_v_bptr), (&__pyx_v_blen))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16041   __Pyx_GOTREF(__pyx_t_1);
16042   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
16043   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
16044   __Pyx_GIVEREF(__pyx_t_1);
16045   __pyx_v_6mpi4py_3MPI__buffer = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
16046   __pyx_t_1 = 0;
16047 
16048   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":102
16049  *     cdef MPI_Aint blen = 0
16050  *     _buffer = getbuffer_w(ob, &bptr, &blen)
16051  *     p[0] = bptr             # <<<<<<<<<<<<<<
16052  *     n[0] = <int>blen # XXX Overflow ?
16053  *     return 0
16054  */
16055   (__pyx_v_p[0]) = __pyx_v_bptr;
16056 
16057   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":103
16058  *     _buffer = getbuffer_w(ob, &bptr, &blen)
16059  *     p[0] = bptr
16060  *     n[0] = <int>blen # XXX Overflow ?             # <<<<<<<<<<<<<<
16061  *     return 0
16062  *
16063  */
16064   (__pyx_v_n[0]) = ((int)__pyx_v_blen);
16065 
16066   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":104
16067  *     p[0] = bptr
16068  *     n[0] = <int>blen # XXX Overflow ?
16069  *     return 0             # <<<<<<<<<<<<<<
16070  *
16071  * cdef inline object detach_buffer(void *p, int n):
16072  */
16073   __pyx_r = 0;
16074   goto __pyx_L0;
16075 
16076   __pyx_r = 0;
16077   goto __pyx_L0;
16078   __pyx_L1_error:;
16079   __Pyx_XDECREF(__pyx_t_1);
16080   __Pyx_AddTraceback("mpi4py.MPI.attach_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
16081   __pyx_r = -1;
16082   __pyx_L0:;
16083   __Pyx_RefNannyFinishContext();
16084   return __pyx_r;
16085 }
16086 
16087 /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":106
16088  *     return 0
16089  *
16090  * cdef inline object detach_buffer(void *p, int n):             # <<<<<<<<<<<<<<
16091  *     global _buffer
16092  *     cdef object ob = None
16093  */
16094 
__pyx_f_6mpi4py_3MPI_detach_buffer(void * __pyx_v_p,int __pyx_v_n)16095 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI_detach_buffer(void *__pyx_v_p, int __pyx_v_n) {
16096   PyObject *__pyx_v_ob = 0;
16097   PyObject *__pyx_r = NULL;
16098   __Pyx_RefNannyDeclarations
16099   int __pyx_t_1;
16100   int __pyx_t_2;
16101   int __pyx_t_3;
16102   int __pyx_t_4;
16103   int __pyx_t_5;
16104   PyObject *__pyx_t_6 = NULL;
16105   int __pyx_lineno = 0;
16106   const char *__pyx_filename = NULL;
16107   int __pyx_clineno = 0;
16108   __Pyx_RefNannySetupContext("detach_buffer");
16109 
16110   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":108
16111  * cdef inline object detach_buffer(void *p, int n):
16112  *     global _buffer
16113  *     cdef object ob = None             # <<<<<<<<<<<<<<
16114  *     try:
16115  *         if (_buffer is not None and
16116  */
16117   __Pyx_INCREF(Py_None);
16118   __pyx_v_ob = Py_None;
16119 
16120   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":109
16121  *     global _buffer
16122  *     cdef object ob = None
16123  *     try:             # <<<<<<<<<<<<<<
16124  *         if (_buffer is not None and
16125  *             _buffer.view.buf == p and
16126  */
16127   /*try:*/ {
16128 
16129     /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":110
16130  *     cdef object ob = None
16131  *     try:
16132  *         if (_buffer is not None and             # <<<<<<<<<<<<<<
16133  *             _buffer.view.buf == p and
16134  *             _buffer.view.len == <Py_ssize_t>n and
16135  */
16136     __pyx_t_1 = (((PyObject *)__pyx_v_6mpi4py_3MPI__buffer) != Py_None);
16137     if (__pyx_t_1) {
16138 
16139       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":111
16140  *     try:
16141  *         if (_buffer is not None and
16142  *             _buffer.view.buf == p and             # <<<<<<<<<<<<<<
16143  *             _buffer.view.len == <Py_ssize_t>n and
16144  *             _buffer.view.obj != NULL):
16145  */
16146       __pyx_t_2 = (__pyx_v_6mpi4py_3MPI__buffer->view.buf == __pyx_v_p);
16147       if (__pyx_t_2) {
16148 
16149         /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":112
16150  *         if (_buffer is not None and
16151  *             _buffer.view.buf == p and
16152  *             _buffer.view.len == <Py_ssize_t>n and             # <<<<<<<<<<<<<<
16153  *             _buffer.view.obj != NULL):
16154  *             ob = <object>_buffer.view.obj
16155  */
16156         __pyx_t_3 = (__pyx_v_6mpi4py_3MPI__buffer->view.len == ((Py_ssize_t)__pyx_v_n));
16157         if (__pyx_t_3) {
16158 
16159           /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":113
16160  *             _buffer.view.buf == p and
16161  *             _buffer.view.len == <Py_ssize_t>n and
16162  *             _buffer.view.obj != NULL):             # <<<<<<<<<<<<<<
16163  *             ob = <object>_buffer.view.obj
16164  *         else:
16165  */
16166           __pyx_t_4 = (__pyx_v_6mpi4py_3MPI__buffer->view.obj != NULL);
16167           __pyx_t_5 = __pyx_t_4;
16168         } else {
16169           __pyx_t_5 = __pyx_t_3;
16170         }
16171         __pyx_t_3 = __pyx_t_5;
16172       } else {
16173         __pyx_t_3 = __pyx_t_2;
16174       }
16175       __pyx_t_2 = __pyx_t_3;
16176     } else {
16177       __pyx_t_2 = __pyx_t_1;
16178     }
16179     if (__pyx_t_2) {
16180 
16181       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":114
16182  *             _buffer.view.len == <Py_ssize_t>n and
16183  *             _buffer.view.obj != NULL):
16184  *             ob = <object>_buffer.view.obj             # <<<<<<<<<<<<<<
16185  *         else:
16186  *             ob = tomemory(p, <MPI_Aint>n)
16187  */
16188       __Pyx_INCREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer->view.obj));
16189       __Pyx_DECREF(__pyx_v_ob);
16190       __pyx_v_ob = ((PyObject *)__pyx_v_6mpi4py_3MPI__buffer->view.obj);
16191       goto __pyx_L6;
16192     }
16193     /*else*/ {
16194 
16195       /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":116
16196  *             ob = <object>_buffer.view.obj
16197  *         else:
16198  *             ob = tomemory(p, <MPI_Aint>n)             # <<<<<<<<<<<<<<
16199  *     finally:
16200  *         _buffer = None
16201  */
16202       __pyx_t_6 = __pyx_f_6mpi4py_3MPI_tomemory(__pyx_v_p, ((MPI_Aint)__pyx_v_n)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L4;}
16203       __Pyx_GOTREF(__pyx_t_6);
16204       __Pyx_DECREF(__pyx_v_ob);
16205       __pyx_v_ob = __pyx_t_6;
16206       __pyx_t_6 = 0;
16207     }
16208     __pyx_L6:;
16209   }
16210 
16211   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":118
16212  *             ob = tomemory(p, <MPI_Aint>n)
16213  *     finally:
16214  *         _buffer = None             # <<<<<<<<<<<<<<
16215  *     return ob
16216  *
16217  */
16218   /*finally:*/ {
16219     int __pyx_why;
16220     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
16221     int __pyx_exc_lineno;
16222     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
16223     __pyx_why = 0; goto __pyx_L5;
16224     __pyx_L4: {
16225       __pyx_why = 4;
16226       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
16227       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
16228       __pyx_exc_lineno = __pyx_lineno;
16229       goto __pyx_L5;
16230     }
16231     __pyx_L5:;
16232     __Pyx_INCREF(Py_None);
16233     __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
16234     __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
16235     __Pyx_GIVEREF(Py_None);
16236     __pyx_v_6mpi4py_3MPI__buffer = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None);
16237     switch (__pyx_why) {
16238       case 4: {
16239         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
16240         __pyx_lineno = __pyx_exc_lineno;
16241         __pyx_exc_type = 0;
16242         __pyx_exc_value = 0;
16243         __pyx_exc_tb = 0;
16244         goto __pyx_L1_error;
16245       }
16246     }
16247   }
16248 
16249   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":119
16250  *     finally:
16251  *         _buffer = None
16252  *     return ob             # <<<<<<<<<<<<<<
16253  *
16254  * # -----------------------------------------------------------------------------
16255  */
16256   __Pyx_XDECREF(__pyx_r);
16257   __Pyx_INCREF(__pyx_v_ob);
16258   __pyx_r = __pyx_v_ob;
16259   goto __pyx_L0;
16260 
16261   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16262   goto __pyx_L0;
16263   __pyx_L1_error:;
16264   __Pyx_XDECREF(__pyx_t_6);
16265   __Pyx_AddTraceback("mpi4py.MPI.detach_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
16266   __pyx_r = 0;
16267   __pyx_L0:;
16268   __Pyx_XDECREF(__pyx_v_ob);
16269   __Pyx_XGIVEREF(__pyx_r);
16270   __Pyx_RefNannyFinishContext();
16271   return __pyx_r;
16272 }
16273 
16274 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":169
16275  * include "commimpl.pxi"
16276  *
16277  * cdef inline Comm new_Comm(MPI_Comm ob):             # <<<<<<<<<<<<<<
16278  *     cdef Comm comm = <Comm>Comm.__new__(Comm)
16279  *     comm.ob_mpi = ob
16280  */
16281 
__pyx_f_6mpi4py_3MPI_new_Comm(MPI_Comm __pyx_v_ob)16282 static CYTHON_INLINE struct PyMPICommObject *__pyx_f_6mpi4py_3MPI_new_Comm(MPI_Comm __pyx_v_ob) {
16283   struct PyMPICommObject *__pyx_v_comm = 0;
16284   struct PyMPICommObject *__pyx_r = NULL;
16285   __Pyx_RefNannyDeclarations
16286   PyObject *__pyx_t_1 = NULL;
16287   int __pyx_lineno = 0;
16288   const char *__pyx_filename = NULL;
16289   int __pyx_clineno = 0;
16290   __Pyx_RefNannySetupContext("new_Comm");
16291 
16292   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":170
16293  *
16294  * cdef inline Comm new_Comm(MPI_Comm ob):
16295  *     cdef Comm comm = <Comm>Comm.__new__(Comm)             # <<<<<<<<<<<<<<
16296  *     comm.ob_mpi = ob
16297  *     return comm
16298  */
16299   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Comm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16300   __Pyx_GOTREF(__pyx_t_1);
16301   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_t_1)));
16302   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_t_1);
16303   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16304 
16305   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":171
16306  * cdef inline Comm new_Comm(MPI_Comm ob):
16307  *     cdef Comm comm = <Comm>Comm.__new__(Comm)
16308  *     comm.ob_mpi = ob             # <<<<<<<<<<<<<<
16309  *     return comm
16310  *
16311  */
16312   __pyx_v_comm->ob_mpi = __pyx_v_ob;
16313 
16314   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":172
16315  *     cdef Comm comm = <Comm>Comm.__new__(Comm)
16316  *     comm.ob_mpi = ob
16317  *     return comm             # <<<<<<<<<<<<<<
16318  *
16319  * cdef inline Intracomm new_Intracomm(MPI_Comm ob):
16320  */
16321   __Pyx_XDECREF(((PyObject *)__pyx_r));
16322   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
16323   __pyx_r = __pyx_v_comm;
16324   goto __pyx_L0;
16325 
16326   __pyx_r = ((struct PyMPICommObject *)Py_None); __Pyx_INCREF(Py_None);
16327   goto __pyx_L0;
16328   __pyx_L1_error:;
16329   __Pyx_XDECREF(__pyx_t_1);
16330   __Pyx_AddTraceback("mpi4py.MPI.new_Comm", __pyx_clineno, __pyx_lineno, __pyx_filename);
16331   __pyx_r = 0;
16332   __pyx_L0:;
16333   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
16334   __Pyx_XGIVEREF((PyObject *)__pyx_r);
16335   __Pyx_RefNannyFinishContext();
16336   return __pyx_r;
16337 }
16338 
16339 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":174
16340  *     return comm
16341  *
16342  * cdef inline Intracomm new_Intracomm(MPI_Comm ob):             # <<<<<<<<<<<<<<
16343  *     cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
16344  *     comm.ob_mpi = ob
16345  */
16346 
__pyx_f_6mpi4py_3MPI_new_Intracomm(MPI_Comm __pyx_v_ob)16347 static CYTHON_INLINE struct PyMPIIntracommObject *__pyx_f_6mpi4py_3MPI_new_Intracomm(MPI_Comm __pyx_v_ob) {
16348   struct PyMPIIntracommObject *__pyx_v_comm = 0;
16349   struct PyMPIIntracommObject *__pyx_r = NULL;
16350   __Pyx_RefNannyDeclarations
16351   PyObject *__pyx_t_1 = NULL;
16352   int __pyx_lineno = 0;
16353   const char *__pyx_filename = NULL;
16354   int __pyx_clineno = 0;
16355   __Pyx_RefNannySetupContext("new_Intracomm");
16356 
16357   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":175
16358  *
16359  * cdef inline Intracomm new_Intracomm(MPI_Comm ob):
16360  *     cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)             # <<<<<<<<<<<<<<
16361  *     comm.ob_mpi = ob
16362  *     return comm
16363  */
16364   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16365   __Pyx_GOTREF(__pyx_t_1);
16366   __Pyx_INCREF(((PyObject *)((struct PyMPIIntracommObject *)__pyx_t_1)));
16367   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_t_1);
16368   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16369 
16370   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":176
16371  * cdef inline Intracomm new_Intracomm(MPI_Comm ob):
16372  *     cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
16373  *     comm.ob_mpi = ob             # <<<<<<<<<<<<<<
16374  *     return comm
16375  *
16376  */
16377   __pyx_v_comm->__pyx_base.ob_mpi = __pyx_v_ob;
16378 
16379   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":177
16380  *     cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
16381  *     comm.ob_mpi = ob
16382  *     return comm             # <<<<<<<<<<<<<<
16383  *
16384  * cdef inline Intercomm new_Intercomm(MPI_Comm ob):
16385  */
16386   __Pyx_XDECREF(((PyObject *)__pyx_r));
16387   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
16388   __pyx_r = __pyx_v_comm;
16389   goto __pyx_L0;
16390 
16391   __pyx_r = ((struct PyMPIIntracommObject *)Py_None); __Pyx_INCREF(Py_None);
16392   goto __pyx_L0;
16393   __pyx_L1_error:;
16394   __Pyx_XDECREF(__pyx_t_1);
16395   __Pyx_AddTraceback("mpi4py.MPI.new_Intracomm", __pyx_clineno, __pyx_lineno, __pyx_filename);
16396   __pyx_r = 0;
16397   __pyx_L0:;
16398   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
16399   __Pyx_XGIVEREF((PyObject *)__pyx_r);
16400   __Pyx_RefNannyFinishContext();
16401   return __pyx_r;
16402 }
16403 
16404 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":179
16405  *     return comm
16406  *
16407  * cdef inline Intercomm new_Intercomm(MPI_Comm ob):             # <<<<<<<<<<<<<<
16408  *     cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
16409  *     comm.ob_mpi = ob
16410  */
16411 
__pyx_f_6mpi4py_3MPI_new_Intercomm(MPI_Comm __pyx_v_ob)16412 static CYTHON_INLINE struct PyMPIIntercommObject *__pyx_f_6mpi4py_3MPI_new_Intercomm(MPI_Comm __pyx_v_ob) {
16413   struct PyMPIIntercommObject *__pyx_v_comm = 0;
16414   struct PyMPIIntercommObject *__pyx_r = NULL;
16415   __Pyx_RefNannyDeclarations
16416   PyObject *__pyx_t_1 = NULL;
16417   int __pyx_lineno = 0;
16418   const char *__pyx_filename = NULL;
16419   int __pyx_clineno = 0;
16420   __Pyx_RefNannySetupContext("new_Intercomm");
16421 
16422   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":180
16423  *
16424  * cdef inline Intercomm new_Intercomm(MPI_Comm ob):
16425  *     cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
16426  *     comm.ob_mpi = ob
16427  *     return comm
16428  */
16429   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16430   __Pyx_GOTREF(__pyx_t_1);
16431   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
16432   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
16433   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16434 
16435   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":181
16436  * cdef inline Intercomm new_Intercomm(MPI_Comm ob):
16437  *     cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
16438  *     comm.ob_mpi = ob             # <<<<<<<<<<<<<<
16439  *     return comm
16440  *
16441  */
16442   __pyx_v_comm->__pyx_base.ob_mpi = __pyx_v_ob;
16443 
16444   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":182
16445  *     cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
16446  *     comm.ob_mpi = ob
16447  *     return comm             # <<<<<<<<<<<<<<
16448  *
16449  * cdef inline int del_Comm(MPI_Comm* ob):
16450  */
16451   __Pyx_XDECREF(((PyObject *)__pyx_r));
16452   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
16453   __pyx_r = __pyx_v_comm;
16454   goto __pyx_L0;
16455 
16456   __pyx_r = ((struct PyMPIIntercommObject *)Py_None); __Pyx_INCREF(Py_None);
16457   goto __pyx_L0;
16458   __pyx_L1_error:;
16459   __Pyx_XDECREF(__pyx_t_1);
16460   __Pyx_AddTraceback("mpi4py.MPI.new_Intercomm", __pyx_clineno, __pyx_lineno, __pyx_filename);
16461   __pyx_r = 0;
16462   __pyx_L0:;
16463   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
16464   __Pyx_XGIVEREF((PyObject *)__pyx_r);
16465   __Pyx_RefNannyFinishContext();
16466   return __pyx_r;
16467 }
16468 
16469 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":184
16470  *     return comm
16471  *
16472  * cdef inline int del_Comm(MPI_Comm* ob):             # <<<<<<<<<<<<<<
16473  *     #
16474  *     if ob    == NULL           : return 0
16475  */
16476 
__pyx_f_6mpi4py_3MPI_del_Comm(MPI_Comm * __pyx_v_ob)16477 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Comm(MPI_Comm *__pyx_v_ob) {
16478   int __pyx_r;
16479   __Pyx_RefNannyDeclarations
16480   int __pyx_t_1;
16481   __Pyx_RefNannySetupContext("del_Comm");
16482 
16483   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":186
16484  * cdef inline int del_Comm(MPI_Comm* ob):
16485  *     #
16486  *     if ob    == NULL           : return 0             # <<<<<<<<<<<<<<
16487  *     if ob[0] == MPI_COMM_NULL  : return 0
16488  *     if ob[0] == MPI_COMM_SELF  : return 0
16489  */
16490   __pyx_t_1 = (__pyx_v_ob == NULL);
16491   if (__pyx_t_1) {
16492     __pyx_r = 0;
16493     goto __pyx_L0;
16494     goto __pyx_L3;
16495   }
16496   __pyx_L3:;
16497 
16498   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":187
16499  *     #
16500  *     if ob    == NULL           : return 0
16501  *     if ob[0] == MPI_COMM_NULL  : return 0             # <<<<<<<<<<<<<<
16502  *     if ob[0] == MPI_COMM_SELF  : return 0
16503  *     if ob[0] == MPI_COMM_WORLD : return 0
16504  */
16505   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_COMM_NULL);
16506   if (__pyx_t_1) {
16507     __pyx_r = 0;
16508     goto __pyx_L0;
16509     goto __pyx_L4;
16510   }
16511   __pyx_L4:;
16512 
16513   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":188
16514  *     if ob    == NULL           : return 0
16515  *     if ob[0] == MPI_COMM_NULL  : return 0
16516  *     if ob[0] == MPI_COMM_SELF  : return 0             # <<<<<<<<<<<<<<
16517  *     if ob[0] == MPI_COMM_WORLD : return 0
16518  *     if not mpi_active()        : return 0
16519  */
16520   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_COMM_SELF);
16521   if (__pyx_t_1) {
16522     __pyx_r = 0;
16523     goto __pyx_L0;
16524     goto __pyx_L5;
16525   }
16526   __pyx_L5:;
16527 
16528   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":189
16529  *     if ob[0] == MPI_COMM_NULL  : return 0
16530  *     if ob[0] == MPI_COMM_SELF  : return 0
16531  *     if ob[0] == MPI_COMM_WORLD : return 0             # <<<<<<<<<<<<<<
16532  *     if not mpi_active()        : return 0
16533  *     #
16534  */
16535   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_COMM_WORLD);
16536   if (__pyx_t_1) {
16537     __pyx_r = 0;
16538     goto __pyx_L0;
16539     goto __pyx_L6;
16540   }
16541   __pyx_L6:;
16542 
16543   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":190
16544  *     if ob[0] == MPI_COMM_SELF  : return 0
16545  *     if ob[0] == MPI_COMM_WORLD : return 0
16546  *     if not mpi_active()        : return 0             # <<<<<<<<<<<<<<
16547  *     #
16548  *     return MPI_Comm_free(ob)
16549  */
16550   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
16551   if (__pyx_t_1) {
16552     __pyx_r = 0;
16553     goto __pyx_L0;
16554     goto __pyx_L7;
16555   }
16556   __pyx_L7:;
16557 
16558   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":192
16559  *     if not mpi_active()        : return 0
16560  *     #
16561  *     return MPI_Comm_free(ob)             # <<<<<<<<<<<<<<
16562  *
16563  * #------------------------------------------------------------------------------
16564  */
16565   __pyx_r = MPI_Comm_free(__pyx_v_ob);
16566   goto __pyx_L0;
16567 
16568   __pyx_r = 0;
16569   __pyx_L0:;
16570   __Pyx_RefNannyFinishContext();
16571   return __pyx_r;
16572 }
16573 
16574 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":6
16575  *     int PyMPI_KEYVAL_WIN_MEMORY
16576  *
16577  * cdef void win_memory_decref(void *ob) with gil:             # <<<<<<<<<<<<<<
16578  *     Py_DECREF(<object>ob)
16579  *
16580  */
16581 
__pyx_f_6mpi4py_3MPI_win_memory_decref(void * __pyx_v_ob)16582 static void __pyx_f_6mpi4py_3MPI_win_memory_decref(void *__pyx_v_ob) {
16583   __Pyx_RefNannyDeclarations
16584   #ifdef WITH_THREAD
16585   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
16586   #endif
16587   __Pyx_RefNannySetupContext("win_memory_decref");
16588 
16589   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":7
16590  *
16591  * cdef void win_memory_decref(void *ob) with gil:
16592  *     Py_DECREF(<object>ob)             # <<<<<<<<<<<<<<
16593  *
16594  * @cython.callspec("PyMPIAPI")
16595  */
16596   Py_DECREF(((PyObject *)__pyx_v_ob));
16597 
16598   __Pyx_RefNannyFinishContext();
16599   #ifdef WITH_THREAD
16600   PyGILState_Release(__pyx_gilstate_save);
16601   #endif
16602 }
16603 
16604 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":10
16605  *
16606  * @cython.callspec("PyMPIAPI")
16607  * cdef int win_memory_del(MPI_Win w, int k, void *v, void *xs) nogil:             # <<<<<<<<<<<<<<
16608  *     if  v != NULL:
16609  *         if Py_IsInitialized():
16610  */
16611 
__pyx_f_6mpi4py_3MPI_win_memory_del(MPI_Win __pyx_v_w,int __pyx_v_k,void * __pyx_v_v,void * __pyx_v_xs)16612 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_memory_del(MPI_Win __pyx_v_w, int __pyx_v_k, void *__pyx_v_v, void *__pyx_v_xs) {
16613   int __pyx_r;
16614   int __pyx_t_1;
16615   int __pyx_t_2;
16616 
16617   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":11
16618  * @cython.callspec("PyMPIAPI")
16619  * cdef int win_memory_del(MPI_Win w, int k, void *v, void *xs) nogil:
16620  *     if  v != NULL:             # <<<<<<<<<<<<<<
16621  *         if Py_IsInitialized():
16622  *             win_memory_decref(v)
16623  */
16624   __pyx_t_1 = (__pyx_v_v != NULL);
16625   if (__pyx_t_1) {
16626 
16627     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":12
16628  * cdef int win_memory_del(MPI_Win w, int k, void *v, void *xs) nogil:
16629  *     if  v != NULL:
16630  *         if Py_IsInitialized():             # <<<<<<<<<<<<<<
16631  *             win_memory_decref(v)
16632  *     return MPI_SUCCESS
16633  */
16634     __pyx_t_2 = Py_IsInitialized();
16635     if (__pyx_t_2) {
16636 
16637       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":13
16638  *     if  v != NULL:
16639  *         if Py_IsInitialized():
16640  *             win_memory_decref(v)             # <<<<<<<<<<<<<<
16641  *     return MPI_SUCCESS
16642  *
16643  */
16644       __pyx_f_6mpi4py_3MPI_win_memory_decref(__pyx_v_v);
16645       goto __pyx_L4;
16646     }
16647     __pyx_L4:;
16648     goto __pyx_L3;
16649   }
16650   __pyx_L3:;
16651 
16652   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":14
16653  *         if Py_IsInitialized():
16654  *             win_memory_decref(v)
16655  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
16656  *
16657  * cdef int PyMPI_Win_setup(MPI_Win win, object memory):
16658  */
16659   __pyx_r = MPI_SUCCESS;
16660   goto __pyx_L0;
16661 
16662   __pyx_r = 0;
16663   __pyx_L0:;
16664   return __pyx_r;
16665 }
16666 
16667 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":16
16668  *     return MPI_SUCCESS
16669  *
16670  * cdef int PyMPI_Win_setup(MPI_Win win, object memory):             # <<<<<<<<<<<<<<
16671  *     cdef int ierr = MPI_SUCCESS
16672  *     # hold a reference to memory
16673  */
16674 
__pyx_f_6mpi4py_3MPI_PyMPI_Win_setup(MPI_Win __pyx_v_win,PyObject * __pyx_v_memory)16675 static int __pyx_f_6mpi4py_3MPI_PyMPI_Win_setup(MPI_Win __pyx_v_win, PyObject *__pyx_v_memory) {
16676   int __pyx_v_ierr;
16677   int __pyx_r;
16678   __Pyx_RefNannyDeclarations
16679   int __pyx_t_1;
16680   __Pyx_RefNannySetupContext("PyMPI_Win_setup");
16681 
16682   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":17
16683  *
16684  * cdef int PyMPI_Win_setup(MPI_Win win, object memory):
16685  *     cdef int ierr = MPI_SUCCESS             # <<<<<<<<<<<<<<
16686  *     # hold a reference to memory
16687  *     global PyMPI_KEYVAL_WIN_MEMORY
16688  */
16689   __pyx_v_ierr = MPI_SUCCESS;
16690 
16691   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":20
16692  *     # hold a reference to memory
16693  *     global PyMPI_KEYVAL_WIN_MEMORY
16694  *     if memory is not None:             # <<<<<<<<<<<<<<
16695  *         if PyMPI_KEYVAL_WIN_MEMORY == MPI_KEYVAL_INVALID:
16696  *             ierr = MPI_Win_create_keyval(MPI_WIN_NULL_COPY_FN, win_memory_del,
16697  */
16698   __pyx_t_1 = (__pyx_v_memory != Py_None);
16699   if (__pyx_t_1) {
16700 
16701     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":21
16702  *     global PyMPI_KEYVAL_WIN_MEMORY
16703  *     if memory is not None:
16704  *         if PyMPI_KEYVAL_WIN_MEMORY == MPI_KEYVAL_INVALID:             # <<<<<<<<<<<<<<
16705  *             ierr = MPI_Win_create_keyval(MPI_WIN_NULL_COPY_FN, win_memory_del,
16706  *                                          &PyMPI_KEYVAL_WIN_MEMORY, NULL)
16707  */
16708     __pyx_t_1 = (PyMPI_KEYVAL_WIN_MEMORY == MPI_KEYVAL_INVALID);
16709     if (__pyx_t_1) {
16710 
16711       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":23
16712  *         if PyMPI_KEYVAL_WIN_MEMORY == MPI_KEYVAL_INVALID:
16713  *             ierr = MPI_Win_create_keyval(MPI_WIN_NULL_COPY_FN, win_memory_del,
16714  *                                          &PyMPI_KEYVAL_WIN_MEMORY, NULL)             # <<<<<<<<<<<<<<
16715  *             if ierr: return ierr
16716  *         ierr = MPI_Win_set_attr(win, PyMPI_KEYVAL_WIN_MEMORY, <void*>memory)
16717  */
16718       __pyx_v_ierr = MPI_Win_create_keyval(MPI_WIN_NULL_COPY_FN, __pyx_f_6mpi4py_3MPI_win_memory_del, (&PyMPI_KEYVAL_WIN_MEMORY), NULL);
16719 
16720       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":24
16721  *             ierr = MPI_Win_create_keyval(MPI_WIN_NULL_COPY_FN, win_memory_del,
16722  *                                          &PyMPI_KEYVAL_WIN_MEMORY, NULL)
16723  *             if ierr: return ierr             # <<<<<<<<<<<<<<
16724  *         ierr = MPI_Win_set_attr(win, PyMPI_KEYVAL_WIN_MEMORY, <void*>memory)
16725  *         if ierr: return ierr
16726  */
16727       if (__pyx_v_ierr) {
16728         __pyx_r = __pyx_v_ierr;
16729         goto __pyx_L0;
16730         goto __pyx_L5;
16731       }
16732       __pyx_L5:;
16733       goto __pyx_L4;
16734     }
16735     __pyx_L4:;
16736 
16737     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":25
16738  *                                          &PyMPI_KEYVAL_WIN_MEMORY, NULL)
16739  *             if ierr: return ierr
16740  *         ierr = MPI_Win_set_attr(win, PyMPI_KEYVAL_WIN_MEMORY, <void*>memory)             # <<<<<<<<<<<<<<
16741  *         if ierr: return ierr
16742  *         Py_INCREF(memory)
16743  */
16744     __pyx_v_ierr = MPI_Win_set_attr(__pyx_v_win, PyMPI_KEYVAL_WIN_MEMORY, ((void *)__pyx_v_memory));
16745 
16746     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":26
16747  *             if ierr: return ierr
16748  *         ierr = MPI_Win_set_attr(win, PyMPI_KEYVAL_WIN_MEMORY, <void*>memory)
16749  *         if ierr: return ierr             # <<<<<<<<<<<<<<
16750  *         Py_INCREF(memory)
16751  *     #
16752  */
16753     if (__pyx_v_ierr) {
16754       __pyx_r = __pyx_v_ierr;
16755       goto __pyx_L0;
16756       goto __pyx_L6;
16757     }
16758     __pyx_L6:;
16759 
16760     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":27
16761  *         ierr = MPI_Win_set_attr(win, PyMPI_KEYVAL_WIN_MEMORY, <void*>memory)
16762  *         if ierr: return ierr
16763  *         Py_INCREF(memory)             # <<<<<<<<<<<<<<
16764  *     #
16765  *     return MPI_SUCCESS
16766  */
16767     Py_INCREF(__pyx_v_memory);
16768     goto __pyx_L3;
16769   }
16770   __pyx_L3:;
16771 
16772   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":29
16773  *         Py_INCREF(memory)
16774  *     #
16775  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
16776  *
16777  * # -----------------------------------------------------------------------------
16778  */
16779   __pyx_r = MPI_SUCCESS;
16780   goto __pyx_L0;
16781 
16782   __pyx_r = 0;
16783   __pyx_L0:;
16784   __Pyx_RefNannyFinishContext();
16785   return __pyx_r;
16786 }
16787 
16788 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":35
16789  * cdef dict win_keyval = {}
16790  *
16791  * cdef inline int win_keyval_new(int keyval,             # <<<<<<<<<<<<<<
16792  *                                object copy_fn,object delete_fn) except -1:
16793  *     win_keyval[keyval] = (copy_fn, delete_fn)
16794  */
16795 
__pyx_f_6mpi4py_3MPI_win_keyval_new(int __pyx_v_keyval,PyObject * __pyx_v_copy_fn,PyObject * __pyx_v_delete_fn)16796 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_keyval_new(int __pyx_v_keyval, PyObject *__pyx_v_copy_fn, PyObject *__pyx_v_delete_fn) {
16797   int __pyx_r;
16798   __Pyx_RefNannyDeclarations
16799   PyObject *__pyx_t_1 = NULL;
16800   int __pyx_lineno = 0;
16801   const char *__pyx_filename = NULL;
16802   int __pyx_clineno = 0;
16803   __Pyx_RefNannySetupContext("win_keyval_new");
16804 
16805   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":37
16806  * cdef inline int win_keyval_new(int keyval,
16807  *                                object copy_fn,object delete_fn) except -1:
16808  *     win_keyval[keyval] = (copy_fn, delete_fn)             # <<<<<<<<<<<<<<
16809  *     return 0
16810  *
16811  */
16812   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16813   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
16814   __Pyx_INCREF(__pyx_v_copy_fn);
16815   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_copy_fn);
16816   __Pyx_GIVEREF(__pyx_v_copy_fn);
16817   __Pyx_INCREF(__pyx_v_delete_fn);
16818   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_delete_fn);
16819   __Pyx_GIVEREF(__pyx_v_delete_fn);
16820   if (__Pyx_SetItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_v_keyval, ((PyObject *)__pyx_t_1), sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16821   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
16822 
16823   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":38
16824  *                                object copy_fn,object delete_fn) except -1:
16825  *     win_keyval[keyval] = (copy_fn, delete_fn)
16826  *     return 0             # <<<<<<<<<<<<<<
16827  *
16828  * cdef inline int win_keyval_del(int keyval) except -1:
16829  */
16830   __pyx_r = 0;
16831   goto __pyx_L0;
16832 
16833   __pyx_r = 0;
16834   goto __pyx_L0;
16835   __pyx_L1_error:;
16836   __Pyx_XDECREF(__pyx_t_1);
16837   __Pyx_AddTraceback("mpi4py.MPI.win_keyval_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
16838   __pyx_r = -1;
16839   __pyx_L0:;
16840   __Pyx_RefNannyFinishContext();
16841   return __pyx_r;
16842 }
16843 
16844 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":40
16845  *     return 0
16846  *
16847  * cdef inline int win_keyval_del(int keyval) except -1:             # <<<<<<<<<<<<<<
16848  *     try: del win_keyval[keyval]
16849  *     except KeyError: pass
16850  */
16851 
__pyx_f_6mpi4py_3MPI_win_keyval_del(int __pyx_v_keyval)16852 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_keyval_del(int __pyx_v_keyval) {
16853   int __pyx_r;
16854   __Pyx_RefNannyDeclarations
16855   PyObject *__pyx_t_1 = NULL;
16856   PyObject *__pyx_t_2 = NULL;
16857   PyObject *__pyx_t_3 = NULL;
16858   int __pyx_t_4;
16859   int __pyx_lineno = 0;
16860   const char *__pyx_filename = NULL;
16861   int __pyx_clineno = 0;
16862   __Pyx_RefNannySetupContext("win_keyval_del");
16863 
16864   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":41
16865  *
16866  * cdef inline int win_keyval_del(int keyval) except -1:
16867  *     try: del win_keyval[keyval]             # <<<<<<<<<<<<<<
16868  *     except KeyError: pass
16869  *     return 0
16870  */
16871   {
16872     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
16873     __Pyx_XGOTREF(__pyx_t_1);
16874     __Pyx_XGOTREF(__pyx_t_2);
16875     __Pyx_XGOTREF(__pyx_t_3);
16876     /*try:*/ {
16877       if (__Pyx_DelItemInt(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_v_keyval, sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
16878     }
16879     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
16880     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
16881     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16882     goto __pyx_L10_try_end;
16883     __pyx_L3_error:;
16884 
16885     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":42
16886  * cdef inline int win_keyval_del(int keyval) except -1:
16887  *     try: del win_keyval[keyval]
16888  *     except KeyError: pass             # <<<<<<<<<<<<<<
16889  *     return 0
16890  *
16891  */
16892     __pyx_t_4 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
16893     if (__pyx_t_4) {
16894       PyErr_Restore(0,0,0);
16895       goto __pyx_L4_exception_handled;
16896     }
16897     __Pyx_XGIVEREF(__pyx_t_1);
16898     __Pyx_XGIVEREF(__pyx_t_2);
16899     __Pyx_XGIVEREF(__pyx_t_3);
16900     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
16901     goto __pyx_L1_error;
16902     __pyx_L4_exception_handled:;
16903     __Pyx_XGIVEREF(__pyx_t_1);
16904     __Pyx_XGIVEREF(__pyx_t_2);
16905     __Pyx_XGIVEREF(__pyx_t_3);
16906     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
16907     __pyx_L10_try_end:;
16908   }
16909 
16910   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":43
16911  *     try: del win_keyval[keyval]
16912  *     except KeyError: pass
16913  *     return 0             # <<<<<<<<<<<<<<
16914  *
16915  * cdef inline int win_attr_copy(MPI_Win win,
16916  */
16917   __pyx_r = 0;
16918   goto __pyx_L0;
16919 
16920   __pyx_r = 0;
16921   goto __pyx_L0;
16922   __pyx_L1_error:;
16923   __Pyx_AddTraceback("mpi4py.MPI.win_keyval_del", __pyx_clineno, __pyx_lineno, __pyx_filename);
16924   __pyx_r = -1;
16925   __pyx_L0:;
16926   __Pyx_RefNannyFinishContext();
16927   return __pyx_r;
16928 }
16929 
16930 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":45
16931  *     return 0
16932  *
16933  * cdef inline int win_attr_copy(MPI_Win win,             # <<<<<<<<<<<<<<
16934  *                               int keyval,
16935  *                               void *extra_state,
16936  */
16937 
__pyx_f_6mpi4py_3MPI_win_attr_copy(MPI_Win __pyx_v_win,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)16938 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_attr_copy(MPI_Win __pyx_v_win, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
16939   PyObject *__pyx_v_entry = 0;
16940   PyObject *__pyx_v_copy_fn = 0;
16941   PyObject *__pyx_v_attrval = 0;
16942   void **__pyx_v_aptr;
16943   int __pyx_r;
16944   __Pyx_RefNannyDeclarations
16945   PyObject *__pyx_t_1 = NULL;
16946   PyObject *__pyx_t_2 = NULL;
16947   int __pyx_t_3;
16948   int __pyx_t_4;
16949   int __pyx_t_5;
16950   int __pyx_lineno = 0;
16951   const char *__pyx_filename = NULL;
16952   int __pyx_clineno = 0;
16953   __Pyx_RefNannySetupContext("win_attr_copy");
16954 
16955   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":51
16956  *                               void *attrval_out,
16957  *                               int *flag) except -1:
16958  *     cdef tuple entry = win_keyval.get(keyval)             # <<<<<<<<<<<<<<
16959  *     cdef object copy_fn = None
16960  *     if entry is not None: copy_fn = entry[0]
16961  */
16962   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval) == Py_None)) {
16963     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16964   }
16965   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16966   __Pyx_GOTREF(__pyx_t_1);
16967   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16968   __Pyx_GOTREF(__pyx_t_2);
16969   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16970   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16971   __pyx_v_entry = ((PyObject*)__pyx_t_2);
16972   __pyx_t_2 = 0;
16973 
16974   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":52
16975  *                               int *flag) except -1:
16976  *     cdef tuple entry = win_keyval.get(keyval)
16977  *     cdef object copy_fn = None             # <<<<<<<<<<<<<<
16978  *     if entry is not None: copy_fn = entry[0]
16979  *     if copy_fn is None or copy_fn is False:
16980  */
16981   __Pyx_INCREF(Py_None);
16982   __pyx_v_copy_fn = Py_None;
16983 
16984   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":53
16985  *     cdef tuple entry = win_keyval.get(keyval)
16986  *     cdef object copy_fn = None
16987  *     if entry is not None: copy_fn = entry[0]             # <<<<<<<<<<<<<<
16988  *     if copy_fn is None or copy_fn is False:
16989  *         flag[0] = 0
16990  */
16991   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
16992   if (__pyx_t_3) {
16993     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16994     __Pyx_GOTREF(__pyx_t_2);
16995     __Pyx_DECREF(__pyx_v_copy_fn);
16996     __pyx_v_copy_fn = __pyx_t_2;
16997     __pyx_t_2 = 0;
16998     goto __pyx_L3;
16999   }
17000   __pyx_L3:;
17001 
17002   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":54
17003  *     cdef object copy_fn = None
17004  *     if entry is not None: copy_fn = entry[0]
17005  *     if copy_fn is None or copy_fn is False:             # <<<<<<<<<<<<<<
17006  *         flag[0] = 0
17007  *         return 0
17008  */
17009   __pyx_t_3 = (__pyx_v_copy_fn == Py_None);
17010   if (!__pyx_t_3) {
17011     __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17012     __Pyx_GOTREF(__pyx_t_2);
17013     __pyx_t_4 = (__pyx_v_copy_fn == __pyx_t_2);
17014     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17015     __pyx_t_5 = __pyx_t_4;
17016   } else {
17017     __pyx_t_5 = __pyx_t_3;
17018   }
17019   if (__pyx_t_5) {
17020 
17021     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":55
17022  *     if entry is not None: copy_fn = entry[0]
17023  *     if copy_fn is None or copy_fn is False:
17024  *         flag[0] = 0             # <<<<<<<<<<<<<<
17025  *         return 0
17026  *     cdef object attrval = <object>attrval_in
17027  */
17028     (__pyx_v_flag[0]) = 0;
17029 
17030     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":56
17031  *     if copy_fn is None or copy_fn is False:
17032  *         flag[0] = 0
17033  *         return 0             # <<<<<<<<<<<<<<
17034  *     cdef object attrval = <object>attrval_in
17035  *     cdef void **aptr = <void **>attrval_out
17036  */
17037     __pyx_r = 0;
17038     goto __pyx_L0;
17039     goto __pyx_L4;
17040   }
17041   __pyx_L4:;
17042 
17043   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":57
17044  *         flag[0] = 0
17045  *         return 0
17046  *     cdef object attrval = <object>attrval_in             # <<<<<<<<<<<<<<
17047  *     cdef void **aptr = <void **>attrval_out
17048  *     if copy_fn is not True:
17049  */
17050   __Pyx_INCREF(((PyObject *)__pyx_v_attrval_in));
17051   __pyx_v_attrval = ((PyObject *)__pyx_v_attrval_in);
17052 
17053   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":58
17054  *         return 0
17055  *     cdef object attrval = <object>attrval_in
17056  *     cdef void **aptr = <void **>attrval_out             # <<<<<<<<<<<<<<
17057  *     if copy_fn is not True:
17058  *         attrval = copy_fn(attrval)
17059  */
17060   __pyx_v_aptr = ((void **)__pyx_v_attrval_out);
17061 
17062   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":59
17063  *     cdef object attrval = <object>attrval_in
17064  *     cdef void **aptr = <void **>attrval_out
17065  *     if copy_fn is not True:             # <<<<<<<<<<<<<<
17066  *         attrval = copy_fn(attrval)
17067  *     Py_INCREF(attrval)
17068  */
17069   __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17070   __Pyx_GOTREF(__pyx_t_2);
17071   __pyx_t_5 = (__pyx_v_copy_fn != __pyx_t_2);
17072   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17073   if (__pyx_t_5) {
17074 
17075     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":60
17076  *     cdef void **aptr = <void **>attrval_out
17077  *     if copy_fn is not True:
17078  *         attrval = copy_fn(attrval)             # <<<<<<<<<<<<<<
17079  *     Py_INCREF(attrval)
17080  *     aptr[0] = <void*>attrval
17081  */
17082     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17083     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
17084     __Pyx_INCREF(__pyx_v_attrval);
17085     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attrval);
17086     __Pyx_GIVEREF(__pyx_v_attrval);
17087     __pyx_t_1 = PyObject_Call(__pyx_v_copy_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17088     __Pyx_GOTREF(__pyx_t_1);
17089     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
17090     __Pyx_DECREF(__pyx_v_attrval);
17091     __pyx_v_attrval = __pyx_t_1;
17092     __pyx_t_1 = 0;
17093     goto __pyx_L5;
17094   }
17095   __pyx_L5:;
17096 
17097   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":61
17098  *     if copy_fn is not True:
17099  *         attrval = copy_fn(attrval)
17100  *     Py_INCREF(attrval)             # <<<<<<<<<<<<<<
17101  *     aptr[0] = <void*>attrval
17102  *     flag[0] = 1
17103  */
17104   Py_INCREF(__pyx_v_attrval);
17105 
17106   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":62
17107  *         attrval = copy_fn(attrval)
17108  *     Py_INCREF(attrval)
17109  *     aptr[0] = <void*>attrval             # <<<<<<<<<<<<<<
17110  *     flag[0] = 1
17111  *     return 0
17112  */
17113   (__pyx_v_aptr[0]) = ((void *)__pyx_v_attrval);
17114 
17115   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":63
17116  *     Py_INCREF(attrval)
17117  *     aptr[0] = <void*>attrval
17118  *     flag[0] = 1             # <<<<<<<<<<<<<<
17119  *     return 0
17120  *
17121  */
17122   (__pyx_v_flag[0]) = 1;
17123 
17124   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":64
17125  *     aptr[0] = <void*>attrval
17126  *     flag[0] = 1
17127  *     return 0             # <<<<<<<<<<<<<<
17128  *
17129  * cdef inline int win_attr_delete(MPI_Win win,
17130  */
17131   __pyx_r = 0;
17132   goto __pyx_L0;
17133 
17134   __pyx_r = 0;
17135   goto __pyx_L0;
17136   __pyx_L1_error:;
17137   __Pyx_XDECREF(__pyx_t_1);
17138   __Pyx_XDECREF(__pyx_t_2);
17139   __Pyx_AddTraceback("mpi4py.MPI.win_attr_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
17140   __pyx_r = -1;
17141   __pyx_L0:;
17142   __Pyx_XDECREF(__pyx_v_entry);
17143   __Pyx_XDECREF(__pyx_v_copy_fn);
17144   __Pyx_XDECREF(__pyx_v_attrval);
17145   __Pyx_RefNannyFinishContext();
17146   return __pyx_r;
17147 }
17148 
17149 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":66
17150  *     return 0
17151  *
17152  * cdef inline int win_attr_delete(MPI_Win win,             # <<<<<<<<<<<<<<
17153  *                                 int keyval,
17154  *                                 void *attrval,
17155  */
17156 
__pyx_f_6mpi4py_3MPI_win_attr_delete(MPI_Win __pyx_v_win,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)17157 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_win_attr_delete(MPI_Win __pyx_v_win, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
17158   PyObject *__pyx_v_entry = 0;
17159   PyObject *__pyx_v_delete_fn = 0;
17160   int __pyx_r;
17161   __Pyx_RefNannyDeclarations
17162   PyObject *__pyx_t_1 = NULL;
17163   PyObject *__pyx_t_2 = NULL;
17164   int __pyx_t_3;
17165   int __pyx_lineno = 0;
17166   const char *__pyx_filename = NULL;
17167   int __pyx_clineno = 0;
17168   __Pyx_RefNannySetupContext("win_attr_delete");
17169 
17170   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":70
17171  *                                 void *attrval,
17172  *                                 void *extra_state) except -1:
17173  *     cdef tuple entry = win_keyval.get(keyval)             # <<<<<<<<<<<<<<
17174  *     cdef object delete_fn = None
17175  *     if entry is not None: delete_fn = entry[1]
17176  */
17177   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval) == Py_None)) {
17178     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); {__pyx_filename = __pyx_f[14]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17179   }
17180   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17181   __Pyx_GOTREF(__pyx_t_1);
17182   __pyx_t_2 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17183   __Pyx_GOTREF(__pyx_t_2);
17184   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17185   if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17186   __pyx_v_entry = ((PyObject*)__pyx_t_2);
17187   __pyx_t_2 = 0;
17188 
17189   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":71
17190  *                                 void *extra_state) except -1:
17191  *     cdef tuple entry = win_keyval.get(keyval)
17192  *     cdef object delete_fn = None             # <<<<<<<<<<<<<<
17193  *     if entry is not None: delete_fn = entry[1]
17194  *     if delete_fn is not None:
17195  */
17196   __Pyx_INCREF(Py_None);
17197   __pyx_v_delete_fn = Py_None;
17198 
17199   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":72
17200  *     cdef tuple entry = win_keyval.get(keyval)
17201  *     cdef object delete_fn = None
17202  *     if entry is not None: delete_fn = entry[1]             # <<<<<<<<<<<<<<
17203  *     if delete_fn is not None:
17204  *         delete_fn(<object>attrval)
17205  */
17206   __pyx_t_3 = (__pyx_v_entry != ((PyObject*)Py_None));
17207   if (__pyx_t_3) {
17208     __pyx_t_2 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_entry), 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17209     __Pyx_GOTREF(__pyx_t_2);
17210     __Pyx_DECREF(__pyx_v_delete_fn);
17211     __pyx_v_delete_fn = __pyx_t_2;
17212     __pyx_t_2 = 0;
17213     goto __pyx_L3;
17214   }
17215   __pyx_L3:;
17216 
17217   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":73
17218  *     cdef object delete_fn = None
17219  *     if entry is not None: delete_fn = entry[1]
17220  *     if delete_fn is not None:             # <<<<<<<<<<<<<<
17221  *         delete_fn(<object>attrval)
17222  *     Py_DECREF(<object>attrval)
17223  */
17224   __pyx_t_3 = (__pyx_v_delete_fn != Py_None);
17225   if (__pyx_t_3) {
17226 
17227     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":74
17228  *     if entry is not None: delete_fn = entry[1]
17229  *     if delete_fn is not None:
17230  *         delete_fn(<object>attrval)             # <<<<<<<<<<<<<<
17231  *     Py_DECREF(<object>attrval)
17232  *     return 0
17233  */
17234     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17235     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
17236     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
17237     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_attrval));
17238     __Pyx_GIVEREF(((PyObject *)__pyx_v_attrval));
17239     __pyx_t_1 = PyObject_Call(__pyx_v_delete_fn, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17240     __Pyx_GOTREF(__pyx_t_1);
17241     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
17242     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17243     goto __pyx_L4;
17244   }
17245   __pyx_L4:;
17246 
17247   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":75
17248  *     if delete_fn is not None:
17249  *         delete_fn(<object>attrval)
17250  *     Py_DECREF(<object>attrval)             # <<<<<<<<<<<<<<
17251  *     return 0
17252  *
17253  */
17254   Py_DECREF(((PyObject *)__pyx_v_attrval));
17255 
17256   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":76
17257  *         delete_fn(<object>attrval)
17258  *     Py_DECREF(<object>attrval)
17259  *     return 0             # <<<<<<<<<<<<<<
17260  *
17261  * @cython.callspec("PyMPIAPI")
17262  */
17263   __pyx_r = 0;
17264   goto __pyx_L0;
17265 
17266   __pyx_r = 0;
17267   goto __pyx_L0;
17268   __pyx_L1_error:;
17269   __Pyx_XDECREF(__pyx_t_1);
17270   __Pyx_XDECREF(__pyx_t_2);
17271   __Pyx_AddTraceback("mpi4py.MPI.win_attr_delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
17272   __pyx_r = -1;
17273   __pyx_L0:;
17274   __Pyx_XDECREF(__pyx_v_entry);
17275   __Pyx_XDECREF(__pyx_v_delete_fn);
17276   __Pyx_RefNannyFinishContext();
17277   return __pyx_r;
17278 }
17279 
17280 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":79
17281  *
17282  * @cython.callspec("PyMPIAPI")
17283  * cdef int win_attr_copy_fn(MPI_Win win,             # <<<<<<<<<<<<<<
17284  *                            int keyval,
17285  *                            void *extra_state,
17286  */
17287 
__pyx_f_6mpi4py_3MPI_win_attr_copy_fn(MPI_Win __pyx_v_win,int __pyx_v_keyval,void * __pyx_v_extra_state,void * __pyx_v_attrval_in,void * __pyx_v_attrval_out,int * __pyx_v_flag)17288 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_attr_copy_fn(MPI_Win __pyx_v_win, int __pyx_v_keyval, void *__pyx_v_extra_state, void *__pyx_v_attrval_in, void *__pyx_v_attrval_out, int *__pyx_v_flag) {
17289   PyObject *__pyx_v_exc = 0;
17290   int __pyx_r;
17291   __Pyx_RefNannyDeclarations
17292   int __pyx_t_1;
17293   PyObject *__pyx_t_2 = NULL;
17294   PyObject *__pyx_t_3 = NULL;
17295   PyObject *__pyx_t_4 = NULL;
17296   int __pyx_t_5;
17297   PyObject *__pyx_t_6 = NULL;
17298   PyObject *__pyx_t_7 = NULL;
17299   PyObject *__pyx_t_8 = NULL;
17300   PyObject *__pyx_t_9 = NULL;
17301   PyObject *__pyx_t_10 = NULL;
17302   int __pyx_lineno = 0;
17303   const char *__pyx_filename = NULL;
17304   int __pyx_clineno = 0;
17305   #ifdef WITH_THREAD
17306   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
17307   #endif
17308   __Pyx_RefNannySetupContext("win_attr_copy_fn");
17309 
17310   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":85
17311  *                            void *attrval_out,
17312  *                            int *flag) with gil:
17313  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
17314  *         return MPI_SUCCESS
17315  *     if attrval_in == NULL:
17316  */
17317   __pyx_t_1 = (!Py_IsInitialized());
17318   if (__pyx_t_1) {
17319 
17320     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":86
17321  *                            int *flag) with gil:
17322  *     if not Py_IsInitialized():
17323  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
17324  *     if attrval_in == NULL:
17325  *         return MPI_ERR_INTERN
17326  */
17327     __pyx_r = MPI_SUCCESS;
17328     goto __pyx_L0;
17329     goto __pyx_L3;
17330   }
17331   __pyx_L3:;
17332 
17333   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":87
17334  *     if not Py_IsInitialized():
17335  *         return MPI_SUCCESS
17336  *     if attrval_in == NULL:             # <<<<<<<<<<<<<<
17337  *         return MPI_ERR_INTERN
17338  *     if attrval_out == NULL:
17339  */
17340   __pyx_t_1 = (__pyx_v_attrval_in == NULL);
17341   if (__pyx_t_1) {
17342 
17343     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":88
17344  *         return MPI_SUCCESS
17345  *     if attrval_in == NULL:
17346  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
17347  *     if attrval_out == NULL:
17348  *         return MPI_ERR_INTERN
17349  */
17350     __pyx_r = MPI_ERR_INTERN;
17351     goto __pyx_L0;
17352     goto __pyx_L4;
17353   }
17354   __pyx_L4:;
17355 
17356   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":89
17357  *     if attrval_in == NULL:
17358  *         return MPI_ERR_INTERN
17359  *     if attrval_out == NULL:             # <<<<<<<<<<<<<<
17360  *         return MPI_ERR_INTERN
17361  *     cdef object exc
17362  */
17363   __pyx_t_1 = (__pyx_v_attrval_out == NULL);
17364   if (__pyx_t_1) {
17365 
17366     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":90
17367  *         return MPI_ERR_INTERN
17368  *     if attrval_out == NULL:
17369  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
17370  *     cdef object exc
17371  *     try:
17372  */
17373     __pyx_r = MPI_ERR_INTERN;
17374     goto __pyx_L0;
17375     goto __pyx_L5;
17376   }
17377   __pyx_L5:;
17378 
17379   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":92
17380  *         return MPI_ERR_INTERN
17381  *     cdef object exc
17382  *     try:             # <<<<<<<<<<<<<<
17383  *         win_attr_copy(win, keyval, extra_state,
17384  *                        attrval_in, attrval_out, flag)
17385  */
17386   {
17387     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
17388     __Pyx_XGOTREF(__pyx_t_2);
17389     __Pyx_XGOTREF(__pyx_t_3);
17390     __Pyx_XGOTREF(__pyx_t_4);
17391     /*try:*/ {
17392 
17393       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":94
17394  *     try:
17395  *         win_attr_copy(win, keyval, extra_state,
17396  *                        attrval_in, attrval_out, flag)             # <<<<<<<<<<<<<<
17397  *     except MPIException, exc:
17398  *         print_traceback()
17399  */
17400       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_win_attr_copy(__pyx_v_win, __pyx_v_keyval, __pyx_v_extra_state, __pyx_v_attrval_in, __pyx_v_attrval_out, __pyx_v_flag); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
17401     }
17402     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17403     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17404     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
17405     goto __pyx_L13_try_end;
17406     __pyx_L6_error:;
17407 
17408     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":95
17409  *         win_attr_copy(win, keyval, extra_state,
17410  *                        attrval_in, attrval_out, flag)
17411  *     except MPIException, exc:             # <<<<<<<<<<<<<<
17412  *         print_traceback()
17413  *         return exc.Get_error_code()
17414  */
17415     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
17416     if (__pyx_t_5) {
17417       __Pyx_AddTraceback("mpi4py.MPI.win_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17418       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
17419       __Pyx_GOTREF(__pyx_t_6);
17420       __Pyx_GOTREF(__pyx_t_7);
17421       __Pyx_GOTREF(__pyx_t_8);
17422       __Pyx_INCREF(__pyx_t_7);
17423       __pyx_v_exc = __pyx_t_7;
17424 
17425       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":96
17426  *                        attrval_in, attrval_out, flag)
17427  *     except MPIException, exc:
17428  *         print_traceback()             # <<<<<<<<<<<<<<
17429  *         return exc.Get_error_code()
17430  *     except:
17431  */
17432       __pyx_f_6mpi4py_3MPI_print_traceback();
17433 
17434       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":97
17435  *     except MPIException, exc:
17436  *         print_traceback()
17437  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
17438  *     except:
17439  *         print_traceback()
17440  */
17441       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
17442       __Pyx_GOTREF(__pyx_t_9);
17443       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
17444       __Pyx_GOTREF(__pyx_t_10);
17445       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
17446       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
17447       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
17448       __pyx_r = __pyx_t_5;
17449       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17450       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17451       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17452       goto __pyx_L9_except_return;
17453       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17454       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17455       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17456       goto __pyx_L7_exception_handled;
17457     }
17458 
17459     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":98
17460  *         print_traceback()
17461  *         return exc.Get_error_code()
17462  *     except:             # <<<<<<<<<<<<<<
17463  *         print_traceback()
17464  *         return MPI_ERR_OTHER
17465  */
17466     /*except:*/ {
17467       __Pyx_AddTraceback("mpi4py.MPI.win_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17468       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
17469       __Pyx_GOTREF(__pyx_t_8);
17470       __Pyx_GOTREF(__pyx_t_7);
17471       __Pyx_GOTREF(__pyx_t_6);
17472 
17473       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":99
17474  *         return exc.Get_error_code()
17475  *     except:
17476  *         print_traceback()             # <<<<<<<<<<<<<<
17477  *         return MPI_ERR_OTHER
17478  *     return MPI_SUCCESS
17479  */
17480       __pyx_f_6mpi4py_3MPI_print_traceback();
17481 
17482       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":100
17483  *     except:
17484  *         print_traceback()
17485  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
17486  *     return MPI_SUCCESS
17487  *
17488  */
17489       __pyx_r = MPI_ERR_OTHER;
17490       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17491       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17492       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17493       goto __pyx_L9_except_return;
17494       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17495       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17496       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17497       goto __pyx_L7_exception_handled;
17498     }
17499     __pyx_L8_except_error:;
17500     __Pyx_XGIVEREF(__pyx_t_2);
17501     __Pyx_XGIVEREF(__pyx_t_3);
17502     __Pyx_XGIVEREF(__pyx_t_4);
17503     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17504     goto __pyx_L1_error;
17505     __pyx_L9_except_return:;
17506     __Pyx_XGIVEREF(__pyx_t_2);
17507     __Pyx_XGIVEREF(__pyx_t_3);
17508     __Pyx_XGIVEREF(__pyx_t_4);
17509     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17510     goto __pyx_L0;
17511     __pyx_L7_exception_handled:;
17512     __Pyx_XGIVEREF(__pyx_t_2);
17513     __Pyx_XGIVEREF(__pyx_t_3);
17514     __Pyx_XGIVEREF(__pyx_t_4);
17515     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17516     __pyx_L13_try_end:;
17517   }
17518 
17519   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":101
17520  *         print_traceback()
17521  *         return MPI_ERR_OTHER
17522  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
17523  *
17524  * @cython.callspec("PyMPIAPI")
17525  */
17526   __pyx_r = MPI_SUCCESS;
17527   goto __pyx_L0;
17528 
17529   __pyx_r = 0;
17530   goto __pyx_L0;
17531   __pyx_L1_error:;
17532   __Pyx_XDECREF(__pyx_t_6);
17533   __Pyx_XDECREF(__pyx_t_7);
17534   __Pyx_XDECREF(__pyx_t_8);
17535   __Pyx_XDECREF(__pyx_t_9);
17536   __Pyx_XDECREF(__pyx_t_10);
17537   __Pyx_WriteUnraisable("mpi4py.MPI.win_attr_copy_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17538   __pyx_r = 0;
17539   __pyx_L0:;
17540   __Pyx_XDECREF(__pyx_v_exc);
17541   __Pyx_RefNannyFinishContext();
17542   #ifdef WITH_THREAD
17543   PyGILState_Release(__pyx_gilstate_save);
17544   #endif
17545   return __pyx_r;
17546 }
17547 
17548 /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":104
17549  *
17550  * @cython.callspec("PyMPIAPI")
17551  * cdef int win_attr_delete_fn(MPI_Win win,             # <<<<<<<<<<<<<<
17552  *                              int keyval,
17553  *                              void *attrval,
17554  */
17555 
__pyx_f_6mpi4py_3MPI_win_attr_delete_fn(MPI_Win __pyx_v_win,int __pyx_v_keyval,void * __pyx_v_attrval,void * __pyx_v_extra_state)17556 static int PyMPIAPI __pyx_f_6mpi4py_3MPI_win_attr_delete_fn(MPI_Win __pyx_v_win, int __pyx_v_keyval, void *__pyx_v_attrval, void *__pyx_v_extra_state) {
17557   PyObject *__pyx_v_exc = 0;
17558   int __pyx_r;
17559   __Pyx_RefNannyDeclarations
17560   int __pyx_t_1;
17561   PyObject *__pyx_t_2 = NULL;
17562   PyObject *__pyx_t_3 = NULL;
17563   PyObject *__pyx_t_4 = NULL;
17564   int __pyx_t_5;
17565   PyObject *__pyx_t_6 = NULL;
17566   PyObject *__pyx_t_7 = NULL;
17567   PyObject *__pyx_t_8 = NULL;
17568   PyObject *__pyx_t_9 = NULL;
17569   PyObject *__pyx_t_10 = NULL;
17570   int __pyx_lineno = 0;
17571   const char *__pyx_filename = NULL;
17572   int __pyx_clineno = 0;
17573   #ifdef WITH_THREAD
17574   PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
17575   #endif
17576   __Pyx_RefNannySetupContext("win_attr_delete_fn");
17577 
17578   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":108
17579  *                              void *attrval,
17580  *                              void *extra_state) with gil:
17581  *     if not Py_IsInitialized():             # <<<<<<<<<<<<<<
17582  *         return MPI_SUCCESS
17583  *     if attrval == NULL:
17584  */
17585   __pyx_t_1 = (!Py_IsInitialized());
17586   if (__pyx_t_1) {
17587 
17588     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":109
17589  *                              void *extra_state) with gil:
17590  *     if not Py_IsInitialized():
17591  *         return MPI_SUCCESS             # <<<<<<<<<<<<<<
17592  *     if attrval == NULL:
17593  *         return MPI_ERR_INTERN
17594  */
17595     __pyx_r = MPI_SUCCESS;
17596     goto __pyx_L0;
17597     goto __pyx_L3;
17598   }
17599   __pyx_L3:;
17600 
17601   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":110
17602  *     if not Py_IsInitialized():
17603  *         return MPI_SUCCESS
17604  *     if attrval == NULL:             # <<<<<<<<<<<<<<
17605  *         return MPI_ERR_INTERN
17606  *     cdef object exc
17607  */
17608   __pyx_t_1 = (__pyx_v_attrval == NULL);
17609   if (__pyx_t_1) {
17610 
17611     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":111
17612  *         return MPI_SUCCESS
17613  *     if attrval == NULL:
17614  *         return MPI_ERR_INTERN             # <<<<<<<<<<<<<<
17615  *     cdef object exc
17616  *     try:
17617  */
17618     __pyx_r = MPI_ERR_INTERN;
17619     goto __pyx_L0;
17620     goto __pyx_L4;
17621   }
17622   __pyx_L4:;
17623 
17624   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":113
17625  *         return MPI_ERR_INTERN
17626  *     cdef object exc
17627  *     try:             # <<<<<<<<<<<<<<
17628  *         win_attr_delete(win, keyval, attrval, extra_state)
17629  *     except MPIException, exc:
17630  */
17631   {
17632     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
17633     __Pyx_XGOTREF(__pyx_t_2);
17634     __Pyx_XGOTREF(__pyx_t_3);
17635     __Pyx_XGOTREF(__pyx_t_4);
17636     /*try:*/ {
17637 
17638       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":114
17639  *     cdef object exc
17640  *     try:
17641  *         win_attr_delete(win, keyval, attrval, extra_state)             # <<<<<<<<<<<<<<
17642  *     except MPIException, exc:
17643  *         print_traceback()
17644  */
17645       __pyx_t_5 = __pyx_f_6mpi4py_3MPI_win_attr_delete(__pyx_v_win, __pyx_v_keyval, __pyx_v_attrval, __pyx_v_extra_state); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
17646     }
17647     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
17648     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17649     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
17650     goto __pyx_L12_try_end;
17651     __pyx_L5_error:;
17652 
17653     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":115
17654  *     try:
17655  *         win_attr_delete(win, keyval, attrval, extra_state)
17656  *     except MPIException, exc:             # <<<<<<<<<<<<<<
17657  *         print_traceback()
17658  *         return exc.Get_error_code()
17659  */
17660     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_v_6mpi4py_3MPI_MPIException);
17661     if (__pyx_t_5) {
17662       __Pyx_AddTraceback("mpi4py.MPI.win_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17663       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
17664       __Pyx_GOTREF(__pyx_t_6);
17665       __Pyx_GOTREF(__pyx_t_7);
17666       __Pyx_GOTREF(__pyx_t_8);
17667       __Pyx_INCREF(__pyx_t_7);
17668       __pyx_v_exc = __pyx_t_7;
17669 
17670       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":116
17671  *         win_attr_delete(win, keyval, attrval, extra_state)
17672  *     except MPIException, exc:
17673  *         print_traceback()             # <<<<<<<<<<<<<<
17674  *         return exc.Get_error_code()
17675  *     except:
17676  */
17677       __pyx_f_6mpi4py_3MPI_print_traceback();
17678 
17679       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":117
17680  *     except MPIException, exc:
17681  *         print_traceback()
17682  *         return exc.Get_error_code()             # <<<<<<<<<<<<<<
17683  *     except:
17684  *         print_traceback()
17685  */
17686       __pyx_t_9 = PyObject_GetAttr(__pyx_v_exc, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
17687       __Pyx_GOTREF(__pyx_t_9);
17688       __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
17689       __Pyx_GOTREF(__pyx_t_10);
17690       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
17691       __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
17692       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
17693       __pyx_r = __pyx_t_5;
17694       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17695       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17696       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17697       goto __pyx_L8_except_return;
17698       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17699       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17700       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17701       goto __pyx_L6_exception_handled;
17702     }
17703 
17704     /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":118
17705  *         print_traceback()
17706  *         return exc.Get_error_code()
17707  *     except:             # <<<<<<<<<<<<<<
17708  *         print_traceback()
17709  *         return MPI_ERR_OTHER
17710  */
17711     /*except:*/ {
17712       __Pyx_AddTraceback("mpi4py.MPI.win_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17713       if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
17714       __Pyx_GOTREF(__pyx_t_8);
17715       __Pyx_GOTREF(__pyx_t_7);
17716       __Pyx_GOTREF(__pyx_t_6);
17717 
17718       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":119
17719  *         return exc.Get_error_code()
17720  *     except:
17721  *         print_traceback()             # <<<<<<<<<<<<<<
17722  *         return MPI_ERR_OTHER
17723  *     return MPI_SUCCESS
17724  */
17725       __pyx_f_6mpi4py_3MPI_print_traceback();
17726 
17727       /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":120
17728  *     except:
17729  *         print_traceback()
17730  *         return MPI_ERR_OTHER             # <<<<<<<<<<<<<<
17731  *     return MPI_SUCCESS
17732  *
17733  */
17734       __pyx_r = MPI_ERR_OTHER;
17735       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17736       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17737       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17738       goto __pyx_L8_except_return;
17739       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17740       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17741       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17742       goto __pyx_L6_exception_handled;
17743     }
17744     __pyx_L7_except_error:;
17745     __Pyx_XGIVEREF(__pyx_t_2);
17746     __Pyx_XGIVEREF(__pyx_t_3);
17747     __Pyx_XGIVEREF(__pyx_t_4);
17748     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17749     goto __pyx_L1_error;
17750     __pyx_L8_except_return:;
17751     __Pyx_XGIVEREF(__pyx_t_2);
17752     __Pyx_XGIVEREF(__pyx_t_3);
17753     __Pyx_XGIVEREF(__pyx_t_4);
17754     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17755     goto __pyx_L0;
17756     __pyx_L6_exception_handled:;
17757     __Pyx_XGIVEREF(__pyx_t_2);
17758     __Pyx_XGIVEREF(__pyx_t_3);
17759     __Pyx_XGIVEREF(__pyx_t_4);
17760     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
17761     __pyx_L12_try_end:;
17762   }
17763 
17764   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":121
17765  *         print_traceback()
17766  *         return MPI_ERR_OTHER
17767  *     return MPI_SUCCESS             # <<<<<<<<<<<<<<
17768  *
17769  * # -----------------------------------------------------------------------------
17770  */
17771   __pyx_r = MPI_SUCCESS;
17772   goto __pyx_L0;
17773 
17774   __pyx_r = 0;
17775   goto __pyx_L0;
17776   __pyx_L1_error:;
17777   __Pyx_XDECREF(__pyx_t_6);
17778   __Pyx_XDECREF(__pyx_t_7);
17779   __Pyx_XDECREF(__pyx_t_8);
17780   __Pyx_XDECREF(__pyx_t_9);
17781   __Pyx_XDECREF(__pyx_t_10);
17782   __Pyx_WriteUnraisable("mpi4py.MPI.win_attr_delete_fn", __pyx_clineno, __pyx_lineno, __pyx_filename);
17783   __pyx_r = 0;
17784   __pyx_L0:;
17785   __Pyx_XDECREF(__pyx_v_exc);
17786   __Pyx_RefNannyFinishContext();
17787   #ifdef WITH_THREAD
17788   PyGILState_Release(__pyx_gilstate_save);
17789   #endif
17790   return __pyx_r;
17791 }
17792 
17793 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":199
17794  * include "winimpl.pxi"
17795  *
17796  * cdef inline Win new_Win(MPI_Win ob):             # <<<<<<<<<<<<<<
17797  *     cdef Win win = <Win>Win.__new__(Win)
17798  *     win.ob_mpi = ob
17799  */
17800 
__pyx_f_6mpi4py_3MPI_new_Win(MPI_Win __pyx_v_ob)17801 static CYTHON_INLINE struct PyMPIWinObject *__pyx_f_6mpi4py_3MPI_new_Win(MPI_Win __pyx_v_ob) {
17802   struct PyMPIWinObject *__pyx_v_win = 0;
17803   struct PyMPIWinObject *__pyx_r = NULL;
17804   __Pyx_RefNannyDeclarations
17805   PyObject *__pyx_t_1 = NULL;
17806   int __pyx_lineno = 0;
17807   const char *__pyx_filename = NULL;
17808   int __pyx_clineno = 0;
17809   __Pyx_RefNannySetupContext("new_Win");
17810 
17811   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":200
17812  *
17813  * cdef inline Win new_Win(MPI_Win ob):
17814  *     cdef Win win = <Win>Win.__new__(Win)             # <<<<<<<<<<<<<<
17815  *     win.ob_mpi = ob
17816  *     return win
17817  */
17818   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Win)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17819   __Pyx_GOTREF(__pyx_t_1);
17820   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_t_1)));
17821   __pyx_v_win = ((struct PyMPIWinObject *)__pyx_t_1);
17822   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17823 
17824   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":201
17825  * cdef inline Win new_Win(MPI_Win ob):
17826  *     cdef Win win = <Win>Win.__new__(Win)
17827  *     win.ob_mpi = ob             # <<<<<<<<<<<<<<
17828  *     return win
17829  *
17830  */
17831   __pyx_v_win->ob_mpi = __pyx_v_ob;
17832 
17833   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":202
17834  *     cdef Win win = <Win>Win.__new__(Win)
17835  *     win.ob_mpi = ob
17836  *     return win             # <<<<<<<<<<<<<<
17837  *
17838  * cdef inline int del_Win(MPI_Win* ob):
17839  */
17840   __Pyx_XDECREF(((PyObject *)__pyx_r));
17841   __Pyx_INCREF(((PyObject *)__pyx_v_win));
17842   __pyx_r = __pyx_v_win;
17843   goto __pyx_L0;
17844 
17845   __pyx_r = ((struct PyMPIWinObject *)Py_None); __Pyx_INCREF(Py_None);
17846   goto __pyx_L0;
17847   __pyx_L1_error:;
17848   __Pyx_XDECREF(__pyx_t_1);
17849   __Pyx_AddTraceback("mpi4py.MPI.new_Win", __pyx_clineno, __pyx_lineno, __pyx_filename);
17850   __pyx_r = 0;
17851   __pyx_L0:;
17852   __Pyx_XDECREF((PyObject *)__pyx_v_win);
17853   __Pyx_XGIVEREF((PyObject *)__pyx_r);
17854   __Pyx_RefNannyFinishContext();
17855   return __pyx_r;
17856 }
17857 
17858 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":204
17859  *     return win
17860  *
17861  * cdef inline int del_Win(MPI_Win* ob):             # <<<<<<<<<<<<<<
17862  *     #
17863  *     if ob    == NULL         : return 0
17864  */
17865 
__pyx_f_6mpi4py_3MPI_del_Win(MPI_Win * __pyx_v_ob)17866 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Win(MPI_Win *__pyx_v_ob) {
17867   int __pyx_r;
17868   __Pyx_RefNannyDeclarations
17869   int __pyx_t_1;
17870   __Pyx_RefNannySetupContext("del_Win");
17871 
17872   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":206
17873  * cdef inline int del_Win(MPI_Win* ob):
17874  *     #
17875  *     if ob    == NULL         : return 0             # <<<<<<<<<<<<<<
17876  *     if ob[0] == MPI_WIN_NULL : return 0
17877  *     if not mpi_active()      : return 0
17878  */
17879   __pyx_t_1 = (__pyx_v_ob == NULL);
17880   if (__pyx_t_1) {
17881     __pyx_r = 0;
17882     goto __pyx_L0;
17883     goto __pyx_L3;
17884   }
17885   __pyx_L3:;
17886 
17887   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":207
17888  *     #
17889  *     if ob    == NULL         : return 0
17890  *     if ob[0] == MPI_WIN_NULL : return 0             # <<<<<<<<<<<<<<
17891  *     if not mpi_active()      : return 0
17892  *     #
17893  */
17894   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_WIN_NULL);
17895   if (__pyx_t_1) {
17896     __pyx_r = 0;
17897     goto __pyx_L0;
17898     goto __pyx_L4;
17899   }
17900   __pyx_L4:;
17901 
17902   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":208
17903  *     if ob    == NULL         : return 0
17904  *     if ob[0] == MPI_WIN_NULL : return 0
17905  *     if not mpi_active()      : return 0             # <<<<<<<<<<<<<<
17906  *     #
17907  *     return MPI_Win_free(ob)
17908  */
17909   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
17910   if (__pyx_t_1) {
17911     __pyx_r = 0;
17912     goto __pyx_L0;
17913     goto __pyx_L5;
17914   }
17915   __pyx_L5:;
17916 
17917   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":210
17918  *     if not mpi_active()      : return 0
17919  *     #
17920  *     return MPI_Win_free(ob)             # <<<<<<<<<<<<<<
17921  *
17922  * #------------------------------------------------------------------------------
17923  */
17924   __pyx_r = MPI_Win_free(__pyx_v_ob);
17925   goto __pyx_L0;
17926 
17927   __pyx_r = 0;
17928   __pyx_L0:;
17929   __Pyx_RefNannyFinishContext();
17930   return __pyx_r;
17931 }
17932 
17933 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":215
17934  * # File
17935  *
17936  * cdef inline File new_File(MPI_File ob):             # <<<<<<<<<<<<<<
17937  *     cdef File file = <File>File.__new__(File)
17938  *     file.ob_mpi = ob
17939  */
17940 
__pyx_f_6mpi4py_3MPI_new_File(MPI_File __pyx_v_ob)17941 static CYTHON_INLINE struct PyMPIFileObject *__pyx_f_6mpi4py_3MPI_new_File(MPI_File __pyx_v_ob) {
17942   struct PyMPIFileObject *__pyx_v_file = 0;
17943   struct PyMPIFileObject *__pyx_r = NULL;
17944   __Pyx_RefNannyDeclarations
17945   PyObject *__pyx_t_1 = NULL;
17946   int __pyx_lineno = 0;
17947   const char *__pyx_filename = NULL;
17948   int __pyx_clineno = 0;
17949   __Pyx_RefNannySetupContext("new_File");
17950 
17951   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":216
17952  *
17953  * cdef inline File new_File(MPI_File ob):
17954  *     cdef File file = <File>File.__new__(File)             # <<<<<<<<<<<<<<
17955  *     file.ob_mpi = ob
17956  *     return file
17957  */
17958   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_File)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17959   __Pyx_GOTREF(__pyx_t_1);
17960   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_t_1)));
17961   __pyx_v_file = ((struct PyMPIFileObject *)__pyx_t_1);
17962   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17963 
17964   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":217
17965  * cdef inline File new_File(MPI_File ob):
17966  *     cdef File file = <File>File.__new__(File)
17967  *     file.ob_mpi = ob             # <<<<<<<<<<<<<<
17968  *     return file
17969  *
17970  */
17971   __pyx_v_file->ob_mpi = __pyx_v_ob;
17972 
17973   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":218
17974  *     cdef File file = <File>File.__new__(File)
17975  *     file.ob_mpi = ob
17976  *     return file             # <<<<<<<<<<<<<<
17977  *
17978  * cdef inline int del_File(MPI_File* ob):
17979  */
17980   __Pyx_XDECREF(((PyObject *)__pyx_r));
17981   __Pyx_INCREF(((PyObject *)__pyx_v_file));
17982   __pyx_r = __pyx_v_file;
17983   goto __pyx_L0;
17984 
17985   __pyx_r = ((struct PyMPIFileObject *)Py_None); __Pyx_INCREF(Py_None);
17986   goto __pyx_L0;
17987   __pyx_L1_error:;
17988   __Pyx_XDECREF(__pyx_t_1);
17989   __Pyx_AddTraceback("mpi4py.MPI.new_File", __pyx_clineno, __pyx_lineno, __pyx_filename);
17990   __pyx_r = 0;
17991   __pyx_L0:;
17992   __Pyx_XDECREF((PyObject *)__pyx_v_file);
17993   __Pyx_XGIVEREF((PyObject *)__pyx_r);
17994   __Pyx_RefNannyFinishContext();
17995   return __pyx_r;
17996 }
17997 
17998 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":220
17999  *     return file
18000  *
18001  * cdef inline int del_File(MPI_File* ob):             # <<<<<<<<<<<<<<
18002  *     #
18003  *     if ob    == NULL          : return 0
18004  */
18005 
__pyx_f_6mpi4py_3MPI_del_File(MPI_File * __pyx_v_ob)18006 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_File(MPI_File *__pyx_v_ob) {
18007   int __pyx_r;
18008   __Pyx_RefNannyDeclarations
18009   int __pyx_t_1;
18010   __Pyx_RefNannySetupContext("del_File");
18011 
18012   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":222
18013  * cdef inline int del_File(MPI_File* ob):
18014  *     #
18015  *     if ob    == NULL          : return 0             # <<<<<<<<<<<<<<
18016  *     if ob[0] == MPI_FILE_NULL : return 0
18017  *     if not mpi_active()       : return 0
18018  */
18019   __pyx_t_1 = (__pyx_v_ob == NULL);
18020   if (__pyx_t_1) {
18021     __pyx_r = 0;
18022     goto __pyx_L0;
18023     goto __pyx_L3;
18024   }
18025   __pyx_L3:;
18026 
18027   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":223
18028  *     #
18029  *     if ob    == NULL          : return 0
18030  *     if ob[0] == MPI_FILE_NULL : return 0             # <<<<<<<<<<<<<<
18031  *     if not mpi_active()       : return 0
18032  *     #
18033  */
18034   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_FILE_NULL);
18035   if (__pyx_t_1) {
18036     __pyx_r = 0;
18037     goto __pyx_L0;
18038     goto __pyx_L4;
18039   }
18040   __pyx_L4:;
18041 
18042   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":224
18043  *     if ob    == NULL          : return 0
18044  *     if ob[0] == MPI_FILE_NULL : return 0
18045  *     if not mpi_active()       : return 0             # <<<<<<<<<<<<<<
18046  *     #
18047  *     return MPI_File_close(ob)
18048  */
18049   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
18050   if (__pyx_t_1) {
18051     __pyx_r = 0;
18052     goto __pyx_L0;
18053     goto __pyx_L5;
18054   }
18055   __pyx_L5:;
18056 
18057   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":226
18058  *     if not mpi_active()       : return 0
18059  *     #
18060  *     return MPI_File_close(ob)             # <<<<<<<<<<<<<<
18061  *
18062  * #------------------------------------------------------------------------------
18063  */
18064   __pyx_r = MPI_File_close(__pyx_v_ob);
18065   goto __pyx_L0;
18066 
18067   __pyx_r = 0;
18068   __pyx_L0:;
18069   __Pyx_RefNannyFinishContext();
18070   return __pyx_r;
18071 }
18072 
18073 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":231
18074  * # Errhandler
18075  *
18076  * cdef inline Errhandler new_Errhandler(MPI_Errhandler ob):             # <<<<<<<<<<<<<<
18077  *     cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
18078  *     errhandler.ob_mpi = ob
18079  */
18080 
__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_Errhandler __pyx_v_ob)18081 static CYTHON_INLINE struct PyMPIErrhandlerObject *__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_Errhandler __pyx_v_ob) {
18082   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
18083   struct PyMPIErrhandlerObject *__pyx_r = NULL;
18084   __Pyx_RefNannyDeclarations
18085   PyObject *__pyx_t_1 = NULL;
18086   int __pyx_lineno = 0;
18087   const char *__pyx_filename = NULL;
18088   int __pyx_clineno = 0;
18089   __Pyx_RefNannySetupContext("new_Errhandler");
18090 
18091   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":232
18092  *
18093  * cdef inline Errhandler new_Errhandler(MPI_Errhandler ob):
18094  *     cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)             # <<<<<<<<<<<<<<
18095  *     errhandler.ob_mpi = ob
18096  *     return errhandler
18097  */
18098   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18099   __Pyx_GOTREF(__pyx_t_1);
18100   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
18101   __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
18102   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18103 
18104   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":233
18105  * cdef inline Errhandler new_Errhandler(MPI_Errhandler ob):
18106  *     cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
18107  *     errhandler.ob_mpi = ob             # <<<<<<<<<<<<<<
18108  *     return errhandler
18109  *
18110  */
18111   __pyx_v_errhandler->ob_mpi = __pyx_v_ob;
18112 
18113   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":234
18114  *     cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
18115  *     errhandler.ob_mpi = ob
18116  *     return errhandler             # <<<<<<<<<<<<<<
18117  *
18118  * cdef inline int del_Errhandler(MPI_Errhandler* ob):
18119  */
18120   __Pyx_XDECREF(((PyObject *)__pyx_r));
18121   __Pyx_INCREF(((PyObject *)__pyx_v_errhandler));
18122   __pyx_r = __pyx_v_errhandler;
18123   goto __pyx_L0;
18124 
18125   __pyx_r = ((struct PyMPIErrhandlerObject *)Py_None); __Pyx_INCREF(Py_None);
18126   goto __pyx_L0;
18127   __pyx_L1_error:;
18128   __Pyx_XDECREF(__pyx_t_1);
18129   __Pyx_AddTraceback("mpi4py.MPI.new_Errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
18130   __pyx_r = 0;
18131   __pyx_L0:;
18132   __Pyx_XDECREF((PyObject *)__pyx_v_errhandler);
18133   __Pyx_XGIVEREF((PyObject *)__pyx_r);
18134   __Pyx_RefNannyFinishContext();
18135   return __pyx_r;
18136 }
18137 
18138 /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":236
18139  *     return errhandler
18140  *
18141  * cdef inline int del_Errhandler(MPI_Errhandler* ob):             # <<<<<<<<<<<<<<
18142  *     #
18143  *     if ob    == NULL                : return 0
18144  */
18145 
__pyx_f_6mpi4py_3MPI_del_Errhandler(MPI_Errhandler * __pyx_v_ob)18146 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_del_Errhandler(MPI_Errhandler *__pyx_v_ob) {
18147   int __pyx_r;
18148   __Pyx_RefNannyDeclarations
18149   int __pyx_t_1;
18150   __Pyx_RefNannySetupContext("del_Errhandler");
18151 
18152   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":238
18153  * cdef inline int del_Errhandler(MPI_Errhandler* ob):
18154  *     #
18155  *     if ob    == NULL                : return 0             # <<<<<<<<<<<<<<
18156  *     if ob[0] == MPI_ERRHANDLER_NULL : return 0
18157  *     if not mpi_active()             : return 0
18158  */
18159   __pyx_t_1 = (__pyx_v_ob == NULL);
18160   if (__pyx_t_1) {
18161     __pyx_r = 0;
18162     goto __pyx_L0;
18163     goto __pyx_L3;
18164   }
18165   __pyx_L3:;
18166 
18167   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":239
18168  *     #
18169  *     if ob    == NULL                : return 0
18170  *     if ob[0] == MPI_ERRHANDLER_NULL : return 0             # <<<<<<<<<<<<<<
18171  *     if not mpi_active()             : return 0
18172  *     #
18173  */
18174   __pyx_t_1 = ((__pyx_v_ob[0]) == MPI_ERRHANDLER_NULL);
18175   if (__pyx_t_1) {
18176     __pyx_r = 0;
18177     goto __pyx_L0;
18178     goto __pyx_L4;
18179   }
18180   __pyx_L4:;
18181 
18182   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":240
18183  *     if ob    == NULL                : return 0
18184  *     if ob[0] == MPI_ERRHANDLER_NULL : return 0
18185  *     if not mpi_active()             : return 0             # <<<<<<<<<<<<<<
18186  *     #
18187  *     return MPI_Errhandler_free(ob)
18188  */
18189   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
18190   if (__pyx_t_1) {
18191     __pyx_r = 0;
18192     goto __pyx_L0;
18193     goto __pyx_L5;
18194   }
18195   __pyx_L5:;
18196 
18197   /* "/home/devel/mpi4py-1.3/src/MPI/helpers.pxi":242
18198  *     if not mpi_active()             : return 0
18199  *     #
18200  *     return MPI_Errhandler_free(ob)             # <<<<<<<<<<<<<<
18201  *
18202  * #------------------------------------------------------------------------------
18203  */
18204   __pyx_r = MPI_Errhandler_free(__pyx_v_ob);
18205   goto __pyx_L0;
18206 
18207   __pyx_r = 0;
18208   __pyx_L0:;
18209   __Pyx_RefNannyFinishContext();
18210   return __pyx_r;
18211 }
18212 
18213 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":8
18214  *     int is_tuple  "PyTuple_Check" (object)
18215  *
18216  * cdef inline bint is_buffer(object ob):             # <<<<<<<<<<<<<<
18217  *     return (PyObject_CheckBuffer(ob) or
18218  *             PyObject_CheckReadBuffer(ob))
18219  */
18220 
__pyx_f_6mpi4py_3MPI_is_buffer(PyObject * __pyx_v_ob)18221 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_is_buffer(PyObject *__pyx_v_ob) {
18222   int __pyx_r;
18223   __Pyx_RefNannyDeclarations
18224   int __pyx_t_1;
18225   int __pyx_t_2;
18226   int __pyx_t_3;
18227   __Pyx_RefNannySetupContext("is_buffer");
18228 
18229   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":9
18230  *
18231  * cdef inline bint is_buffer(object ob):
18232  *     return (PyObject_CheckBuffer(ob) or             # <<<<<<<<<<<<<<
18233  *             PyObject_CheckReadBuffer(ob))
18234  *
18235  */
18236   __pyx_t_1 = PyObject_CheckBuffer(__pyx_v_ob);
18237   if (!__pyx_t_1) {
18238 
18239     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":10
18240  * cdef inline bint is_buffer(object ob):
18241  *     return (PyObject_CheckBuffer(ob) or
18242  *             PyObject_CheckReadBuffer(ob))             # <<<<<<<<<<<<<<
18243  *
18244  * #------------------------------------------------------------------------------
18245  */
18246     __pyx_t_2 = PyObject_CheckReadBuffer(__pyx_v_ob);
18247     __pyx_t_3 = __pyx_t_2;
18248   } else {
18249     __pyx_t_3 = __pyx_t_1;
18250   }
18251   __pyx_r = __pyx_t_3;
18252   goto __pyx_L0;
18253 
18254   __pyx_r = 0;
18255   __pyx_L0:;
18256   __Pyx_RefNannyFinishContext();
18257   return __pyx_r;
18258 }
18259 
18260 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":26
18261  *     cdef Datatype type
18262  *
18263  * cdef _p_message message_basic(object o_buf,             # <<<<<<<<<<<<<<
18264  *                               object o_type,
18265  *                               bint readonly,
18266  */
18267 
__pyx_f_6mpi4py_3MPI_message_basic(PyObject * __pyx_v_o_buf,PyObject * __pyx_v_o_type,int __pyx_v_readonly,void ** __pyx_v_baddr,MPI_Aint * __pyx_v_bsize,MPI_Datatype * __pyx_v_btype)18268 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_basic(PyObject *__pyx_v_o_buf, PyObject *__pyx_v_o_type, int __pyx_v_readonly, void **__pyx_v_baddr, MPI_Aint *__pyx_v_bsize, MPI_Datatype *__pyx_v_btype) {
18269   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_v_m = 0;
18270   int __pyx_v_f;
18271   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_r = NULL;
18272   __Pyx_RefNannyDeclarations
18273   PyObject *__pyx_t_1 = NULL;
18274   int __pyx_t_2;
18275   int __pyx_t_3;
18276   int __pyx_t_4;
18277   PyObject *__pyx_t_5 = NULL;
18278   int __pyx_lineno = 0;
18279   const char *__pyx_filename = NULL;
18280   int __pyx_clineno = 0;
18281   __Pyx_RefNannySetupContext("message_basic");
18282 
18283   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":35
18284  *                               ):
18285  *     global TypeDict
18286  *     cdef _p_message m = <_p_message>_p_message.__new__(_p_message)             # <<<<<<<<<<<<<<
18287  *     cdef int f = (o_type is None)
18288  *     # special-case for BOTTOM or None,
18289  */
18290   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_message)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18291   __Pyx_GOTREF(__pyx_t_1);
18292   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_message *)__pyx_t_1)));
18293   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)__pyx_t_1);
18294   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18295 
18296   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":36
18297  *     global TypeDict
18298  *     cdef _p_message m = <_p_message>_p_message.__new__(_p_message)
18299  *     cdef int f = (o_type is None)             # <<<<<<<<<<<<<<
18300  *     # special-case for BOTTOM or None,
18301  *     # an explicit MPI datatype is required
18302  */
18303   __pyx_t_2 = (__pyx_v_o_type == Py_None);
18304   __pyx_v_f = __pyx_t_2;
18305 
18306   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":39
18307  *     # special-case for BOTTOM or None,
18308  *     # an explicit MPI datatype is required
18309  *     if o_buf is __BOTTOM__ or o_buf is None:             # <<<<<<<<<<<<<<
18310  *         if isinstance(o_type, Datatype):
18311  *             m.type = <Datatype>o_type
18312  */
18313   __pyx_t_2 = (__pyx_v_o_buf == __pyx_v_6mpi4py_3MPI___BOTTOM__);
18314   if (!__pyx_t_2) {
18315     __pyx_t_3 = (__pyx_v_o_buf == Py_None);
18316     __pyx_t_4 = __pyx_t_3;
18317   } else {
18318     __pyx_t_4 = __pyx_t_2;
18319   }
18320   if (__pyx_t_4) {
18321 
18322     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":40
18323  *     # an explicit MPI datatype is required
18324  *     if o_buf is __BOTTOM__ or o_buf is None:
18325  *         if isinstance(o_type, Datatype):             # <<<<<<<<<<<<<<
18326  *             m.type = <Datatype>o_type
18327  *         else:
18328  */
18329     __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
18330     __Pyx_INCREF(__pyx_t_1);
18331     __pyx_t_4 = __Pyx_TypeCheck(__pyx_v_o_type, __pyx_t_1);
18332     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18333     if (__pyx_t_4) {
18334 
18335       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":41
18336  *     if o_buf is __BOTTOM__ or o_buf is None:
18337  *         if isinstance(o_type, Datatype):
18338  *             m.type = <Datatype>o_type             # <<<<<<<<<<<<<<
18339  *         else:
18340  *             m.type = TypeDict[o_type]
18341  */
18342       __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_v_o_type)));
18343       __Pyx_GIVEREF(__pyx_v_o_type);
18344       __Pyx_GOTREF(__pyx_v_m->type);
18345       __Pyx_DECREF(((PyObject *)__pyx_v_m->type));
18346       __pyx_v_m->type = ((struct PyMPIDatatypeObject *)__pyx_v_o_type);
18347       goto __pyx_L4;
18348     }
18349     /*else*/ {
18350 
18351       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":43
18352  *             m.type = <Datatype>o_type
18353  *         else:
18354  *             m.type = TypeDict[o_type]             # <<<<<<<<<<<<<<
18355  *         m.buf = newbuffer()
18356  *         baddr[0] = MPI_BOTTOM
18357  */
18358       __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict), __pyx_v_o_type); if (!__pyx_t_1) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18359       __Pyx_GOTREF(__pyx_t_1);
18360       if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Datatype))))) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18361       __Pyx_GIVEREF(__pyx_t_1);
18362       __Pyx_GOTREF(__pyx_v_m->type);
18363       __Pyx_DECREF(((PyObject *)__pyx_v_m->type));
18364       __pyx_v_m->type = ((struct PyMPIDatatypeObject *)__pyx_t_1);
18365       __pyx_t_1 = 0;
18366     }
18367     __pyx_L4:;
18368 
18369     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":44
18370  *         else:
18371  *             m.type = TypeDict[o_type]
18372  *         m.buf = newbuffer()             # <<<<<<<<<<<<<<
18373  *         baddr[0] = MPI_BOTTOM
18374  *         bsize[0] = 0
18375  */
18376     __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_newbuffer()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18377     __Pyx_GOTREF(__pyx_t_1);
18378     __Pyx_GIVEREF(__pyx_t_1);
18379     __Pyx_GOTREF(__pyx_v_m->buf);
18380     __Pyx_DECREF(((PyObject *)__pyx_v_m->buf));
18381     __pyx_v_m->buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
18382     __pyx_t_1 = 0;
18383 
18384     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":45
18385  *             m.type = TypeDict[o_type]
18386  *         m.buf = newbuffer()
18387  *         baddr[0] = MPI_BOTTOM             # <<<<<<<<<<<<<<
18388  *         bsize[0] = 0
18389  *         btype[0] = m.type.ob_mpi
18390  */
18391     (__pyx_v_baddr[0]) = MPI_BOTTOM;
18392 
18393     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":46
18394  *         m.buf = newbuffer()
18395  *         baddr[0] = MPI_BOTTOM
18396  *         bsize[0] = 0             # <<<<<<<<<<<<<<
18397  *         btype[0] = m.type.ob_mpi
18398  *         return m
18399  */
18400     (__pyx_v_bsize[0]) = 0;
18401 
18402     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":47
18403  *         baddr[0] = MPI_BOTTOM
18404  *         bsize[0] = 0
18405  *         btype[0] = m.type.ob_mpi             # <<<<<<<<<<<<<<
18406  *         return m
18407  *     #elif obuf
18408  */
18409     (__pyx_v_btype[0]) = __pyx_v_m->type->ob_mpi;
18410 
18411     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":48
18412  *         bsize[0] = 0
18413  *         btype[0] = m.type.ob_mpi
18414  *         return m             # <<<<<<<<<<<<<<
18415  *     #elif obuf
18416  *     # get buffer base address and length
18417  */
18418     __Pyx_XDECREF(((PyObject *)__pyx_r));
18419     __Pyx_INCREF(((PyObject *)__pyx_v_m));
18420     __pyx_r = __pyx_v_m;
18421     goto __pyx_L0;
18422     goto __pyx_L3;
18423   }
18424   __pyx_L3:;
18425 
18426   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":51
18427  *     #elif obuf
18428  *     # get buffer base address and length
18429  *     m.buf = getbuffer(o_buf, readonly, f)             # <<<<<<<<<<<<<<
18430  *     baddr[0] = <void*>    m.buf.view.buf
18431  *     bsize[0] = <MPI_Aint> m.buf.view.len
18432  */
18433   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_o_buf, __pyx_v_readonly, __pyx_v_f)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18434   __Pyx_GOTREF(__pyx_t_1);
18435   __Pyx_GIVEREF(__pyx_t_1);
18436   __Pyx_GOTREF(__pyx_v_m->buf);
18437   __Pyx_DECREF(((PyObject *)__pyx_v_m->buf));
18438   __pyx_v_m->buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
18439   __pyx_t_1 = 0;
18440 
18441   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":52
18442  *     # get buffer base address and length
18443  *     m.buf = getbuffer(o_buf, readonly, f)
18444  *     baddr[0] = <void*>    m.buf.view.buf             # <<<<<<<<<<<<<<
18445  *     bsize[0] = <MPI_Aint> m.buf.view.len
18446  *     # lookup datatype if not provided or not a Datatype
18447  */
18448   (__pyx_v_baddr[0]) = ((void *)__pyx_v_m->buf->view.buf);
18449 
18450   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":53
18451  *     m.buf = getbuffer(o_buf, readonly, f)
18452  *     baddr[0] = <void*>    m.buf.view.buf
18453  *     bsize[0] = <MPI_Aint> m.buf.view.len             # <<<<<<<<<<<<<<
18454  *     # lookup datatype if not provided or not a Datatype
18455  *     if isinstance(o_type, Datatype):
18456  */
18457   (__pyx_v_bsize[0]) = ((MPI_Aint)__pyx_v_m->buf->view.len);
18458 
18459   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":55
18460  *     bsize[0] = <MPI_Aint> m.buf.view.len
18461  *     # lookup datatype if not provided or not a Datatype
18462  *     if isinstance(o_type, Datatype):             # <<<<<<<<<<<<<<
18463  *         m.type = <Datatype>o_type
18464  *     elif o_type is None:
18465  */
18466   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
18467   __Pyx_INCREF(__pyx_t_1);
18468   __pyx_t_4 = __Pyx_TypeCheck(__pyx_v_o_type, __pyx_t_1);
18469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18470   if (__pyx_t_4) {
18471 
18472     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":56
18473  *     # lookup datatype if not provided or not a Datatype
18474  *     if isinstance(o_type, Datatype):
18475  *         m.type = <Datatype>o_type             # <<<<<<<<<<<<<<
18476  *     elif o_type is None:
18477  *         m.type = TypeDict[getformat(m.buf)]
18478  */
18479     __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_v_o_type)));
18480     __Pyx_GIVEREF(__pyx_v_o_type);
18481     __Pyx_GOTREF(__pyx_v_m->type);
18482     __Pyx_DECREF(((PyObject *)__pyx_v_m->type));
18483     __pyx_v_m->type = ((struct PyMPIDatatypeObject *)__pyx_v_o_type);
18484     goto __pyx_L5;
18485   }
18486 
18487   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":57
18488  *     if isinstance(o_type, Datatype):
18489  *         m.type = <Datatype>o_type
18490  *     elif o_type is None:             # <<<<<<<<<<<<<<
18491  *         m.type = TypeDict[getformat(m.buf)]
18492  *     else:
18493  */
18494   __pyx_t_4 = (__pyx_v_o_type == Py_None);
18495   if (__pyx_t_4) {
18496 
18497     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":58
18498  *         m.type = <Datatype>o_type
18499  *     elif o_type is None:
18500  *         m.type = TypeDict[getformat(m.buf)]             # <<<<<<<<<<<<<<
18501  *     else:
18502  *         m.type = TypeDict[o_type]
18503  */
18504     __pyx_t_1 = ((PyObject *)__pyx_v_m->buf);
18505     __Pyx_INCREF(__pyx_t_1);
18506     __pyx_t_5 = __pyx_f_6mpi4py_3MPI_getformat(((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18507     __Pyx_GOTREF(__pyx_t_5);
18508     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18509     __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict), __pyx_t_5); if (!__pyx_t_1) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18510     __Pyx_GOTREF(__pyx_t_1);
18511     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
18512     if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Datatype))))) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18513     __Pyx_GIVEREF(__pyx_t_1);
18514     __Pyx_GOTREF(__pyx_v_m->type);
18515     __Pyx_DECREF(((PyObject *)__pyx_v_m->type));
18516     __pyx_v_m->type = ((struct PyMPIDatatypeObject *)__pyx_t_1);
18517     __pyx_t_1 = 0;
18518     goto __pyx_L5;
18519   }
18520   /*else*/ {
18521 
18522     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":60
18523  *         m.type = TypeDict[getformat(m.buf)]
18524  *     else:
18525  *         m.type = TypeDict[o_type]             # <<<<<<<<<<<<<<
18526  *     btype[0] = m.type.ob_mpi
18527  *     # and we are done ...
18528  */
18529     __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict), __pyx_v_o_type); if (!__pyx_t_1) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18530     __Pyx_GOTREF(__pyx_t_1);
18531     if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Datatype))))) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18532     __Pyx_GIVEREF(__pyx_t_1);
18533     __Pyx_GOTREF(__pyx_v_m->type);
18534     __Pyx_DECREF(((PyObject *)__pyx_v_m->type));
18535     __pyx_v_m->type = ((struct PyMPIDatatypeObject *)__pyx_t_1);
18536     __pyx_t_1 = 0;
18537   }
18538   __pyx_L5:;
18539 
18540   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":61
18541  *     else:
18542  *         m.type = TypeDict[o_type]
18543  *     btype[0] = m.type.ob_mpi             # <<<<<<<<<<<<<<
18544  *     # and we are done ...
18545  *     return m
18546  */
18547   (__pyx_v_btype[0]) = __pyx_v_m->type->ob_mpi;
18548 
18549   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":63
18550  *     btype[0] = m.type.ob_mpi
18551  *     # and we are done ...
18552  *     return m             # <<<<<<<<<<<<<<
18553  *
18554  * cdef _p_message message_simple(object msg,
18555  */
18556   __Pyx_XDECREF(((PyObject *)__pyx_r));
18557   __Pyx_INCREF(((PyObject *)__pyx_v_m));
18558   __pyx_r = __pyx_v_m;
18559   goto __pyx_L0;
18560 
18561   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)Py_None); __Pyx_INCREF(Py_None);
18562   goto __pyx_L0;
18563   __pyx_L1_error:;
18564   __Pyx_XDECREF(__pyx_t_1);
18565   __Pyx_XDECREF(__pyx_t_5);
18566   __Pyx_AddTraceback("mpi4py.MPI.message_basic", __pyx_clineno, __pyx_lineno, __pyx_filename);
18567   __pyx_r = 0;
18568   __pyx_L0:;
18569   __Pyx_XDECREF((PyObject *)__pyx_v_m);
18570   __Pyx_XGIVEREF((PyObject *)__pyx_r);
18571   __Pyx_RefNannyFinishContext();
18572   return __pyx_r;
18573 }
18574 
18575 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":65
18576  *     return m
18577  *
18578  * cdef _p_message message_simple(object msg,             # <<<<<<<<<<<<<<
18579  *                                int readonly,
18580  *                                int rank,
18581  */
18582 
__pyx_f_6mpi4py_3MPI_message_simple(PyObject * __pyx_v_msg,int __pyx_v_readonly,int __pyx_v_rank,int __pyx_v_blocks,void ** __pyx_v__addr,int * __pyx_v__count,MPI_Datatype * __pyx_v__type)18583 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_simple(PyObject *__pyx_v_msg, int __pyx_v_readonly, int __pyx_v_rank, int __pyx_v_blocks, void **__pyx_v__addr, int *__pyx_v__count, MPI_Datatype *__pyx_v__type) {
18584   Py_ssize_t __pyx_v_nargs;
18585   PyObject *__pyx_v_o_buf = 0;
18586   PyObject *__pyx_v_o_count = 0;
18587   PyObject *__pyx_v_o_displ = 0;
18588   PyObject *__pyx_v_o_type = 0;
18589   void *__pyx_v_baddr;
18590   MPI_Aint __pyx_v_bsize;
18591   MPI_Datatype __pyx_v_btype;
18592   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_v_m = 0;
18593   int __pyx_v_count;
18594   int __pyx_v_displ;
18595   MPI_Aint __pyx_v_offset;
18596   MPI_Aint __pyx_v_extent;
18597   MPI_Aint __pyx_v_lb;
18598   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_r = NULL;
18599   __Pyx_RefNannyDeclarations
18600   int __pyx_t_1;
18601   int __pyx_t_2;
18602   int __pyx_t_3;
18603   Py_ssize_t __pyx_t_4;
18604   PyObject *__pyx_t_5 = NULL;
18605   PyObject *__pyx_t_6 = NULL;
18606   PyObject *__pyx_t_7 = NULL;
18607   PyObject *(*__pyx_t_8)(PyObject *);
18608   int __pyx_t_9;
18609   int __pyx_t_10;
18610   PyObject *__pyx_t_11 = NULL;
18611   PyObject *__pyx_t_12 = NULL;
18612   int __pyx_lineno = 0;
18613   const char *__pyx_filename = NULL;
18614   int __pyx_clineno = 0;
18615   __Pyx_RefNannySetupContext("message_simple");
18616 
18617   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":75
18618  *                                ):
18619  *     # special-case PROC_NULL target rank
18620  *     if rank == MPI_PROC_NULL:             # <<<<<<<<<<<<<<
18621  *         _addr[0]  = NULL
18622  *         _count[0] = 0
18623  */
18624   __pyx_t_1 = (__pyx_v_rank == MPI_PROC_NULL);
18625   if (__pyx_t_1) {
18626 
18627     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":76
18628  *     # special-case PROC_NULL target rank
18629  *     if rank == MPI_PROC_NULL:
18630  *         _addr[0]  = NULL             # <<<<<<<<<<<<<<
18631  *         _count[0] = 0
18632  *         _type[0]  = MPI_BYTE
18633  */
18634     (__pyx_v__addr[0]) = NULL;
18635 
18636     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":77
18637  *     if rank == MPI_PROC_NULL:
18638  *         _addr[0]  = NULL
18639  *         _count[0] = 0             # <<<<<<<<<<<<<<
18640  *         _type[0]  = MPI_BYTE
18641  *         return None
18642  */
18643     (__pyx_v__count[0]) = 0;
18644 
18645     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":78
18646  *         _addr[0]  = NULL
18647  *         _count[0] = 0
18648  *         _type[0]  = MPI_BYTE             # <<<<<<<<<<<<<<
18649  *         return None
18650  *     # unpack message list/tuple
18651  */
18652     (__pyx_v__type[0]) = MPI_BYTE;
18653 
18654     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":79
18655  *         _count[0] = 0
18656  *         _type[0]  = MPI_BYTE
18657  *         return None             # <<<<<<<<<<<<<<
18658  *     # unpack message list/tuple
18659  *     cdef Py_ssize_t nargs = 0
18660  */
18661     __Pyx_XDECREF(((PyObject *)__pyx_r));
18662     __Pyx_INCREF(Py_None);
18663     __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)Py_None);
18664     goto __pyx_L0;
18665     goto __pyx_L3;
18666   }
18667   __pyx_L3:;
18668 
18669   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":81
18670  *         return None
18671  *     # unpack message list/tuple
18672  *     cdef Py_ssize_t nargs = 0             # <<<<<<<<<<<<<<
18673  *     cdef object o_buf   = None
18674  *     cdef object o_count = None
18675  */
18676   __pyx_v_nargs = 0;
18677 
18678   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":82
18679  *     # unpack message list/tuple
18680  *     cdef Py_ssize_t nargs = 0
18681  *     cdef object o_buf   = None             # <<<<<<<<<<<<<<
18682  *     cdef object o_count = None
18683  *     cdef object o_displ = None
18684  */
18685   __Pyx_INCREF(Py_None);
18686   __pyx_v_o_buf = Py_None;
18687 
18688   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":83
18689  *     cdef Py_ssize_t nargs = 0
18690  *     cdef object o_buf   = None
18691  *     cdef object o_count = None             # <<<<<<<<<<<<<<
18692  *     cdef object o_displ = None
18693  *     cdef object o_type  = None
18694  */
18695   __Pyx_INCREF(Py_None);
18696   __pyx_v_o_count = Py_None;
18697 
18698   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":84
18699  *     cdef object o_buf   = None
18700  *     cdef object o_count = None
18701  *     cdef object o_displ = None             # <<<<<<<<<<<<<<
18702  *     cdef object o_type  = None
18703  *     if is_buffer(msg):
18704  */
18705   __Pyx_INCREF(Py_None);
18706   __pyx_v_o_displ = Py_None;
18707 
18708   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":85
18709  *     cdef object o_count = None
18710  *     cdef object o_displ = None
18711  *     cdef object o_type  = None             # <<<<<<<<<<<<<<
18712  *     if is_buffer(msg):
18713  *         o_buf = msg
18714  */
18715   __Pyx_INCREF(Py_None);
18716   __pyx_v_o_type = Py_None;
18717 
18718   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":86
18719  *     cdef object o_displ = None
18720  *     cdef object o_type  = None
18721  *     if is_buffer(msg):             # <<<<<<<<<<<<<<
18722  *         o_buf = msg
18723  *     elif is_list(msg) or is_tuple(msg):
18724  */
18725   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_is_buffer(__pyx_v_msg);
18726   if (__pyx_t_1) {
18727 
18728     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":87
18729  *     cdef object o_type  = None
18730  *     if is_buffer(msg):
18731  *         o_buf = msg             # <<<<<<<<<<<<<<
18732  *     elif is_list(msg) or is_tuple(msg):
18733  *         nargs = len(msg)
18734  */
18735     __Pyx_INCREF(__pyx_v_msg);
18736     __Pyx_DECREF(__pyx_v_o_buf);
18737     __pyx_v_o_buf = __pyx_v_msg;
18738     goto __pyx_L4;
18739   }
18740 
18741   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":88
18742  *     if is_buffer(msg):
18743  *         o_buf = msg
18744  *     elif is_list(msg) or is_tuple(msg):             # <<<<<<<<<<<<<<
18745  *         nargs = len(msg)
18746  *         if nargs == 2:
18747  */
18748   __pyx_t_2 = PyList_Check(__pyx_v_msg);
18749   if (!__pyx_t_2) {
18750     __pyx_t_3 = PyTuple_Check(__pyx_v_msg);
18751     __pyx_t_1 = __pyx_t_3;
18752   } else {
18753     __pyx_t_1 = __pyx_t_2;
18754   }
18755   if (__pyx_t_1) {
18756 
18757     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":89
18758  *         o_buf = msg
18759  *     elif is_list(msg) or is_tuple(msg):
18760  *         nargs = len(msg)             # <<<<<<<<<<<<<<
18761  *         if nargs == 2:
18762  *             (o_buf, o_count) = msg
18763  */
18764     __pyx_t_4 = PyObject_Length(__pyx_v_msg); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18765     __pyx_v_nargs = __pyx_t_4;
18766 
18767     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":101
18768  *             if is_tuple(o_count) or is_list(o_count):
18769  *                 (o_count, o_displ) = o_count
18770  *         elif nargs == 4:             # <<<<<<<<<<<<<<
18771  *             (o_buf, o_count, o_displ, o_type) = msg
18772  *         else:
18773  */
18774     switch (__pyx_v_nargs) {
18775 
18776       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":90
18777  *     elif is_list(msg) or is_tuple(msg):
18778  *         nargs = len(msg)
18779  *         if nargs == 2:             # <<<<<<<<<<<<<<
18780  *             (o_buf, o_count) = msg
18781  *             if (isinstance(o_count, Datatype) or
18782  */
18783       case 2:
18784 
18785       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":91
18786  *         nargs = len(msg)
18787  *         if nargs == 2:
18788  *             (o_buf, o_count) = msg             # <<<<<<<<<<<<<<
18789  *             if (isinstance(o_count, Datatype) or
18790  *                 isinstance(o_count, str)):
18791  */
18792       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
18793         PyObject* sequence = __pyx_v_msg;
18794         if (likely(PyTuple_CheckExact(sequence))) {
18795           if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
18796             if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
18797             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
18798             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18799           }
18800           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
18801           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
18802         } else {
18803           if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
18804             if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
18805             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
18806             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18807           }
18808           __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
18809           __pyx_t_6 = PyList_GET_ITEM(sequence, 1);
18810         }
18811         __Pyx_INCREF(__pyx_t_5);
18812         __Pyx_INCREF(__pyx_t_6);
18813       } else {
18814         Py_ssize_t index = -1;
18815         __pyx_t_7 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18816         __Pyx_GOTREF(__pyx_t_7);
18817         __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
18818         index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
18819         __Pyx_GOTREF(__pyx_t_5);
18820         index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
18821         __Pyx_GOTREF(__pyx_t_6);
18822         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18823         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18824         goto __pyx_L6_unpacking_done;
18825         __pyx_L5_unpacking_failed:;
18826         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18827         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
18828         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
18829         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18830         __pyx_L6_unpacking_done:;
18831       }
18832       __Pyx_DECREF(__pyx_v_o_buf);
18833       __pyx_v_o_buf = __pyx_t_5;
18834       __pyx_t_5 = 0;
18835       __Pyx_DECREF(__pyx_v_o_count);
18836       __pyx_v_o_count = __pyx_t_6;
18837       __pyx_t_6 = 0;
18838 
18839       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":92
18840  *         if nargs == 2:
18841  *             (o_buf, o_count) = msg
18842  *             if (isinstance(o_count, Datatype) or             # <<<<<<<<<<<<<<
18843  *                 isinstance(o_count, str)):
18844  *                 (o_count, o_type) = None, o_count
18845  */
18846       __pyx_t_6 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
18847       __Pyx_INCREF(__pyx_t_6);
18848       __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o_count, __pyx_t_6);
18849       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18850       if (!__pyx_t_1) {
18851 
18852         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":93
18853  *             (o_buf, o_count) = msg
18854  *             if (isinstance(o_count, Datatype) or
18855  *                 isinstance(o_count, str)):             # <<<<<<<<<<<<<<
18856  *                 (o_count, o_type) = None, o_count
18857  *             elif is_tuple(o_count) or is_list(o_count):
18858  */
18859         __pyx_t_6 = ((PyObject *)((PyObject*)(&PyString_Type)));
18860         __Pyx_INCREF(__pyx_t_6);
18861         __pyx_t_9 = __Pyx_TypeCheck(__pyx_v_o_count, __pyx_t_6);
18862         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18863         __pyx_t_10 = __pyx_t_9;
18864       } else {
18865         __pyx_t_10 = __pyx_t_1;
18866       }
18867       if (__pyx_t_10) {
18868 
18869         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":94
18870  *             if (isinstance(o_count, Datatype) or
18871  *                 isinstance(o_count, str)):
18872  *                 (o_count, o_type) = None, o_count             # <<<<<<<<<<<<<<
18873  *             elif is_tuple(o_count) or is_list(o_count):
18874  *                 (o_count, o_displ) = o_count
18875  */
18876         __pyx_t_6 = Py_None;
18877         __Pyx_INCREF(__pyx_t_6);
18878         __pyx_t_5 = __pyx_v_o_count;
18879         __Pyx_INCREF(__pyx_t_5);
18880         __Pyx_DECREF(__pyx_v_o_count);
18881         __pyx_v_o_count = __pyx_t_6;
18882         __pyx_t_6 = 0;
18883         __Pyx_DECREF(__pyx_v_o_type);
18884         __pyx_v_o_type = __pyx_t_5;
18885         __pyx_t_5 = 0;
18886         goto __pyx_L7;
18887       }
18888 
18889       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":95
18890  *                 isinstance(o_count, str)):
18891  *                 (o_count, o_type) = None, o_count
18892  *             elif is_tuple(o_count) or is_list(o_count):             # <<<<<<<<<<<<<<
18893  *                 (o_count, o_displ) = o_count
18894  *         elif nargs == 3:
18895  */
18896       __pyx_t_2 = PyTuple_Check(__pyx_v_o_count);
18897       if (!__pyx_t_2) {
18898         __pyx_t_3 = PyList_Check(__pyx_v_o_count);
18899         __pyx_t_10 = __pyx_t_3;
18900       } else {
18901         __pyx_t_10 = __pyx_t_2;
18902       }
18903       if (__pyx_t_10) {
18904 
18905         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":96
18906  *                 (o_count, o_type) = None, o_count
18907  *             elif is_tuple(o_count) or is_list(o_count):
18908  *                 (o_count, o_displ) = o_count             # <<<<<<<<<<<<<<
18909  *         elif nargs == 3:
18910  *             (o_buf, o_count, o_type) = msg
18911  */
18912         if ((likely(PyTuple_CheckExact(__pyx_v_o_count))) || (PyList_CheckExact(__pyx_v_o_count))) {
18913           PyObject* sequence = __pyx_v_o_count;
18914           if (likely(PyTuple_CheckExact(sequence))) {
18915             if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
18916               if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
18917               else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
18918               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18919             }
18920             __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
18921             __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
18922           } else {
18923             if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
18924               if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
18925               else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
18926               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18927             }
18928             __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
18929             __pyx_t_6 = PyList_GET_ITEM(sequence, 1);
18930           }
18931           __Pyx_INCREF(__pyx_t_5);
18932           __Pyx_INCREF(__pyx_t_6);
18933         } else {
18934           Py_ssize_t index = -1;
18935           __pyx_t_7 = PyObject_GetIter(__pyx_v_o_count); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18936           __Pyx_GOTREF(__pyx_t_7);
18937           __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
18938           index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
18939           __Pyx_GOTREF(__pyx_t_5);
18940           index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;
18941           __Pyx_GOTREF(__pyx_t_6);
18942           if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18943           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18944           goto __pyx_L9_unpacking_done;
18945           __pyx_L8_unpacking_failed:;
18946           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18947           if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
18948           if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
18949           {__pyx_filename = __pyx_f[15]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18950           __pyx_L9_unpacking_done:;
18951         }
18952         __Pyx_DECREF(__pyx_v_o_count);
18953         __pyx_v_o_count = __pyx_t_5;
18954         __pyx_t_5 = 0;
18955         __Pyx_DECREF(__pyx_v_o_displ);
18956         __pyx_v_o_displ = __pyx_t_6;
18957         __pyx_t_6 = 0;
18958         goto __pyx_L7;
18959       }
18960       __pyx_L7:;
18961       break;
18962 
18963       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":97
18964  *             elif is_tuple(o_count) or is_list(o_count):
18965  *                 (o_count, o_displ) = o_count
18966  *         elif nargs == 3:             # <<<<<<<<<<<<<<
18967  *             (o_buf, o_count, o_type) = msg
18968  *             if is_tuple(o_count) or is_list(o_count):
18969  */
18970       case 3:
18971 
18972       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":98
18973  *                 (o_count, o_displ) = o_count
18974  *         elif nargs == 3:
18975  *             (o_buf, o_count, o_type) = msg             # <<<<<<<<<<<<<<
18976  *             if is_tuple(o_count) or is_list(o_count):
18977  *                 (o_count, o_displ) = o_count
18978  */
18979       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
18980         PyObject* sequence = __pyx_v_msg;
18981         if (likely(PyTuple_CheckExact(sequence))) {
18982           if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) {
18983             if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
18984             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
18985             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18986           }
18987           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
18988           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
18989           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2);
18990         } else {
18991           if (unlikely(PyList_GET_SIZE(sequence) != 3)) {
18992             if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
18993             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
18994             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
18995           }
18996           __pyx_t_6 = PyList_GET_ITEM(sequence, 0);
18997           __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
18998           __pyx_t_7 = PyList_GET_ITEM(sequence, 2);
18999         }
19000         __Pyx_INCREF(__pyx_t_6);
19001         __Pyx_INCREF(__pyx_t_5);
19002         __Pyx_INCREF(__pyx_t_7);
19003       } else {
19004         Py_ssize_t index = -1;
19005         __pyx_t_11 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19006         __Pyx_GOTREF(__pyx_t_11);
19007         __pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext;
19008         index = 0; __pyx_t_6 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed;
19009         __Pyx_GOTREF(__pyx_t_6);
19010         index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed;
19011         __Pyx_GOTREF(__pyx_t_5);
19012         index = 2; __pyx_t_7 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L10_unpacking_failed;
19013         __Pyx_GOTREF(__pyx_t_7);
19014         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 3) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19015         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19016         goto __pyx_L11_unpacking_done;
19017         __pyx_L10_unpacking_failed:;
19018         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19019         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
19020         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
19021         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19022         __pyx_L11_unpacking_done:;
19023       }
19024       __Pyx_DECREF(__pyx_v_o_buf);
19025       __pyx_v_o_buf = __pyx_t_6;
19026       __pyx_t_6 = 0;
19027       __Pyx_DECREF(__pyx_v_o_count);
19028       __pyx_v_o_count = __pyx_t_5;
19029       __pyx_t_5 = 0;
19030       __Pyx_DECREF(__pyx_v_o_type);
19031       __pyx_v_o_type = __pyx_t_7;
19032       __pyx_t_7 = 0;
19033 
19034       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":99
19035  *         elif nargs == 3:
19036  *             (o_buf, o_count, o_type) = msg
19037  *             if is_tuple(o_count) or is_list(o_count):             # <<<<<<<<<<<<<<
19038  *                 (o_count, o_displ) = o_count
19039  *         elif nargs == 4:
19040  */
19041       __pyx_t_2 = PyTuple_Check(__pyx_v_o_count);
19042       if (!__pyx_t_2) {
19043         __pyx_t_3 = PyList_Check(__pyx_v_o_count);
19044         __pyx_t_10 = __pyx_t_3;
19045       } else {
19046         __pyx_t_10 = __pyx_t_2;
19047       }
19048       if (__pyx_t_10) {
19049 
19050         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":100
19051  *             (o_buf, o_count, o_type) = msg
19052  *             if is_tuple(o_count) or is_list(o_count):
19053  *                 (o_count, o_displ) = o_count             # <<<<<<<<<<<<<<
19054  *         elif nargs == 4:
19055  *             (o_buf, o_count, o_displ, o_type) = msg
19056  */
19057         if ((likely(PyTuple_CheckExact(__pyx_v_o_count))) || (PyList_CheckExact(__pyx_v_o_count))) {
19058           PyObject* sequence = __pyx_v_o_count;
19059           if (likely(PyTuple_CheckExact(sequence))) {
19060             if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
19061               if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
19062               else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
19063               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19064             }
19065             __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);
19066             __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
19067           } else {
19068             if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
19069               if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
19070               else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
19071               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19072             }
19073             __pyx_t_7 = PyList_GET_ITEM(sequence, 0);
19074             __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
19075           }
19076           __Pyx_INCREF(__pyx_t_7);
19077           __Pyx_INCREF(__pyx_t_5);
19078         } else {
19079           Py_ssize_t index = -1;
19080           __pyx_t_6 = PyObject_GetIter(__pyx_v_o_count); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19081           __Pyx_GOTREF(__pyx_t_6);
19082           __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
19083           index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_7)) goto __pyx_L13_unpacking_failed;
19084           __Pyx_GOTREF(__pyx_t_7);
19085           index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L13_unpacking_failed;
19086           __Pyx_GOTREF(__pyx_t_5);
19087           if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19088           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19089           goto __pyx_L14_unpacking_done;
19090           __pyx_L13_unpacking_failed:;
19091           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19092           if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
19093           if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
19094           {__pyx_filename = __pyx_f[15]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19095           __pyx_L14_unpacking_done:;
19096         }
19097         __Pyx_DECREF(__pyx_v_o_count);
19098         __pyx_v_o_count = __pyx_t_7;
19099         __pyx_t_7 = 0;
19100         __Pyx_DECREF(__pyx_v_o_displ);
19101         __pyx_v_o_displ = __pyx_t_5;
19102         __pyx_t_5 = 0;
19103         goto __pyx_L12;
19104       }
19105       __pyx_L12:;
19106       break;
19107 
19108       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":101
19109  *             if is_tuple(o_count) or is_list(o_count):
19110  *                 (o_count, o_displ) = o_count
19111  *         elif nargs == 4:             # <<<<<<<<<<<<<<
19112  *             (o_buf, o_count, o_displ, o_type) = msg
19113  *         else:
19114  */
19115       case 4:
19116 
19117       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":102
19118  *                 (o_count, o_displ) = o_count
19119  *         elif nargs == 4:
19120  *             (o_buf, o_count, o_displ, o_type) = msg             # <<<<<<<<<<<<<<
19121  *         else:
19122  *             raise ValueError("message: expecting 2 to 4 items")
19123  */
19124       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
19125         PyObject* sequence = __pyx_v_msg;
19126         if (likely(PyTuple_CheckExact(sequence))) {
19127           if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) {
19128             if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
19129             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
19130             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19131           }
19132           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
19133           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);
19134           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
19135           __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3);
19136         } else {
19137           if (unlikely(PyList_GET_SIZE(sequence) != 4)) {
19138             if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
19139             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
19140             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19141           }
19142           __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
19143           __pyx_t_7 = PyList_GET_ITEM(sequence, 1);
19144           __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
19145           __pyx_t_11 = PyList_GET_ITEM(sequence, 3);
19146         }
19147         __Pyx_INCREF(__pyx_t_5);
19148         __Pyx_INCREF(__pyx_t_7);
19149         __Pyx_INCREF(__pyx_t_6);
19150         __Pyx_INCREF(__pyx_t_11);
19151       } else {
19152         Py_ssize_t index = -1;
19153         __pyx_t_12 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19154         __Pyx_GOTREF(__pyx_t_12);
19155         __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext;
19156         index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_5)) goto __pyx_L15_unpacking_failed;
19157         __Pyx_GOTREF(__pyx_t_5);
19158         index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_7)) goto __pyx_L15_unpacking_failed;
19159         __Pyx_GOTREF(__pyx_t_7);
19160         index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed;
19161         __Pyx_GOTREF(__pyx_t_6);
19162         index = 3; __pyx_t_11 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L15_unpacking_failed;
19163         __Pyx_GOTREF(__pyx_t_11);
19164         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_12), 4) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19165         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
19166         goto __pyx_L16_unpacking_done;
19167         __pyx_L15_unpacking_failed:;
19168         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
19169         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
19170         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
19171         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19172         __pyx_L16_unpacking_done:;
19173       }
19174       __Pyx_DECREF(__pyx_v_o_buf);
19175       __pyx_v_o_buf = __pyx_t_5;
19176       __pyx_t_5 = 0;
19177       __Pyx_DECREF(__pyx_v_o_count);
19178       __pyx_v_o_count = __pyx_t_7;
19179       __pyx_t_7 = 0;
19180       __Pyx_DECREF(__pyx_v_o_displ);
19181       __pyx_v_o_displ = __pyx_t_6;
19182       __pyx_t_6 = 0;
19183       __Pyx_DECREF(__pyx_v_o_type);
19184       __pyx_v_o_type = __pyx_t_11;
19185       __pyx_t_11 = 0;
19186       break;
19187       default:
19188 
19189       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":104
19190  *             (o_buf, o_count, o_displ, o_type) = msg
19191  *         else:
19192  *             raise ValueError("message: expecting 2 to 4 items")             # <<<<<<<<<<<<<<
19193  *     else:
19194  *         raise TypeError("message: expecting buffer or list/tuple")
19195  */
19196       __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_16), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19197       __Pyx_GOTREF(__pyx_t_11);
19198       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19199       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19200       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19201       break;
19202     }
19203     goto __pyx_L4;
19204   }
19205   /*else*/ {
19206 
19207     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":106
19208  *             raise ValueError("message: expecting 2 to 4 items")
19209  *     else:
19210  *         raise TypeError("message: expecting buffer or list/tuple")             # <<<<<<<<<<<<<<
19211  *     # buffer: address, length, and datatype
19212  *     cdef void *baddr = NULL
19213  */
19214     __pyx_t_11 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_18), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19215     __Pyx_GOTREF(__pyx_t_11);
19216     __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19217     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19218     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19219   }
19220   __pyx_L4:;
19221 
19222   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":108
19223  *         raise TypeError("message: expecting buffer or list/tuple")
19224  *     # buffer: address, length, and datatype
19225  *     cdef void *baddr = NULL             # <<<<<<<<<<<<<<
19226  *     cdef MPI_Aint bsize = 0
19227  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
19228  */
19229   __pyx_v_baddr = NULL;
19230 
19231   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":109
19232  *     # buffer: address, length, and datatype
19233  *     cdef void *baddr = NULL
19234  *     cdef MPI_Aint bsize = 0             # <<<<<<<<<<<<<<
19235  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
19236  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
19237  */
19238   __pyx_v_bsize = 0;
19239 
19240   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":110
19241  *     cdef void *baddr = NULL
19242  *     cdef MPI_Aint bsize = 0
19243  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
19244  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
19245  *                                       &baddr, &bsize, &btype)
19246  */
19247   __pyx_v_btype = MPI_DATATYPE_NULL;
19248 
19249   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":112
19250  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
19251  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
19252  *                                       &baddr, &bsize, &btype)             # <<<<<<<<<<<<<<
19253  *     # buffer: count and displacement
19254  *     cdef int count = 0 # number of datatype entries
19255  */
19256   __pyx_t_11 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_basic(__pyx_v_o_buf, __pyx_v_o_type, __pyx_v_readonly, (&__pyx_v_baddr), (&__pyx_v_bsize), (&__pyx_v_btype))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19257   __Pyx_GOTREF(__pyx_t_11);
19258   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)__pyx_t_11);
19259   __pyx_t_11 = 0;
19260 
19261   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":114
19262  *                                       &baddr, &bsize, &btype)
19263  *     # buffer: count and displacement
19264  *     cdef int count = 0 # number of datatype entries             # <<<<<<<<<<<<<<
19265  *     cdef int displ = 0 # from base buffer, in datatype entries
19266  *     cdef MPI_Aint offset = 0 # from base buffer, in bytes
19267  */
19268   __pyx_v_count = 0;
19269 
19270   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":115
19271  *     # buffer: count and displacement
19272  *     cdef int count = 0 # number of datatype entries
19273  *     cdef int displ = 0 # from base buffer, in datatype entries             # <<<<<<<<<<<<<<
19274  *     cdef MPI_Aint offset = 0 # from base buffer, in bytes
19275  *     cdef MPI_Aint extent = 0, lb = 0
19276  */
19277   __pyx_v_displ = 0;
19278 
19279   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":116
19280  *     cdef int count = 0 # number of datatype entries
19281  *     cdef int displ = 0 # from base buffer, in datatype entries
19282  *     cdef MPI_Aint offset = 0 # from base buffer, in bytes             # <<<<<<<<<<<<<<
19283  *     cdef MPI_Aint extent = 0, lb = 0
19284  *     if o_displ is not None:
19285  */
19286   __pyx_v_offset = 0;
19287 
19288   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":117
19289  *     cdef int displ = 0 # from base buffer, in datatype entries
19290  *     cdef MPI_Aint offset = 0 # from base buffer, in bytes
19291  *     cdef MPI_Aint extent = 0, lb = 0             # <<<<<<<<<<<<<<
19292  *     if o_displ is not None:
19293  *         if o_count is None: raise ValueError(
19294  */
19295   __pyx_v_extent = 0;
19296   __pyx_v_lb = 0;
19297 
19298   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":118
19299  *     cdef MPI_Aint offset = 0 # from base buffer, in bytes
19300  *     cdef MPI_Aint extent = 0, lb = 0
19301  *     if o_displ is not None:             # <<<<<<<<<<<<<<
19302  *         if o_count is None: raise ValueError(
19303  *             "message: cannot handle displacement, "
19304  */
19305   __pyx_t_10 = (__pyx_v_o_displ != Py_None);
19306   if (__pyx_t_10) {
19307 
19308     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":119
19309  *     cdef MPI_Aint extent = 0, lb = 0
19310  *     if o_displ is not None:
19311  *         if o_count is None: raise ValueError(             # <<<<<<<<<<<<<<
19312  *             "message: cannot handle displacement, "
19313  *             "explicit count required")
19314  */
19315     __pyx_t_10 = (__pyx_v_o_count == Py_None);
19316     if (__pyx_t_10) {
19317       __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_20), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19318       __Pyx_GOTREF(__pyx_t_11);
19319       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19320       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19321       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19322       goto __pyx_L18;
19323     }
19324     __pyx_L18:;
19325 
19326     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":122
19327  *             "message: cannot handle displacement, "
19328  *             "explicit count required")
19329  *         count = <int> o_count             # <<<<<<<<<<<<<<
19330  *         if count < 0: raise ValueError(
19331  *             "message: negative count %d" % count)
19332  */
19333     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_o_count); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19334     __pyx_v_count = ((int)__pyx_t_2);
19335 
19336     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":123
19337  *             "explicit count required")
19338  *         count = <int> o_count
19339  *         if count < 0: raise ValueError(             # <<<<<<<<<<<<<<
19340  *             "message: negative count %d" % count)
19341  *         displ = <int> o_displ
19342  */
19343     __pyx_t_10 = (__pyx_v_count < 0);
19344     if (__pyx_t_10) {
19345 
19346       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":124
19347  *         count = <int> o_count
19348  *         if count < 0: raise ValueError(
19349  *             "message: negative count %d" % count)             # <<<<<<<<<<<<<<
19350  *         displ = <int> o_displ
19351  *         if displ < 0: raise ValueError(
19352  */
19353       __pyx_t_11 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19354       __Pyx_GOTREF(__pyx_t_11);
19355       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_t_11); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19356       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
19357       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19358       __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19359       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19360       PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_6));
19361       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
19362       __pyx_t_6 = 0;
19363       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19364       __Pyx_GOTREF(__pyx_t_6);
19365       __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
19366       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
19367       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19368       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19369       goto __pyx_L19;
19370     }
19371     __pyx_L19:;
19372 
19373     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":125
19374  *         if count < 0: raise ValueError(
19375  *             "message: negative count %d" % count)
19376  *         displ = <int> o_displ             # <<<<<<<<<<<<<<
19377  *         if displ < 0: raise ValueError(
19378  *             "message: negative diplacement %d" % displ)
19379  */
19380     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_o_displ); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19381     __pyx_v_displ = ((int)__pyx_t_2);
19382 
19383     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":126
19384  *             "message: negative count %d" % count)
19385  *         displ = <int> o_displ
19386  *         if displ < 0: raise ValueError(             # <<<<<<<<<<<<<<
19387  *             "message: negative diplacement %d" % displ)
19388  *         if displ != 0:
19389  */
19390     __pyx_t_10 = (__pyx_v_displ < 0);
19391     if (__pyx_t_10) {
19392 
19393       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":127
19394  *         displ = <int> o_displ
19395  *         if displ < 0: raise ValueError(
19396  *             "message: negative diplacement %d" % displ)             # <<<<<<<<<<<<<<
19397  *         if displ != 0:
19398  *             if btype == MPI_DATATYPE_NULL: raise ValueError(
19399  */
19400       __pyx_t_6 = PyInt_FromLong(__pyx_v_displ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19401       __Pyx_GOTREF(__pyx_t_6);
19402       __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_22), __pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19403       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19404       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19405       __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19406       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
19407       PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_11));
19408       __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
19409       __pyx_t_11 = 0;
19410       __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19411       __Pyx_GOTREF(__pyx_t_11);
19412       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
19413       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19414       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19415       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19416       goto __pyx_L20;
19417     }
19418     __pyx_L20:;
19419 
19420     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":128
19421  *         if displ < 0: raise ValueError(
19422  *             "message: negative diplacement %d" % displ)
19423  *         if displ != 0:             # <<<<<<<<<<<<<<
19424  *             if btype == MPI_DATATYPE_NULL: raise ValueError(
19425  *                 "message: cannot handle diplacement, "
19426  */
19427     __pyx_t_10 = (__pyx_v_displ != 0);
19428     if (__pyx_t_10) {
19429 
19430       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":129
19431  *             "message: negative diplacement %d" % displ)
19432  *         if displ != 0:
19433  *             if btype == MPI_DATATYPE_NULL: raise ValueError(             # <<<<<<<<<<<<<<
19434  *                 "message: cannot handle diplacement, "
19435  *                 "datatype is null")
19436  */
19437       __pyx_t_10 = (__pyx_v_btype == MPI_DATATYPE_NULL);
19438       if (__pyx_t_10) {
19439         __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_24), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19440         __Pyx_GOTREF(__pyx_t_11);
19441         __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19442         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19443         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19444         goto __pyx_L22;
19445       }
19446       __pyx_L22:;
19447 
19448       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":132
19449  *                 "message: cannot handle diplacement, "
19450  *                 "datatype is null")
19451  *             CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )             # <<<<<<<<<<<<<<
19452  *             offset = displ*extent # XXX overflow?
19453  *     elif o_count is not None:
19454  */
19455       __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(__pyx_v_btype, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19456 
19457       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":133
19458  *                 "datatype is null")
19459  *             CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )
19460  *             offset = displ*extent # XXX overflow?             # <<<<<<<<<<<<<<
19461  *     elif o_count is not None:
19462  *         count = <int> o_count
19463  */
19464       __pyx_v_offset = (__pyx_v_displ * __pyx_v_extent);
19465       goto __pyx_L21;
19466     }
19467     __pyx_L21:;
19468     goto __pyx_L17;
19469   }
19470 
19471   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":134
19472  *             CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )
19473  *             offset = displ*extent # XXX overflow?
19474  *     elif o_count is not None:             # <<<<<<<<<<<<<<
19475  *         count = <int> o_count
19476  *         if count < 0:
19477  */
19478   __pyx_t_10 = (__pyx_v_o_count != Py_None);
19479   if (__pyx_t_10) {
19480 
19481     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":135
19482  *             offset = displ*extent # XXX overflow?
19483  *     elif o_count is not None:
19484  *         count = <int> o_count             # <<<<<<<<<<<<<<
19485  *         if count < 0:
19486  *             raise ValueError(
19487  */
19488     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_o_count); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19489     __pyx_v_count = ((int)__pyx_t_2);
19490 
19491     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":136
19492  *     elif o_count is not None:
19493  *         count = <int> o_count
19494  *         if count < 0:             # <<<<<<<<<<<<<<
19495  *             raise ValueError(
19496  *                 "message: negative count %d" % count)
19497  */
19498     __pyx_t_10 = (__pyx_v_count < 0);
19499     if (__pyx_t_10) {
19500 
19501       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":138
19502  *         if count < 0:
19503  *             raise ValueError(
19504  *                 "message: negative count %d" % count)             # <<<<<<<<<<<<<<
19505  *     elif bsize > 0:
19506  *         if btype == MPI_DATATYPE_NULL: raise ValueError(
19507  */
19508       __pyx_t_11 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19509       __Pyx_GOTREF(__pyx_t_11);
19510       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_t_11); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19511       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
19512       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19513       __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19514       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19515       PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_6));
19516       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
19517       __pyx_t_6 = 0;
19518       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19519       __Pyx_GOTREF(__pyx_t_6);
19520       __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
19521       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
19522       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19523       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19524       goto __pyx_L23;
19525     }
19526     __pyx_L23:;
19527     goto __pyx_L17;
19528   }
19529 
19530   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":139
19531  *             raise ValueError(
19532  *                 "message: negative count %d" % count)
19533  *     elif bsize > 0:             # <<<<<<<<<<<<<<
19534  *         if btype == MPI_DATATYPE_NULL: raise ValueError(
19535  *             "message: cannot guess count, "
19536  */
19537   __pyx_t_10 = (__pyx_v_bsize > 0);
19538   if (__pyx_t_10) {
19539 
19540     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":140
19541  *                 "message: negative count %d" % count)
19542  *     elif bsize > 0:
19543  *         if btype == MPI_DATATYPE_NULL: raise ValueError(             # <<<<<<<<<<<<<<
19544  *             "message: cannot guess count, "
19545  *             "datatype is null")
19546  */
19547     __pyx_t_10 = (__pyx_v_btype == MPI_DATATYPE_NULL);
19548     if (__pyx_t_10) {
19549       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_26), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19550       __Pyx_GOTREF(__pyx_t_6);
19551       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
19552       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19553       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19554       goto __pyx_L24;
19555     }
19556     __pyx_L24:;
19557 
19558     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":143
19559  *             "message: cannot guess count, "
19560  *             "datatype is null")
19561  *         CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )             # <<<<<<<<<<<<<<
19562  *         if extent <= 0: raise ValueError(
19563  *             ("message: cannot guess count, "
19564  */
19565     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(__pyx_v_btype, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19566 
19567     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":144
19568  *             "datatype is null")
19569  *         CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )
19570  *         if extent <= 0: raise ValueError(             # <<<<<<<<<<<<<<
19571  *             ("message: cannot guess count, "
19572  *              "datatype extent %d (lb:%d, ub:%d)"
19573  */
19574     __pyx_t_10 = (__pyx_v_extent <= 0);
19575     if (__pyx_t_10) {
19576 
19577       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":147
19578  *             ("message: cannot guess count, "
19579  *              "datatype extent %d (lb:%d, ub:%d)"
19580  *              ) % (extent, lb, lb+extent))             # <<<<<<<<<<<<<<
19581  *         if (bsize % extent) != 0: raise ValueError(
19582  *             ("message: cannot guess count, "
19583  */
19584       __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19585       __Pyx_GOTREF(__pyx_t_6);
19586       __pyx_t_11 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19587       __Pyx_GOTREF(__pyx_t_11);
19588       __pyx_t_7 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19589       __Pyx_GOTREF(__pyx_t_7);
19590       __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19591       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
19592       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
19593       __Pyx_GIVEREF(__pyx_t_6);
19594       PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_11);
19595       __Pyx_GIVEREF(__pyx_t_11);
19596       PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_7);
19597       __Pyx_GIVEREF(__pyx_t_7);
19598       __pyx_t_6 = 0;
19599       __pyx_t_11 = 0;
19600       __pyx_t_7 = 0;
19601       __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_27), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19602       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
19603       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
19604       __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19605       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
19606       PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_7));
19607       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
19608       __pyx_t_7 = 0;
19609       __pyx_t_7 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19610       __Pyx_GOTREF(__pyx_t_7);
19611       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
19612       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
19613       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19614       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19615       goto __pyx_L25;
19616     }
19617     __pyx_L25:;
19618 
19619     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":148
19620  *              "datatype extent %d (lb:%d, ub:%d)"
19621  *              ) % (extent, lb, lb+extent))
19622  *         if (bsize % extent) != 0: raise ValueError(             # <<<<<<<<<<<<<<
19623  *             ("message: cannot guess count, "
19624  *              "buffer length %d is not a multiple of "
19625  */
19626     __pyx_t_10 = ((__pyx_v_bsize % __pyx_v_extent) != 0);
19627     if (__pyx_t_10) {
19628 
19629       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":152
19630  *              "buffer length %d is not a multiple of "
19631  *              "datatype extent %d (lb:%d, ub:%d)"
19632  *              ) % (bsize, extent, lb, lb+extent))             # <<<<<<<<<<<<<<
19633  *         if blocks < 1: blocks = 1
19634  *         if ((bsize // extent) % blocks) != 0: raise ValueError(
19635  */
19636       __pyx_t_7 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_bsize); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19637       __Pyx_GOTREF(__pyx_t_7);
19638       __pyx_t_5 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19639       __Pyx_GOTREF(__pyx_t_5);
19640       __pyx_t_11 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19641       __Pyx_GOTREF(__pyx_t_11);
19642       __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19643       __Pyx_GOTREF(__pyx_t_6);
19644       __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19645       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
19646       PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_7);
19647       __Pyx_GIVEREF(__pyx_t_7);
19648       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_5);
19649       __Pyx_GIVEREF(__pyx_t_5);
19650       PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_11);
19651       __Pyx_GIVEREF(__pyx_t_11);
19652       PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_6);
19653       __Pyx_GIVEREF(__pyx_t_6);
19654       __pyx_t_7 = 0;
19655       __pyx_t_5 = 0;
19656       __pyx_t_11 = 0;
19657       __pyx_t_6 = 0;
19658       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_28), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19659       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
19660       __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
19661       __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19662       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
19663       PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_6));
19664       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
19665       __pyx_t_6 = 0;
19666       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19667       __Pyx_GOTREF(__pyx_t_6);
19668       __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
19669       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
19670       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
19671       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19672       goto __pyx_L26;
19673     }
19674     __pyx_L26:;
19675 
19676     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":153
19677  *              "datatype extent %d (lb:%d, ub:%d)"
19678  *              ) % (bsize, extent, lb, lb+extent))
19679  *         if blocks < 1: blocks = 1             # <<<<<<<<<<<<<<
19680  *         if ((bsize // extent) % blocks) != 0: raise ValueError(
19681  *             ("message: cannot guess count, "
19682  */
19683     __pyx_t_10 = (__pyx_v_blocks < 1);
19684     if (__pyx_t_10) {
19685       __pyx_v_blocks = 1;
19686       goto __pyx_L27;
19687     }
19688     __pyx_L27:;
19689 
19690     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":154
19691  *              ) % (bsize, extent, lb, lb+extent))
19692  *         if blocks < 1: blocks = 1
19693  *         if ((bsize // extent) % blocks) != 0: raise ValueError(             # <<<<<<<<<<<<<<
19694  *             ("message: cannot guess count, "
19695  *              "number of datatype items %d is not a multiple of"
19696  */
19697     __pyx_t_10 = (((__pyx_v_bsize / __pyx_v_extent) % __pyx_v_blocks) != 0);
19698     if (__pyx_t_10) {
19699 
19700       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":158
19701  *              "number of datatype items %d is not a multiple of"
19702  *              "the required number of blocks %d"
19703  *              ) %  (bsize//extent, blocks))             # <<<<<<<<<<<<<<
19704  *         count = <int> ((bsize // extent) // blocks) # XXX overflow?
19705  *     if o_count is None: o_count = count
19706  */
19707       __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_bsize / __pyx_v_extent)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19708       __Pyx_GOTREF(__pyx_t_6);
19709       __pyx_t_12 = PyInt_FromLong(__pyx_v_blocks); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19710       __Pyx_GOTREF(__pyx_t_12);
19711       __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19712       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19713       PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6);
19714       __Pyx_GIVEREF(__pyx_t_6);
19715       PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_12);
19716       __Pyx_GIVEREF(__pyx_t_12);
19717       __pyx_t_6 = 0;
19718       __pyx_t_12 = 0;
19719       __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_29), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19720       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
19721       __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
19722       __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19723       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19724       PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_12));
19725       __Pyx_GIVEREF(((PyObject *)__pyx_t_12));
19726       __pyx_t_12 = 0;
19727       __pyx_t_12 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19728       __Pyx_GOTREF(__pyx_t_12);
19729       __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
19730       __Pyx_Raise(__pyx_t_12, 0, 0, 0);
19731       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
19732       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19733       goto __pyx_L28;
19734     }
19735     __pyx_L28:;
19736 
19737     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":159
19738  *              "the required number of blocks %d"
19739  *              ) %  (bsize//extent, blocks))
19740  *         count = <int> ((bsize // extent) // blocks) # XXX overflow?             # <<<<<<<<<<<<<<
19741  *     if o_count is None: o_count = count
19742  *     if o_displ is None: o_displ = displ
19743  */
19744     __pyx_v_count = ((int)((__pyx_v_bsize / __pyx_v_extent) / __pyx_v_blocks));
19745     goto __pyx_L17;
19746   }
19747   __pyx_L17:;
19748 
19749   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":160
19750  *              ) %  (bsize//extent, blocks))
19751  *         count = <int> ((bsize // extent) // blocks) # XXX overflow?
19752  *     if o_count is None: o_count = count             # <<<<<<<<<<<<<<
19753  *     if o_displ is None: o_displ = displ
19754  *     m.count = o_count
19755  */
19756   __pyx_t_10 = (__pyx_v_o_count == Py_None);
19757   if (__pyx_t_10) {
19758     __pyx_t_12 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19759     __Pyx_GOTREF(__pyx_t_12);
19760     __Pyx_DECREF(__pyx_v_o_count);
19761     __pyx_v_o_count = __pyx_t_12;
19762     __pyx_t_12 = 0;
19763     goto __pyx_L29;
19764   }
19765   __pyx_L29:;
19766 
19767   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":161
19768  *         count = <int> ((bsize // extent) // blocks) # XXX overflow?
19769  *     if o_count is None: o_count = count
19770  *     if o_displ is None: o_displ = displ             # <<<<<<<<<<<<<<
19771  *     m.count = o_count
19772  *     m.displ = o_displ
19773  */
19774   __pyx_t_10 = (__pyx_v_o_displ == Py_None);
19775   if (__pyx_t_10) {
19776     __pyx_t_12 = PyInt_FromLong(__pyx_v_displ); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19777     __Pyx_GOTREF(__pyx_t_12);
19778     __Pyx_DECREF(__pyx_v_o_displ);
19779     __pyx_v_o_displ = __pyx_t_12;
19780     __pyx_t_12 = 0;
19781     goto __pyx_L30;
19782   }
19783   __pyx_L30:;
19784 
19785   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":162
19786  *     if o_count is None: o_count = count
19787  *     if o_displ is None: o_displ = displ
19788  *     m.count = o_count             # <<<<<<<<<<<<<<
19789  *     m.displ = o_displ
19790  *     # sanity-check zero-sized messages
19791  */
19792   __Pyx_INCREF(__pyx_v_o_count);
19793   __Pyx_GIVEREF(__pyx_v_o_count);
19794   __Pyx_GOTREF(__pyx_v_m->count);
19795   __Pyx_DECREF(__pyx_v_m->count);
19796   __pyx_v_m->count = __pyx_v_o_count;
19797 
19798   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":163
19799  *     if o_displ is None: o_displ = displ
19800  *     m.count = o_count
19801  *     m.displ = o_displ             # <<<<<<<<<<<<<<
19802  *     # sanity-check zero-sized messages
19803  *     if o_buf is None:
19804  */
19805   __Pyx_INCREF(__pyx_v_o_displ);
19806   __Pyx_GIVEREF(__pyx_v_o_displ);
19807   __Pyx_GOTREF(__pyx_v_m->displ);
19808   __Pyx_DECREF(__pyx_v_m->displ);
19809   __pyx_v_m->displ = __pyx_v_o_displ;
19810 
19811   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":165
19812  *     m.displ = o_displ
19813  *     # sanity-check zero-sized messages
19814  *     if o_buf is None:             # <<<<<<<<<<<<<<
19815  *         if count != 0:
19816  *             raise ValueError(
19817  */
19818   __pyx_t_10 = (__pyx_v_o_buf == Py_None);
19819   if (__pyx_t_10) {
19820 
19821     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":166
19822  *     # sanity-check zero-sized messages
19823  *     if o_buf is None:
19824  *         if count != 0:             # <<<<<<<<<<<<<<
19825  *             raise ValueError(
19826  *                 "message: buffer is None but count is %d" % count)
19827  */
19828     __pyx_t_10 = (__pyx_v_count != 0);
19829     if (__pyx_t_10) {
19830 
19831       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":168
19832  *         if count != 0:
19833  *             raise ValueError(
19834  *                 "message: buffer is None but count is %d" % count)             # <<<<<<<<<<<<<<
19835  *         if displ != 0:
19836  *             raise ValueError(
19837  */
19838       __pyx_t_12 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19839       __Pyx_GOTREF(__pyx_t_12);
19840       __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_30), __pyx_t_12); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19841       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19842       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
19843       __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19844       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
19845       PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_11));
19846       __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
19847       __pyx_t_11 = 0;
19848       __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19849       __Pyx_GOTREF(__pyx_t_11);
19850       __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
19851       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
19852       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19853       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19854       goto __pyx_L32;
19855     }
19856     __pyx_L32:;
19857 
19858     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":169
19859  *             raise ValueError(
19860  *                 "message: buffer is None but count is %d" % count)
19861  *         if displ != 0:             # <<<<<<<<<<<<<<
19862  *             raise ValueError(
19863  *                 "message: buffer is None but displacement is %d" % displ)
19864  */
19865     __pyx_t_10 = (__pyx_v_displ != 0);
19866     if (__pyx_t_10) {
19867 
19868       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":171
19869  *         if displ != 0:
19870  *             raise ValueError(
19871  *                 "message: buffer is None but displacement is %d" % displ)             # <<<<<<<<<<<<<<
19872  *     # return collected message data
19873  *     _addr[0]  = <void*>(<char*>baddr + offset)
19874  */
19875       __pyx_t_11 = PyInt_FromLong(__pyx_v_displ); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19876       __Pyx_GOTREF(__pyx_t_11);
19877       __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_31), __pyx_t_11); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19878       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
19879       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
19880       __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19881       __Pyx_GOTREF(((PyObject *)__pyx_t_11));
19882       PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_12));
19883       __Pyx_GIVEREF(((PyObject *)__pyx_t_12));
19884       __pyx_t_12 = 0;
19885       __pyx_t_12 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19886       __Pyx_GOTREF(__pyx_t_12);
19887       __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
19888       __Pyx_Raise(__pyx_t_12, 0, 0, 0);
19889       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
19890       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19891       goto __pyx_L33;
19892     }
19893     __pyx_L33:;
19894     goto __pyx_L31;
19895   }
19896   __pyx_L31:;
19897 
19898   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":173
19899  *                 "message: buffer is None but displacement is %d" % displ)
19900  *     # return collected message data
19901  *     _addr[0]  = <void*>(<char*>baddr + offset)             # <<<<<<<<<<<<<<
19902  *     _count[0] = count
19903  *     _type[0]  = btype
19904  */
19905   (__pyx_v__addr[0]) = ((void *)(((char *)__pyx_v_baddr) + __pyx_v_offset));
19906 
19907   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":174
19908  *     # return collected message data
19909  *     _addr[0]  = <void*>(<char*>baddr + offset)
19910  *     _count[0] = count             # <<<<<<<<<<<<<<
19911  *     _type[0]  = btype
19912  *     return m
19913  */
19914   (__pyx_v__count[0]) = __pyx_v_count;
19915 
19916   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":175
19917  *     _addr[0]  = <void*>(<char*>baddr + offset)
19918  *     _count[0] = count
19919  *     _type[0]  = btype             # <<<<<<<<<<<<<<
19920  *     return m
19921  *
19922  */
19923   (__pyx_v__type[0]) = __pyx_v_btype;
19924 
19925   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":176
19926  *     _count[0] = count
19927  *     _type[0]  = btype
19928  *     return m             # <<<<<<<<<<<<<<
19929  *
19930  * cdef _p_message message_vector(object msg,
19931  */
19932   __Pyx_XDECREF(((PyObject *)__pyx_r));
19933   __Pyx_INCREF(((PyObject *)__pyx_v_m));
19934   __pyx_r = __pyx_v_m;
19935   goto __pyx_L0;
19936 
19937   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)Py_None); __Pyx_INCREF(Py_None);
19938   goto __pyx_L0;
19939   __pyx_L1_error:;
19940   __Pyx_XDECREF(__pyx_t_5);
19941   __Pyx_XDECREF(__pyx_t_6);
19942   __Pyx_XDECREF(__pyx_t_7);
19943   __Pyx_XDECREF(__pyx_t_11);
19944   __Pyx_XDECREF(__pyx_t_12);
19945   __Pyx_AddTraceback("mpi4py.MPI.message_simple", __pyx_clineno, __pyx_lineno, __pyx_filename);
19946   __pyx_r = 0;
19947   __pyx_L0:;
19948   __Pyx_XDECREF(__pyx_v_o_buf);
19949   __Pyx_XDECREF(__pyx_v_o_count);
19950   __Pyx_XDECREF(__pyx_v_o_displ);
19951   __Pyx_XDECREF(__pyx_v_o_type);
19952   __Pyx_XDECREF((PyObject *)__pyx_v_m);
19953   __Pyx_XGIVEREF((PyObject *)__pyx_r);
19954   __Pyx_RefNannyFinishContext();
19955   return __pyx_r;
19956 }
19957 
19958 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":178
19959  *     return m
19960  *
19961  * cdef _p_message message_vector(object msg,             # <<<<<<<<<<<<<<
19962  *                                int readonly,
19963  *                                int rank,
19964  */
19965 
__pyx_f_6mpi4py_3MPI_message_vector(PyObject * __pyx_v_msg,int __pyx_v_readonly,int __pyx_v_rank,int __pyx_v_blocks,void ** __pyx_v__addr,int ** __pyx_v__counts,int ** __pyx_v__displs,MPI_Datatype * __pyx_v__type)19966 static struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_f_6mpi4py_3MPI_message_vector(PyObject *__pyx_v_msg, int __pyx_v_readonly, int __pyx_v_rank, int __pyx_v_blocks, void **__pyx_v__addr, int **__pyx_v__counts, int **__pyx_v__displs, MPI_Datatype *__pyx_v__type) {
19967   Py_ssize_t __pyx_v_nargs;
19968   PyObject *__pyx_v_o_buf = 0;
19969   PyObject *__pyx_v_o_counts = 0;
19970   PyObject *__pyx_v_o_displs = 0;
19971   PyObject *__pyx_v_o_type = 0;
19972   void *__pyx_v_baddr;
19973   MPI_Aint __pyx_v_bsize;
19974   MPI_Datatype __pyx_v_btype;
19975   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_v_m = 0;
19976   int *__pyx_v_counts;
19977   int *__pyx_v_displs;
19978   int __pyx_v_i;
19979   int __pyx_v_val;
19980   MPI_Aint __pyx_v_extent;
19981   MPI_Aint __pyx_v_lb;
19982   MPI_Aint __pyx_v_asize;
19983   MPI_Aint __pyx_v_aval;
19984   struct __pyx_obj_6mpi4py_3MPI__p_message *__pyx_r = NULL;
19985   __Pyx_RefNannyDeclarations
19986   int __pyx_t_1;
19987   int __pyx_t_2;
19988   int __pyx_t_3;
19989   Py_ssize_t __pyx_t_4;
19990   PyObject *__pyx_t_5 = NULL;
19991   PyObject *__pyx_t_6 = NULL;
19992   PyObject *__pyx_t_7 = NULL;
19993   PyObject *(*__pyx_t_8)(PyObject *);
19994   int __pyx_t_9;
19995   int __pyx_t_10;
19996   PyObject *__pyx_t_11 = NULL;
19997   PyObject *__pyx_t_12 = NULL;
19998   int __pyx_lineno = 0;
19999   const char *__pyx_filename = NULL;
20000   int __pyx_clineno = 0;
20001   __Pyx_RefNannySetupContext("message_vector");
20002 
20003   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":189
20004  *                                ):
20005  *     # special-case PROC_NULL target rank
20006  *     if rank == MPI_PROC_NULL:             # <<<<<<<<<<<<<<
20007  *         _addr[0]   = NULL
20008  *         _counts[0] = NULL
20009  */
20010   __pyx_t_1 = (__pyx_v_rank == MPI_PROC_NULL);
20011   if (__pyx_t_1) {
20012 
20013     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":190
20014  *     # special-case PROC_NULL target rank
20015  *     if rank == MPI_PROC_NULL:
20016  *         _addr[0]   = NULL             # <<<<<<<<<<<<<<
20017  *         _counts[0] = NULL
20018  *         _displs[0] = NULL
20019  */
20020     (__pyx_v__addr[0]) = NULL;
20021 
20022     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":191
20023  *     if rank == MPI_PROC_NULL:
20024  *         _addr[0]   = NULL
20025  *         _counts[0] = NULL             # <<<<<<<<<<<<<<
20026  *         _displs[0] = NULL
20027  *         _type[0]   = MPI_BYTE
20028  */
20029     (__pyx_v__counts[0]) = NULL;
20030 
20031     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":192
20032  *         _addr[0]   = NULL
20033  *         _counts[0] = NULL
20034  *         _displs[0] = NULL             # <<<<<<<<<<<<<<
20035  *         _type[0]   = MPI_BYTE
20036  *         return None
20037  */
20038     (__pyx_v__displs[0]) = NULL;
20039 
20040     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":193
20041  *         _counts[0] = NULL
20042  *         _displs[0] = NULL
20043  *         _type[0]   = MPI_BYTE             # <<<<<<<<<<<<<<
20044  *         return None
20045  *     # unpack message list/tuple
20046  */
20047     (__pyx_v__type[0]) = MPI_BYTE;
20048 
20049     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":194
20050  *         _displs[0] = NULL
20051  *         _type[0]   = MPI_BYTE
20052  *         return None             # <<<<<<<<<<<<<<
20053  *     # unpack message list/tuple
20054  *     cdef Py_ssize_t nargs = 0
20055  */
20056     __Pyx_XDECREF(((PyObject *)__pyx_r));
20057     __Pyx_INCREF(Py_None);
20058     __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)Py_None);
20059     goto __pyx_L0;
20060     goto __pyx_L3;
20061   }
20062   __pyx_L3:;
20063 
20064   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":196
20065  *         return None
20066  *     # unpack message list/tuple
20067  *     cdef Py_ssize_t nargs = 0             # <<<<<<<<<<<<<<
20068  *     cdef object o_buf    = None
20069  *     cdef object o_counts = None
20070  */
20071   __pyx_v_nargs = 0;
20072 
20073   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":197
20074  *     # unpack message list/tuple
20075  *     cdef Py_ssize_t nargs = 0
20076  *     cdef object o_buf    = None             # <<<<<<<<<<<<<<
20077  *     cdef object o_counts = None
20078  *     cdef object o_displs = None
20079  */
20080   __Pyx_INCREF(Py_None);
20081   __pyx_v_o_buf = Py_None;
20082 
20083   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":198
20084  *     cdef Py_ssize_t nargs = 0
20085  *     cdef object o_buf    = None
20086  *     cdef object o_counts = None             # <<<<<<<<<<<<<<
20087  *     cdef object o_displs = None
20088  *     cdef object o_type   = None
20089  */
20090   __Pyx_INCREF(Py_None);
20091   __pyx_v_o_counts = Py_None;
20092 
20093   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":199
20094  *     cdef object o_buf    = None
20095  *     cdef object o_counts = None
20096  *     cdef object o_displs = None             # <<<<<<<<<<<<<<
20097  *     cdef object o_type   = None
20098  *     if is_buffer(msg):
20099  */
20100   __Pyx_INCREF(Py_None);
20101   __pyx_v_o_displs = Py_None;
20102 
20103   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":200
20104  *     cdef object o_counts = None
20105  *     cdef object o_displs = None
20106  *     cdef object o_type   = None             # <<<<<<<<<<<<<<
20107  *     if is_buffer(msg):
20108  *         o_buf = msg
20109  */
20110   __Pyx_INCREF(Py_None);
20111   __pyx_v_o_type = Py_None;
20112 
20113   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":201
20114  *     cdef object o_displs = None
20115  *     cdef object o_type   = None
20116  *     if is_buffer(msg):             # <<<<<<<<<<<<<<
20117  *         o_buf = msg
20118  *     elif is_list(msg) or is_tuple(msg):
20119  */
20120   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_is_buffer(__pyx_v_msg);
20121   if (__pyx_t_1) {
20122 
20123     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":202
20124  *     cdef object o_type   = None
20125  *     if is_buffer(msg):
20126  *         o_buf = msg             # <<<<<<<<<<<<<<
20127  *     elif is_list(msg) or is_tuple(msg):
20128  *         nargs = len(msg)
20129  */
20130     __Pyx_INCREF(__pyx_v_msg);
20131     __Pyx_DECREF(__pyx_v_o_buf);
20132     __pyx_v_o_buf = __pyx_v_msg;
20133     goto __pyx_L4;
20134   }
20135 
20136   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":203
20137  *     if is_buffer(msg):
20138  *         o_buf = msg
20139  *     elif is_list(msg) or is_tuple(msg):             # <<<<<<<<<<<<<<
20140  *         nargs = len(msg)
20141  *         if nargs == 2:
20142  */
20143   __pyx_t_2 = PyList_Check(__pyx_v_msg);
20144   if (!__pyx_t_2) {
20145     __pyx_t_3 = PyTuple_Check(__pyx_v_msg);
20146     __pyx_t_1 = __pyx_t_3;
20147   } else {
20148     __pyx_t_1 = __pyx_t_2;
20149   }
20150   if (__pyx_t_1) {
20151 
20152     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":204
20153  *         o_buf = msg
20154  *     elif is_list(msg) or is_tuple(msg):
20155  *         nargs = len(msg)             # <<<<<<<<<<<<<<
20156  *         if nargs == 2:
20157  *             (o_buf, o_counts) = msg
20158  */
20159     __pyx_t_4 = PyObject_Length(__pyx_v_msg); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20160     __pyx_v_nargs = __pyx_t_4;
20161 
20162     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":216
20163  *             if is_tuple(o_counts):
20164  *                 (o_counts, o_displs) = o_counts
20165  *         elif nargs == 4:             # <<<<<<<<<<<<<<
20166  *             (o_buf, o_counts, o_displs, o_type) = msg
20167  *         else:
20168  */
20169     switch (__pyx_v_nargs) {
20170 
20171       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":205
20172  *     elif is_list(msg) or is_tuple(msg):
20173  *         nargs = len(msg)
20174  *         if nargs == 2:             # <<<<<<<<<<<<<<
20175  *             (o_buf, o_counts) = msg
20176  *             if (isinstance(o_counts, Datatype) or
20177  */
20178       case 2:
20179 
20180       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":206
20181  *         nargs = len(msg)
20182  *         if nargs == 2:
20183  *             (o_buf, o_counts) = msg             # <<<<<<<<<<<<<<
20184  *             if (isinstance(o_counts, Datatype) or
20185  *                 isinstance(o_counts, str)):
20186  */
20187       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
20188         PyObject* sequence = __pyx_v_msg;
20189         if (likely(PyTuple_CheckExact(sequence))) {
20190           if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
20191             if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20192             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
20193             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20194           }
20195           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
20196           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
20197         } else {
20198           if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
20199             if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20200             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
20201             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20202           }
20203           __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
20204           __pyx_t_6 = PyList_GET_ITEM(sequence, 1);
20205         }
20206         __Pyx_INCREF(__pyx_t_5);
20207         __Pyx_INCREF(__pyx_t_6);
20208       } else {
20209         Py_ssize_t index = -1;
20210         __pyx_t_7 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20211         __Pyx_GOTREF(__pyx_t_7);
20212         __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
20213         index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
20214         __Pyx_GOTREF(__pyx_t_5);
20215         index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
20216         __Pyx_GOTREF(__pyx_t_6);
20217         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20218         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20219         goto __pyx_L6_unpacking_done;
20220         __pyx_L5_unpacking_failed:;
20221         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20222         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
20223         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
20224         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20225         __pyx_L6_unpacking_done:;
20226       }
20227       __Pyx_DECREF(__pyx_v_o_buf);
20228       __pyx_v_o_buf = __pyx_t_5;
20229       __pyx_t_5 = 0;
20230       __Pyx_DECREF(__pyx_v_o_counts);
20231       __pyx_v_o_counts = __pyx_t_6;
20232       __pyx_t_6 = 0;
20233 
20234       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":207
20235  *         if nargs == 2:
20236  *             (o_buf, o_counts) = msg
20237  *             if (isinstance(o_counts, Datatype) or             # <<<<<<<<<<<<<<
20238  *                 isinstance(o_counts, str)):
20239  *                 (o_counts, o_type) = None, o_counts
20240  */
20241       __pyx_t_6 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
20242       __Pyx_INCREF(__pyx_t_6);
20243       __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o_counts, __pyx_t_6);
20244       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20245       if (!__pyx_t_1) {
20246 
20247         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":208
20248  *             (o_buf, o_counts) = msg
20249  *             if (isinstance(o_counts, Datatype) or
20250  *                 isinstance(o_counts, str)):             # <<<<<<<<<<<<<<
20251  *                 (o_counts, o_type) = None, o_counts
20252  *             elif is_tuple(o_counts):
20253  */
20254         __pyx_t_6 = ((PyObject *)((PyObject*)(&PyString_Type)));
20255         __Pyx_INCREF(__pyx_t_6);
20256         __pyx_t_9 = __Pyx_TypeCheck(__pyx_v_o_counts, __pyx_t_6);
20257         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20258         __pyx_t_10 = __pyx_t_9;
20259       } else {
20260         __pyx_t_10 = __pyx_t_1;
20261       }
20262       if (__pyx_t_10) {
20263 
20264         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":209
20265  *             if (isinstance(o_counts, Datatype) or
20266  *                 isinstance(o_counts, str)):
20267  *                 (o_counts, o_type) = None, o_counts             # <<<<<<<<<<<<<<
20268  *             elif is_tuple(o_counts):
20269  *                 (o_counts, o_displs) = o_counts
20270  */
20271         __pyx_t_6 = Py_None;
20272         __Pyx_INCREF(__pyx_t_6);
20273         __pyx_t_5 = __pyx_v_o_counts;
20274         __Pyx_INCREF(__pyx_t_5);
20275         __Pyx_DECREF(__pyx_v_o_counts);
20276         __pyx_v_o_counts = __pyx_t_6;
20277         __pyx_t_6 = 0;
20278         __Pyx_DECREF(__pyx_v_o_type);
20279         __pyx_v_o_type = __pyx_t_5;
20280         __pyx_t_5 = 0;
20281         goto __pyx_L7;
20282       }
20283 
20284       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":210
20285  *                 isinstance(o_counts, str)):
20286  *                 (o_counts, o_type) = None, o_counts
20287  *             elif is_tuple(o_counts):             # <<<<<<<<<<<<<<
20288  *                 (o_counts, o_displs) = o_counts
20289  *         elif nargs == 3:
20290  */
20291       __pyx_t_2 = PyTuple_Check(__pyx_v_o_counts);
20292       if (__pyx_t_2) {
20293 
20294         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":211
20295  *                 (o_counts, o_type) = None, o_counts
20296  *             elif is_tuple(o_counts):
20297  *                 (o_counts, o_displs) = o_counts             # <<<<<<<<<<<<<<
20298  *         elif nargs == 3:
20299  *             (o_buf, o_counts, o_type) = msg
20300  */
20301         if ((likely(PyTuple_CheckExact(__pyx_v_o_counts))) || (PyList_CheckExact(__pyx_v_o_counts))) {
20302           PyObject* sequence = __pyx_v_o_counts;
20303           if (likely(PyTuple_CheckExact(sequence))) {
20304             if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
20305               if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20306               else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
20307               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20308             }
20309             __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
20310             __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
20311           } else {
20312             if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
20313               if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20314               else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
20315               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20316             }
20317             __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
20318             __pyx_t_6 = PyList_GET_ITEM(sequence, 1);
20319           }
20320           __Pyx_INCREF(__pyx_t_5);
20321           __Pyx_INCREF(__pyx_t_6);
20322         } else {
20323           Py_ssize_t index = -1;
20324           __pyx_t_7 = PyObject_GetIter(__pyx_v_o_counts); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20325           __Pyx_GOTREF(__pyx_t_7);
20326           __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
20327           index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
20328           __Pyx_GOTREF(__pyx_t_5);
20329           index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;
20330           __Pyx_GOTREF(__pyx_t_6);
20331           if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20332           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20333           goto __pyx_L9_unpacking_done;
20334           __pyx_L8_unpacking_failed:;
20335           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20336           if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
20337           if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
20338           {__pyx_filename = __pyx_f[15]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20339           __pyx_L9_unpacking_done:;
20340         }
20341         __Pyx_DECREF(__pyx_v_o_counts);
20342         __pyx_v_o_counts = __pyx_t_5;
20343         __pyx_t_5 = 0;
20344         __Pyx_DECREF(__pyx_v_o_displs);
20345         __pyx_v_o_displs = __pyx_t_6;
20346         __pyx_t_6 = 0;
20347         goto __pyx_L7;
20348       }
20349       __pyx_L7:;
20350       break;
20351 
20352       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":212
20353  *             elif is_tuple(o_counts):
20354  *                 (o_counts, o_displs) = o_counts
20355  *         elif nargs == 3:             # <<<<<<<<<<<<<<
20356  *             (o_buf, o_counts, o_type) = msg
20357  *             if is_tuple(o_counts):
20358  */
20359       case 3:
20360 
20361       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":213
20362  *                 (o_counts, o_displs) = o_counts
20363  *         elif nargs == 3:
20364  *             (o_buf, o_counts, o_type) = msg             # <<<<<<<<<<<<<<
20365  *             if is_tuple(o_counts):
20366  *                 (o_counts, o_displs) = o_counts
20367  */
20368       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
20369         PyObject* sequence = __pyx_v_msg;
20370         if (likely(PyTuple_CheckExact(sequence))) {
20371           if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) {
20372             if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
20373             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
20374             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20375           }
20376           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
20377           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
20378           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2);
20379         } else {
20380           if (unlikely(PyList_GET_SIZE(sequence) != 3)) {
20381             if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
20382             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
20383             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20384           }
20385           __pyx_t_6 = PyList_GET_ITEM(sequence, 0);
20386           __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
20387           __pyx_t_7 = PyList_GET_ITEM(sequence, 2);
20388         }
20389         __Pyx_INCREF(__pyx_t_6);
20390         __Pyx_INCREF(__pyx_t_5);
20391         __Pyx_INCREF(__pyx_t_7);
20392       } else {
20393         Py_ssize_t index = -1;
20394         __pyx_t_11 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20395         __Pyx_GOTREF(__pyx_t_11);
20396         __pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext;
20397         index = 0; __pyx_t_6 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed;
20398         __Pyx_GOTREF(__pyx_t_6);
20399         index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed;
20400         __Pyx_GOTREF(__pyx_t_5);
20401         index = 2; __pyx_t_7 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L10_unpacking_failed;
20402         __Pyx_GOTREF(__pyx_t_7);
20403         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 3) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20404         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20405         goto __pyx_L11_unpacking_done;
20406         __pyx_L10_unpacking_failed:;
20407         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20408         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
20409         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
20410         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20411         __pyx_L11_unpacking_done:;
20412       }
20413       __Pyx_DECREF(__pyx_v_o_buf);
20414       __pyx_v_o_buf = __pyx_t_6;
20415       __pyx_t_6 = 0;
20416       __Pyx_DECREF(__pyx_v_o_counts);
20417       __pyx_v_o_counts = __pyx_t_5;
20418       __pyx_t_5 = 0;
20419       __Pyx_DECREF(__pyx_v_o_type);
20420       __pyx_v_o_type = __pyx_t_7;
20421       __pyx_t_7 = 0;
20422 
20423       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":214
20424  *         elif nargs == 3:
20425  *             (o_buf, o_counts, o_type) = msg
20426  *             if is_tuple(o_counts):             # <<<<<<<<<<<<<<
20427  *                 (o_counts, o_displs) = o_counts
20428  *         elif nargs == 4:
20429  */
20430       __pyx_t_2 = PyTuple_Check(__pyx_v_o_counts);
20431       if (__pyx_t_2) {
20432 
20433         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":215
20434  *             (o_buf, o_counts, o_type) = msg
20435  *             if is_tuple(o_counts):
20436  *                 (o_counts, o_displs) = o_counts             # <<<<<<<<<<<<<<
20437  *         elif nargs == 4:
20438  *             (o_buf, o_counts, o_displs, o_type) = msg
20439  */
20440         if ((likely(PyTuple_CheckExact(__pyx_v_o_counts))) || (PyList_CheckExact(__pyx_v_o_counts))) {
20441           PyObject* sequence = __pyx_v_o_counts;
20442           if (likely(PyTuple_CheckExact(sequence))) {
20443             if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
20444               if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20445               else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
20446               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20447             }
20448             __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);
20449             __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
20450           } else {
20451             if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
20452               if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
20453               else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
20454               {__pyx_filename = __pyx_f[15]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20455             }
20456             __pyx_t_7 = PyList_GET_ITEM(sequence, 0);
20457             __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
20458           }
20459           __Pyx_INCREF(__pyx_t_7);
20460           __Pyx_INCREF(__pyx_t_5);
20461         } else {
20462           Py_ssize_t index = -1;
20463           __pyx_t_6 = PyObject_GetIter(__pyx_v_o_counts); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20464           __Pyx_GOTREF(__pyx_t_6);
20465           __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
20466           index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_7)) goto __pyx_L13_unpacking_failed;
20467           __Pyx_GOTREF(__pyx_t_7);
20468           index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L13_unpacking_failed;
20469           __Pyx_GOTREF(__pyx_t_5);
20470           if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20471           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20472           goto __pyx_L14_unpacking_done;
20473           __pyx_L13_unpacking_failed:;
20474           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20475           if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
20476           if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
20477           {__pyx_filename = __pyx_f[15]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20478           __pyx_L14_unpacking_done:;
20479         }
20480         __Pyx_DECREF(__pyx_v_o_counts);
20481         __pyx_v_o_counts = __pyx_t_7;
20482         __pyx_t_7 = 0;
20483         __Pyx_DECREF(__pyx_v_o_displs);
20484         __pyx_v_o_displs = __pyx_t_5;
20485         __pyx_t_5 = 0;
20486         goto __pyx_L12;
20487       }
20488       __pyx_L12:;
20489       break;
20490 
20491       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":216
20492  *             if is_tuple(o_counts):
20493  *                 (o_counts, o_displs) = o_counts
20494  *         elif nargs == 4:             # <<<<<<<<<<<<<<
20495  *             (o_buf, o_counts, o_displs, o_type) = msg
20496  *         else:
20497  */
20498       case 4:
20499 
20500       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":217
20501  *                 (o_counts, o_displs) = o_counts
20502  *         elif nargs == 4:
20503  *             (o_buf, o_counts, o_displs, o_type) = msg             # <<<<<<<<<<<<<<
20504  *         else:
20505  *             raise ValueError("message: expecting 2 to 4 items")
20506  */
20507       if ((likely(PyTuple_CheckExact(__pyx_v_msg))) || (PyList_CheckExact(__pyx_v_msg))) {
20508         PyObject* sequence = __pyx_v_msg;
20509         if (likely(PyTuple_CheckExact(sequence))) {
20510           if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) {
20511             if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
20512             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
20513             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20514           }
20515           __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
20516           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);
20517           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
20518           __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3);
20519         } else {
20520           if (unlikely(PyList_GET_SIZE(sequence) != 4)) {
20521             if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
20522             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
20523             {__pyx_filename = __pyx_f[15]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20524           }
20525           __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
20526           __pyx_t_7 = PyList_GET_ITEM(sequence, 1);
20527           __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
20528           __pyx_t_11 = PyList_GET_ITEM(sequence, 3);
20529         }
20530         __Pyx_INCREF(__pyx_t_5);
20531         __Pyx_INCREF(__pyx_t_7);
20532         __Pyx_INCREF(__pyx_t_6);
20533         __Pyx_INCREF(__pyx_t_11);
20534       } else {
20535         Py_ssize_t index = -1;
20536         __pyx_t_12 = PyObject_GetIter(__pyx_v_msg); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20537         __Pyx_GOTREF(__pyx_t_12);
20538         __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext;
20539         index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_5)) goto __pyx_L15_unpacking_failed;
20540         __Pyx_GOTREF(__pyx_t_5);
20541         index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_7)) goto __pyx_L15_unpacking_failed;
20542         __Pyx_GOTREF(__pyx_t_7);
20543         index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed;
20544         __Pyx_GOTREF(__pyx_t_6);
20545         index = 3; __pyx_t_11 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L15_unpacking_failed;
20546         __Pyx_GOTREF(__pyx_t_11);
20547         if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_12), 4) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20548         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
20549         goto __pyx_L16_unpacking_done;
20550         __pyx_L15_unpacking_failed:;
20551         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
20552         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
20553         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
20554         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20555         __pyx_L16_unpacking_done:;
20556       }
20557       __Pyx_DECREF(__pyx_v_o_buf);
20558       __pyx_v_o_buf = __pyx_t_5;
20559       __pyx_t_5 = 0;
20560       __Pyx_DECREF(__pyx_v_o_counts);
20561       __pyx_v_o_counts = __pyx_t_7;
20562       __pyx_t_7 = 0;
20563       __Pyx_DECREF(__pyx_v_o_displs);
20564       __pyx_v_o_displs = __pyx_t_6;
20565       __pyx_t_6 = 0;
20566       __Pyx_DECREF(__pyx_v_o_type);
20567       __pyx_v_o_type = __pyx_t_11;
20568       __pyx_t_11 = 0;
20569       break;
20570       default:
20571 
20572       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":219
20573  *             (o_buf, o_counts, o_displs, o_type) = msg
20574  *         else:
20575  *             raise ValueError("message: expecting 2 to 4 items")             # <<<<<<<<<<<<<<
20576  *     else:
20577  *         raise TypeError("message: expecting buffer or list/tuple")
20578  */
20579       __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_32), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20580       __Pyx_GOTREF(__pyx_t_11);
20581       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
20582       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20583       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20584       break;
20585     }
20586     goto __pyx_L4;
20587   }
20588   /*else*/ {
20589 
20590     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":221
20591  *             raise ValueError("message: expecting 2 to 4 items")
20592  *     else:
20593  *         raise TypeError("message: expecting buffer or list/tuple")             # <<<<<<<<<<<<<<
20594  *     # buffer: address, length, and datatype
20595  *     cdef void *baddr = NULL
20596  */
20597     __pyx_t_11 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_33), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20598     __Pyx_GOTREF(__pyx_t_11);
20599     __Pyx_Raise(__pyx_t_11, 0, 0, 0);
20600     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20601     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20602   }
20603   __pyx_L4:;
20604 
20605   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":223
20606  *         raise TypeError("message: expecting buffer or list/tuple")
20607  *     # buffer: address, length, and datatype
20608  *     cdef void *baddr = NULL             # <<<<<<<<<<<<<<
20609  *     cdef MPI_Aint bsize = 0
20610  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
20611  */
20612   __pyx_v_baddr = NULL;
20613 
20614   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":224
20615  *     # buffer: address, length, and datatype
20616  *     cdef void *baddr = NULL
20617  *     cdef MPI_Aint bsize = 0             # <<<<<<<<<<<<<<
20618  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
20619  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
20620  */
20621   __pyx_v_bsize = 0;
20622 
20623   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":225
20624  *     cdef void *baddr = NULL
20625  *     cdef MPI_Aint bsize = 0
20626  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
20627  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
20628  *                                       &baddr, &bsize, &btype)
20629  */
20630   __pyx_v_btype = MPI_DATATYPE_NULL;
20631 
20632   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":227
20633  *     cdef MPI_Datatype btype = MPI_DATATYPE_NULL
20634  *     cdef _p_message m = message_basic(o_buf, o_type, readonly,
20635  *                                       &baddr, &bsize, &btype)             # <<<<<<<<<<<<<<
20636  *     # counts and displacements
20637  *     cdef int *counts = NULL
20638  */
20639   __pyx_t_11 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_basic(__pyx_v_o_buf, __pyx_v_o_type, __pyx_v_readonly, (&__pyx_v_baddr), (&__pyx_v_bsize), (&__pyx_v_btype))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20640   __Pyx_GOTREF(__pyx_t_11);
20641   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)__pyx_t_11);
20642   __pyx_t_11 = 0;
20643 
20644   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":229
20645  *                                       &baddr, &bsize, &btype)
20646  *     # counts and displacements
20647  *     cdef int *counts = NULL             # <<<<<<<<<<<<<<
20648  *     cdef int *displs = NULL
20649  *     cdef int i=0, val=0
20650  */
20651   __pyx_v_counts = NULL;
20652 
20653   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":230
20654  *     # counts and displacements
20655  *     cdef int *counts = NULL
20656  *     cdef int *displs = NULL             # <<<<<<<<<<<<<<
20657  *     cdef int i=0, val=0
20658  *     cdef MPI_Aint extent=0, lb=0
20659  */
20660   __pyx_v_displs = NULL;
20661 
20662   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":231
20663  *     cdef int *counts = NULL
20664  *     cdef int *displs = NULL
20665  *     cdef int i=0, val=0             # <<<<<<<<<<<<<<
20666  *     cdef MPI_Aint extent=0, lb=0
20667  *     cdef MPI_Aint asize=0, aval=0
20668  */
20669   __pyx_v_i = 0;
20670   __pyx_v_val = 0;
20671 
20672   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":232
20673  *     cdef int *displs = NULL
20674  *     cdef int i=0, val=0
20675  *     cdef MPI_Aint extent=0, lb=0             # <<<<<<<<<<<<<<
20676  *     cdef MPI_Aint asize=0, aval=0
20677  *     if o_counts is None:
20678  */
20679   __pyx_v_extent = 0;
20680   __pyx_v_lb = 0;
20681 
20682   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":233
20683  *     cdef int i=0, val=0
20684  *     cdef MPI_Aint extent=0, lb=0
20685  *     cdef MPI_Aint asize=0, aval=0             # <<<<<<<<<<<<<<
20686  *     if o_counts is None:
20687  *         if bsize > 0:
20688  */
20689   __pyx_v_asize = 0;
20690   __pyx_v_aval = 0;
20691 
20692   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":234
20693  *     cdef MPI_Aint extent=0, lb=0
20694  *     cdef MPI_Aint asize=0, aval=0
20695  *     if o_counts is None:             # <<<<<<<<<<<<<<
20696  *         if bsize > 0:
20697  *             if btype == MPI_DATATYPE_NULL:
20698  */
20699   __pyx_t_10 = (__pyx_v_o_counts == Py_None);
20700   if (__pyx_t_10) {
20701 
20702     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":235
20703  *     cdef MPI_Aint asize=0, aval=0
20704  *     if o_counts is None:
20705  *         if bsize > 0:             # <<<<<<<<<<<<<<
20706  *             if btype == MPI_DATATYPE_NULL:
20707  *                 raise ValueError(
20708  */
20709     __pyx_t_10 = (__pyx_v_bsize > 0);
20710     if (__pyx_t_10) {
20711 
20712       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":236
20713  *     if o_counts is None:
20714  *         if bsize > 0:
20715  *             if btype == MPI_DATATYPE_NULL:             # <<<<<<<<<<<<<<
20716  *                 raise ValueError(
20717  *                     "message: cannot guess count, "
20718  */
20719       __pyx_t_10 = (__pyx_v_btype == MPI_DATATYPE_NULL);
20720       if (__pyx_t_10) {
20721 
20722         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":237
20723  *         if bsize > 0:
20724  *             if btype == MPI_DATATYPE_NULL:
20725  *                 raise ValueError(             # <<<<<<<<<<<<<<
20726  *                     "message: cannot guess count, "
20727  *                     "datatype is null")
20728  */
20729         __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20730         __Pyx_GOTREF(__pyx_t_11);
20731         __Pyx_Raise(__pyx_t_11, 0, 0, 0);
20732         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20733         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20734         goto __pyx_L19;
20735       }
20736       __pyx_L19:;
20737 
20738       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":240
20739  *                     "message: cannot guess count, "
20740  *                     "datatype is null")
20741  *             CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )             # <<<<<<<<<<<<<<
20742  *             if extent <= 0: raise ValueError(
20743  *                 ("message: cannot guess count, "
20744  */
20745       __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(__pyx_v_btype, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20746 
20747       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":241
20748  *                     "datatype is null")
20749  *             CHKERR( MPI_Type_get_extent(btype, &lb, &extent) )
20750  *             if extent <= 0: raise ValueError(             # <<<<<<<<<<<<<<
20751  *                 ("message: cannot guess count, "
20752  *                  "datatype extent %d (lb:%d, ub:%d)"
20753  */
20754       __pyx_t_10 = (__pyx_v_extent <= 0);
20755       if (__pyx_t_10) {
20756 
20757         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":244
20758  *                 ("message: cannot guess count, "
20759  *                  "datatype extent %d (lb:%d, ub:%d)"
20760  *                  ) % (extent, lb, lb+extent))             # <<<<<<<<<<<<<<
20761  *             if (bsize % extent) != 0: raise ValueError(
20762  *                 ("message: cannot guess count, "
20763  */
20764         __pyx_t_11 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20765         __Pyx_GOTREF(__pyx_t_11);
20766         __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20767         __Pyx_GOTREF(__pyx_t_6);
20768         __pyx_t_7 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20769         __Pyx_GOTREF(__pyx_t_7);
20770         __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20771         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
20772         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_11);
20773         __Pyx_GIVEREF(__pyx_t_11);
20774         PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
20775         __Pyx_GIVEREF(__pyx_t_6);
20776         PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_7);
20777         __Pyx_GIVEREF(__pyx_t_7);
20778         __pyx_t_11 = 0;
20779         __pyx_t_6 = 0;
20780         __pyx_t_7 = 0;
20781         __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_27), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20782         __Pyx_GOTREF(((PyObject *)__pyx_t_7));
20783         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
20784         __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20785         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
20786         PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_7));
20787         __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
20788         __pyx_t_7 = 0;
20789         __pyx_t_7 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20790         __Pyx_GOTREF(__pyx_t_7);
20791         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
20792         __Pyx_Raise(__pyx_t_7, 0, 0, 0);
20793         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
20794         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20795         goto __pyx_L20;
20796       }
20797       __pyx_L20:;
20798 
20799       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":245
20800  *                  "datatype extent %d (lb:%d, ub:%d)"
20801  *                  ) % (extent, lb, lb+extent))
20802  *             if (bsize % extent) != 0: raise ValueError(             # <<<<<<<<<<<<<<
20803  *                 ("message: cannot guess count, "
20804  *                  "buffer length %d is not a multiple of "
20805  */
20806       __pyx_t_10 = ((__pyx_v_bsize % __pyx_v_extent) != 0);
20807       if (__pyx_t_10) {
20808 
20809         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":249
20810  *                  "buffer length %d is not a multiple of "
20811  *                  "datatype extent %d (lb:%d, ub:%d)"
20812  *                  ) % (bsize, extent, lb, lb+extent))             # <<<<<<<<<<<<<<
20813  *             asize = bsize // extent
20814  *         o_counts = newarray_int(blocks, &counts)
20815  */
20816         __pyx_t_7 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_bsize); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20817         __Pyx_GOTREF(__pyx_t_7);
20818         __pyx_t_5 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20819         __Pyx_GOTREF(__pyx_t_5);
20820         __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20821         __Pyx_GOTREF(__pyx_t_6);
20822         __pyx_t_11 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20823         __Pyx_GOTREF(__pyx_t_11);
20824         __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20825         __Pyx_GOTREF(((PyObject *)__pyx_t_12));
20826         PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_7);
20827         __Pyx_GIVEREF(__pyx_t_7);
20828         PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_5);
20829         __Pyx_GIVEREF(__pyx_t_5);
20830         PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_6);
20831         __Pyx_GIVEREF(__pyx_t_6);
20832         PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_11);
20833         __Pyx_GIVEREF(__pyx_t_11);
20834         __pyx_t_7 = 0;
20835         __pyx_t_5 = 0;
20836         __pyx_t_6 = 0;
20837         __pyx_t_11 = 0;
20838         __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_28), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20839         __Pyx_GOTREF(((PyObject *)__pyx_t_11));
20840         __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
20841         __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20842         __Pyx_GOTREF(((PyObject *)__pyx_t_12));
20843         PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_11));
20844         __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
20845         __pyx_t_11 = 0;
20846         __pyx_t_11 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20847         __Pyx_GOTREF(__pyx_t_11);
20848         __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
20849         __Pyx_Raise(__pyx_t_11, 0, 0, 0);
20850         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
20851         {__pyx_filename = __pyx_f[15]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20852         goto __pyx_L21;
20853       }
20854       __pyx_L21:;
20855 
20856       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":250
20857  *                  "datatype extent %d (lb:%d, ub:%d)"
20858  *                  ) % (bsize, extent, lb, lb+extent))
20859  *             asize = bsize // extent             # <<<<<<<<<<<<<<
20860  *         o_counts = newarray_int(blocks, &counts)
20861  *         for i from 0 <= i < blocks:
20862  */
20863       __pyx_v_asize = (__pyx_v_bsize / __pyx_v_extent);
20864       goto __pyx_L18;
20865     }
20866     __pyx_L18:;
20867 
20868     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":251
20869  *                  ) % (bsize, extent, lb, lb+extent))
20870  *             asize = bsize // extent
20871  *         o_counts = newarray_int(blocks, &counts)             # <<<<<<<<<<<<<<
20872  *         for i from 0 <= i < blocks:
20873  *             aval = (asize // blocks) + (asize % blocks > i)
20874  */
20875     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_blocks, (&__pyx_v_counts)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20876     __Pyx_GOTREF(__pyx_t_11);
20877     __Pyx_DECREF(__pyx_v_o_counts);
20878     __pyx_v_o_counts = __pyx_t_11;
20879     __pyx_t_11 = 0;
20880 
20881     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":252
20882  *             asize = bsize // extent
20883  *         o_counts = newarray_int(blocks, &counts)
20884  *         for i from 0 <= i < blocks:             # <<<<<<<<<<<<<<
20885  *             aval = (asize // blocks) + (asize % blocks > i)
20886  *             counts[i] = <int> aval # XXX overflow?
20887  */
20888     __pyx_t_2 = __pyx_v_blocks;
20889     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
20890 
20891       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":253
20892  *         o_counts = newarray_int(blocks, &counts)
20893  *         for i from 0 <= i < blocks:
20894  *             aval = (asize // blocks) + (asize % blocks > i)             # <<<<<<<<<<<<<<
20895  *             counts[i] = <int> aval # XXX overflow?
20896  *     elif is_int(o_counts):
20897  */
20898       __pyx_v_aval = ((__pyx_v_asize / __pyx_v_blocks) + ((__pyx_v_asize % __pyx_v_blocks) > __pyx_v_i));
20899 
20900       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":254
20901  *         for i from 0 <= i < blocks:
20902  *             aval = (asize // blocks) + (asize % blocks > i)
20903  *             counts[i] = <int> aval # XXX overflow?             # <<<<<<<<<<<<<<
20904  *     elif is_int(o_counts):
20905  *         val = <int> o_counts
20906  */
20907       (__pyx_v_counts[__pyx_v_i]) = ((int)__pyx_v_aval);
20908     }
20909     goto __pyx_L17;
20910   }
20911 
20912   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":255
20913  *             aval = (asize // blocks) + (asize % blocks > i)
20914  *             counts[i] = <int> aval # XXX overflow?
20915  *     elif is_int(o_counts):             # <<<<<<<<<<<<<<
20916  *         val = <int> o_counts
20917  *         o_counts = newarray_int(blocks, &counts)
20918  */
20919   __pyx_t_2 = PyInt_Check(__pyx_v_o_counts);
20920   if (__pyx_t_2) {
20921 
20922     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":256
20923  *             counts[i] = <int> aval # XXX overflow?
20924  *     elif is_int(o_counts):
20925  *         val = <int> o_counts             # <<<<<<<<<<<<<<
20926  *         o_counts = newarray_int(blocks, &counts)
20927  *         for i from 0 <= i < blocks:
20928  */
20929     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_o_counts); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20930     __pyx_v_val = ((int)__pyx_t_2);
20931 
20932     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":257
20933  *     elif is_int(o_counts):
20934  *         val = <int> o_counts
20935  *         o_counts = newarray_int(blocks, &counts)             # <<<<<<<<<<<<<<
20936  *         for i from 0 <= i < blocks:
20937  *             counts[i] = val
20938  */
20939     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_blocks, (&__pyx_v_counts)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20940     __Pyx_GOTREF(__pyx_t_11);
20941     __Pyx_DECREF(__pyx_v_o_counts);
20942     __pyx_v_o_counts = __pyx_t_11;
20943     __pyx_t_11 = 0;
20944 
20945     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":258
20946  *         val = <int> o_counts
20947  *         o_counts = newarray_int(blocks, &counts)
20948  *         for i from 0 <= i < blocks:             # <<<<<<<<<<<<<<
20949  *             counts[i] = val
20950  *     else:
20951  */
20952     __pyx_t_2 = __pyx_v_blocks;
20953     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
20954 
20955       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":259
20956  *         o_counts = newarray_int(blocks, &counts)
20957  *         for i from 0 <= i < blocks:
20958  *             counts[i] = val             # <<<<<<<<<<<<<<
20959  *     else:
20960  *         o_counts = chkarray_int(o_counts, blocks, &counts)
20961  */
20962       (__pyx_v_counts[__pyx_v_i]) = __pyx_v_val;
20963     }
20964     goto __pyx_L17;
20965   }
20966   /*else*/ {
20967 
20968     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":261
20969  *             counts[i] = val
20970  *     else:
20971  *         o_counts = chkarray_int(o_counts, blocks, &counts)             # <<<<<<<<<<<<<<
20972  *     if o_displs is None: # contiguous
20973  *         val = 0
20974  */
20975     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_o_counts, __pyx_v_blocks, (&__pyx_v_counts)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20976     __Pyx_GOTREF(__pyx_t_11);
20977     __Pyx_DECREF(__pyx_v_o_counts);
20978     __pyx_v_o_counts = __pyx_t_11;
20979     __pyx_t_11 = 0;
20980   }
20981   __pyx_L17:;
20982 
20983   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":262
20984  *     else:
20985  *         o_counts = chkarray_int(o_counts, blocks, &counts)
20986  *     if o_displs is None: # contiguous             # <<<<<<<<<<<<<<
20987  *         val = 0
20988  *         o_displs = newarray_int(blocks, &displs)
20989  */
20990   __pyx_t_10 = (__pyx_v_o_displs == Py_None);
20991   if (__pyx_t_10) {
20992 
20993     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":263
20994  *         o_counts = chkarray_int(o_counts, blocks, &counts)
20995  *     if o_displs is None: # contiguous
20996  *         val = 0             # <<<<<<<<<<<<<<
20997  *         o_displs = newarray_int(blocks, &displs)
20998  *         for i from 0 <= i < blocks:
20999  */
21000     __pyx_v_val = 0;
21001 
21002     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":264
21003  *     if o_displs is None: # contiguous
21004  *         val = 0
21005  *         o_displs = newarray_int(blocks, &displs)             # <<<<<<<<<<<<<<
21006  *         for i from 0 <= i < blocks:
21007  *             displs[i] = val
21008  */
21009     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_blocks, (&__pyx_v_displs)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21010     __Pyx_GOTREF(__pyx_t_11);
21011     __Pyx_DECREF(__pyx_v_o_displs);
21012     __pyx_v_o_displs = __pyx_t_11;
21013     __pyx_t_11 = 0;
21014 
21015     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":265
21016  *         val = 0
21017  *         o_displs = newarray_int(blocks, &displs)
21018  *         for i from 0 <= i < blocks:             # <<<<<<<<<<<<<<
21019  *             displs[i] = val
21020  *             val += counts[i]
21021  */
21022     __pyx_t_2 = __pyx_v_blocks;
21023     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
21024 
21025       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":266
21026  *         o_displs = newarray_int(blocks, &displs)
21027  *         for i from 0 <= i < blocks:
21028  *             displs[i] = val             # <<<<<<<<<<<<<<
21029  *             val += counts[i]
21030  *     elif is_int(o_displs): # strided
21031  */
21032       (__pyx_v_displs[__pyx_v_i]) = __pyx_v_val;
21033 
21034       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":267
21035  *         for i from 0 <= i < blocks:
21036  *             displs[i] = val
21037  *             val += counts[i]             # <<<<<<<<<<<<<<
21038  *     elif is_int(o_displs): # strided
21039  *         val = <int> o_displs
21040  */
21041       __pyx_v_val = (__pyx_v_val + (__pyx_v_counts[__pyx_v_i]));
21042     }
21043     goto __pyx_L26;
21044   }
21045 
21046   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":268
21047  *             displs[i] = val
21048  *             val += counts[i]
21049  *     elif is_int(o_displs): # strided             # <<<<<<<<<<<<<<
21050  *         val = <int> o_displs
21051  *         o_displs = newarray_int(blocks, &displs)
21052  */
21053   __pyx_t_2 = PyInt_Check(__pyx_v_o_displs);
21054   if (__pyx_t_2) {
21055 
21056     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":269
21057  *             val += counts[i]
21058  *     elif is_int(o_displs): # strided
21059  *         val = <int> o_displs             # <<<<<<<<<<<<<<
21060  *         o_displs = newarray_int(blocks, &displs)
21061  *         for i from 0 <= i < blocks:
21062  */
21063     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_o_displs); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21064     __pyx_v_val = ((int)__pyx_t_2);
21065 
21066     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":270
21067  *     elif is_int(o_displs): # strided
21068  *         val = <int> o_displs
21069  *         o_displs = newarray_int(blocks, &displs)             # <<<<<<<<<<<<<<
21070  *         for i from 0 <= i < blocks:
21071  *             displs[i] = val * i
21072  */
21073     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_blocks, (&__pyx_v_displs)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21074     __Pyx_GOTREF(__pyx_t_11);
21075     __Pyx_DECREF(__pyx_v_o_displs);
21076     __pyx_v_o_displs = __pyx_t_11;
21077     __pyx_t_11 = 0;
21078 
21079     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":271
21080  *         val = <int> o_displs
21081  *         o_displs = newarray_int(blocks, &displs)
21082  *         for i from 0 <= i < blocks:             # <<<<<<<<<<<<<<
21083  *             displs[i] = val * i
21084  *     else: # general
21085  */
21086     __pyx_t_2 = __pyx_v_blocks;
21087     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
21088 
21089       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":272
21090  *         o_displs = newarray_int(blocks, &displs)
21091  *         for i from 0 <= i < blocks:
21092  *             displs[i] = val * i             # <<<<<<<<<<<<<<
21093  *     else: # general
21094  *         o_displs = chkarray_int(o_displs, blocks, &displs)
21095  */
21096       (__pyx_v_displs[__pyx_v_i]) = (__pyx_v_val * __pyx_v_i);
21097     }
21098     goto __pyx_L26;
21099   }
21100   /*else*/ {
21101 
21102     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":274
21103  *             displs[i] = val * i
21104  *     else: # general
21105  *         o_displs = chkarray_int(o_displs, blocks, &displs)             # <<<<<<<<<<<<<<
21106  *     m.count = o_counts
21107  *     m.displ = o_displs
21108  */
21109     __pyx_t_11 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_o_displs, __pyx_v_blocks, (&__pyx_v_displs)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21110     __Pyx_GOTREF(__pyx_t_11);
21111     __Pyx_DECREF(__pyx_v_o_displs);
21112     __pyx_v_o_displs = __pyx_t_11;
21113     __pyx_t_11 = 0;
21114   }
21115   __pyx_L26:;
21116 
21117   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":275
21118  *     else: # general
21119  *         o_displs = chkarray_int(o_displs, blocks, &displs)
21120  *     m.count = o_counts             # <<<<<<<<<<<<<<
21121  *     m.displ = o_displs
21122  *     # return collected message data
21123  */
21124   __Pyx_INCREF(__pyx_v_o_counts);
21125   __Pyx_GIVEREF(__pyx_v_o_counts);
21126   __Pyx_GOTREF(__pyx_v_m->count);
21127   __Pyx_DECREF(__pyx_v_m->count);
21128   __pyx_v_m->count = __pyx_v_o_counts;
21129 
21130   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":276
21131  *         o_displs = chkarray_int(o_displs, blocks, &displs)
21132  *     m.count = o_counts
21133  *     m.displ = o_displs             # <<<<<<<<<<<<<<
21134  *     # return collected message data
21135  *     _addr[0]   = baddr
21136  */
21137   __Pyx_INCREF(__pyx_v_o_displs);
21138   __Pyx_GIVEREF(__pyx_v_o_displs);
21139   __Pyx_GOTREF(__pyx_v_m->displ);
21140   __Pyx_DECREF(__pyx_v_m->displ);
21141   __pyx_v_m->displ = __pyx_v_o_displs;
21142 
21143   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":278
21144  *     m.displ = o_displs
21145  *     # return collected message data
21146  *     _addr[0]   = baddr             # <<<<<<<<<<<<<<
21147  *     _counts[0] = counts
21148  *     _displs[0] = displs
21149  */
21150   (__pyx_v__addr[0]) = __pyx_v_baddr;
21151 
21152   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":279
21153  *     # return collected message data
21154  *     _addr[0]   = baddr
21155  *     _counts[0] = counts             # <<<<<<<<<<<<<<
21156  *     _displs[0] = displs
21157  *     _type[0]   = btype
21158  */
21159   (__pyx_v__counts[0]) = __pyx_v_counts;
21160 
21161   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":280
21162  *     _addr[0]   = baddr
21163  *     _counts[0] = counts
21164  *     _displs[0] = displs             # <<<<<<<<<<<<<<
21165  *     _type[0]   = btype
21166  *     return m
21167  */
21168   (__pyx_v__displs[0]) = __pyx_v_displs;
21169 
21170   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":281
21171  *     _counts[0] = counts
21172  *     _displs[0] = displs
21173  *     _type[0]   = btype             # <<<<<<<<<<<<<<
21174  *     return m
21175  *
21176  */
21177   (__pyx_v__type[0]) = __pyx_v_btype;
21178 
21179   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":282
21180  *     _displs[0] = displs
21181  *     _type[0]   = btype
21182  *     return m             # <<<<<<<<<<<<<<
21183  *
21184  * #------------------------------------------------------------------------------
21185  */
21186   __Pyx_XDECREF(((PyObject *)__pyx_r));
21187   __Pyx_INCREF(((PyObject *)__pyx_v_m));
21188   __pyx_r = __pyx_v_m;
21189   goto __pyx_L0;
21190 
21191   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)Py_None); __Pyx_INCREF(Py_None);
21192   goto __pyx_L0;
21193   __pyx_L1_error:;
21194   __Pyx_XDECREF(__pyx_t_5);
21195   __Pyx_XDECREF(__pyx_t_6);
21196   __Pyx_XDECREF(__pyx_t_7);
21197   __Pyx_XDECREF(__pyx_t_11);
21198   __Pyx_XDECREF(__pyx_t_12);
21199   __Pyx_AddTraceback("mpi4py.MPI.message_vector", __pyx_clineno, __pyx_lineno, __pyx_filename);
21200   __pyx_r = 0;
21201   __pyx_L0:;
21202   __Pyx_XDECREF(__pyx_v_o_buf);
21203   __Pyx_XDECREF(__pyx_v_o_counts);
21204   __Pyx_XDECREF(__pyx_v_o_displs);
21205   __Pyx_XDECREF(__pyx_v_o_type);
21206   __Pyx_XDECREF((PyObject *)__pyx_v_m);
21207   __Pyx_XGIVEREF((PyObject *)__pyx_r);
21208   __Pyx_RefNannyFinishContext();
21209   return __pyx_r;
21210 }
21211 
21212 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":295
21213  *     cdef object _msg
21214  *
21215  *     def __cinit__(self):             # <<<<<<<<<<<<<<
21216  *         self.buf   = NULL
21217  *         self.count = 0
21218  */
21219 
21220 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_p2p___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_10_p_msg_p2p___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)21221 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_p2p___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21222   int __pyx_r;
21223   __Pyx_RefNannyDeclarations
21224   __Pyx_RefNannySetupContext("__cinit__");
21225   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
21226     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
21227   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
21228 
21229   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":296
21230  *
21231  *     def __cinit__(self):
21232  *         self.buf   = NULL             # <<<<<<<<<<<<<<
21233  *         self.count = 0
21234  *         self.dtype = MPI_DATATYPE_NULL
21235  */
21236   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_v_self)->buf = NULL;
21237 
21238   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":297
21239  *     def __cinit__(self):
21240  *         self.buf   = NULL
21241  *         self.count = 0             # <<<<<<<<<<<<<<
21242  *         self.dtype = MPI_DATATYPE_NULL
21243  *
21244  */
21245   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_v_self)->count = 0;
21246 
21247   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":298
21248  *         self.buf   = NULL
21249  *         self.count = 0
21250  *         self.dtype = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
21251  *
21252  *     cdef int for_send(self, object msg, int rank) except -1:
21253  */
21254   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_v_self)->dtype = MPI_DATATYPE_NULL;
21255 
21256   __pyx_r = 0;
21257   __Pyx_RefNannyFinishContext();
21258   return __pyx_r;
21259 }
21260 
21261 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":300
21262  *         self.dtype = MPI_DATATYPE_NULL
21263  *
21264  *     cdef int for_send(self, object msg, int rank) except -1:             # <<<<<<<<<<<<<<
21265  *         self._msg = message_simple(msg, 1, # readonly
21266  *                                    rank, 0,
21267  */
21268 
__pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p * __pyx_v_self,PyObject * __pyx_v_msg,int __pyx_v_rank)21269 static int __pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_self, PyObject *__pyx_v_msg, int __pyx_v_rank) {
21270   int __pyx_r;
21271   __Pyx_RefNannyDeclarations
21272   PyObject *__pyx_t_1 = NULL;
21273   int __pyx_lineno = 0;
21274   const char *__pyx_filename = NULL;
21275   int __pyx_clineno = 0;
21276   __Pyx_RefNannySetupContext("for_send");
21277 
21278   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":305
21279  *                                    &self.buf,
21280  *                                    &self.count,
21281  *                                    &self.dtype)             # <<<<<<<<<<<<<<
21282  *         return 0
21283  *
21284  */
21285   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_msg, 1, __pyx_v_rank, 0, (&__pyx_v_self->buf), (&__pyx_v_self->count), (&__pyx_v_self->dtype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21286   __Pyx_GOTREF(__pyx_t_1);
21287 
21288   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":301
21289  *
21290  *     cdef int for_send(self, object msg, int rank) except -1:
21291  *         self._msg = message_simple(msg, 1, # readonly             # <<<<<<<<<<<<<<
21292  *                                    rank, 0,
21293  *                                    &self.buf,
21294  */
21295   __Pyx_GIVEREF(__pyx_t_1);
21296   __Pyx_GOTREF(__pyx_v_self->_msg);
21297   __Pyx_DECREF(__pyx_v_self->_msg);
21298   __pyx_v_self->_msg = __pyx_t_1;
21299   __pyx_t_1 = 0;
21300 
21301   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":306
21302  *                                    &self.count,
21303  *                                    &self.dtype)
21304  *         return 0             # <<<<<<<<<<<<<<
21305  *
21306  *     cdef int for_recv(self, object msg, int rank) except -1:
21307  */
21308   __pyx_r = 0;
21309   goto __pyx_L0;
21310 
21311   __pyx_r = 0;
21312   goto __pyx_L0;
21313   __pyx_L1_error:;
21314   __Pyx_XDECREF(__pyx_t_1);
21315   __Pyx_AddTraceback("mpi4py.MPI._p_msg_p2p.for_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
21316   __pyx_r = -1;
21317   __pyx_L0:;
21318   __Pyx_RefNannyFinishContext();
21319   return __pyx_r;
21320 }
21321 
21322 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":308
21323  *         return 0
21324  *
21325  *     cdef int for_recv(self, object msg, int rank) except -1:             # <<<<<<<<<<<<<<
21326  *         self._msg = message_simple(msg, 0, # writable
21327  *                                    rank, 0,
21328  */
21329 
__pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p * __pyx_v_self,PyObject * __pyx_v_msg,int __pyx_v_rank)21330 static int __pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_self, PyObject *__pyx_v_msg, int __pyx_v_rank) {
21331   int __pyx_r;
21332   __Pyx_RefNannyDeclarations
21333   PyObject *__pyx_t_1 = NULL;
21334   int __pyx_lineno = 0;
21335   const char *__pyx_filename = NULL;
21336   int __pyx_clineno = 0;
21337   __Pyx_RefNannySetupContext("for_recv");
21338 
21339   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":313
21340  *                                    &self.buf,
21341  *                                    &self.count,
21342  *                                    &self.dtype)             # <<<<<<<<<<<<<<
21343  *         return 0
21344  *
21345  */
21346   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_msg, 0, __pyx_v_rank, 0, (&__pyx_v_self->buf), (&__pyx_v_self->count), (&__pyx_v_self->dtype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21347   __Pyx_GOTREF(__pyx_t_1);
21348 
21349   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":309
21350  *
21351  *     cdef int for_recv(self, object msg, int rank) except -1:
21352  *         self._msg = message_simple(msg, 0, # writable             # <<<<<<<<<<<<<<
21353  *                                    rank, 0,
21354  *                                    &self.buf,
21355  */
21356   __Pyx_GIVEREF(__pyx_t_1);
21357   __Pyx_GOTREF(__pyx_v_self->_msg);
21358   __Pyx_DECREF(__pyx_v_self->_msg);
21359   __pyx_v_self->_msg = __pyx_t_1;
21360   __pyx_t_1 = 0;
21361 
21362   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":314
21363  *                                    &self.count,
21364  *                                    &self.dtype)
21365  *         return 0             # <<<<<<<<<<<<<<
21366  *
21367  * cdef inline _p_msg_p2p message_p2p_send(object sendbuf, int dest):
21368  */
21369   __pyx_r = 0;
21370   goto __pyx_L0;
21371 
21372   __pyx_r = 0;
21373   goto __pyx_L0;
21374   __pyx_L1_error:;
21375   __Pyx_XDECREF(__pyx_t_1);
21376   __Pyx_AddTraceback("mpi4py.MPI._p_msg_p2p.for_recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
21377   __pyx_r = -1;
21378   __pyx_L0:;
21379   __Pyx_RefNannyFinishContext();
21380   return __pyx_r;
21381 }
21382 
21383 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":316
21384  *         return 0
21385  *
21386  * cdef inline _p_msg_p2p message_p2p_send(object sendbuf, int dest):             # <<<<<<<<<<<<<<
21387  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21388  *     msg.for_send(sendbuf, dest)
21389  */
21390 
__pyx_f_6mpi4py_3MPI_message_p2p_send(PyObject * __pyx_v_sendbuf,int __pyx_v_dest)21391 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_f_6mpi4py_3MPI_message_p2p_send(PyObject *__pyx_v_sendbuf, int __pyx_v_dest) {
21392   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_msg = 0;
21393   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_r = NULL;
21394   __Pyx_RefNannyDeclarations
21395   PyObject *__pyx_t_1 = NULL;
21396   int __pyx_t_2;
21397   int __pyx_lineno = 0;
21398   const char *__pyx_filename = NULL;
21399   int __pyx_clineno = 0;
21400   __Pyx_RefNannySetupContext("message_p2p_send");
21401 
21402   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":317
21403  *
21404  * cdef inline _p_msg_p2p message_p2p_send(object sendbuf, int dest):
21405  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)             # <<<<<<<<<<<<<<
21406  *     msg.for_send(sendbuf, dest)
21407  *     return msg
21408  */
21409   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_p2p)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21410   __Pyx_GOTREF(__pyx_t_1);
21411   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1)));
21412   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
21413   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21414 
21415   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":318
21416  * cdef inline _p_msg_p2p message_p2p_send(object sendbuf, int dest):
21417  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21418  *     msg.for_send(sendbuf, dest)             # <<<<<<<<<<<<<<
21419  *     return msg
21420  *
21421  */
21422   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p *)__pyx_v_msg->__pyx_vtab)->for_send(__pyx_v_msg, __pyx_v_sendbuf, __pyx_v_dest); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21423 
21424   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":319
21425  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21426  *     msg.for_send(sendbuf, dest)
21427  *     return msg             # <<<<<<<<<<<<<<
21428  *
21429  * cdef inline _p_msg_p2p message_p2p_recv(object recvbuf, int source):
21430  */
21431   __Pyx_XDECREF(((PyObject *)__pyx_r));
21432   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
21433   __pyx_r = __pyx_v_msg;
21434   goto __pyx_L0;
21435 
21436   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)Py_None); __Pyx_INCREF(Py_None);
21437   goto __pyx_L0;
21438   __pyx_L1_error:;
21439   __Pyx_XDECREF(__pyx_t_1);
21440   __Pyx_AddTraceback("mpi4py.MPI.message_p2p_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
21441   __pyx_r = 0;
21442   __pyx_L0:;
21443   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
21444   __Pyx_XGIVEREF((PyObject *)__pyx_r);
21445   __Pyx_RefNannyFinishContext();
21446   return __pyx_r;
21447 }
21448 
21449 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":321
21450  *     return msg
21451  *
21452  * cdef inline _p_msg_p2p message_p2p_recv(object recvbuf, int source):             # <<<<<<<<<<<<<<
21453  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21454  *     msg.for_recv(recvbuf, source)
21455  */
21456 
__pyx_f_6mpi4py_3MPI_message_p2p_recv(PyObject * __pyx_v_recvbuf,int __pyx_v_source)21457 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_f_6mpi4py_3MPI_message_p2p_recv(PyObject *__pyx_v_recvbuf, int __pyx_v_source) {
21458   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_msg = 0;
21459   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_r = NULL;
21460   __Pyx_RefNannyDeclarations
21461   PyObject *__pyx_t_1 = NULL;
21462   int __pyx_t_2;
21463   int __pyx_lineno = 0;
21464   const char *__pyx_filename = NULL;
21465   int __pyx_clineno = 0;
21466   __Pyx_RefNannySetupContext("message_p2p_recv");
21467 
21468   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":322
21469  *
21470  * cdef inline _p_msg_p2p message_p2p_recv(object recvbuf, int source):
21471  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)             # <<<<<<<<<<<<<<
21472  *     msg.for_recv(recvbuf, source)
21473  *     return msg
21474  */
21475   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_p2p)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21476   __Pyx_GOTREF(__pyx_t_1);
21477   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1)));
21478   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
21479   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21480 
21481   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":323
21482  * cdef inline _p_msg_p2p message_p2p_recv(object recvbuf, int source):
21483  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21484  *     msg.for_recv(recvbuf, source)             # <<<<<<<<<<<<<<
21485  *     return msg
21486  *
21487  */
21488   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p *)__pyx_v_msg->__pyx_vtab)->for_recv(__pyx_v_msg, __pyx_v_recvbuf, __pyx_v_source); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21489 
21490   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":324
21491  *     cdef _p_msg_p2p msg = <_p_msg_p2p>_p_msg_p2p.__new__(_p_msg_p2p)
21492  *     msg.for_recv(recvbuf, source)
21493  *     return msg             # <<<<<<<<<<<<<<
21494  *
21495  * #------------------------------------------------------------------------------
21496  */
21497   __Pyx_XDECREF(((PyObject *)__pyx_r));
21498   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
21499   __pyx_r = __pyx_v_msg;
21500   goto __pyx_L0;
21501 
21502   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)Py_None); __Pyx_INCREF(Py_None);
21503   goto __pyx_L0;
21504   __pyx_L1_error:;
21505   __Pyx_XDECREF(__pyx_t_1);
21506   __Pyx_AddTraceback("mpi4py.MPI.message_p2p_recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
21507   __pyx_r = 0;
21508   __pyx_L0:;
21509   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
21510   __Pyx_XGIVEREF((PyObject *)__pyx_r);
21511   __Pyx_RefNannyFinishContext();
21512   return __pyx_r;
21513 }
21514 
21515 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":340
21516  *     cdef object _rcnt
21517  *
21518  *     def __cinit__(self):             # <<<<<<<<<<<<<<
21519  *         self.sbuf    = self.rbuf    = NULL
21520  *         self.scount  = self.rcount  = 0
21521  */
21522 
21523 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_cco___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_10_p_msg_cco___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)21524 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_cco___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21525   int __pyx_r;
21526   __Pyx_RefNannyDeclarations
21527   __Pyx_RefNannySetupContext("__cinit__");
21528   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
21529     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
21530   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
21531 
21532   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":341
21533  *
21534  *     def __cinit__(self):
21535  *         self.sbuf    = self.rbuf    = NULL             # <<<<<<<<<<<<<<
21536  *         self.scount  = self.rcount  = 0
21537  *         self.scounts = self.rcounts = NULL
21538  */
21539   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->sbuf = NULL;
21540   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->rbuf = NULL;
21541 
21542   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":342
21543  *     def __cinit__(self):
21544  *         self.sbuf    = self.rbuf    = NULL
21545  *         self.scount  = self.rcount  = 0             # <<<<<<<<<<<<<<
21546  *         self.scounts = self.rcounts = NULL
21547  *         self.sdispls = self.rdispls = NULL
21548  */
21549   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->scount = 0;
21550   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->rcount = 0;
21551 
21552   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":343
21553  *         self.sbuf    = self.rbuf    = NULL
21554  *         self.scount  = self.rcount  = 0
21555  *         self.scounts = self.rcounts = NULL             # <<<<<<<<<<<<<<
21556  *         self.sdispls = self.rdispls = NULL
21557  *         self.stype   = self.rtype   = MPI_DATATYPE_NULL
21558  */
21559   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->scounts = NULL;
21560   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->rcounts = NULL;
21561 
21562   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":344
21563  *         self.scount  = self.rcount  = 0
21564  *         self.scounts = self.rcounts = NULL
21565  *         self.sdispls = self.rdispls = NULL             # <<<<<<<<<<<<<<
21566  *         self.stype   = self.rtype   = MPI_DATATYPE_NULL
21567  *
21568  */
21569   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->sdispls = NULL;
21570   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->rdispls = NULL;
21571 
21572   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":345
21573  *         self.scounts = self.rcounts = NULL
21574  *         self.sdispls = self.rdispls = NULL
21575  *         self.stype   = self.rtype   = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
21576  *
21577  *     # Collective Communication Operations
21578  */
21579   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->stype = MPI_DATATYPE_NULL;
21580   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self)->rtype = MPI_DATATYPE_NULL;
21581 
21582   __pyx_r = 0;
21583   __Pyx_RefNannyFinishContext();
21584   return __pyx_r;
21585 }
21586 
21587 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":351
21588  *
21589  *     # sendbuf arguments
21590  *     cdef int for_cco_send(self, int vector,             # <<<<<<<<<<<<<<
21591  *                           object amsg,
21592  *                           int root, int size) except -1:
21593  */
21594 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_vector,PyObject * __pyx_v_amsg,int __pyx_v_root,int __pyx_v_size)21595 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_vector, PyObject *__pyx_v_amsg, int __pyx_v_root, int __pyx_v_size) {
21596   int __pyx_r;
21597   __Pyx_RefNannyDeclarations
21598   int __pyx_t_1;
21599   PyObject *__pyx_t_2 = NULL;
21600   int __pyx_lineno = 0;
21601   const char *__pyx_filename = NULL;
21602   int __pyx_clineno = 0;
21603   __Pyx_RefNannySetupContext("for_cco_send");
21604 
21605   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":354
21606  *                           object amsg,
21607  *                           int root, int size) except -1:
21608  *         if not vector: # block variant             # <<<<<<<<<<<<<<
21609  *             self._smsg = message_simple(
21610  *                 amsg, 1, root, size,
21611  */
21612   __pyx_t_1 = (!__pyx_v_vector);
21613   if (__pyx_t_1) {
21614 
21615     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":357
21616  *             self._smsg = message_simple(
21617  *                 amsg, 1, root, size,
21618  *                 &self.sbuf, &self.scount, &self.stype)             # <<<<<<<<<<<<<<
21619  *         else: # vector variant
21620  *             self._smsg = message_vector(
21621  */
21622     __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_amsg, 1, __pyx_v_root, __pyx_v_size, (&__pyx_v_self->sbuf), (&__pyx_v_self->scount), (&__pyx_v_self->stype))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21623     __Pyx_GOTREF(__pyx_t_2);
21624 
21625     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":355
21626  *                           int root, int size) except -1:
21627  *         if not vector: # block variant
21628  *             self._smsg = message_simple(             # <<<<<<<<<<<<<<
21629  *                 amsg, 1, root, size,
21630  *                 &self.sbuf, &self.scount, &self.stype)
21631  */
21632     __Pyx_GIVEREF(__pyx_t_2);
21633     __Pyx_GOTREF(__pyx_v_self->_smsg);
21634     __Pyx_DECREF(__pyx_v_self->_smsg);
21635     __pyx_v_self->_smsg = __pyx_t_2;
21636     __pyx_t_2 = 0;
21637     goto __pyx_L3;
21638   }
21639   /*else*/ {
21640 
21641     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":361
21642  *             self._smsg = message_vector(
21643  *                 amsg, 1, root, size,
21644  *                 &self.sbuf, &self.scounts, &self.sdispls, &self.stype)             # <<<<<<<<<<<<<<
21645  *         return 0
21646  *
21647  */
21648     __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_vector(__pyx_v_amsg, 1, __pyx_v_root, __pyx_v_size, (&__pyx_v_self->sbuf), (&__pyx_v_self->scounts), (&__pyx_v_self->sdispls), (&__pyx_v_self->stype))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21649     __Pyx_GOTREF(__pyx_t_2);
21650 
21651     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":359
21652  *                 &self.sbuf, &self.scount, &self.stype)
21653  *         else: # vector variant
21654  *             self._smsg = message_vector(             # <<<<<<<<<<<<<<
21655  *                 amsg, 1, root, size,
21656  *                 &self.sbuf, &self.scounts, &self.sdispls, &self.stype)
21657  */
21658     __Pyx_GIVEREF(__pyx_t_2);
21659     __Pyx_GOTREF(__pyx_v_self->_smsg);
21660     __Pyx_DECREF(__pyx_v_self->_smsg);
21661     __pyx_v_self->_smsg = __pyx_t_2;
21662     __pyx_t_2 = 0;
21663   }
21664   __pyx_L3:;
21665 
21666   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":362
21667  *                 amsg, 1, root, size,
21668  *                 &self.sbuf, &self.scounts, &self.sdispls, &self.stype)
21669  *         return 0             # <<<<<<<<<<<<<<
21670  *
21671  *     # recvbuf arguments
21672  */
21673   __pyx_r = 0;
21674   goto __pyx_L0;
21675 
21676   __pyx_r = 0;
21677   goto __pyx_L0;
21678   __pyx_L1_error:;
21679   __Pyx_XDECREF(__pyx_t_2);
21680   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_cco_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
21681   __pyx_r = -1;
21682   __pyx_L0:;
21683   __Pyx_RefNannyFinishContext();
21684   return __pyx_r;
21685 }
21686 
21687 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":365
21688  *
21689  *     # recvbuf arguments
21690  *     cdef int for_cco_recv(self, int vector,             # <<<<<<<<<<<<<<
21691  *                           object amsg,
21692  *                           int root, int size) except -1:
21693  */
21694 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_vector,PyObject * __pyx_v_amsg,int __pyx_v_root,int __pyx_v_size)21695 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_vector, PyObject *__pyx_v_amsg, int __pyx_v_root, int __pyx_v_size) {
21696   int __pyx_r;
21697   __Pyx_RefNannyDeclarations
21698   int __pyx_t_1;
21699   PyObject *__pyx_t_2 = NULL;
21700   int __pyx_lineno = 0;
21701   const char *__pyx_filename = NULL;
21702   int __pyx_clineno = 0;
21703   __Pyx_RefNannySetupContext("for_cco_recv");
21704 
21705   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":368
21706  *                           object amsg,
21707  *                           int root, int size) except -1:
21708  *         if not vector: # block variant             # <<<<<<<<<<<<<<
21709  *             self._rmsg = message_simple(
21710  *                 amsg, 0, root, size,
21711  */
21712   __pyx_t_1 = (!__pyx_v_vector);
21713   if (__pyx_t_1) {
21714 
21715     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":371
21716  *             self._rmsg = message_simple(
21717  *                 amsg, 0, root, size,
21718  *                 &self.rbuf, &self.rcount, &self.rtype)             # <<<<<<<<<<<<<<
21719  *         else: # vector variant
21720  *             self._rmsg = message_vector(
21721  */
21722     __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_amsg, 0, __pyx_v_root, __pyx_v_size, (&__pyx_v_self->rbuf), (&__pyx_v_self->rcount), (&__pyx_v_self->rtype))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21723     __Pyx_GOTREF(__pyx_t_2);
21724 
21725     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":369
21726  *                           int root, int size) except -1:
21727  *         if not vector: # block variant
21728  *             self._rmsg = message_simple(             # <<<<<<<<<<<<<<
21729  *                 amsg, 0, root, size,
21730  *                 &self.rbuf, &self.rcount, &self.rtype)
21731  */
21732     __Pyx_GIVEREF(__pyx_t_2);
21733     __Pyx_GOTREF(__pyx_v_self->_rmsg);
21734     __Pyx_DECREF(__pyx_v_self->_rmsg);
21735     __pyx_v_self->_rmsg = __pyx_t_2;
21736     __pyx_t_2 = 0;
21737     goto __pyx_L3;
21738   }
21739   /*else*/ {
21740 
21741     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":375
21742  *             self._rmsg = message_vector(
21743  *                 amsg, 0, root, size,
21744  *                 &self.rbuf, &self.rcounts, &self.rdispls, &self.rtype)             # <<<<<<<<<<<<<<
21745  *         return 0
21746  *
21747  */
21748     __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_vector(__pyx_v_amsg, 0, __pyx_v_root, __pyx_v_size, (&__pyx_v_self->rbuf), (&__pyx_v_self->rcounts), (&__pyx_v_self->rdispls), (&__pyx_v_self->rtype))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21749     __Pyx_GOTREF(__pyx_t_2);
21750 
21751     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":373
21752  *                 &self.rbuf, &self.rcount, &self.rtype)
21753  *         else: # vector variant
21754  *             self._rmsg = message_vector(             # <<<<<<<<<<<<<<
21755  *                 amsg, 0, root, size,
21756  *                 &self.rbuf, &self.rcounts, &self.rdispls, &self.rtype)
21757  */
21758     __Pyx_GIVEREF(__pyx_t_2);
21759     __Pyx_GOTREF(__pyx_v_self->_rmsg);
21760     __Pyx_DECREF(__pyx_v_self->_rmsg);
21761     __pyx_v_self->_rmsg = __pyx_t_2;
21762     __pyx_t_2 = 0;
21763   }
21764   __pyx_L3:;
21765 
21766   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":376
21767  *                 amsg, 0, root, size,
21768  *                 &self.rbuf, &self.rcounts, &self.rdispls, &self.rtype)
21769  *         return 0             # <<<<<<<<<<<<<<
21770  *
21771  *     # bcast
21772  */
21773   __pyx_r = 0;
21774   goto __pyx_L0;
21775 
21776   __pyx_r = 0;
21777   goto __pyx_L0;
21778   __pyx_L1_error:;
21779   __Pyx_XDECREF(__pyx_t_2);
21780   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_cco_recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
21781   __pyx_r = -1;
21782   __pyx_L0:;
21783   __Pyx_RefNannyFinishContext();
21784   return __pyx_r;
21785 }
21786 
21787 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":379
21788  *
21789  *     # bcast
21790  *     cdef int for_bcast(self,             # <<<<<<<<<<<<<<
21791  *                        object msg, int root,
21792  *                        MPI_Comm comm) except -1:
21793  */
21794 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_bcast(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_msg,int __pyx_v_root,MPI_Comm __pyx_v_comm)21795 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_bcast(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_msg, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
21796   int __pyx_v_inter;
21797   int __pyx_v_rank;
21798   int __pyx_v_sending;
21799   int __pyx_r;
21800   __Pyx_RefNannyDeclarations
21801   int __pyx_t_1;
21802   int __pyx_t_2;
21803   int __pyx_t_3;
21804   int __pyx_t_4;
21805   int __pyx_lineno = 0;
21806   const char *__pyx_filename = NULL;
21807   int __pyx_clineno = 0;
21808   __Pyx_RefNannySetupContext("for_bcast");
21809 
21810   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":382
21811  *                        object msg, int root,
21812  *                        MPI_Comm comm) except -1:
21813  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
21814  *         cdef int inter=0, rank=0, sending=0
21815  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
21816  */
21817   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
21818   if (__pyx_t_1) {
21819     __pyx_r = 0;
21820     goto __pyx_L0;
21821     goto __pyx_L3;
21822   }
21823   __pyx_L3:;
21824 
21825   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":383
21826  *                        MPI_Comm comm) except -1:
21827  *         if comm == MPI_COMM_NULL: return 0
21828  *         cdef int inter=0, rank=0, sending=0             # <<<<<<<<<<<<<<
21829  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
21830  *         if not inter: # intra-communication
21831  */
21832   __pyx_v_inter = 0;
21833   __pyx_v_rank = 0;
21834   __pyx_v_sending = 0;
21835 
21836   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":384
21837  *         if comm == MPI_COMM_NULL: return 0
21838  *         cdef int inter=0, rank=0, sending=0
21839  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
21840  *         if not inter: # intra-communication
21841  *             CHKERR( MPI_Comm_rank(comm, &rank) )
21842  */
21843   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21844 
21845   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":385
21846  *         cdef int inter=0, rank=0, sending=0
21847  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
21848  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
21849  *             CHKERR( MPI_Comm_rank(comm, &rank) )
21850  *             if root == rank:
21851  */
21852   __pyx_t_1 = (!__pyx_v_inter);
21853   if (__pyx_t_1) {
21854 
21855     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":386
21856  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
21857  *         if not inter: # intra-communication
21858  *             CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
21859  *             if root == rank:
21860  *                 self.for_cco_send(0, msg, root, 0)
21861  */
21862     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21863 
21864     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":387
21865  *         if not inter: # intra-communication
21866  *             CHKERR( MPI_Comm_rank(comm, &rank) )
21867  *             if root == rank:             # <<<<<<<<<<<<<<
21868  *                 self.for_cco_send(0, msg, root, 0)
21869  *                 sending = 1
21870  */
21871     __pyx_t_1 = (__pyx_v_root == __pyx_v_rank);
21872     if (__pyx_t_1) {
21873 
21874       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":388
21875  *             CHKERR( MPI_Comm_rank(comm, &rank) )
21876  *             if root == rank:
21877  *                 self.for_cco_send(0, msg, root, 0)             # <<<<<<<<<<<<<<
21878  *                 sending = 1
21879  *             else:
21880  */
21881       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_msg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21882 
21883       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":389
21884  *             if root == rank:
21885  *                 self.for_cco_send(0, msg, root, 0)
21886  *                 sending = 1             # <<<<<<<<<<<<<<
21887  *             else:
21888  *                 self.for_cco_recv(0, msg, root, 0)
21889  */
21890       __pyx_v_sending = 1;
21891       goto __pyx_L5;
21892     }
21893     /*else*/ {
21894 
21895       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":391
21896  *                 sending = 1
21897  *             else:
21898  *                 self.for_cco_recv(0, msg, root, 0)             # <<<<<<<<<<<<<<
21899  *         else: # inter-communication
21900  *             if ((root == <int>MPI_ROOT) or
21901  */
21902       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_msg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21903     }
21904     __pyx_L5:;
21905     goto __pyx_L4;
21906   }
21907   /*else*/ {
21908 
21909     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":393
21910  *                 self.for_cco_recv(0, msg, root, 0)
21911  *         else: # inter-communication
21912  *             if ((root == <int>MPI_ROOT) or             # <<<<<<<<<<<<<<
21913  *                 (root == <int>MPI_PROC_NULL)):
21914  *                 self.for_cco_send(0, msg, root, 0)
21915  */
21916     __pyx_t_1 = (__pyx_v_root == ((int)MPI_ROOT));
21917     if (!__pyx_t_1) {
21918 
21919       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":394
21920  *         else: # inter-communication
21921  *             if ((root == <int>MPI_ROOT) or
21922  *                 (root == <int>MPI_PROC_NULL)):             # <<<<<<<<<<<<<<
21923  *                 self.for_cco_send(0, msg, root, 0)
21924  *                 sending = 1
21925  */
21926       __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
21927       __pyx_t_4 = __pyx_t_3;
21928     } else {
21929       __pyx_t_4 = __pyx_t_1;
21930     }
21931     if (__pyx_t_4) {
21932 
21933       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":395
21934  *             if ((root == <int>MPI_ROOT) or
21935  *                 (root == <int>MPI_PROC_NULL)):
21936  *                 self.for_cco_send(0, msg, root, 0)             # <<<<<<<<<<<<<<
21937  *                 sending = 1
21938  *             else:
21939  */
21940       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_msg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21941 
21942       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":396
21943  *                 (root == <int>MPI_PROC_NULL)):
21944  *                 self.for_cco_send(0, msg, root, 0)
21945  *                 sending = 1             # <<<<<<<<<<<<<<
21946  *             else:
21947  *                 self.for_cco_recv(0, msg, root, 0)
21948  */
21949       __pyx_v_sending = 1;
21950       goto __pyx_L6;
21951     }
21952     /*else*/ {
21953 
21954       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":398
21955  *                 sending = 1
21956  *             else:
21957  *                 self.for_cco_recv(0, msg, root, 0)             # <<<<<<<<<<<<<<
21958  *         if sending:
21959  *             self.rbuf   = self.sbuf
21960  */
21961       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_msg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21962     }
21963     __pyx_L6:;
21964   }
21965   __pyx_L4:;
21966 
21967   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":399
21968  *             else:
21969  *                 self.for_cco_recv(0, msg, root, 0)
21970  *         if sending:             # <<<<<<<<<<<<<<
21971  *             self.rbuf   = self.sbuf
21972  *             self.rcount = self.scount
21973  */
21974   if (__pyx_v_sending) {
21975 
21976     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":400
21977  *                 self.for_cco_recv(0, msg, root, 0)
21978  *         if sending:
21979  *             self.rbuf   = self.sbuf             # <<<<<<<<<<<<<<
21980  *             self.rcount = self.scount
21981  *             self.rtype  = self.stype
21982  */
21983     __pyx_v_self->rbuf = __pyx_v_self->sbuf;
21984 
21985     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":401
21986  *         if sending:
21987  *             self.rbuf   = self.sbuf
21988  *             self.rcount = self.scount             # <<<<<<<<<<<<<<
21989  *             self.rtype  = self.stype
21990  *         else:
21991  */
21992     __pyx_v_self->rcount = __pyx_v_self->scount;
21993 
21994     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":402
21995  *             self.rbuf   = self.sbuf
21996  *             self.rcount = self.scount
21997  *             self.rtype  = self.stype             # <<<<<<<<<<<<<<
21998  *         else:
21999  *             self.sbuf   = self.rbuf
22000  */
22001     __pyx_v_self->rtype = __pyx_v_self->stype;
22002     goto __pyx_L7;
22003   }
22004   /*else*/ {
22005 
22006     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":404
22007  *             self.rtype  = self.stype
22008  *         else:
22009  *             self.sbuf   = self.rbuf             # <<<<<<<<<<<<<<
22010  *             self.scount = self.rcount
22011  *             self.stype  = self.rtype
22012  */
22013     __pyx_v_self->sbuf = __pyx_v_self->rbuf;
22014 
22015     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":405
22016  *         else:
22017  *             self.sbuf   = self.rbuf
22018  *             self.scount = self.rcount             # <<<<<<<<<<<<<<
22019  *             self.stype  = self.rtype
22020  *         return 0
22021  */
22022     __pyx_v_self->scount = __pyx_v_self->rcount;
22023 
22024     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":406
22025  *             self.sbuf   = self.rbuf
22026  *             self.scount = self.rcount
22027  *             self.stype  = self.rtype             # <<<<<<<<<<<<<<
22028  *         return 0
22029  *
22030  */
22031     __pyx_v_self->stype = __pyx_v_self->rtype;
22032   }
22033   __pyx_L7:;
22034 
22035   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":407
22036  *             self.scount = self.rcount
22037  *             self.stype  = self.rtype
22038  *         return 0             # <<<<<<<<<<<<<<
22039  *
22040  *     # gather/gatherv
22041  */
22042   __pyx_r = 0;
22043   goto __pyx_L0;
22044 
22045   __pyx_r = 0;
22046   goto __pyx_L0;
22047   __pyx_L1_error:;
22048   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
22049   __pyx_r = -1;
22050   __pyx_L0:;
22051   __Pyx_RefNannyFinishContext();
22052   return __pyx_r;
22053 }
22054 
22055 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":410
22056  *
22057  *     # gather/gatherv
22058  *     cdef int for_gather(self, int v,             # <<<<<<<<<<<<<<
22059  *                         object smsg, object rmsg,
22060  *                         int root, MPI_Comm comm) except -1:
22061  */
22062 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_gather(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_v,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,int __pyx_v_root,MPI_Comm __pyx_v_comm)22063 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_gather(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_v, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
22064   int __pyx_v_inter;
22065   int __pyx_v_size;
22066   int __pyx_v_rank;
22067   int __pyx_v_null;
22068   int __pyx_r;
22069   __Pyx_RefNannyDeclarations
22070   int __pyx_t_1;
22071   int __pyx_t_2;
22072   int __pyx_t_3;
22073   int __pyx_t_4;
22074   int __pyx_lineno = 0;
22075   const char *__pyx_filename = NULL;
22076   int __pyx_clineno = 0;
22077   __Pyx_RefNannySetupContext("for_gather");
22078 
22079   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":413
22080  *                         object smsg, object rmsg,
22081  *                         int root, MPI_Comm comm) except -1:
22082  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
22083  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22084  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22085  */
22086   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
22087   if (__pyx_t_1) {
22088     __pyx_r = 0;
22089     goto __pyx_L0;
22090     goto __pyx_L3;
22091   }
22092   __pyx_L3:;
22093 
22094   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":414
22095  *                         int root, MPI_Comm comm) except -1:
22096  *         if comm == MPI_COMM_NULL: return 0
22097  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL             # <<<<<<<<<<<<<<
22098  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22099  *         if not inter: # intra-communication
22100  */
22101   __pyx_v_inter = 0;
22102   __pyx_v_size = 0;
22103   __pyx_v_rank = 0;
22104   __pyx_v_null = MPI_PROC_NULL;
22105 
22106   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":415
22107  *         if comm == MPI_COMM_NULL: return 0
22108  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22109  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
22110  *         if not inter: # intra-communication
22111  *             CHKERR( MPI_Comm_size(comm, &size) )
22112  */
22113   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22114 
22115   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":416
22116  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22117  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22118  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
22119  *             CHKERR( MPI_Comm_size(comm, &size) )
22120  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22121  */
22122   __pyx_t_1 = (!__pyx_v_inter);
22123   if (__pyx_t_1) {
22124 
22125     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":417
22126  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22127  *         if not inter: # intra-communication
22128  *             CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
22129  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22130  *             if root == rank:
22131  */
22132     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22133 
22134     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":418
22135  *         if not inter: # intra-communication
22136  *             CHKERR( MPI_Comm_size(comm, &size) )
22137  *             CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
22138  *             if root == rank:
22139  *                 self.for_cco_recv(v, rmsg, root, size)
22140  */
22141     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22142 
22143     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":419
22144  *             CHKERR( MPI_Comm_size(comm, &size) )
22145  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22146  *             if root == rank:             # <<<<<<<<<<<<<<
22147  *                 self.for_cco_recv(v, rmsg, root, size)
22148  *                 if smsg is __IN_PLACE__:
22149  */
22150     __pyx_t_1 = (__pyx_v_root == __pyx_v_rank);
22151     if (__pyx_t_1) {
22152 
22153       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":420
22154  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22155  *             if root == rank:
22156  *                 self.for_cco_recv(v, rmsg, root, size)             # <<<<<<<<<<<<<<
22157  *                 if smsg is __IN_PLACE__:
22158  *                     self.sbuf   = MPI_IN_PLACE
22159  */
22160       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, __pyx_v_root, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22161 
22162       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":421
22163  *             if root == rank:
22164  *                 self.for_cco_recv(v, rmsg, root, size)
22165  *                 if smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
22166  *                     self.sbuf   = MPI_IN_PLACE
22167  *                     self.scount = self.rcount
22168  */
22169       __pyx_t_1 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
22170       if (__pyx_t_1) {
22171 
22172         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":422
22173  *                 self.for_cco_recv(v, rmsg, root, size)
22174  *                 if smsg is __IN_PLACE__:
22175  *                     self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
22176  *                     self.scount = self.rcount
22177  *                     self.stype  = self.rtype
22178  */
22179         __pyx_v_self->sbuf = MPI_IN_PLACE;
22180 
22181         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":423
22182  *                 if smsg is __IN_PLACE__:
22183  *                     self.sbuf   = MPI_IN_PLACE
22184  *                     self.scount = self.rcount             # <<<<<<<<<<<<<<
22185  *                     self.stype  = self.rtype
22186  *                 else:
22187  */
22188         __pyx_v_self->scount = __pyx_v_self->rcount;
22189 
22190         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":424
22191  *                     self.sbuf   = MPI_IN_PLACE
22192  *                     self.scount = self.rcount
22193  *                     self.stype  = self.rtype             # <<<<<<<<<<<<<<
22194  *                 else:
22195  *                     self.for_cco_send(0, smsg, 0, 0)
22196  */
22197         __pyx_v_self->stype = __pyx_v_self->rtype;
22198         goto __pyx_L6;
22199       }
22200       /*else*/ {
22201 
22202         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":426
22203  *                     self.stype  = self.rtype
22204  *                 else:
22205  *                     self.for_cco_send(0, smsg, 0, 0)             # <<<<<<<<<<<<<<
22206  *             else:
22207  *                 self.for_cco_recv(v, rmsg, null, size)
22208  */
22209         __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, 0, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22210       }
22211       __pyx_L6:;
22212       goto __pyx_L5;
22213     }
22214     /*else*/ {
22215 
22216       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":428
22217  *                     self.for_cco_send(0, smsg, 0, 0)
22218  *             else:
22219  *                 self.for_cco_recv(v, rmsg, null, size)             # <<<<<<<<<<<<<<
22220  *                 self.for_cco_send(0, smsg, root, 0)
22221  *         else: # inter-communication
22222  */
22223       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, __pyx_v_null, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22224 
22225       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":429
22226  *             else:
22227  *                 self.for_cco_recv(v, rmsg, null, size)
22228  *                 self.for_cco_send(0, smsg, root, 0)             # <<<<<<<<<<<<<<
22229  *         else: # inter-communication
22230  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22231  */
22232       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22233     }
22234     __pyx_L5:;
22235     goto __pyx_L4;
22236   }
22237   /*else*/ {
22238 
22239     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":431
22240  *                 self.for_cco_send(0, smsg, root, 0)
22241  *         else: # inter-communication
22242  *             CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
22243  *             if ((root == <int>MPI_ROOT) or
22244  *                 (root == <int>MPI_PROC_NULL)):
22245  */
22246     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22247 
22248     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":432
22249  *         else: # inter-communication
22250  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22251  *             if ((root == <int>MPI_ROOT) or             # <<<<<<<<<<<<<<
22252  *                 (root == <int>MPI_PROC_NULL)):
22253  *                 self.for_cco_recv(v, rmsg, root, size)
22254  */
22255     __pyx_t_1 = (__pyx_v_root == ((int)MPI_ROOT));
22256     if (!__pyx_t_1) {
22257 
22258       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":433
22259  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22260  *             if ((root == <int>MPI_ROOT) or
22261  *                 (root == <int>MPI_PROC_NULL)):             # <<<<<<<<<<<<<<
22262  *                 self.for_cco_recv(v, rmsg, root, size)
22263  *                 self.for_cco_send(0, smsg, null, 0)
22264  */
22265       __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
22266       __pyx_t_4 = __pyx_t_3;
22267     } else {
22268       __pyx_t_4 = __pyx_t_1;
22269     }
22270     if (__pyx_t_4) {
22271 
22272       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":434
22273  *             if ((root == <int>MPI_ROOT) or
22274  *                 (root == <int>MPI_PROC_NULL)):
22275  *                 self.for_cco_recv(v, rmsg, root, size)             # <<<<<<<<<<<<<<
22276  *                 self.for_cco_send(0, smsg, null, 0)
22277  *             else:
22278  */
22279       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, __pyx_v_root, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22280 
22281       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":435
22282  *                 (root == <int>MPI_PROC_NULL)):
22283  *                 self.for_cco_recv(v, rmsg, root, size)
22284  *                 self.for_cco_send(0, smsg, null, 0)             # <<<<<<<<<<<<<<
22285  *             else:
22286  *                 self.for_cco_recv(v, rmsg, null, size)
22287  */
22288       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, __pyx_v_null, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22289       goto __pyx_L7;
22290     }
22291     /*else*/ {
22292 
22293       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":437
22294  *                 self.for_cco_send(0, smsg, null, 0)
22295  *             else:
22296  *                 self.for_cco_recv(v, rmsg, null, size)             # <<<<<<<<<<<<<<
22297  *                 self.for_cco_send(0, smsg, root, 0)
22298  *         return 0
22299  */
22300       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, __pyx_v_null, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22301 
22302       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":438
22303  *             else:
22304  *                 self.for_cco_recv(v, rmsg, null, size)
22305  *                 self.for_cco_send(0, smsg, root, 0)             # <<<<<<<<<<<<<<
22306  *         return 0
22307  *
22308  */
22309       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22310     }
22311     __pyx_L7:;
22312   }
22313   __pyx_L4:;
22314 
22315   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":439
22316  *                 self.for_cco_recv(v, rmsg, null, size)
22317  *                 self.for_cco_send(0, smsg, root, 0)
22318  *         return 0             # <<<<<<<<<<<<<<
22319  *
22320  *     # scatter/scatterv
22321  */
22322   __pyx_r = 0;
22323   goto __pyx_L0;
22324 
22325   __pyx_r = 0;
22326   goto __pyx_L0;
22327   __pyx_L1_error:;
22328   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
22329   __pyx_r = -1;
22330   __pyx_L0:;
22331   __Pyx_RefNannyFinishContext();
22332   return __pyx_r;
22333 }
22334 
22335 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":442
22336  *
22337  *     # scatter/scatterv
22338  *     cdef int for_scatter(self, int v,             # <<<<<<<<<<<<<<
22339  *                          object smsg, object rmsg,
22340  *                          int root, MPI_Comm comm) except -1:
22341  */
22342 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scatter(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_v,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,int __pyx_v_root,MPI_Comm __pyx_v_comm)22343 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scatter(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_v, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
22344   int __pyx_v_inter;
22345   int __pyx_v_size;
22346   int __pyx_v_rank;
22347   int __pyx_v_null;
22348   int __pyx_r;
22349   __Pyx_RefNannyDeclarations
22350   int __pyx_t_1;
22351   int __pyx_t_2;
22352   int __pyx_t_3;
22353   int __pyx_t_4;
22354   int __pyx_lineno = 0;
22355   const char *__pyx_filename = NULL;
22356   int __pyx_clineno = 0;
22357   __Pyx_RefNannySetupContext("for_scatter");
22358 
22359   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":445
22360  *                          object smsg, object rmsg,
22361  *                          int root, MPI_Comm comm) except -1:
22362  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
22363  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22364  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22365  */
22366   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
22367   if (__pyx_t_1) {
22368     __pyx_r = 0;
22369     goto __pyx_L0;
22370     goto __pyx_L3;
22371   }
22372   __pyx_L3:;
22373 
22374   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":446
22375  *                          int root, MPI_Comm comm) except -1:
22376  *         if comm == MPI_COMM_NULL: return 0
22377  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL             # <<<<<<<<<<<<<<
22378  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22379  *         if not inter: # intra-communication
22380  */
22381   __pyx_v_inter = 0;
22382   __pyx_v_size = 0;
22383   __pyx_v_rank = 0;
22384   __pyx_v_null = MPI_PROC_NULL;
22385 
22386   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":447
22387  *         if comm == MPI_COMM_NULL: return 0
22388  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22389  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
22390  *         if not inter: # intra-communication
22391  *             CHKERR( MPI_Comm_size(comm, &size) )
22392  */
22393   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22394 
22395   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":448
22396  *         cdef int inter=0, size=0, rank=0, null=MPI_PROC_NULL
22397  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22398  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
22399  *             CHKERR( MPI_Comm_size(comm, &size) )
22400  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22401  */
22402   __pyx_t_1 = (!__pyx_v_inter);
22403   if (__pyx_t_1) {
22404 
22405     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":449
22406  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22407  *         if not inter: # intra-communication
22408  *             CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
22409  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22410  *             if root == rank:
22411  */
22412     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22413 
22414     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":450
22415  *         if not inter: # intra-communication
22416  *             CHKERR( MPI_Comm_size(comm, &size) )
22417  *             CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
22418  *             if root == rank:
22419  *                 self.for_cco_send(v, smsg, root, size)
22420  */
22421     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22422 
22423     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":451
22424  *             CHKERR( MPI_Comm_size(comm, &size) )
22425  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22426  *             if root == rank:             # <<<<<<<<<<<<<<
22427  *                 self.for_cco_send(v, smsg, root, size)
22428  *                 if rmsg is __IN_PLACE__:
22429  */
22430     __pyx_t_1 = (__pyx_v_root == __pyx_v_rank);
22431     if (__pyx_t_1) {
22432 
22433       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":452
22434  *             CHKERR( MPI_Comm_rank(comm, &rank) )
22435  *             if root == rank:
22436  *                 self.for_cco_send(v, smsg, root, size)             # <<<<<<<<<<<<<<
22437  *                 if rmsg is __IN_PLACE__:
22438  *                     self.rbuf   = MPI_IN_PLACE
22439  */
22440       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, __pyx_v_v, __pyx_v_smsg, __pyx_v_root, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22441 
22442       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":453
22443  *             if root == rank:
22444  *                 self.for_cco_send(v, smsg, root, size)
22445  *                 if rmsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
22446  *                     self.rbuf   = MPI_IN_PLACE
22447  *                     self.rcount = self.scount
22448  */
22449       __pyx_t_1 = (__pyx_v_rmsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
22450       if (__pyx_t_1) {
22451 
22452         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":454
22453  *                 self.for_cco_send(v, smsg, root, size)
22454  *                 if rmsg is __IN_PLACE__:
22455  *                     self.rbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
22456  *                     self.rcount = self.scount
22457  *                     self.rtype  = self.stype
22458  */
22459         __pyx_v_self->rbuf = MPI_IN_PLACE;
22460 
22461         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":455
22462  *                 if rmsg is __IN_PLACE__:
22463  *                     self.rbuf   = MPI_IN_PLACE
22464  *                     self.rcount = self.scount             # <<<<<<<<<<<<<<
22465  *                     self.rtype  = self.stype
22466  *                 else:
22467  */
22468         __pyx_v_self->rcount = __pyx_v_self->scount;
22469 
22470         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":456
22471  *                     self.rbuf   = MPI_IN_PLACE
22472  *                     self.rcount = self.scount
22473  *                     self.rtype  = self.stype             # <<<<<<<<<<<<<<
22474  *                 else:
22475  *                     self.for_cco_recv(0, rmsg, root, 0)
22476  */
22477         __pyx_v_self->rtype = __pyx_v_self->stype;
22478         goto __pyx_L6;
22479       }
22480       /*else*/ {
22481 
22482         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":458
22483  *                     self.rtype  = self.stype
22484  *                 else:
22485  *                     self.for_cco_recv(0, rmsg, root, 0)             # <<<<<<<<<<<<<<
22486  *             else:
22487  *                 self.for_cco_send(v, smsg, null, size)
22488  */
22489         __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22490       }
22491       __pyx_L6:;
22492       goto __pyx_L5;
22493     }
22494     /*else*/ {
22495 
22496       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":460
22497  *                     self.for_cco_recv(0, rmsg, root, 0)
22498  *             else:
22499  *                 self.for_cco_send(v, smsg, null, size)             # <<<<<<<<<<<<<<
22500  *                 self.for_cco_recv(0, rmsg, root, 0)
22501  *         else: # inter-communication
22502  */
22503       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, __pyx_v_v, __pyx_v_smsg, __pyx_v_null, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22504 
22505       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":461
22506  *             else:
22507  *                 self.for_cco_send(v, smsg, null, size)
22508  *                 self.for_cco_recv(0, rmsg, root, 0)             # <<<<<<<<<<<<<<
22509  *         else: # inter-communication
22510  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22511  */
22512       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22513     }
22514     __pyx_L5:;
22515     goto __pyx_L4;
22516   }
22517   /*else*/ {
22518 
22519     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":463
22520  *                 self.for_cco_recv(0, rmsg, root, 0)
22521  *         else: # inter-communication
22522  *             CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
22523  *             if ((root == <int>MPI_ROOT) or
22524  *                 (root == <int>MPI_PROC_NULL)):
22525  */
22526     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22527 
22528     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":464
22529  *         else: # inter-communication
22530  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22531  *             if ((root == <int>MPI_ROOT) or             # <<<<<<<<<<<<<<
22532  *                 (root == <int>MPI_PROC_NULL)):
22533  *                 self.for_cco_send(v, smsg, root, size)
22534  */
22535     __pyx_t_1 = (__pyx_v_root == ((int)MPI_ROOT));
22536     if (!__pyx_t_1) {
22537 
22538       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":465
22539  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22540  *             if ((root == <int>MPI_ROOT) or
22541  *                 (root == <int>MPI_PROC_NULL)):             # <<<<<<<<<<<<<<
22542  *                 self.for_cco_send(v, smsg, root, size)
22543  *                 self.for_cco_recv(0, rmsg, null,  0)
22544  */
22545       __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
22546       __pyx_t_4 = __pyx_t_3;
22547     } else {
22548       __pyx_t_4 = __pyx_t_1;
22549     }
22550     if (__pyx_t_4) {
22551 
22552       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":466
22553  *             if ((root == <int>MPI_ROOT) or
22554  *                 (root == <int>MPI_PROC_NULL)):
22555  *                 self.for_cco_send(v, smsg, root, size)             # <<<<<<<<<<<<<<
22556  *                 self.for_cco_recv(0, rmsg, null,  0)
22557  *             else:
22558  */
22559       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, __pyx_v_v, __pyx_v_smsg, __pyx_v_root, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22560 
22561       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":467
22562  *                 (root == <int>MPI_PROC_NULL)):
22563  *                 self.for_cco_send(v, smsg, root, size)
22564  *                 self.for_cco_recv(0, rmsg, null,  0)             # <<<<<<<<<<<<<<
22565  *             else:
22566  *                 self.for_cco_send(v, smsg, null, size)
22567  */
22568       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, __pyx_v_null, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22569       goto __pyx_L7;
22570     }
22571     /*else*/ {
22572 
22573       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":469
22574  *                 self.for_cco_recv(0, rmsg, null,  0)
22575  *             else:
22576  *                 self.for_cco_send(v, smsg, null, size)             # <<<<<<<<<<<<<<
22577  *                 self.for_cco_recv(0, rmsg, root, 0)
22578  *         return 0
22579  */
22580       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, __pyx_v_v, __pyx_v_smsg, __pyx_v_null, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22581 
22582       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":470
22583  *             else:
22584  *                 self.for_cco_send(v, smsg, null, size)
22585  *                 self.for_cco_recv(0, rmsg, root, 0)             # <<<<<<<<<<<<<<
22586  *         return 0
22587  *
22588  */
22589       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, __pyx_v_root, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22590     }
22591     __pyx_L7:;
22592   }
22593   __pyx_L4:;
22594 
22595   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":471
22596  *                 self.for_cco_send(v, smsg, null, size)
22597  *                 self.for_cco_recv(0, rmsg, root, 0)
22598  *         return 0             # <<<<<<<<<<<<<<
22599  *
22600  *     # allgather/allgatherv
22601  */
22602   __pyx_r = 0;
22603   goto __pyx_L0;
22604 
22605   __pyx_r = 0;
22606   goto __pyx_L0;
22607   __pyx_L1_error:;
22608   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
22609   __pyx_r = -1;
22610   __pyx_L0:;
22611   __Pyx_RefNannyFinishContext();
22612   return __pyx_r;
22613 }
22614 
22615 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":474
22616  *
22617  *     # allgather/allgatherv
22618  *     cdef int for_allgather(self, int v,             # <<<<<<<<<<<<<<
22619  *                            object smsg, object rmsg,
22620  *                            MPI_Comm comm) except -1:
22621  */
22622 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allgather(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_v,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)22623 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allgather(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_v, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
22624   int __pyx_v_inter;
22625   int __pyx_v_size;
22626   int __pyx_r;
22627   __Pyx_RefNannyDeclarations
22628   int __pyx_t_1;
22629   int __pyx_t_2;
22630   int __pyx_t_3;
22631   int __pyx_t_4;
22632   int __pyx_lineno = 0;
22633   const char *__pyx_filename = NULL;
22634   int __pyx_clineno = 0;
22635   __Pyx_RefNannySetupContext("for_allgather");
22636 
22637   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":477
22638  *                            object smsg, object rmsg,
22639  *                            MPI_Comm comm) except -1:
22640  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
22641  *         cdef int inter=0, size=0
22642  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22643  */
22644   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
22645   if (__pyx_t_1) {
22646     __pyx_r = 0;
22647     goto __pyx_L0;
22648     goto __pyx_L3;
22649   }
22650   __pyx_L3:;
22651 
22652   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":478
22653  *                            MPI_Comm comm) except -1:
22654  *         if comm == MPI_COMM_NULL: return 0
22655  *         cdef int inter=0, size=0             # <<<<<<<<<<<<<<
22656  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22657  *         if not inter: # intra-communication
22658  */
22659   __pyx_v_inter = 0;
22660   __pyx_v_size = 0;
22661 
22662   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":479
22663  *         if comm == MPI_COMM_NULL: return 0
22664  *         cdef int inter=0, size=0
22665  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
22666  *         if not inter: # intra-communication
22667  *             CHKERR( MPI_Comm_size(comm, &size) )
22668  */
22669   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22670 
22671   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":480
22672  *         cdef int inter=0, size=0
22673  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22674  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
22675  *             CHKERR( MPI_Comm_size(comm, &size) )
22676  *         else: # inter-communication
22677  */
22678   __pyx_t_1 = (!__pyx_v_inter);
22679   if (__pyx_t_1) {
22680 
22681     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":481
22682  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22683  *         if not inter: # intra-communication
22684  *             CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
22685  *         else: # inter-communication
22686  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22687  */
22688     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22689     goto __pyx_L4;
22690   }
22691   /*else*/ {
22692 
22693     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":483
22694  *             CHKERR( MPI_Comm_size(comm, &size) )
22695  *         else: # inter-communication
22696  *             CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
22697  *         #
22698  *         self.for_cco_recv(v, rmsg, 0, size)
22699  */
22700     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22701   }
22702   __pyx_L4:;
22703 
22704   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":485
22705  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22706  *         #
22707  *         self.for_cco_recv(v, rmsg, 0, size)             # <<<<<<<<<<<<<<
22708  *         if not inter and smsg is __IN_PLACE__:
22709  *             self.sbuf   = MPI_IN_PLACE
22710  */
22711   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, 0, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22712 
22713   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":486
22714  *         #
22715  *         self.for_cco_recv(v, rmsg, 0, size)
22716  *         if not inter and smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
22717  *             self.sbuf   = MPI_IN_PLACE
22718  *             self.scount = self.rcount
22719  */
22720   __pyx_t_1 = (!__pyx_v_inter);
22721   if (__pyx_t_1) {
22722     __pyx_t_3 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
22723     __pyx_t_4 = __pyx_t_3;
22724   } else {
22725     __pyx_t_4 = __pyx_t_1;
22726   }
22727   if (__pyx_t_4) {
22728 
22729     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":487
22730  *         self.for_cco_recv(v, rmsg, 0, size)
22731  *         if not inter and smsg is __IN_PLACE__:
22732  *             self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
22733  *             self.scount = self.rcount
22734  *             self.stype  = self.rtype
22735  */
22736     __pyx_v_self->sbuf = MPI_IN_PLACE;
22737 
22738     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":488
22739  *         if not inter and smsg is __IN_PLACE__:
22740  *             self.sbuf   = MPI_IN_PLACE
22741  *             self.scount = self.rcount             # <<<<<<<<<<<<<<
22742  *             self.stype  = self.rtype
22743  *         else:
22744  */
22745     __pyx_v_self->scount = __pyx_v_self->rcount;
22746 
22747     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":489
22748  *             self.sbuf   = MPI_IN_PLACE
22749  *             self.scount = self.rcount
22750  *             self.stype  = self.rtype             # <<<<<<<<<<<<<<
22751  *         else:
22752  *             self.for_cco_send(0, smsg, 0, 0)
22753  */
22754     __pyx_v_self->stype = __pyx_v_self->rtype;
22755     goto __pyx_L5;
22756   }
22757   /*else*/ {
22758 
22759     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":491
22760  *             self.stype  = self.rtype
22761  *         else:
22762  *             self.for_cco_send(0, smsg, 0, 0)             # <<<<<<<<<<<<<<
22763  *         return 0
22764  *
22765  */
22766     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, 0, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22767   }
22768   __pyx_L5:;
22769 
22770   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":492
22771  *         else:
22772  *             self.for_cco_send(0, smsg, 0, 0)
22773  *         return 0             # <<<<<<<<<<<<<<
22774  *
22775  *     # alltoall/alltoallv
22776  */
22777   __pyx_r = 0;
22778   goto __pyx_L0;
22779 
22780   __pyx_r = 0;
22781   goto __pyx_L0;
22782   __pyx_L1_error:;
22783   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
22784   __pyx_r = -1;
22785   __pyx_L0:;
22786   __Pyx_RefNannyFinishContext();
22787   return __pyx_r;
22788 }
22789 
22790 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":495
22791  *
22792  *     # alltoall/alltoallv
22793  *     cdef int for_alltoall(self, int v,             # <<<<<<<<<<<<<<
22794  *                           object smsg, object rmsg,
22795  *                           MPI_Comm comm) except -1:
22796  */
22797 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_alltoall(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,int __pyx_v_v,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)22798 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_alltoall(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, int __pyx_v_v, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
22799   int __pyx_v_inter;
22800   int __pyx_v_size;
22801   int __pyx_r;
22802   __Pyx_RefNannyDeclarations
22803   int __pyx_t_1;
22804   int __pyx_t_2;
22805   int __pyx_t_3;
22806   int __pyx_t_4;
22807   int __pyx_lineno = 0;
22808   const char *__pyx_filename = NULL;
22809   int __pyx_clineno = 0;
22810   __Pyx_RefNannySetupContext("for_alltoall");
22811 
22812   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":498
22813  *                           object smsg, object rmsg,
22814  *                           MPI_Comm comm) except -1:
22815  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
22816  *         cdef int inter=0, size=0
22817  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22818  */
22819   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
22820   if (__pyx_t_1) {
22821     __pyx_r = 0;
22822     goto __pyx_L0;
22823     goto __pyx_L3;
22824   }
22825   __pyx_L3:;
22826 
22827   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":499
22828  *                           MPI_Comm comm) except -1:
22829  *         if comm == MPI_COMM_NULL: return 0
22830  *         cdef int inter=0, size=0             # <<<<<<<<<<<<<<
22831  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22832  *         if not inter: # intra-communication
22833  */
22834   __pyx_v_inter = 0;
22835   __pyx_v_size = 0;
22836 
22837   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":500
22838  *         if comm == MPI_COMM_NULL: return 0
22839  *         cdef int inter=0, size=0
22840  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
22841  *         if not inter: # intra-communication
22842  *             CHKERR( MPI_Comm_size(comm, &size) )
22843  */
22844   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22845 
22846   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":501
22847  *         cdef int inter=0, size=0
22848  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22849  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
22850  *             CHKERR( MPI_Comm_size(comm, &size) )
22851  *         else: # inter-communication
22852  */
22853   __pyx_t_1 = (!__pyx_v_inter);
22854   if (__pyx_t_1) {
22855 
22856     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":502
22857  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
22858  *         if not inter: # intra-communication
22859  *             CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
22860  *         else: # inter-communication
22861  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22862  */
22863     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22864     goto __pyx_L4;
22865   }
22866   /*else*/ {
22867 
22868     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":504
22869  *             CHKERR( MPI_Comm_size(comm, &size) )
22870  *         else: # inter-communication
22871  *             CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
22872  *         #
22873  *         self.for_cco_recv(v, rmsg, 0, size)
22874  */
22875     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22876   }
22877   __pyx_L4:;
22878 
22879   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":506
22880  *             CHKERR( MPI_Comm_remote_size(comm, &size) )
22881  *         #
22882  *         self.for_cco_recv(v, rmsg, 0, size)             # <<<<<<<<<<<<<<
22883  *         if not inter and smsg is __IN_PLACE__:
22884  *             self.sbuf    = MPI_IN_PLACE
22885  */
22886   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, __pyx_v_v, __pyx_v_rmsg, 0, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22887 
22888   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":507
22889  *         #
22890  *         self.for_cco_recv(v, rmsg, 0, size)
22891  *         if not inter and smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
22892  *             self.sbuf    = MPI_IN_PLACE
22893  *             self.scount  = self.rcount
22894  */
22895   __pyx_t_1 = (!__pyx_v_inter);
22896   if (__pyx_t_1) {
22897     __pyx_t_3 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
22898     __pyx_t_4 = __pyx_t_3;
22899   } else {
22900     __pyx_t_4 = __pyx_t_1;
22901   }
22902   if (__pyx_t_4) {
22903 
22904     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":508
22905  *         self.for_cco_recv(v, rmsg, 0, size)
22906  *         if not inter and smsg is __IN_PLACE__:
22907  *             self.sbuf    = MPI_IN_PLACE             # <<<<<<<<<<<<<<
22908  *             self.scount  = self.rcount
22909  *             self.scounts = self.rcounts
22910  */
22911     __pyx_v_self->sbuf = MPI_IN_PLACE;
22912 
22913     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":509
22914  *         if not inter and smsg is __IN_PLACE__:
22915  *             self.sbuf    = MPI_IN_PLACE
22916  *             self.scount  = self.rcount             # <<<<<<<<<<<<<<
22917  *             self.scounts = self.rcounts
22918  *             self.sdispls = self.rdispls
22919  */
22920     __pyx_v_self->scount = __pyx_v_self->rcount;
22921 
22922     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":510
22923  *             self.sbuf    = MPI_IN_PLACE
22924  *             self.scount  = self.rcount
22925  *             self.scounts = self.rcounts             # <<<<<<<<<<<<<<
22926  *             self.sdispls = self.rdispls
22927  *             self.stype   = self.rtype
22928  */
22929     __pyx_v_self->scounts = __pyx_v_self->rcounts;
22930 
22931     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":511
22932  *             self.scount  = self.rcount
22933  *             self.scounts = self.rcounts
22934  *             self.sdispls = self.rdispls             # <<<<<<<<<<<<<<
22935  *             self.stype   = self.rtype
22936  *         else:
22937  */
22938     __pyx_v_self->sdispls = __pyx_v_self->rdispls;
22939 
22940     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":512
22941  *             self.scounts = self.rcounts
22942  *             self.sdispls = self.rdispls
22943  *             self.stype   = self.rtype             # <<<<<<<<<<<<<<
22944  *         else:
22945  *             self.for_cco_send(v, smsg, 0, size)
22946  */
22947     __pyx_v_self->stype = __pyx_v_self->rtype;
22948     goto __pyx_L5;
22949   }
22950   /*else*/ {
22951 
22952     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":514
22953  *             self.stype   = self.rtype
22954  *         else:
22955  *             self.for_cco_send(v, smsg, 0, size)             # <<<<<<<<<<<<<<
22956  *         return 0
22957  *
22958  */
22959     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, __pyx_v_v, __pyx_v_smsg, 0, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
22960   }
22961   __pyx_L5:;
22962 
22963   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":515
22964  *         else:
22965  *             self.for_cco_send(v, smsg, 0, size)
22966  *         return 0             # <<<<<<<<<<<<<<
22967  *
22968  *
22969  */
22970   __pyx_r = 0;
22971   goto __pyx_L0;
22972 
22973   __pyx_r = 0;
22974   goto __pyx_L0;
22975   __pyx_L1_error:;
22976   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
22977   __pyx_r = -1;
22978   __pyx_L0:;
22979   __Pyx_RefNannyFinishContext();
22980   return __pyx_r;
22981 }
22982 
22983 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":522
22984  *
22985  *     # sendbuf
22986  *     cdef int for_cro_send(self, object amsg, int root) except -1:             # <<<<<<<<<<<<<<
22987  *         self._smsg = message_simple(amsg, 1, # readonly
22988  *                                     root, 0,
22989  */
22990 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_amsg,int __pyx_v_root)22991 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_send(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_amsg, int __pyx_v_root) {
22992   int __pyx_r;
22993   __Pyx_RefNannyDeclarations
22994   PyObject *__pyx_t_1 = NULL;
22995   int __pyx_lineno = 0;
22996   const char *__pyx_filename = NULL;
22997   int __pyx_clineno = 0;
22998   __Pyx_RefNannySetupContext("for_cro_send");
22999 
23000   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":527
23001  *                                     &self.sbuf,
23002  *                                     &self.scount,
23003  *                                     &self.stype)             # <<<<<<<<<<<<<<
23004  *         return 0
23005  *
23006  */
23007   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_amsg, 1, __pyx_v_root, 0, (&__pyx_v_self->sbuf), (&__pyx_v_self->scount), (&__pyx_v_self->stype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23008   __Pyx_GOTREF(__pyx_t_1);
23009 
23010   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":523
23011  *     # sendbuf
23012  *     cdef int for_cro_send(self, object amsg, int root) except -1:
23013  *         self._smsg = message_simple(amsg, 1, # readonly             # <<<<<<<<<<<<<<
23014  *                                     root, 0,
23015  *                                     &self.sbuf,
23016  */
23017   __Pyx_GIVEREF(__pyx_t_1);
23018   __Pyx_GOTREF(__pyx_v_self->_smsg);
23019   __Pyx_DECREF(__pyx_v_self->_smsg);
23020   __pyx_v_self->_smsg = __pyx_t_1;
23021   __pyx_t_1 = 0;
23022 
23023   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":528
23024  *                                     &self.scount,
23025  *                                     &self.stype)
23026  *         return 0             # <<<<<<<<<<<<<<
23027  *
23028  *     # recvbuf
23029  */
23030   __pyx_r = 0;
23031   goto __pyx_L0;
23032 
23033   __pyx_r = 0;
23034   goto __pyx_L0;
23035   __pyx_L1_error:;
23036   __Pyx_XDECREF(__pyx_t_1);
23037   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_cro_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
23038   __pyx_r = -1;
23039   __pyx_L0:;
23040   __Pyx_RefNannyFinishContext();
23041   return __pyx_r;
23042 }
23043 
23044 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":531
23045  *
23046  *     # recvbuf
23047  *     cdef int for_cro_recv(self, object amsg, int root) except -1:             # <<<<<<<<<<<<<<
23048  *         self._rmsg = message_simple(amsg, 0, # writable
23049  *                                     root, 0,
23050  */
23051 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_amsg,int __pyx_v_root)23052 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_recv(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_amsg, int __pyx_v_root) {
23053   int __pyx_r;
23054   __Pyx_RefNannyDeclarations
23055   PyObject *__pyx_t_1 = NULL;
23056   int __pyx_lineno = 0;
23057   const char *__pyx_filename = NULL;
23058   int __pyx_clineno = 0;
23059   __Pyx_RefNannySetupContext("for_cro_recv");
23060 
23061   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":536
23062  *                                     &self.rbuf,
23063  *                                     &self.rcount,
23064  *                                     &self.rtype)             # <<<<<<<<<<<<<<
23065  *         return 0
23066  *
23067  */
23068   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_amsg, 0, __pyx_v_root, 0, (&__pyx_v_self->rbuf), (&__pyx_v_self->rcount), (&__pyx_v_self->rtype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23069   __Pyx_GOTREF(__pyx_t_1);
23070 
23071   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":532
23072  *     # recvbuf
23073  *     cdef int for_cro_recv(self, object amsg, int root) except -1:
23074  *         self._rmsg = message_simple(amsg, 0, # writable             # <<<<<<<<<<<<<<
23075  *                                     root, 0,
23076  *                                     &self.rbuf,
23077  */
23078   __Pyx_GIVEREF(__pyx_t_1);
23079   __Pyx_GOTREF(__pyx_v_self->_rmsg);
23080   __Pyx_DECREF(__pyx_v_self->_rmsg);
23081   __pyx_v_self->_rmsg = __pyx_t_1;
23082   __pyx_t_1 = 0;
23083 
23084   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":537
23085  *                                     &self.rcount,
23086  *                                     &self.rtype)
23087  *         return 0             # <<<<<<<<<<<<<<
23088  *
23089  *     cdef int for_reduce(self,
23090  */
23091   __pyx_r = 0;
23092   goto __pyx_L0;
23093 
23094   __pyx_r = 0;
23095   goto __pyx_L0;
23096   __pyx_L1_error:;
23097   __Pyx_XDECREF(__pyx_t_1);
23098   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_cro_recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
23099   __pyx_r = -1;
23100   __pyx_L0:;
23101   __Pyx_RefNannyFinishContext();
23102   return __pyx_r;
23103 }
23104 
23105 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":539
23106  *         return 0
23107  *
23108  *     cdef int for_reduce(self,             # <<<<<<<<<<<<<<
23109  *                         object smsg, object rmsg,
23110  *                         int root, MPI_Comm comm) except -1:
23111  */
23112 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,int __pyx_v_root,MPI_Comm __pyx_v_comm)23113 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
23114   int __pyx_v_inter;
23115   int __pyx_v_rank;
23116   int __pyx_v_null;
23117   int __pyx_r;
23118   __Pyx_RefNannyDeclarations
23119   int __pyx_t_1;
23120   int __pyx_t_2;
23121   int __pyx_t_3;
23122   int __pyx_t_4;
23123   int __pyx_lineno = 0;
23124   const char *__pyx_filename = NULL;
23125   int __pyx_clineno = 0;
23126   __Pyx_RefNannySetupContext("for_reduce");
23127 
23128   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":542
23129  *                         object smsg, object rmsg,
23130  *                         int root, MPI_Comm comm) except -1:
23131  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
23132  *         cdef int inter=0, rank=0, null=MPI_PROC_NULL
23133  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23134  */
23135   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
23136   if (__pyx_t_1) {
23137     __pyx_r = 0;
23138     goto __pyx_L0;
23139     goto __pyx_L3;
23140   }
23141   __pyx_L3:;
23142 
23143   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":543
23144  *                         int root, MPI_Comm comm) except -1:
23145  *         if comm == MPI_COMM_NULL: return 0
23146  *         cdef int inter=0, rank=0, null=MPI_PROC_NULL             # <<<<<<<<<<<<<<
23147  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23148  *         if not inter: # intra-communication
23149  */
23150   __pyx_v_inter = 0;
23151   __pyx_v_rank = 0;
23152   __pyx_v_null = MPI_PROC_NULL;
23153 
23154   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":544
23155  *         if comm == MPI_COMM_NULL: return 0
23156  *         cdef int inter=0, rank=0, null=MPI_PROC_NULL
23157  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
23158  *         if not inter: # intra-communication
23159  *             CHKERR( MPI_Comm_rank(comm, &rank) )
23160  */
23161   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23162 
23163   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":545
23164  *         cdef int inter=0, rank=0, null=MPI_PROC_NULL
23165  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23166  *         if not inter: # intra-communication             # <<<<<<<<<<<<<<
23167  *             CHKERR( MPI_Comm_rank(comm, &rank) )
23168  *             if root == rank:
23169  */
23170   __pyx_t_1 = (!__pyx_v_inter);
23171   if (__pyx_t_1) {
23172 
23173     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":546
23174  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23175  *         if not inter: # intra-communication
23176  *             CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
23177  *             if root == rank:
23178  *                 self.for_cro_recv(rmsg, root)
23179  */
23180     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23181 
23182     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":547
23183  *         if not inter: # intra-communication
23184  *             CHKERR( MPI_Comm_rank(comm, &rank) )
23185  *             if root == rank:             # <<<<<<<<<<<<<<
23186  *                 self.for_cro_recv(rmsg, root)
23187  *                 if smsg is __IN_PLACE__:
23188  */
23189     __pyx_t_1 = (__pyx_v_root == __pyx_v_rank);
23190     if (__pyx_t_1) {
23191 
23192       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":548
23193  *             CHKERR( MPI_Comm_rank(comm, &rank) )
23194  *             if root == rank:
23195  *                 self.for_cro_recv(rmsg, root)             # <<<<<<<<<<<<<<
23196  *                 if smsg is __IN_PLACE__:
23197  *                     self.sbuf   = MPI_IN_PLACE
23198  */
23199       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, __pyx_v_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23200 
23201       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":549
23202  *             if root == rank:
23203  *                 self.for_cro_recv(rmsg, root)
23204  *                 if smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
23205  *                     self.sbuf   = MPI_IN_PLACE
23206  *                     self.scount = self.rcount
23207  */
23208       __pyx_t_1 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
23209       if (__pyx_t_1) {
23210 
23211         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":550
23212  *                 self.for_cro_recv(rmsg, root)
23213  *                 if smsg is __IN_PLACE__:
23214  *                     self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
23215  *                     self.scount = self.rcount
23216  *                     self.stype  = self.rtype
23217  */
23218         __pyx_v_self->sbuf = MPI_IN_PLACE;
23219 
23220         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":551
23221  *                 if smsg is __IN_PLACE__:
23222  *                     self.sbuf   = MPI_IN_PLACE
23223  *                     self.scount = self.rcount             # <<<<<<<<<<<<<<
23224  *                     self.stype  = self.rtype
23225  *                 else:
23226  */
23227         __pyx_v_self->scount = __pyx_v_self->rcount;
23228 
23229         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":552
23230  *                     self.sbuf   = MPI_IN_PLACE
23231  *                     self.scount = self.rcount
23232  *                     self.stype  = self.rtype             # <<<<<<<<<<<<<<
23233  *                 else:
23234  *                     self.for_cro_send(smsg, root)
23235  */
23236         __pyx_v_self->stype = __pyx_v_self->rtype;
23237         goto __pyx_L6;
23238       }
23239       /*else*/ {
23240 
23241         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":554
23242  *                     self.stype  = self.rtype
23243  *                 else:
23244  *                     self.for_cro_send(smsg, root)             # <<<<<<<<<<<<<<
23245  *             else:
23246  *                 self.for_cro_recv(rmsg, null)
23247  */
23248         __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, __pyx_v_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23249       }
23250       __pyx_L6:;
23251       goto __pyx_L5;
23252     }
23253     /*else*/ {
23254 
23255       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":556
23256  *                     self.for_cro_send(smsg, root)
23257  *             else:
23258  *                 self.for_cro_recv(rmsg, null)             # <<<<<<<<<<<<<<
23259  *                 self.for_cro_send(smsg, root)
23260  *                 self.rcount = self.scount
23261  */
23262       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, __pyx_v_null); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23263 
23264       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":557
23265  *             else:
23266  *                 self.for_cro_recv(rmsg, null)
23267  *                 self.for_cro_send(smsg, root)             # <<<<<<<<<<<<<<
23268  *                 self.rcount = self.scount
23269  *                 self.rtype  = self.stype
23270  */
23271       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, __pyx_v_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23272 
23273       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":558
23274  *                 self.for_cro_recv(rmsg, null)
23275  *                 self.for_cro_send(smsg, root)
23276  *                 self.rcount = self.scount             # <<<<<<<<<<<<<<
23277  *                 self.rtype  = self.stype
23278  *         else: # inter-communication
23279  */
23280       __pyx_v_self->rcount = __pyx_v_self->scount;
23281 
23282       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":559
23283  *                 self.for_cro_send(smsg, root)
23284  *                 self.rcount = self.scount
23285  *                 self.rtype  = self.stype             # <<<<<<<<<<<<<<
23286  *         else: # inter-communication
23287  *             if ((root == <int>MPI_ROOT) or
23288  */
23289       __pyx_v_self->rtype = __pyx_v_self->stype;
23290     }
23291     __pyx_L5:;
23292     goto __pyx_L4;
23293   }
23294   /*else*/ {
23295 
23296     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":561
23297  *                 self.rtype  = self.stype
23298  *         else: # inter-communication
23299  *             if ((root == <int>MPI_ROOT) or             # <<<<<<<<<<<<<<
23300  *                 (root == <int>MPI_PROC_NULL)):
23301  *                 self.for_cro_recv(rmsg, root)
23302  */
23303     __pyx_t_1 = (__pyx_v_root == ((int)MPI_ROOT));
23304     if (!__pyx_t_1) {
23305 
23306       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":562
23307  *         else: # inter-communication
23308  *             if ((root == <int>MPI_ROOT) or
23309  *                 (root == <int>MPI_PROC_NULL)):             # <<<<<<<<<<<<<<
23310  *                 self.for_cro_recv(rmsg, root)
23311  *                 self.scount = self.rcount
23312  */
23313       __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
23314       __pyx_t_4 = __pyx_t_3;
23315     } else {
23316       __pyx_t_4 = __pyx_t_1;
23317     }
23318     if (__pyx_t_4) {
23319 
23320       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":563
23321  *             if ((root == <int>MPI_ROOT) or
23322  *                 (root == <int>MPI_PROC_NULL)):
23323  *                 self.for_cro_recv(rmsg, root)             # <<<<<<<<<<<<<<
23324  *                 self.scount = self.rcount
23325  *                 self.stype  = self.rtype
23326  */
23327       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, __pyx_v_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23328 
23329       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":564
23330  *                 (root == <int>MPI_PROC_NULL)):
23331  *                 self.for_cro_recv(rmsg, root)
23332  *                 self.scount = self.rcount             # <<<<<<<<<<<<<<
23333  *                 self.stype  = self.rtype
23334  *             else:
23335  */
23336       __pyx_v_self->scount = __pyx_v_self->rcount;
23337 
23338       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":565
23339  *                 self.for_cro_recv(rmsg, root)
23340  *                 self.scount = self.rcount
23341  *                 self.stype  = self.rtype             # <<<<<<<<<<<<<<
23342  *             else:
23343  *                 self.for_cro_send(smsg, root)
23344  */
23345       __pyx_v_self->stype = __pyx_v_self->rtype;
23346       goto __pyx_L7;
23347     }
23348     /*else*/ {
23349 
23350       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":567
23351  *                 self.stype  = self.rtype
23352  *             else:
23353  *                 self.for_cro_send(smsg, root)             # <<<<<<<<<<<<<<
23354  *                 self.rcount = self.scount
23355  *                 self.rtype  = self.stype
23356  */
23357       __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, __pyx_v_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23358 
23359       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":568
23360  *             else:
23361  *                 self.for_cro_send(smsg, root)
23362  *                 self.rcount = self.scount             # <<<<<<<<<<<<<<
23363  *                 self.rtype  = self.stype
23364  *         return 0
23365  */
23366       __pyx_v_self->rcount = __pyx_v_self->scount;
23367 
23368       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":569
23369  *                 self.for_cro_send(smsg, root)
23370  *                 self.rcount = self.scount
23371  *                 self.rtype  = self.stype             # <<<<<<<<<<<<<<
23372  *         return 0
23373  *
23374  */
23375       __pyx_v_self->rtype = __pyx_v_self->stype;
23376     }
23377     __pyx_L7:;
23378   }
23379   __pyx_L4:;
23380 
23381   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":570
23382  *                 self.rcount = self.scount
23383  *                 self.rtype  = self.stype
23384  *         return 0             # <<<<<<<<<<<<<<
23385  *
23386  *     cdef int for_allreduce(self,
23387  */
23388   __pyx_r = 0;
23389   goto __pyx_L0;
23390 
23391   __pyx_r = 0;
23392   goto __pyx_L0;
23393   __pyx_L1_error:;
23394   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
23395   __pyx_r = -1;
23396   __pyx_L0:;
23397   __Pyx_RefNannyFinishContext();
23398   return __pyx_r;
23399 }
23400 
23401 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":572
23402  *         return 0
23403  *
23404  *     cdef int for_allreduce(self,             # <<<<<<<<<<<<<<
23405  *                            object smsg, object rmsg,
23406  *                            MPI_Comm comm) except -1:
23407  */
23408 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allreduce(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)23409 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allreduce(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
23410   int __pyx_v_inter;
23411   int __pyx_r;
23412   __Pyx_RefNannyDeclarations
23413   int __pyx_t_1;
23414   int __pyx_t_2;
23415   int __pyx_t_3;
23416   int __pyx_t_4;
23417   PyObject *__pyx_t_5 = NULL;
23418   PyObject *__pyx_t_6 = NULL;
23419   PyObject *__pyx_t_7 = NULL;
23420   int __pyx_lineno = 0;
23421   const char *__pyx_filename = NULL;
23422   int __pyx_clineno = 0;
23423   __Pyx_RefNannySetupContext("for_allreduce");
23424 
23425   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":575
23426  *                            object smsg, object rmsg,
23427  *                            MPI_Comm comm) except -1:
23428  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
23429  *         cdef int inter=0
23430  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23431  */
23432   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
23433   if (__pyx_t_1) {
23434     __pyx_r = 0;
23435     goto __pyx_L0;
23436     goto __pyx_L3;
23437   }
23438   __pyx_L3:;
23439 
23440   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":576
23441  *                            MPI_Comm comm) except -1:
23442  *         if comm == MPI_COMM_NULL: return 0
23443  *         cdef int inter=0             # <<<<<<<<<<<<<<
23444  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23445  *         # get send and recv buffers
23446  */
23447   __pyx_v_inter = 0;
23448 
23449   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":577
23450  *         if comm == MPI_COMM_NULL: return 0
23451  *         cdef int inter=0
23452  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
23453  *         # get send and recv buffers
23454  *         self.for_cro_recv(rmsg, 0)
23455  */
23456   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23457 
23458   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":579
23459  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23460  *         # get send and recv buffers
23461  *         self.for_cro_recv(rmsg, 0)             # <<<<<<<<<<<<<<
23462  *         if not inter and smsg is __IN_PLACE__:
23463  *             self.sbuf   = MPI_IN_PLACE
23464  */
23465   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23466 
23467   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":580
23468  *         # get send and recv buffers
23469  *         self.for_cro_recv(rmsg, 0)
23470  *         if not inter and smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
23471  *             self.sbuf   = MPI_IN_PLACE
23472  *             self.scount = self.rcount
23473  */
23474   __pyx_t_1 = (!__pyx_v_inter);
23475   if (__pyx_t_1) {
23476     __pyx_t_3 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
23477     __pyx_t_4 = __pyx_t_3;
23478   } else {
23479     __pyx_t_4 = __pyx_t_1;
23480   }
23481   if (__pyx_t_4) {
23482 
23483     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":581
23484  *         self.for_cro_recv(rmsg, 0)
23485  *         if not inter and smsg is __IN_PLACE__:
23486  *             self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
23487  *             self.scount = self.rcount
23488  *             self.stype  = self.rtype
23489  */
23490     __pyx_v_self->sbuf = MPI_IN_PLACE;
23491 
23492     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":582
23493  *         if not inter and smsg is __IN_PLACE__:
23494  *             self.sbuf   = MPI_IN_PLACE
23495  *             self.scount = self.rcount             # <<<<<<<<<<<<<<
23496  *             self.stype  = self.rtype
23497  *         else:
23498  */
23499     __pyx_v_self->scount = __pyx_v_self->rcount;
23500 
23501     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":583
23502  *             self.sbuf   = MPI_IN_PLACE
23503  *             self.scount = self.rcount
23504  *             self.stype  = self.rtype             # <<<<<<<<<<<<<<
23505  *         else:
23506  *             self.for_cro_send(smsg, 0)
23507  */
23508     __pyx_v_self->stype = __pyx_v_self->rtype;
23509     goto __pyx_L4;
23510   }
23511   /*else*/ {
23512 
23513     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":585
23514  *             self.stype  = self.rtype
23515  *         else:
23516  *             self.for_cro_send(smsg, 0)             # <<<<<<<<<<<<<<
23517  *         # check counts and datatypes
23518  *         if (self.sbuf   != MPI_IN_PLACE and
23519  */
23520     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23521   }
23522   __pyx_L4:;
23523 
23524   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":587
23525  *             self.for_cro_send(smsg, 0)
23526  *         # check counts and datatypes
23527  *         if (self.sbuf   != MPI_IN_PLACE and             # <<<<<<<<<<<<<<
23528  *             self.scount != self.rcount):
23529  *             raise ValueError(
23530  */
23531   __pyx_t_4 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
23532   if (__pyx_t_4) {
23533 
23534     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":588
23535  *         # check counts and datatypes
23536  *         if (self.sbuf   != MPI_IN_PLACE and
23537  *             self.scount != self.rcount):             # <<<<<<<<<<<<<<
23538  *             raise ValueError(
23539  *                 "mismatch in send count %d and receive count %d" %
23540  */
23541     __pyx_t_1 = (__pyx_v_self->scount != __pyx_v_self->rcount);
23542     __pyx_t_3 = __pyx_t_1;
23543   } else {
23544     __pyx_t_3 = __pyx_t_4;
23545   }
23546   if (__pyx_t_3) {
23547 
23548     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":591
23549  *             raise ValueError(
23550  *                 "mismatch in send count %d and receive count %d" %
23551  *                 (self.scount, self.rcount))             # <<<<<<<<<<<<<<
23552  *         if (self.sbuf  != MPI_IN_PLACE and
23553  *             self.stype != self.rtype):
23554  */
23555     __pyx_t_5 = PyInt_FromLong(__pyx_v_self->scount); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23556     __Pyx_GOTREF(__pyx_t_5);
23557     __pyx_t_6 = PyInt_FromLong(__pyx_v_self->rcount); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23558     __Pyx_GOTREF(__pyx_t_6);
23559     __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23560     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
23561     PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
23562     __Pyx_GIVEREF(__pyx_t_5);
23563     PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
23564     __Pyx_GIVEREF(__pyx_t_6);
23565     __pyx_t_5 = 0;
23566     __pyx_t_6 = 0;
23567     __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23568     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
23569     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
23570     __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23571     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
23572     PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6));
23573     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
23574     __pyx_t_6 = 0;
23575     __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23576     __Pyx_GOTREF(__pyx_t_6);
23577     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
23578     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
23579     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
23580     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23581     goto __pyx_L5;
23582   }
23583   __pyx_L5:;
23584 
23585   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":592
23586  *                 "mismatch in send count %d and receive count %d" %
23587  *                 (self.scount, self.rcount))
23588  *         if (self.sbuf  != MPI_IN_PLACE and             # <<<<<<<<<<<<<<
23589  *             self.stype != self.rtype):
23590  *             raise ValueError(
23591  */
23592   __pyx_t_3 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
23593   if (__pyx_t_3) {
23594 
23595     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":593
23596  *                 (self.scount, self.rcount))
23597  *         if (self.sbuf  != MPI_IN_PLACE and
23598  *             self.stype != self.rtype):             # <<<<<<<<<<<<<<
23599  *             raise ValueError(
23600  *                 "mismatch in send and receive MPI datatypes")
23601  */
23602     __pyx_t_4 = (__pyx_v_self->stype != __pyx_v_self->rtype);
23603     __pyx_t_1 = __pyx_t_4;
23604   } else {
23605     __pyx_t_1 = __pyx_t_3;
23606   }
23607   if (__pyx_t_1) {
23608 
23609     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":594
23610  *         if (self.sbuf  != MPI_IN_PLACE and
23611  *             self.stype != self.rtype):
23612  *             raise ValueError(             # <<<<<<<<<<<<<<
23613  *                 "mismatch in send and receive MPI datatypes")
23614  *         return 0
23615  */
23616     __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_37), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23617     __Pyx_GOTREF(__pyx_t_6);
23618     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
23619     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
23620     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23621     goto __pyx_L6;
23622   }
23623   __pyx_L6:;
23624 
23625   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":596
23626  *             raise ValueError(
23627  *                 "mismatch in send and receive MPI datatypes")
23628  *         return 0             # <<<<<<<<<<<<<<
23629  *
23630  *     cdef int for_reduce_scatter_block(self,
23631  */
23632   __pyx_r = 0;
23633   goto __pyx_L0;
23634 
23635   __pyx_r = 0;
23636   goto __pyx_L0;
23637   __pyx_L1_error:;
23638   __Pyx_XDECREF(__pyx_t_5);
23639   __Pyx_XDECREF(__pyx_t_6);
23640   __Pyx_XDECREF(__pyx_t_7);
23641   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
23642   __pyx_r = -1;
23643   __pyx_L0:;
23644   __Pyx_RefNannyFinishContext();
23645   return __pyx_r;
23646 }
23647 
23648 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":598
23649  *         return 0
23650  *
23651  *     cdef int for_reduce_scatter_block(self,             # <<<<<<<<<<<<<<
23652  *                                       object smsg, object rmsg,
23653  *                                       MPI_Comm comm) except -1:
23654  */
23655 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter_block(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)23656 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter_block(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
23657   int __pyx_v_inter;
23658   int __pyx_v_size;
23659   int __pyx_r;
23660   __Pyx_RefNannyDeclarations
23661   int __pyx_t_1;
23662   int __pyx_t_2;
23663   int __pyx_t_3;
23664   int __pyx_t_4;
23665   PyObject *__pyx_t_5 = NULL;
23666   PyObject *__pyx_t_6 = NULL;
23667   PyObject *__pyx_t_7 = NULL;
23668   int __pyx_lineno = 0;
23669   const char *__pyx_filename = NULL;
23670   int __pyx_clineno = 0;
23671   __Pyx_RefNannySetupContext("for_reduce_scatter_block");
23672 
23673   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":601
23674  *                                       object smsg, object rmsg,
23675  *                                       MPI_Comm comm) except -1:
23676  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
23677  *         cdef int inter=0, size=0
23678  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23679  */
23680   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
23681   if (__pyx_t_1) {
23682     __pyx_r = 0;
23683     goto __pyx_L0;
23684     goto __pyx_L3;
23685   }
23686   __pyx_L3:;
23687 
23688   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":602
23689  *                                       MPI_Comm comm) except -1:
23690  *         if comm == MPI_COMM_NULL: return 0
23691  *         cdef int inter=0, size=0             # <<<<<<<<<<<<<<
23692  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23693  *         CHKERR( MPI_Comm_size(comm, &size) )
23694  */
23695   __pyx_v_inter = 0;
23696   __pyx_v_size = 0;
23697 
23698   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":603
23699  *         if comm == MPI_COMM_NULL: return 0
23700  *         cdef int inter=0, size=0
23701  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
23702  *         CHKERR( MPI_Comm_size(comm, &size) )
23703  *         # get send and recv buffers
23704  */
23705   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23706 
23707   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":604
23708  *         cdef int inter=0, size=0
23709  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23710  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
23711  *         # get send and recv buffers
23712  *         if not inter and smsg is __IN_PLACE__:
23713  */
23714   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23715 
23716   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":606
23717  *         CHKERR( MPI_Comm_size(comm, &size) )
23718  *         # get send and recv buffers
23719  *         if not inter and smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
23720  *             self.for_cco_recv(0, rmsg, 0, size)
23721  *             self.sbuf = MPI_IN_PLACE
23722  */
23723   __pyx_t_1 = (!__pyx_v_inter);
23724   if (__pyx_t_1) {
23725     __pyx_t_3 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
23726     __pyx_t_4 = __pyx_t_3;
23727   } else {
23728     __pyx_t_4 = __pyx_t_1;
23729   }
23730   if (__pyx_t_4) {
23731 
23732     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":607
23733  *         # get send and recv buffers
23734  *         if not inter and smsg is __IN_PLACE__:
23735  *             self.for_cco_recv(0, rmsg, 0, size)             # <<<<<<<<<<<<<<
23736  *             self.sbuf = MPI_IN_PLACE
23737  *         else:
23738  */
23739     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, 0, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23740 
23741     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":608
23742  *         if not inter and smsg is __IN_PLACE__:
23743  *             self.for_cco_recv(0, rmsg, 0, size)
23744  *             self.sbuf = MPI_IN_PLACE             # <<<<<<<<<<<<<<
23745  *         else:
23746  *             self.for_cco_recv(0, rmsg, 0, 0)
23747  */
23748     __pyx_v_self->sbuf = MPI_IN_PLACE;
23749     goto __pyx_L4;
23750   }
23751   /*else*/ {
23752 
23753     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":610
23754  *             self.sbuf = MPI_IN_PLACE
23755  *         else:
23756  *             self.for_cco_recv(0, rmsg, 0, 0)             # <<<<<<<<<<<<<<
23757  *             self.for_cco_send(0, smsg, 0, size)
23758  *         # check counts and datatypes
23759  */
23760     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_recv(__pyx_v_self, 0, __pyx_v_rmsg, 0, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23761 
23762     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":611
23763  *         else:
23764  *             self.for_cco_recv(0, rmsg, 0, 0)
23765  *             self.for_cco_send(0, smsg, 0, size)             # <<<<<<<<<<<<<<
23766  *         # check counts and datatypes
23767  *         if self.sbuf != MPI_IN_PLACE:
23768  */
23769     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cco_send(__pyx_v_self, 0, __pyx_v_smsg, 0, __pyx_v_size); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23770   }
23771   __pyx_L4:;
23772 
23773   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":613
23774  *             self.for_cco_send(0, smsg, 0, size)
23775  *         # check counts and datatypes
23776  *         if self.sbuf != MPI_IN_PLACE:             # <<<<<<<<<<<<<<
23777  *             if self.stype != self.rtype:
23778  *                 raise ValueError(
23779  */
23780   __pyx_t_4 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
23781   if (__pyx_t_4) {
23782 
23783     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":614
23784  *         # check counts and datatypes
23785  *         if self.sbuf != MPI_IN_PLACE:
23786  *             if self.stype != self.rtype:             # <<<<<<<<<<<<<<
23787  *                 raise ValueError(
23788  *                     "mismatch in send and receive MPI datatypes")
23789  */
23790     __pyx_t_4 = (__pyx_v_self->stype != __pyx_v_self->rtype);
23791     if (__pyx_t_4) {
23792 
23793       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":615
23794  *         if self.sbuf != MPI_IN_PLACE:
23795  *             if self.stype != self.rtype:
23796  *                 raise ValueError(             # <<<<<<<<<<<<<<
23797  *                     "mismatch in send and receive MPI datatypes")
23798  *             if self.scount != self.rcount:
23799  */
23800       __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_38), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23801       __Pyx_GOTREF(__pyx_t_5);
23802       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
23803       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23804       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23805       goto __pyx_L6;
23806     }
23807     __pyx_L6:;
23808 
23809     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":617
23810  *                 raise ValueError(
23811  *                     "mismatch in send and receive MPI datatypes")
23812  *             if self.scount != self.rcount:             # <<<<<<<<<<<<<<
23813  *                 raise ValueError(
23814  *                     "mismatch in send count %d receive count %d" %
23815  */
23816     __pyx_t_4 = (__pyx_v_self->scount != __pyx_v_self->rcount);
23817     if (__pyx_t_4) {
23818 
23819       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":620
23820  *                 raise ValueError(
23821  *                     "mismatch in send count %d receive count %d" %
23822  *                     (self.scount, self.rcount*size))             # <<<<<<<<<<<<<<
23823  *         return 0
23824  *
23825  */
23826       __pyx_t_5 = PyInt_FromLong(__pyx_v_self->scount); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23827       __Pyx_GOTREF(__pyx_t_5);
23828       __pyx_t_6 = PyInt_FromLong((__pyx_v_self->rcount * __pyx_v_size)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23829       __Pyx_GOTREF(__pyx_t_6);
23830       __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23831       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
23832       PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
23833       __Pyx_GIVEREF(__pyx_t_5);
23834       PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
23835       __Pyx_GIVEREF(__pyx_t_6);
23836       __pyx_t_5 = 0;
23837       __pyx_t_6 = 0;
23838       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_39), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23839       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
23840       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
23841       __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23842       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
23843       PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6));
23844       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
23845       __pyx_t_6 = 0;
23846       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23847       __Pyx_GOTREF(__pyx_t_6);
23848       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
23849       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
23850       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
23851       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23852       goto __pyx_L7;
23853     }
23854     __pyx_L7:;
23855     goto __pyx_L5;
23856   }
23857   __pyx_L5:;
23858 
23859   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":621
23860  *                     "mismatch in send count %d receive count %d" %
23861  *                     (self.scount, self.rcount*size))
23862  *         return 0             # <<<<<<<<<<<<<<
23863  *
23864  *     cdef int for_reduce_scatter(self,
23865  */
23866   __pyx_r = 0;
23867   goto __pyx_L0;
23868 
23869   __pyx_r = 0;
23870   goto __pyx_L0;
23871   __pyx_L1_error:;
23872   __Pyx_XDECREF(__pyx_t_5);
23873   __Pyx_XDECREF(__pyx_t_6);
23874   __Pyx_XDECREF(__pyx_t_7);
23875   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_reduce_scatter_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
23876   __pyx_r = -1;
23877   __pyx_L0:;
23878   __Pyx_RefNannyFinishContext();
23879   return __pyx_r;
23880 }
23881 
23882 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":623
23883  *         return 0
23884  *
23885  *     cdef int for_reduce_scatter(self,             # <<<<<<<<<<<<<<
23886  *                                 object smsg, object rmsg, object rcnt,
23887  *                                 MPI_Comm comm) except -1:
23888  */
23889 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,PyObject * __pyx_v_rcnt,MPI_Comm __pyx_v_comm)23890 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, PyObject *__pyx_v_rcnt, MPI_Comm __pyx_v_comm) {
23891   int __pyx_v_inter;
23892   int __pyx_v_size;
23893   int __pyx_v_rank;
23894   int __pyx_v_i;
23895   int __pyx_v_sumrcounts;
23896   int __pyx_r;
23897   __Pyx_RefNannyDeclarations
23898   int __pyx_t_1;
23899   int __pyx_t_2;
23900   int __pyx_t_3;
23901   int __pyx_t_4;
23902   int __pyx_t_5;
23903   PyObject *__pyx_t_6 = NULL;
23904   PyObject *__pyx_t_7 = NULL;
23905   PyObject *__pyx_t_8 = NULL;
23906   PyObject *__pyx_t_9 = NULL;
23907   int __pyx_lineno = 0;
23908   const char *__pyx_filename = NULL;
23909   int __pyx_clineno = 0;
23910   __Pyx_RefNannySetupContext("for_reduce_scatter");
23911 
23912   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":626
23913  *                                 object smsg, object rmsg, object rcnt,
23914  *                                 MPI_Comm comm) except -1:
23915  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
23916  *         cdef int inter=0, size=0, rank=MPI_PROC_NULL
23917  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23918  */
23919   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
23920   if (__pyx_t_1) {
23921     __pyx_r = 0;
23922     goto __pyx_L0;
23923     goto __pyx_L3;
23924   }
23925   __pyx_L3:;
23926 
23927   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":627
23928  *                                 MPI_Comm comm) except -1:
23929  *         if comm == MPI_COMM_NULL: return 0
23930  *         cdef int inter=0, size=0, rank=MPI_PROC_NULL             # <<<<<<<<<<<<<<
23931  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23932  *         CHKERR( MPI_Comm_size(comm, &size) )
23933  */
23934   __pyx_v_inter = 0;
23935   __pyx_v_size = 0;
23936   __pyx_v_rank = MPI_PROC_NULL;
23937 
23938   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":628
23939  *         if comm == MPI_COMM_NULL: return 0
23940  *         cdef int inter=0, size=0, rank=MPI_PROC_NULL
23941  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
23942  *         CHKERR( MPI_Comm_size(comm, &size) )
23943  *         CHKERR( MPI_Comm_rank(comm, &rank) )
23944  */
23945   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23946 
23947   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":629
23948  *         cdef int inter=0, size=0, rank=MPI_PROC_NULL
23949  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23950  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
23951  *         CHKERR( MPI_Comm_rank(comm, &rank) )
23952  *         # get send and recv buffers
23953  */
23954   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23955 
23956   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":630
23957  *         CHKERR( MPI_Comm_test_inter(comm, &inter) )
23958  *         CHKERR( MPI_Comm_size(comm, &size) )
23959  *         CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
23960  *         # get send and recv buffers
23961  *         self.for_cro_recv(rmsg, 0)
23962  */
23963   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23964 
23965   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":632
23966  *         CHKERR( MPI_Comm_rank(comm, &rank) )
23967  *         # get send and recv buffers
23968  *         self.for_cro_recv(rmsg, 0)             # <<<<<<<<<<<<<<
23969  *         if not inter and smsg is __IN_PLACE__:
23970  *             self.sbuf = MPI_IN_PLACE
23971  */
23972   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
23973 
23974   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":633
23975  *         # get send and recv buffers
23976  *         self.for_cro_recv(rmsg, 0)
23977  *         if not inter and smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
23978  *             self.sbuf = MPI_IN_PLACE
23979  *         else:
23980  */
23981   __pyx_t_1 = (!__pyx_v_inter);
23982   if (__pyx_t_1) {
23983     __pyx_t_3 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
23984     __pyx_t_4 = __pyx_t_3;
23985   } else {
23986     __pyx_t_4 = __pyx_t_1;
23987   }
23988   if (__pyx_t_4) {
23989 
23990     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":634
23991  *         self.for_cro_recv(rmsg, 0)
23992  *         if not inter and smsg is __IN_PLACE__:
23993  *             self.sbuf = MPI_IN_PLACE             # <<<<<<<<<<<<<<
23994  *         else:
23995  *             self.for_cro_send(smsg, 0)
23996  */
23997     __pyx_v_self->sbuf = MPI_IN_PLACE;
23998     goto __pyx_L4;
23999   }
24000   /*else*/ {
24001 
24002     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":636
24003  *             self.sbuf = MPI_IN_PLACE
24004  *         else:
24005  *             self.for_cro_send(smsg, 0)             # <<<<<<<<<<<<<<
24006  *         # get receive counts
24007  *         if rcnt is None and not inter and self.sbuf != MPI_IN_PLACE:
24008  */
24009     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24010   }
24011   __pyx_L4:;
24012 
24013   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":638
24014  *             self.for_cro_send(smsg, 0)
24015  *         # get receive counts
24016  *         if rcnt is None and not inter and self.sbuf != MPI_IN_PLACE:             # <<<<<<<<<<<<<<
24017  *             self._rcnt = newarray_int(size, &self.rcounts)
24018  *             CHKERR( MPI_Allgather(&self.rcount, 1, MPI_INT,
24019  */
24020   __pyx_t_4 = (__pyx_v_rcnt == Py_None);
24021   if (__pyx_t_4) {
24022     __pyx_t_1 = (!__pyx_v_inter);
24023     if (__pyx_t_1) {
24024       __pyx_t_3 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
24025       __pyx_t_5 = __pyx_t_3;
24026     } else {
24027       __pyx_t_5 = __pyx_t_1;
24028     }
24029     __pyx_t_1 = __pyx_t_5;
24030   } else {
24031     __pyx_t_1 = __pyx_t_4;
24032   }
24033   if (__pyx_t_1) {
24034 
24035     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":639
24036  *         # get receive counts
24037  *         if rcnt is None and not inter and self.sbuf != MPI_IN_PLACE:
24038  *             self._rcnt = newarray_int(size, &self.rcounts)             # <<<<<<<<<<<<<<
24039  *             CHKERR( MPI_Allgather(&self.rcount, 1, MPI_INT,
24040  *                                   self.rcounts, 1, MPI_INT, comm) )
24041  */
24042     __pyx_t_6 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_size, (&__pyx_v_self->rcounts)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24043     __Pyx_GOTREF(__pyx_t_6);
24044     __Pyx_GIVEREF(__pyx_t_6);
24045     __Pyx_GOTREF(__pyx_v_self->_rcnt);
24046     __Pyx_DECREF(__pyx_v_self->_rcnt);
24047     __pyx_v_self->_rcnt = __pyx_t_6;
24048     __pyx_t_6 = 0;
24049 
24050     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":641
24051  *             self._rcnt = newarray_int(size, &self.rcounts)
24052  *             CHKERR( MPI_Allgather(&self.rcount, 1, MPI_INT,
24053  *                                   self.rcounts, 1, MPI_INT, comm) )             # <<<<<<<<<<<<<<
24054  *         else:
24055  *             self._rcnt = chkarray_int(rcnt, size, &self.rcounts)
24056  */
24057     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allgather((&__pyx_v_self->rcount), 1, MPI_INT, __pyx_v_self->rcounts, 1, MPI_INT, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24058     goto __pyx_L5;
24059   }
24060   /*else*/ {
24061 
24062     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":643
24063  *                                   self.rcounts, 1, MPI_INT, comm) )
24064  *         else:
24065  *             self._rcnt = chkarray_int(rcnt, size, &self.rcounts)             # <<<<<<<<<<<<<<
24066  *         # total sum or receive counts
24067  *         cdef int i=0, sumrcounts=0
24068  */
24069     __pyx_t_6 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_rcnt, __pyx_v_size, (&__pyx_v_self->rcounts)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24070     __Pyx_GOTREF(__pyx_t_6);
24071     __Pyx_GIVEREF(__pyx_t_6);
24072     __Pyx_GOTREF(__pyx_v_self->_rcnt);
24073     __Pyx_DECREF(__pyx_v_self->_rcnt);
24074     __pyx_v_self->_rcnt = __pyx_t_6;
24075     __pyx_t_6 = 0;
24076   }
24077   __pyx_L5:;
24078 
24079   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":645
24080  *             self._rcnt = chkarray_int(rcnt, size, &self.rcounts)
24081  *         # total sum or receive counts
24082  *         cdef int i=0, sumrcounts=0             # <<<<<<<<<<<<<<
24083  *         for i from 0 <= i < size:
24084  *             sumrcounts += self.rcounts[i]
24085  */
24086   __pyx_v_i = 0;
24087   __pyx_v_sumrcounts = 0;
24088 
24089   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":646
24090  *         # total sum or receive counts
24091  *         cdef int i=0, sumrcounts=0
24092  *         for i from 0 <= i < size:             # <<<<<<<<<<<<<<
24093  *             sumrcounts += self.rcounts[i]
24094  *         # check counts and datatypes
24095  */
24096   __pyx_t_2 = __pyx_v_size;
24097   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
24098 
24099     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":647
24100  *         cdef int i=0, sumrcounts=0
24101  *         for i from 0 <= i < size:
24102  *             sumrcounts += self.rcounts[i]             # <<<<<<<<<<<<<<
24103  *         # check counts and datatypes
24104  *         if self.sbuf != MPI_IN_PLACE:
24105  */
24106     __pyx_v_sumrcounts = (__pyx_v_sumrcounts + (__pyx_v_self->rcounts[__pyx_v_i]));
24107   }
24108 
24109   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":649
24110  *             sumrcounts += self.rcounts[i]
24111  *         # check counts and datatypes
24112  *         if self.sbuf != MPI_IN_PLACE:             # <<<<<<<<<<<<<<
24113  *             if self.stype != self.rtype:
24114  *                 raise ValueError(
24115  */
24116   __pyx_t_1 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
24117   if (__pyx_t_1) {
24118 
24119     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":650
24120  *         # check counts and datatypes
24121  *         if self.sbuf != MPI_IN_PLACE:
24122  *             if self.stype != self.rtype:             # <<<<<<<<<<<<<<
24123  *                 raise ValueError(
24124  *                     "mismatch in send and receive MPI datatypes")
24125  */
24126     __pyx_t_1 = (__pyx_v_self->stype != __pyx_v_self->rtype);
24127     if (__pyx_t_1) {
24128 
24129       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":651
24130  *         if self.sbuf != MPI_IN_PLACE:
24131  *             if self.stype != self.rtype:
24132  *                 raise ValueError(             # <<<<<<<<<<<<<<
24133  *                     "mismatch in send and receive MPI datatypes")
24134  *             if self.scount != sumrcounts:
24135  */
24136       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_40), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24137       __Pyx_GOTREF(__pyx_t_6);
24138       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
24139       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24140       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24141       goto __pyx_L9;
24142     }
24143     __pyx_L9:;
24144 
24145     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":653
24146  *                 raise ValueError(
24147  *                     "mismatch in send and receive MPI datatypes")
24148  *             if self.scount != sumrcounts:             # <<<<<<<<<<<<<<
24149  *                 raise ValueError(
24150  *                     "mismatch in send count %d and sum(counts) %d" %
24151  */
24152     __pyx_t_1 = (__pyx_v_self->scount != __pyx_v_sumrcounts);
24153     if (__pyx_t_1) {
24154 
24155       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":656
24156  *                 raise ValueError(
24157  *                     "mismatch in send count %d and sum(counts) %d" %
24158  *                     (self.scount, sumrcounts))             # <<<<<<<<<<<<<<
24159  *             if self.rcount != self.rcounts[rank]:
24160  *                 raise ValueError(
24161  */
24162       __pyx_t_6 = PyInt_FromLong(__pyx_v_self->scount); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24163       __Pyx_GOTREF(__pyx_t_6);
24164       __pyx_t_7 = PyInt_FromLong(__pyx_v_sumrcounts); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24165       __Pyx_GOTREF(__pyx_t_7);
24166       __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24167       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
24168       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
24169       __Pyx_GIVEREF(__pyx_t_6);
24170       PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7);
24171       __Pyx_GIVEREF(__pyx_t_7);
24172       __pyx_t_6 = 0;
24173       __pyx_t_7 = 0;
24174       __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_41), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24175       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
24176       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
24177       __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24178       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
24179       PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_7));
24180       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
24181       __pyx_t_7 = 0;
24182       __pyx_t_7 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24183       __Pyx_GOTREF(__pyx_t_7);
24184       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
24185       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
24186       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24187       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24188       goto __pyx_L10;
24189     }
24190     __pyx_L10:;
24191 
24192     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":657
24193  *                     "mismatch in send count %d and sum(counts) %d" %
24194  *                     (self.scount, sumrcounts))
24195  *             if self.rcount != self.rcounts[rank]:             # <<<<<<<<<<<<<<
24196  *                 raise ValueError(
24197  *                     "mismatch in receive count %d and counts[%d] %d" %
24198  */
24199     __pyx_t_1 = (__pyx_v_self->rcount != (__pyx_v_self->rcounts[__pyx_v_rank]));
24200     if (__pyx_t_1) {
24201 
24202       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":660
24203  *                 raise ValueError(
24204  *                     "mismatch in receive count %d and counts[%d] %d" %
24205  *                     (self.rcount, rank, self.rcounts[rank]))             # <<<<<<<<<<<<<<
24206  *         else:
24207  *             if self.rcount != sumrcounts:
24208  */
24209       __pyx_t_7 = PyInt_FromLong(__pyx_v_self->rcount); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24210       __Pyx_GOTREF(__pyx_t_7);
24211       __pyx_t_8 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24212       __Pyx_GOTREF(__pyx_t_8);
24213       __pyx_t_6 = PyInt_FromLong((__pyx_v_self->rcounts[__pyx_v_rank])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24214       __Pyx_GOTREF(__pyx_t_6);
24215       __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24216       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
24217       PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7);
24218       __Pyx_GIVEREF(__pyx_t_7);
24219       PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
24220       __Pyx_GIVEREF(__pyx_t_8);
24221       PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_6);
24222       __Pyx_GIVEREF(__pyx_t_6);
24223       __pyx_t_7 = 0;
24224       __pyx_t_8 = 0;
24225       __pyx_t_6 = 0;
24226       __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_42), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24227       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
24228       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
24229       __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24230       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
24231       PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_6));
24232       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
24233       __pyx_t_6 = 0;
24234       __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24235       __Pyx_GOTREF(__pyx_t_6);
24236       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
24237       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
24238       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24239       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24240       goto __pyx_L11;
24241     }
24242     __pyx_L11:;
24243     goto __pyx_L8;
24244   }
24245   /*else*/ {
24246 
24247     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":662
24248  *                     (self.rcount, rank, self.rcounts[rank]))
24249  *         else:
24250  *             if self.rcount != sumrcounts:             # <<<<<<<<<<<<<<
24251  *                 raise ValueError(
24252  *                     "mismatch in receive count %d and sum(counts) %d" %
24253  */
24254     __pyx_t_1 = (__pyx_v_self->rcount != __pyx_v_sumrcounts);
24255     if (__pyx_t_1) {
24256 
24257       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":665
24258  *                 raise ValueError(
24259  *                     "mismatch in receive count %d and sum(counts) %d" %
24260  *                     (self.rcount, sumrcounts))             # <<<<<<<<<<<<<<
24261  *         return 0
24262  *
24263  */
24264       __pyx_t_6 = PyInt_FromLong(__pyx_v_self->rcount); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24265       __Pyx_GOTREF(__pyx_t_6);
24266       __pyx_t_9 = PyInt_FromLong(__pyx_v_sumrcounts); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24267       __Pyx_GOTREF(__pyx_t_9);
24268       __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24269       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
24270       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
24271       __Pyx_GIVEREF(__pyx_t_6);
24272       PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9);
24273       __Pyx_GIVEREF(__pyx_t_9);
24274       __pyx_t_6 = 0;
24275       __pyx_t_9 = 0;
24276       __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24277       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
24278       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
24279       __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24280       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
24281       PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_9));
24282       __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
24283       __pyx_t_9 = 0;
24284       __pyx_t_9 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24285       __Pyx_GOTREF(__pyx_t_9);
24286       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
24287       __Pyx_Raise(__pyx_t_9, 0, 0, 0);
24288       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24289       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24290       goto __pyx_L12;
24291     }
24292     __pyx_L12:;
24293   }
24294   __pyx_L8:;
24295 
24296   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":666
24297  *                     "mismatch in receive count %d and sum(counts) %d" %
24298  *                     (self.rcount, sumrcounts))
24299  *         return 0             # <<<<<<<<<<<<<<
24300  *
24301  *     cdef int for_scan(self,
24302  */
24303   __pyx_r = 0;
24304   goto __pyx_L0;
24305 
24306   __pyx_r = 0;
24307   goto __pyx_L0;
24308   __pyx_L1_error:;
24309   __Pyx_XDECREF(__pyx_t_6);
24310   __Pyx_XDECREF(__pyx_t_7);
24311   __Pyx_XDECREF(__pyx_t_8);
24312   __Pyx_XDECREF(__pyx_t_9);
24313   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_reduce_scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
24314   __pyx_r = -1;
24315   __pyx_L0:;
24316   __Pyx_RefNannyFinishContext();
24317   return __pyx_r;
24318 }
24319 
24320 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":668
24321  *         return 0
24322  *
24323  *     cdef int for_scan(self,             # <<<<<<<<<<<<<<
24324  *                       object smsg, object rmsg,
24325  *                       MPI_Comm comm) except -1:
24326  */
24327 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scan(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)24328 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scan(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
24329   int __pyx_r;
24330   __Pyx_RefNannyDeclarations
24331   int __pyx_t_1;
24332   int __pyx_t_2;
24333   int __pyx_t_3;
24334   int __pyx_t_4;
24335   PyObject *__pyx_t_5 = NULL;
24336   PyObject *__pyx_t_6 = NULL;
24337   PyObject *__pyx_t_7 = NULL;
24338   int __pyx_lineno = 0;
24339   const char *__pyx_filename = NULL;
24340   int __pyx_clineno = 0;
24341   __Pyx_RefNannySetupContext("for_scan");
24342 
24343   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":671
24344  *                       object smsg, object rmsg,
24345  *                       MPI_Comm comm) except -1:
24346  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
24347  *         # get send and recv buffers
24348  *         self.for_cro_recv(rmsg, 0)
24349  */
24350   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
24351   if (__pyx_t_1) {
24352     __pyx_r = 0;
24353     goto __pyx_L0;
24354     goto __pyx_L3;
24355   }
24356   __pyx_L3:;
24357 
24358   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":673
24359  *         if comm == MPI_COMM_NULL: return 0
24360  *         # get send and recv buffers
24361  *         self.for_cro_recv(rmsg, 0)             # <<<<<<<<<<<<<<
24362  *         if smsg is __IN_PLACE__:
24363  *             self.sbuf   = MPI_IN_PLACE
24364  */
24365   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24366 
24367   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":674
24368  *         # get send and recv buffers
24369  *         self.for_cro_recv(rmsg, 0)
24370  *         if smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
24371  *             self.sbuf   = MPI_IN_PLACE
24372  *             self.scount = self.rcount
24373  */
24374   __pyx_t_1 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
24375   if (__pyx_t_1) {
24376 
24377     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":675
24378  *         self.for_cro_recv(rmsg, 0)
24379  *         if smsg is __IN_PLACE__:
24380  *             self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
24381  *             self.scount = self.rcount
24382  *             self.stype  = self.rtype
24383  */
24384     __pyx_v_self->sbuf = MPI_IN_PLACE;
24385 
24386     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":676
24387  *         if smsg is __IN_PLACE__:
24388  *             self.sbuf   = MPI_IN_PLACE
24389  *             self.scount = self.rcount             # <<<<<<<<<<<<<<
24390  *             self.stype  = self.rtype
24391  *         else:
24392  */
24393     __pyx_v_self->scount = __pyx_v_self->rcount;
24394 
24395     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":677
24396  *             self.sbuf   = MPI_IN_PLACE
24397  *             self.scount = self.rcount
24398  *             self.stype  = self.rtype             # <<<<<<<<<<<<<<
24399  *         else:
24400  *             self.for_cro_send(smsg, 0)
24401  */
24402     __pyx_v_self->stype = __pyx_v_self->rtype;
24403     goto __pyx_L4;
24404   }
24405   /*else*/ {
24406 
24407     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":679
24408  *             self.stype  = self.rtype
24409  *         else:
24410  *             self.for_cro_send(smsg, 0)             # <<<<<<<<<<<<<<
24411  *         # check counts and datatypes
24412  *         if (self.sbuf   != MPI_IN_PLACE and
24413  */
24414     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24415   }
24416   __pyx_L4:;
24417 
24418   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":681
24419  *             self.for_cro_send(smsg, 0)
24420  *         # check counts and datatypes
24421  *         if (self.sbuf   != MPI_IN_PLACE and             # <<<<<<<<<<<<<<
24422  *             self.scount != self.rcount):
24423  *             raise ValueError(
24424  */
24425   __pyx_t_1 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
24426   if (__pyx_t_1) {
24427 
24428     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":682
24429  *         # check counts and datatypes
24430  *         if (self.sbuf   != MPI_IN_PLACE and
24431  *             self.scount != self.rcount):             # <<<<<<<<<<<<<<
24432  *             raise ValueError(
24433  *                 "mismatch in send count %d and receive count %d" %
24434  */
24435     __pyx_t_3 = (__pyx_v_self->scount != __pyx_v_self->rcount);
24436     __pyx_t_4 = __pyx_t_3;
24437   } else {
24438     __pyx_t_4 = __pyx_t_1;
24439   }
24440   if (__pyx_t_4) {
24441 
24442     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":685
24443  *             raise ValueError(
24444  *                 "mismatch in send count %d and receive count %d" %
24445  *                 (self.scount, self.rcount))             # <<<<<<<<<<<<<<
24446  *         if (self.sbuf  != MPI_IN_PLACE and
24447  *             self.stype != self.rtype):
24448  */
24449     __pyx_t_5 = PyInt_FromLong(__pyx_v_self->scount); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24450     __Pyx_GOTREF(__pyx_t_5);
24451     __pyx_t_6 = PyInt_FromLong(__pyx_v_self->rcount); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24452     __Pyx_GOTREF(__pyx_t_6);
24453     __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24454     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
24455     PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
24456     __Pyx_GIVEREF(__pyx_t_5);
24457     PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
24458     __Pyx_GIVEREF(__pyx_t_6);
24459     __pyx_t_5 = 0;
24460     __pyx_t_6 = 0;
24461     __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24462     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
24463     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
24464     __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24465     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
24466     PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6));
24467     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
24468     __pyx_t_6 = 0;
24469     __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24470     __Pyx_GOTREF(__pyx_t_6);
24471     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
24472     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
24473     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24474     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24475     goto __pyx_L5;
24476   }
24477   __pyx_L5:;
24478 
24479   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":686
24480  *                 "mismatch in send count %d and receive count %d" %
24481  *                 (self.scount, self.rcount))
24482  *         if (self.sbuf  != MPI_IN_PLACE and             # <<<<<<<<<<<<<<
24483  *             self.stype != self.rtype):
24484  *             raise ValueError(
24485  */
24486   __pyx_t_4 = (__pyx_v_self->sbuf != MPI_IN_PLACE);
24487   if (__pyx_t_4) {
24488 
24489     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":687
24490  *                 (self.scount, self.rcount))
24491  *         if (self.sbuf  != MPI_IN_PLACE and
24492  *             self.stype != self.rtype):             # <<<<<<<<<<<<<<
24493  *             raise ValueError(
24494  *                 "mismatch in send and receive MPI datatypes")
24495  */
24496     __pyx_t_1 = (__pyx_v_self->stype != __pyx_v_self->rtype);
24497     __pyx_t_3 = __pyx_t_1;
24498   } else {
24499     __pyx_t_3 = __pyx_t_4;
24500   }
24501   if (__pyx_t_3) {
24502 
24503     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":688
24504  *         if (self.sbuf  != MPI_IN_PLACE and
24505  *             self.stype != self.rtype):
24506  *             raise ValueError(             # <<<<<<<<<<<<<<
24507  *                 "mismatch in send and receive MPI datatypes")
24508  *         return 0
24509  */
24510     __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_44), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24511     __Pyx_GOTREF(__pyx_t_6);
24512     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
24513     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24514     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24515     goto __pyx_L6;
24516   }
24517   __pyx_L6:;
24518 
24519   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":690
24520  *             raise ValueError(
24521  *                 "mismatch in send and receive MPI datatypes")
24522  *         return 0             # <<<<<<<<<<<<<<
24523  *
24524  *     cdef int for_exscan(self,
24525  */
24526   __pyx_r = 0;
24527   goto __pyx_L0;
24528 
24529   __pyx_r = 0;
24530   goto __pyx_L0;
24531   __pyx_L1_error:;
24532   __Pyx_XDECREF(__pyx_t_5);
24533   __Pyx_XDECREF(__pyx_t_6);
24534   __Pyx_XDECREF(__pyx_t_7);
24535   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
24536   __pyx_r = -1;
24537   __pyx_L0:;
24538   __Pyx_RefNannyFinishContext();
24539   return __pyx_r;
24540 }
24541 
24542 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":692
24543  *         return 0
24544  *
24545  *     cdef int for_exscan(self,             # <<<<<<<<<<<<<<
24546  *                         object smsg, object rmsg,
24547  *                         MPI_Comm comm) except -1:
24548  */
24549 
__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_exscan(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco * __pyx_v_self,PyObject * __pyx_v_smsg,PyObject * __pyx_v_rmsg,MPI_Comm __pyx_v_comm)24550 static int __pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_exscan(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_self, PyObject *__pyx_v_smsg, PyObject *__pyx_v_rmsg, MPI_Comm __pyx_v_comm) {
24551   int __pyx_r;
24552   __Pyx_RefNannyDeclarations
24553   int __pyx_t_1;
24554   int __pyx_t_2;
24555   PyObject *__pyx_t_3 = NULL;
24556   PyObject *__pyx_t_4 = NULL;
24557   PyObject *__pyx_t_5 = NULL;
24558   int __pyx_lineno = 0;
24559   const char *__pyx_filename = NULL;
24560   int __pyx_clineno = 0;
24561   __Pyx_RefNannySetupContext("for_exscan");
24562 
24563   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":695
24564  *                         object smsg, object rmsg,
24565  *                         MPI_Comm comm) except -1:
24566  *         if comm == MPI_COMM_NULL: return 0             # <<<<<<<<<<<<<<
24567  *         # get send and recv buffers
24568  *         self.for_cro_recv(rmsg, 0)
24569  */
24570   __pyx_t_1 = (__pyx_v_comm == MPI_COMM_NULL);
24571   if (__pyx_t_1) {
24572     __pyx_r = 0;
24573     goto __pyx_L0;
24574     goto __pyx_L3;
24575   }
24576   __pyx_L3:;
24577 
24578   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":697
24579  *         if comm == MPI_COMM_NULL: return 0
24580  *         # get send and recv buffers
24581  *         self.for_cro_recv(rmsg, 0)             # <<<<<<<<<<<<<<
24582  *         if smsg is __IN_PLACE__:
24583  *             self.sbuf   = MPI_IN_PLACE
24584  */
24585   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_recv(__pyx_v_self, __pyx_v_rmsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24586 
24587   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":698
24588  *         # get send and recv buffers
24589  *         self.for_cro_recv(rmsg, 0)
24590  *         if smsg is __IN_PLACE__:             # <<<<<<<<<<<<<<
24591  *             self.sbuf   = MPI_IN_PLACE
24592  *             self.scount = self.rcount
24593  */
24594   __pyx_t_1 = (__pyx_v_smsg == __pyx_v_6mpi4py_3MPI___IN_PLACE__);
24595   if (__pyx_t_1) {
24596 
24597     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":699
24598  *         self.for_cro_recv(rmsg, 0)
24599  *         if smsg is __IN_PLACE__:
24600  *             self.sbuf   = MPI_IN_PLACE             # <<<<<<<<<<<<<<
24601  *             self.scount = self.rcount
24602  *             self.stype  = self.rtype
24603  */
24604     __pyx_v_self->sbuf = MPI_IN_PLACE;
24605 
24606     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":700
24607  *         if smsg is __IN_PLACE__:
24608  *             self.sbuf   = MPI_IN_PLACE
24609  *             self.scount = self.rcount             # <<<<<<<<<<<<<<
24610  *             self.stype  = self.rtype
24611  *         else:
24612  */
24613     __pyx_v_self->scount = __pyx_v_self->rcount;
24614 
24615     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":701
24616  *             self.sbuf   = MPI_IN_PLACE
24617  *             self.scount = self.rcount
24618  *             self.stype  = self.rtype             # <<<<<<<<<<<<<<
24619  *         else:
24620  *             self.for_cro_send(smsg, 0)
24621  */
24622     __pyx_v_self->stype = __pyx_v_self->rtype;
24623     goto __pyx_L4;
24624   }
24625   /*else*/ {
24626 
24627     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":703
24628  *             self.stype  = self.rtype
24629  *         else:
24630  *             self.for_cro_send(smsg, 0)             # <<<<<<<<<<<<<<
24631  *         # check counts and datatypes
24632  *         if self.scount != self.rcount:
24633  */
24634     __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_self->__pyx_vtab)->for_cro_send(__pyx_v_self, __pyx_v_smsg, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24635   }
24636   __pyx_L4:;
24637 
24638   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":705
24639  *             self.for_cro_send(smsg, 0)
24640  *         # check counts and datatypes
24641  *         if self.scount != self.rcount:             # <<<<<<<<<<<<<<
24642  *             raise ValueError(
24643  *                 "mismatch in send count %d and receive count %d" %
24644  */
24645   __pyx_t_1 = (__pyx_v_self->scount != __pyx_v_self->rcount);
24646   if (__pyx_t_1) {
24647 
24648     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":708
24649  *             raise ValueError(
24650  *                 "mismatch in send count %d and receive count %d" %
24651  *                 (self.scount, self.rcount))             # <<<<<<<<<<<<<<
24652  *         if self.stype != self.rtype:
24653  *             raise ValueError(
24654  */
24655     __pyx_t_3 = PyInt_FromLong(__pyx_v_self->scount); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24656     __Pyx_GOTREF(__pyx_t_3);
24657     __pyx_t_4 = PyInt_FromLong(__pyx_v_self->rcount); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24658     __Pyx_GOTREF(__pyx_t_4);
24659     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24660     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
24661     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
24662     __Pyx_GIVEREF(__pyx_t_3);
24663     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
24664     __Pyx_GIVEREF(__pyx_t_4);
24665     __pyx_t_3 = 0;
24666     __pyx_t_4 = 0;
24667     __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24668     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
24669     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
24670     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24671     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
24672     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
24673     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
24674     __pyx_t_4 = 0;
24675     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24676     __Pyx_GOTREF(__pyx_t_4);
24677     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
24678     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
24679     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
24680     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24681     goto __pyx_L5;
24682   }
24683   __pyx_L5:;
24684 
24685   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":709
24686  *                 "mismatch in send count %d and receive count %d" %
24687  *                 (self.scount, self.rcount))
24688  *         if self.stype != self.rtype:             # <<<<<<<<<<<<<<
24689  *             raise ValueError(
24690  *                 "mismatch in send and receive MPI datatypes")
24691  */
24692   __pyx_t_1 = (__pyx_v_self->stype != __pyx_v_self->rtype);
24693   if (__pyx_t_1) {
24694 
24695     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":710
24696  *                 (self.scount, self.rcount))
24697  *         if self.stype != self.rtype:
24698  *             raise ValueError(             # <<<<<<<<<<<<<<
24699  *                 "mismatch in send and receive MPI datatypes")
24700  *         return 0
24701  */
24702     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_45), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24703     __Pyx_GOTREF(__pyx_t_4);
24704     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
24705     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
24706     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24707     goto __pyx_L6;
24708   }
24709   __pyx_L6:;
24710 
24711   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":712
24712  *             raise ValueError(
24713  *                 "mismatch in send and receive MPI datatypes")
24714  *         return 0             # <<<<<<<<<<<<<<
24715  *
24716  *
24717  */
24718   __pyx_r = 0;
24719   goto __pyx_L0;
24720 
24721   __pyx_r = 0;
24722   goto __pyx_L0;
24723   __pyx_L1_error:;
24724   __Pyx_XDECREF(__pyx_t_3);
24725   __Pyx_XDECREF(__pyx_t_4);
24726   __Pyx_XDECREF(__pyx_t_5);
24727   __Pyx_AddTraceback("mpi4py.MPI._p_msg_cco.for_exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
24728   __pyx_r = -1;
24729   __pyx_L0:;
24730   __Pyx_RefNannyFinishContext();
24731   return __pyx_r;
24732 }
24733 
24734 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":715
24735  *
24736  *
24737  * cdef inline _p_msg_cco message_cco():             # <<<<<<<<<<<<<<
24738  *     cdef _p_msg_cco msg = <_p_msg_cco>_p_msg_cco.__new__(_p_msg_cco)
24739  *     return msg
24740  */
24741 
__pyx_f_6mpi4py_3MPI_message_cco(void)24742 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_f_6mpi4py_3MPI_message_cco(void) {
24743   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_msg = 0;
24744   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_r = NULL;
24745   __Pyx_RefNannyDeclarations
24746   PyObject *__pyx_t_1 = NULL;
24747   int __pyx_lineno = 0;
24748   const char *__pyx_filename = NULL;
24749   int __pyx_clineno = 0;
24750   __Pyx_RefNannySetupContext("message_cco");
24751 
24752   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":716
24753  *
24754  * cdef inline _p_msg_cco message_cco():
24755  *     cdef _p_msg_cco msg = <_p_msg_cco>_p_msg_cco.__new__(_p_msg_cco)             # <<<<<<<<<<<<<<
24756  *     return msg
24757  *
24758  */
24759   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_cco)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24760   __Pyx_GOTREF(__pyx_t_1);
24761   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1)));
24762   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
24763   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24764 
24765   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":717
24766  * cdef inline _p_msg_cco message_cco():
24767  *     cdef _p_msg_cco msg = <_p_msg_cco>_p_msg_cco.__new__(_p_msg_cco)
24768  *     return msg             # <<<<<<<<<<<<<<
24769  *
24770  * #------------------------------------------------------------------------------
24771  */
24772   __Pyx_XDECREF(((PyObject *)__pyx_r));
24773   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
24774   __pyx_r = __pyx_v_msg;
24775   goto __pyx_L0;
24776 
24777   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)Py_None); __Pyx_INCREF(Py_None);
24778   goto __pyx_L0;
24779   __pyx_L1_error:;
24780   __Pyx_XDECREF(__pyx_t_1);
24781   __Pyx_AddTraceback("mpi4py.MPI.message_cco", __pyx_clineno, __pyx_lineno, __pyx_filename);
24782   __pyx_r = 0;
24783   __pyx_L0:;
24784   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
24785   __Pyx_XGIVEREF((PyObject *)__pyx_r);
24786   __Pyx_RefNannyFinishContext();
24787   return __pyx_r;
24788 }
24789 
24790 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":735
24791  *     cdef object _target
24792  *
24793  *     def __cinit__(self):             # <<<<<<<<<<<<<<
24794  *         self.oaddr  = NULL
24795  *         self.ocount = 0
24796  */
24797 
24798 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_rma___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_10_p_msg_rma___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)24799 static int __pyx_pf_6mpi4py_3MPI_10_p_msg_rma___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24800   int __pyx_r;
24801   __Pyx_RefNannyDeclarations
24802   __Pyx_RefNannySetupContext("__cinit__");
24803   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
24804     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
24805   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
24806 
24807   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":736
24808  *
24809  *     def __cinit__(self):
24810  *         self.oaddr  = NULL             # <<<<<<<<<<<<<<
24811  *         self.ocount = 0
24812  *         self.otype  = MPI_DATATYPE_NULL
24813  */
24814   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->oaddr = NULL;
24815 
24816   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":737
24817  *     def __cinit__(self):
24818  *         self.oaddr  = NULL
24819  *         self.ocount = 0             # <<<<<<<<<<<<<<
24820  *         self.otype  = MPI_DATATYPE_NULL
24821  *         self.tdisp  = 0
24822  */
24823   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->ocount = 0;
24824 
24825   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":738
24826  *         self.oaddr  = NULL
24827  *         self.ocount = 0
24828  *         self.otype  = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
24829  *         self.tdisp  = 0
24830  *         self.tcount = 0
24831  */
24832   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->otype = MPI_DATATYPE_NULL;
24833 
24834   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":739
24835  *         self.ocount = 0
24836  *         self.otype  = MPI_DATATYPE_NULL
24837  *         self.tdisp  = 0             # <<<<<<<<<<<<<<
24838  *         self.tcount = 0
24839  *         self.ttype  = MPI_DATATYPE_NULL
24840  */
24841   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->tdisp = 0;
24842 
24843   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":740
24844  *         self.otype  = MPI_DATATYPE_NULL
24845  *         self.tdisp  = 0
24846  *         self.tcount = 0             # <<<<<<<<<<<<<<
24847  *         self.ttype  = MPI_DATATYPE_NULL
24848  *
24849  */
24850   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->tcount = 0;
24851 
24852   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":741
24853  *         self.tdisp  = 0
24854  *         self.tcount = 0
24855  *         self.ttype  = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
24856  *
24857  *     cdef int for_rma(self, int readonly,
24858  */
24859   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self)->ttype = MPI_DATATYPE_NULL;
24860 
24861   __pyx_r = 0;
24862   __Pyx_RefNannyFinishContext();
24863   return __pyx_r;
24864 }
24865 
24866 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":743
24867  *         self.ttype  = MPI_DATATYPE_NULL
24868  *
24869  *     cdef int for_rma(self, int readonly,             # <<<<<<<<<<<<<<
24870  *                      object origin, int rank, object target) except -1:
24871  *         # ORIGIN
24872  */
24873 
__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_rma(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma * __pyx_v_self,int __pyx_v_readonly,PyObject * __pyx_v_origin,int __pyx_v_rank,PyObject * __pyx_v_target)24874 static int __pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_rma(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_self, int __pyx_v_readonly, PyObject *__pyx_v_origin, int __pyx_v_rank, PyObject *__pyx_v_target) {
24875   int __pyx_r;
24876   __Pyx_RefNannyDeclarations
24877   PyObject *__pyx_t_1 = NULL;
24878   int __pyx_t_2;
24879   int __pyx_t_3;
24880   int __pyx_t_4;
24881   int __pyx_t_5;
24882   int __pyx_t_6;
24883   Py_ssize_t __pyx_t_7;
24884   int __pyx_t_8;
24885   PyObject *__pyx_t_9 = NULL;
24886   int __pyx_t_10;
24887   int __pyx_t_11;
24888   MPI_Aint __pyx_t_12;
24889   int __pyx_lineno = 0;
24890   const char *__pyx_filename = NULL;
24891   int __pyx_clineno = 0;
24892   __Pyx_RefNannySetupContext("for_rma");
24893 
24894   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":748
24895  *         self._origin = message_simple(
24896  *             origin, readonly, rank, 0,
24897  *             &self.oaddr,  &self.ocount,  &self.otype)             # <<<<<<<<<<<<<<
24898  *         if ((rank == MPI_PROC_NULL) and
24899  *             (origin is not None) and
24900  */
24901   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_origin, __pyx_v_readonly, __pyx_v_rank, 0, (&__pyx_v_self->oaddr), (&__pyx_v_self->ocount), (&__pyx_v_self->otype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24902   __Pyx_GOTREF(__pyx_t_1);
24903 
24904   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":746
24905  *                      object origin, int rank, object target) except -1:
24906  *         # ORIGIN
24907  *         self._origin = message_simple(             # <<<<<<<<<<<<<<
24908  *             origin, readonly, rank, 0,
24909  *             &self.oaddr,  &self.ocount,  &self.otype)
24910  */
24911   __Pyx_GIVEREF(__pyx_t_1);
24912   __Pyx_GOTREF(__pyx_v_self->_origin);
24913   __Pyx_DECREF(__pyx_v_self->_origin);
24914   __pyx_v_self->_origin = __pyx_t_1;
24915   __pyx_t_1 = 0;
24916 
24917   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":749
24918  *             origin, readonly, rank, 0,
24919  *             &self.oaddr,  &self.ocount,  &self.otype)
24920  *         if ((rank == MPI_PROC_NULL) and             # <<<<<<<<<<<<<<
24921  *             (origin is not None) and
24922  *             (is_list(origin) or is_tuple(origin)) and
24923  */
24924   __pyx_t_2 = (__pyx_v_rank == MPI_PROC_NULL);
24925   if (__pyx_t_2) {
24926 
24927     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":750
24928  *             &self.oaddr,  &self.ocount,  &self.otype)
24929  *         if ((rank == MPI_PROC_NULL) and
24930  *             (origin is not None) and             # <<<<<<<<<<<<<<
24931  *             (is_list(origin) or is_tuple(origin)) and
24932  *             (len(origin) > 0 and isinstance(origin[-1], Datatype))):
24933  */
24934     __pyx_t_3 = (__pyx_v_origin != Py_None);
24935     if (__pyx_t_3) {
24936 
24937       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":751
24938  *         if ((rank == MPI_PROC_NULL) and
24939  *             (origin is not None) and
24940  *             (is_list(origin) or is_tuple(origin)) and             # <<<<<<<<<<<<<<
24941  *             (len(origin) > 0 and isinstance(origin[-1], Datatype))):
24942  *             self.otype  = (<Datatype?>origin[-1]).ob_mpi
24943  */
24944       __pyx_t_4 = PyList_Check(__pyx_v_origin);
24945       if (!__pyx_t_4) {
24946         __pyx_t_5 = PyTuple_Check(__pyx_v_origin);
24947         __pyx_t_6 = __pyx_t_5;
24948       } else {
24949         __pyx_t_6 = __pyx_t_4;
24950       }
24951       if (__pyx_t_6) {
24952 
24953         /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":752
24954  *             (origin is not None) and
24955  *             (is_list(origin) or is_tuple(origin)) and
24956  *             (len(origin) > 0 and isinstance(origin[-1], Datatype))):             # <<<<<<<<<<<<<<
24957  *             self.otype  = (<Datatype?>origin[-1]).ob_mpi
24958  *             self._origin = origin
24959  */
24960         __pyx_t_7 = PyObject_Length(__pyx_v_origin); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24961         __pyx_t_8 = (__pyx_t_7 > 0);
24962         if (__pyx_t_8) {
24963           __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_origin, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24964           __Pyx_GOTREF(__pyx_t_1);
24965           __pyx_t_9 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
24966           __Pyx_INCREF(__pyx_t_9);
24967           __pyx_t_10 = __Pyx_TypeCheck(__pyx_t_1, __pyx_t_9);
24968           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24969           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24970           __pyx_t_11 = __pyx_t_10;
24971         } else {
24972           __pyx_t_11 = __pyx_t_8;
24973         }
24974         __pyx_t_8 = __pyx_t_11;
24975       } else {
24976         __pyx_t_8 = __pyx_t_6;
24977       }
24978       __pyx_t_6 = __pyx_t_8;
24979     } else {
24980       __pyx_t_6 = __pyx_t_3;
24981     }
24982     __pyx_t_3 = __pyx_t_6;
24983   } else {
24984     __pyx_t_3 = __pyx_t_2;
24985   }
24986   if (__pyx_t_3) {
24987 
24988     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":753
24989  *             (is_list(origin) or is_tuple(origin)) and
24990  *             (len(origin) > 0 and isinstance(origin[-1], Datatype))):
24991  *             self.otype  = (<Datatype?>origin[-1]).ob_mpi             # <<<<<<<<<<<<<<
24992  *             self._origin = origin
24993  *         # TARGET
24994  */
24995     __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_origin, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24996     __Pyx_GOTREF(__pyx_t_9);
24997     if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_6mpi4py_3MPI_Datatype)))) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
24998     __pyx_v_self->otype = ((struct PyMPIDatatypeObject *)__pyx_t_9)->ob_mpi;
24999     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25000 
25001     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":754
25002  *             (len(origin) > 0 and isinstance(origin[-1], Datatype))):
25003  *             self.otype  = (<Datatype?>origin[-1]).ob_mpi
25004  *             self._origin = origin             # <<<<<<<<<<<<<<
25005  *         # TARGET
25006  *         if target is None:
25007  */
25008     __Pyx_INCREF(__pyx_v_origin);
25009     __Pyx_GIVEREF(__pyx_v_origin);
25010     __Pyx_GOTREF(__pyx_v_self->_origin);
25011     __Pyx_DECREF(__pyx_v_self->_origin);
25012     __pyx_v_self->_origin = __pyx_v_origin;
25013     goto __pyx_L3;
25014   }
25015   __pyx_L3:;
25016 
25017   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":756
25018  *             self._origin = origin
25019  *         # TARGET
25020  *         if target is None:             # <<<<<<<<<<<<<<
25021  *             self.tdisp  = 0
25022  *             self.tcount = self.ocount
25023  */
25024   __pyx_t_3 = (__pyx_v_target == Py_None);
25025   if (__pyx_t_3) {
25026 
25027     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":757
25028  *         # TARGET
25029  *         if target is None:
25030  *             self.tdisp  = 0             # <<<<<<<<<<<<<<
25031  *             self.tcount = self.ocount
25032  *             self.ttype  = self.otype
25033  */
25034     __pyx_v_self->tdisp = 0;
25035 
25036     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":758
25037  *         if target is None:
25038  *             self.tdisp  = 0
25039  *             self.tcount = self.ocount             # <<<<<<<<<<<<<<
25040  *             self.ttype  = self.otype
25041  *         elif is_int(target):
25042  */
25043     __pyx_v_self->tcount = __pyx_v_self->ocount;
25044 
25045     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":759
25046  *             self.tdisp  = 0
25047  *             self.tcount = self.ocount
25048  *             self.ttype  = self.otype             # <<<<<<<<<<<<<<
25049  *         elif is_int(target):
25050  *             self.tdisp  = <MPI_Aint>target
25051  */
25052     __pyx_v_self->ttype = __pyx_v_self->otype;
25053     goto __pyx_L4;
25054   }
25055 
25056   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":760
25057  *             self.tcount = self.ocount
25058  *             self.ttype  = self.otype
25059  *         elif is_int(target):             # <<<<<<<<<<<<<<
25060  *             self.tdisp  = <MPI_Aint>target
25061  *             self.tcount = self.ocount
25062  */
25063   __pyx_t_4 = PyInt_Check(__pyx_v_target);
25064   if (__pyx_t_4) {
25065 
25066     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":761
25067  *             self.ttype  = self.otype
25068  *         elif is_int(target):
25069  *             self.tdisp  = <MPI_Aint>target             # <<<<<<<<<<<<<<
25070  *             self.tcount = self.ocount
25071  *             self.ttype  = self.otype
25072  */
25073     __pyx_t_12 = __Pyx_PyInt_from_py_MPI_Aint(__pyx_v_target); if (unlikely((__pyx_t_12 == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25074     __pyx_v_self->tdisp = ((MPI_Aint)__pyx_t_12);
25075 
25076     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":762
25077  *         elif is_int(target):
25078  *             self.tdisp  = <MPI_Aint>target
25079  *             self.tcount = self.ocount             # <<<<<<<<<<<<<<
25080  *             self.ttype  = self.otype
25081  *         elif is_list(target) or is_tuple(target):
25082  */
25083     __pyx_v_self->tcount = __pyx_v_self->ocount;
25084 
25085     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":763
25086  *             self.tdisp  = <MPI_Aint>target
25087  *             self.tcount = self.ocount
25088  *             self.ttype  = self.otype             # <<<<<<<<<<<<<<
25089  *         elif is_list(target) or is_tuple(target):
25090  *             if len(target) != 3:
25091  */
25092     __pyx_v_self->ttype = __pyx_v_self->otype;
25093     goto __pyx_L4;
25094   }
25095 
25096   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":764
25097  *             self.tcount = self.ocount
25098  *             self.ttype  = self.otype
25099  *         elif is_list(target) or is_tuple(target):             # <<<<<<<<<<<<<<
25100  *             if len(target) != 3:
25101  *                 raise ValueError("target: expecting 3 items")
25102  */
25103   __pyx_t_4 = PyList_Check(__pyx_v_target);
25104   if (!__pyx_t_4) {
25105     __pyx_t_5 = PyTuple_Check(__pyx_v_target);
25106     __pyx_t_3 = __pyx_t_5;
25107   } else {
25108     __pyx_t_3 = __pyx_t_4;
25109   }
25110   if (__pyx_t_3) {
25111 
25112     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":765
25113  *             self.ttype  = self.otype
25114  *         elif is_list(target) or is_tuple(target):
25115  *             if len(target) != 3:             # <<<<<<<<<<<<<<
25116  *                 raise ValueError("target: expecting 3 items")
25117  *             self.tdisp  = <MPI_Aint>target[0]
25118  */
25119     __pyx_t_7 = PyObject_Length(__pyx_v_target); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25120     __pyx_t_3 = (__pyx_t_7 != 3);
25121     if (__pyx_t_3) {
25122 
25123       /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":766
25124  *         elif is_list(target) or is_tuple(target):
25125  *             if len(target) != 3:
25126  *                 raise ValueError("target: expecting 3 items")             # <<<<<<<<<<<<<<
25127  *             self.tdisp  = <MPI_Aint>target[0]
25128  *             self.tcount = <int>target[1]
25129  */
25130       __pyx_t_9 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_47), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25131       __Pyx_GOTREF(__pyx_t_9);
25132       __Pyx_Raise(__pyx_t_9, 0, 0, 0);
25133       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25134       {__pyx_filename = __pyx_f[15]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25135       goto __pyx_L5;
25136     }
25137     __pyx_L5:;
25138 
25139     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":767
25140  *             if len(target) != 3:
25141  *                 raise ValueError("target: expecting 3 items")
25142  *             self.tdisp  = <MPI_Aint>target[0]             # <<<<<<<<<<<<<<
25143  *             self.tcount = <int>target[1]
25144  *             self.ttype  = (<Datatype?>target[2]).ob_mpi
25145  */
25146     __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_target, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25147     __Pyx_GOTREF(__pyx_t_9);
25148     __pyx_t_12 = __Pyx_PyInt_from_py_MPI_Aint(__pyx_t_9); if (unlikely((__pyx_t_12 == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25149     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25150     __pyx_v_self->tdisp = ((MPI_Aint)__pyx_t_12);
25151 
25152     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":768
25153  *                 raise ValueError("target: expecting 3 items")
25154  *             self.tdisp  = <MPI_Aint>target[0]
25155  *             self.tcount = <int>target[1]             # <<<<<<<<<<<<<<
25156  *             self.ttype  = (<Datatype?>target[2]).ob_mpi
25157  *         else:
25158  */
25159     __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_target, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25160     __Pyx_GOTREF(__pyx_t_9);
25161     __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25162     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25163     __pyx_v_self->tcount = ((int)__pyx_t_4);
25164 
25165     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":769
25166  *             self.tdisp  = <MPI_Aint>target[0]
25167  *             self.tcount = <int>target[1]
25168  *             self.ttype  = (<Datatype?>target[2]).ob_mpi             # <<<<<<<<<<<<<<
25169  *         else:
25170  *             raise ValueError("target: expecting integral or list/tuple")
25171  */
25172     __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_target, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25173     __Pyx_GOTREF(__pyx_t_9);
25174     if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_6mpi4py_3MPI_Datatype)))) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25175     __pyx_v_self->ttype = ((struct PyMPIDatatypeObject *)__pyx_t_9)->ob_mpi;
25176     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25177     goto __pyx_L4;
25178   }
25179   /*else*/ {
25180 
25181     /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":771
25182  *             self.ttype  = (<Datatype?>target[2]).ob_mpi
25183  *         else:
25184  *             raise ValueError("target: expecting integral or list/tuple")             # <<<<<<<<<<<<<<
25185  *         self._target = target
25186  *         return 0
25187  */
25188     __pyx_t_9 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_49), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25189     __Pyx_GOTREF(__pyx_t_9);
25190     __Pyx_Raise(__pyx_t_9, 0, 0, 0);
25191     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
25192     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25193   }
25194   __pyx_L4:;
25195 
25196   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":772
25197  *         else:
25198  *             raise ValueError("target: expecting integral or list/tuple")
25199  *         self._target = target             # <<<<<<<<<<<<<<
25200  *         return 0
25201  *
25202  */
25203   __Pyx_INCREF(__pyx_v_target);
25204   __Pyx_GIVEREF(__pyx_v_target);
25205   __Pyx_GOTREF(__pyx_v_self->_target);
25206   __Pyx_DECREF(__pyx_v_self->_target);
25207   __pyx_v_self->_target = __pyx_v_target;
25208 
25209   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":773
25210  *             raise ValueError("target: expecting integral or list/tuple")
25211  *         self._target = target
25212  *         return 0             # <<<<<<<<<<<<<<
25213  *
25214  *     cdef int for_put(self, object origin, int rank, object target) except -1:
25215  */
25216   __pyx_r = 0;
25217   goto __pyx_L0;
25218 
25219   __pyx_r = 0;
25220   goto __pyx_L0;
25221   __pyx_L1_error:;
25222   __Pyx_XDECREF(__pyx_t_1);
25223   __Pyx_XDECREF(__pyx_t_9);
25224   __Pyx_AddTraceback("mpi4py.MPI._p_msg_rma.for_rma", __pyx_clineno, __pyx_lineno, __pyx_filename);
25225   __pyx_r = -1;
25226   __pyx_L0:;
25227   __Pyx_RefNannyFinishContext();
25228   return __pyx_r;
25229 }
25230 
25231 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":775
25232  *         return 0
25233  *
25234  *     cdef int for_put(self, object origin, int rank, object target) except -1:             # <<<<<<<<<<<<<<
25235  *         self.for_rma(1, origin, rank, target)
25236  *         return 0
25237  */
25238 
__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_put(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma * __pyx_v_self,PyObject * __pyx_v_origin,int __pyx_v_rank,PyObject * __pyx_v_target)25239 static int __pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_put(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_self, PyObject *__pyx_v_origin, int __pyx_v_rank, PyObject *__pyx_v_target) {
25240   int __pyx_r;
25241   __Pyx_RefNannyDeclarations
25242   int __pyx_t_1;
25243   int __pyx_lineno = 0;
25244   const char *__pyx_filename = NULL;
25245   int __pyx_clineno = 0;
25246   __Pyx_RefNannySetupContext("for_put");
25247 
25248   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":776
25249  *
25250  *     cdef int for_put(self, object origin, int rank, object target) except -1:
25251  *         self.for_rma(1, origin, rank, target)             # <<<<<<<<<<<<<<
25252  *         return 0
25253  *
25254  */
25255   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self->__pyx_vtab)->for_rma(__pyx_v_self, 1, __pyx_v_origin, __pyx_v_rank, __pyx_v_target); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25256 
25257   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":777
25258  *     cdef int for_put(self, object origin, int rank, object target) except -1:
25259  *         self.for_rma(1, origin, rank, target)
25260  *         return 0             # <<<<<<<<<<<<<<
25261  *
25262  *     cdef int for_get(self, object origin, int rank, object target) except -1:
25263  */
25264   __pyx_r = 0;
25265   goto __pyx_L0;
25266 
25267   __pyx_r = 0;
25268   goto __pyx_L0;
25269   __pyx_L1_error:;
25270   __Pyx_AddTraceback("mpi4py.MPI._p_msg_rma.for_put", __pyx_clineno, __pyx_lineno, __pyx_filename);
25271   __pyx_r = -1;
25272   __pyx_L0:;
25273   __Pyx_RefNannyFinishContext();
25274   return __pyx_r;
25275 }
25276 
25277 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":779
25278  *         return 0
25279  *
25280  *     cdef int for_get(self, object origin, int rank, object target) except -1:             # <<<<<<<<<<<<<<
25281  *         self.for_rma(0, origin, rank, target)
25282  *         return 0
25283  */
25284 
__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_get(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma * __pyx_v_self,PyObject * __pyx_v_origin,int __pyx_v_rank,PyObject * __pyx_v_target)25285 static int __pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_get(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_self, PyObject *__pyx_v_origin, int __pyx_v_rank, PyObject *__pyx_v_target) {
25286   int __pyx_r;
25287   __Pyx_RefNannyDeclarations
25288   int __pyx_t_1;
25289   int __pyx_lineno = 0;
25290   const char *__pyx_filename = NULL;
25291   int __pyx_clineno = 0;
25292   __Pyx_RefNannySetupContext("for_get");
25293 
25294   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":780
25295  *
25296  *     cdef int for_get(self, object origin, int rank, object target) except -1:
25297  *         self.for_rma(0, origin, rank, target)             # <<<<<<<<<<<<<<
25298  *         return 0
25299  *
25300  */
25301   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self->__pyx_vtab)->for_rma(__pyx_v_self, 0, __pyx_v_origin, __pyx_v_rank, __pyx_v_target); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25302 
25303   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":781
25304  *     cdef int for_get(self, object origin, int rank, object target) except -1:
25305  *         self.for_rma(0, origin, rank, target)
25306  *         return 0             # <<<<<<<<<<<<<<
25307  *
25308  *     cdef int for_acc(self, object origin, int rank, object target) except -1:
25309  */
25310   __pyx_r = 0;
25311   goto __pyx_L0;
25312 
25313   __pyx_r = 0;
25314   goto __pyx_L0;
25315   __pyx_L1_error:;
25316   __Pyx_AddTraceback("mpi4py.MPI._p_msg_rma.for_get", __pyx_clineno, __pyx_lineno, __pyx_filename);
25317   __pyx_r = -1;
25318   __pyx_L0:;
25319   __Pyx_RefNannyFinishContext();
25320   return __pyx_r;
25321 }
25322 
25323 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":783
25324  *         return 0
25325  *
25326  *     cdef int for_acc(self, object origin, int rank, object target) except -1:             # <<<<<<<<<<<<<<
25327  *         self.for_rma(1, origin, rank, target)
25328  *         return 0
25329  */
25330 
__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_acc(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma * __pyx_v_self,PyObject * __pyx_v_origin,int __pyx_v_rank,PyObject * __pyx_v_target)25331 static int __pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_acc(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_self, PyObject *__pyx_v_origin, int __pyx_v_rank, PyObject *__pyx_v_target) {
25332   int __pyx_r;
25333   __Pyx_RefNannyDeclarations
25334   int __pyx_t_1;
25335   int __pyx_lineno = 0;
25336   const char *__pyx_filename = NULL;
25337   int __pyx_clineno = 0;
25338   __Pyx_RefNannySetupContext("for_acc");
25339 
25340   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":784
25341  *
25342  *     cdef int for_acc(self, object origin, int rank, object target) except -1:
25343  *         self.for_rma(1, origin, rank, target)             # <<<<<<<<<<<<<<
25344  *         return 0
25345  *
25346  */
25347   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_self->__pyx_vtab)->for_rma(__pyx_v_self, 1, __pyx_v_origin, __pyx_v_rank, __pyx_v_target); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25348 
25349   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":785
25350  *     cdef int for_acc(self, object origin, int rank, object target) except -1:
25351  *         self.for_rma(1, origin, rank, target)
25352  *         return 0             # <<<<<<<<<<<<<<
25353  *
25354  * cdef inline _p_msg_rma message_rma():
25355  */
25356   __pyx_r = 0;
25357   goto __pyx_L0;
25358 
25359   __pyx_r = 0;
25360   goto __pyx_L0;
25361   __pyx_L1_error:;
25362   __Pyx_AddTraceback("mpi4py.MPI._p_msg_rma.for_acc", __pyx_clineno, __pyx_lineno, __pyx_filename);
25363   __pyx_r = -1;
25364   __pyx_L0:;
25365   __Pyx_RefNannyFinishContext();
25366   return __pyx_r;
25367 }
25368 
25369 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":787
25370  *         return 0
25371  *
25372  * cdef inline _p_msg_rma message_rma():             # <<<<<<<<<<<<<<
25373  *     cdef _p_msg_rma msg = <_p_msg_rma>_p_msg_rma.__new__(_p_msg_rma)
25374  *     return msg
25375  */
25376 
__pyx_f_6mpi4py_3MPI_message_rma(void)25377 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_f_6mpi4py_3MPI_message_rma(void) {
25378   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_msg = 0;
25379   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_r = NULL;
25380   __Pyx_RefNannyDeclarations
25381   PyObject *__pyx_t_1 = NULL;
25382   int __pyx_lineno = 0;
25383   const char *__pyx_filename = NULL;
25384   int __pyx_clineno = 0;
25385   __Pyx_RefNannySetupContext("message_rma");
25386 
25387   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":788
25388  *
25389  * cdef inline _p_msg_rma message_rma():
25390  *     cdef _p_msg_rma msg = <_p_msg_rma>_p_msg_rma.__new__(_p_msg_rma)             # <<<<<<<<<<<<<<
25391  *     return msg
25392  *
25393  */
25394   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_rma)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25395   __Pyx_GOTREF(__pyx_t_1);
25396   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_t_1)));
25397   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_t_1);
25398   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25399 
25400   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":789
25401  * cdef inline _p_msg_rma message_rma():
25402  *     cdef _p_msg_rma msg = <_p_msg_rma>_p_msg_rma.__new__(_p_msg_rma)
25403  *     return msg             # <<<<<<<<<<<<<<
25404  *
25405  * #------------------------------------------------------------------------------
25406  */
25407   __Pyx_XDECREF(((PyObject *)__pyx_r));
25408   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
25409   __pyx_r = __pyx_v_msg;
25410   goto __pyx_L0;
25411 
25412   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)Py_None); __Pyx_INCREF(Py_None);
25413   goto __pyx_L0;
25414   __pyx_L1_error:;
25415   __Pyx_XDECREF(__pyx_t_1);
25416   __Pyx_AddTraceback("mpi4py.MPI.message_rma", __pyx_clineno, __pyx_lineno, __pyx_filename);
25417   __pyx_r = 0;
25418   __pyx_L0:;
25419   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
25420   __Pyx_XGIVEREF((PyObject *)__pyx_r);
25421   __Pyx_RefNannyFinishContext();
25422   return __pyx_r;
25423 }
25424 
25425 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":802
25426  *     cdef object _msg
25427  *
25428  *     def __cinit__(self):             # <<<<<<<<<<<<<<
25429  *         self.buf   = NULL
25430  *         self.count = 0
25431  */
25432 
25433 static int __pyx_pf_6mpi4py_3MPI_9_p_msg_io___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_msg_io___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)25434 static int __pyx_pf_6mpi4py_3MPI_9_p_msg_io___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25435   int __pyx_r;
25436   __Pyx_RefNannyDeclarations
25437   __Pyx_RefNannySetupContext("__cinit__");
25438   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
25439     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
25440   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
25441 
25442   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":803
25443  *
25444  *     def __cinit__(self):
25445  *         self.buf   = NULL             # <<<<<<<<<<<<<<
25446  *         self.count = 0
25447  *         self.dtype = MPI_DATATYPE_NULL
25448  */
25449   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_v_self)->buf = NULL;
25450 
25451   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":804
25452  *     def __cinit__(self):
25453  *         self.buf   = NULL
25454  *         self.count = 0             # <<<<<<<<<<<<<<
25455  *         self.dtype = MPI_DATATYPE_NULL
25456  *
25457  */
25458   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_v_self)->count = 0;
25459 
25460   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":805
25461  *         self.buf   = NULL
25462  *         self.count = 0
25463  *         self.dtype = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
25464  *
25465  *     cdef int for_read(self, object msg) except -1:
25466  */
25467   ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_v_self)->dtype = MPI_DATATYPE_NULL;
25468 
25469   __pyx_r = 0;
25470   __Pyx_RefNannyFinishContext();
25471   return __pyx_r;
25472 }
25473 
25474 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":807
25475  *         self.dtype = MPI_DATATYPE_NULL
25476  *
25477  *     cdef int for_read(self, object msg) except -1:             # <<<<<<<<<<<<<<
25478  *         self._msg = message_simple(msg, 0, # writable
25479  *                                    0, 0,
25480  */
25481 
__pyx_f_6mpi4py_3MPI_9_p_msg_io_for_read(struct __pyx_obj_6mpi4py_3MPI__p_msg_io * __pyx_v_self,PyObject * __pyx_v_msg)25482 static int __pyx_f_6mpi4py_3MPI_9_p_msg_io_for_read(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_self, PyObject *__pyx_v_msg) {
25483   int __pyx_r;
25484   __Pyx_RefNannyDeclarations
25485   PyObject *__pyx_t_1 = NULL;
25486   int __pyx_lineno = 0;
25487   const char *__pyx_filename = NULL;
25488   int __pyx_clineno = 0;
25489   __Pyx_RefNannySetupContext("for_read");
25490 
25491   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":812
25492  *                                    &self.buf,
25493  *                                    &self.count,
25494  *                                    &self.dtype)             # <<<<<<<<<<<<<<
25495  *         return 0
25496  *
25497  */
25498   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_msg, 0, 0, 0, (&__pyx_v_self->buf), (&__pyx_v_self->count), (&__pyx_v_self->dtype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25499   __Pyx_GOTREF(__pyx_t_1);
25500 
25501   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":808
25502  *
25503  *     cdef int for_read(self, object msg) except -1:
25504  *         self._msg = message_simple(msg, 0, # writable             # <<<<<<<<<<<<<<
25505  *                                    0, 0,
25506  *                                    &self.buf,
25507  */
25508   __Pyx_GIVEREF(__pyx_t_1);
25509   __Pyx_GOTREF(__pyx_v_self->_msg);
25510   __Pyx_DECREF(__pyx_v_self->_msg);
25511   __pyx_v_self->_msg = __pyx_t_1;
25512   __pyx_t_1 = 0;
25513 
25514   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":813
25515  *                                    &self.count,
25516  *                                    &self.dtype)
25517  *         return 0             # <<<<<<<<<<<<<<
25518  *
25519  *     cdef int for_write(self, object msg) except -1:
25520  */
25521   __pyx_r = 0;
25522   goto __pyx_L0;
25523 
25524   __pyx_r = 0;
25525   goto __pyx_L0;
25526   __pyx_L1_error:;
25527   __Pyx_XDECREF(__pyx_t_1);
25528   __Pyx_AddTraceback("mpi4py.MPI._p_msg_io.for_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
25529   __pyx_r = -1;
25530   __pyx_L0:;
25531   __Pyx_RefNannyFinishContext();
25532   return __pyx_r;
25533 }
25534 
25535 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":815
25536  *         return 0
25537  *
25538  *     cdef int for_write(self, object msg) except -1:             # <<<<<<<<<<<<<<
25539  *         self._msg = message_simple(msg, 1, # readonly
25540  *                                    0, 0,
25541  */
25542 
__pyx_f_6mpi4py_3MPI_9_p_msg_io_for_write(struct __pyx_obj_6mpi4py_3MPI__p_msg_io * __pyx_v_self,PyObject * __pyx_v_msg)25543 static int __pyx_f_6mpi4py_3MPI_9_p_msg_io_for_write(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_self, PyObject *__pyx_v_msg) {
25544   int __pyx_r;
25545   __Pyx_RefNannyDeclarations
25546   PyObject *__pyx_t_1 = NULL;
25547   int __pyx_lineno = 0;
25548   const char *__pyx_filename = NULL;
25549   int __pyx_clineno = 0;
25550   __Pyx_RefNannySetupContext("for_write");
25551 
25552   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":820
25553  *                                    &self.buf,
25554  *                                    &self.count,
25555  *                                    &self.dtype)             # <<<<<<<<<<<<<<
25556  *         return 0
25557  *
25558  */
25559   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_simple(__pyx_v_msg, 1, 0, 0, (&__pyx_v_self->buf), (&__pyx_v_self->count), (&__pyx_v_self->dtype))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25560   __Pyx_GOTREF(__pyx_t_1);
25561 
25562   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":816
25563  *
25564  *     cdef int for_write(self, object msg) except -1:
25565  *         self._msg = message_simple(msg, 1, # readonly             # <<<<<<<<<<<<<<
25566  *                                    0, 0,
25567  *                                    &self.buf,
25568  */
25569   __Pyx_GIVEREF(__pyx_t_1);
25570   __Pyx_GOTREF(__pyx_v_self->_msg);
25571   __Pyx_DECREF(__pyx_v_self->_msg);
25572   __pyx_v_self->_msg = __pyx_t_1;
25573   __pyx_t_1 = 0;
25574 
25575   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":821
25576  *                                    &self.count,
25577  *                                    &self.dtype)
25578  *         return 0             # <<<<<<<<<<<<<<
25579  *
25580  * cdef inline _p_msg_io message_io_read(object buf):
25581  */
25582   __pyx_r = 0;
25583   goto __pyx_L0;
25584 
25585   __pyx_r = 0;
25586   goto __pyx_L0;
25587   __pyx_L1_error:;
25588   __Pyx_XDECREF(__pyx_t_1);
25589   __Pyx_AddTraceback("mpi4py.MPI._p_msg_io.for_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
25590   __pyx_r = -1;
25591   __pyx_L0:;
25592   __Pyx_RefNannyFinishContext();
25593   return __pyx_r;
25594 }
25595 
25596 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":823
25597  *         return 0
25598  *
25599  * cdef inline _p_msg_io message_io_read(object buf):             # <<<<<<<<<<<<<<
25600  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25601  *     msg.for_read(buf)
25602  */
25603 
__pyx_f_6mpi4py_3MPI_message_io_read(PyObject * __pyx_v_buf)25604 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_f_6mpi4py_3MPI_message_io_read(PyObject *__pyx_v_buf) {
25605   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_msg = 0;
25606   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_r = NULL;
25607   __Pyx_RefNannyDeclarations
25608   PyObject *__pyx_t_1 = NULL;
25609   int __pyx_t_2;
25610   int __pyx_lineno = 0;
25611   const char *__pyx_filename = NULL;
25612   int __pyx_clineno = 0;
25613   __Pyx_RefNannySetupContext("message_io_read");
25614 
25615   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":824
25616  *
25617  * cdef inline _p_msg_io message_io_read(object buf):
25618  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)             # <<<<<<<<<<<<<<
25619  *     msg.for_read(buf)
25620  *     return msg
25621  */
25622   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_io)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25623   __Pyx_GOTREF(__pyx_t_1);
25624   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1)));
25625   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
25626   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25627 
25628   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":825
25629  * cdef inline _p_msg_io message_io_read(object buf):
25630  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25631  *     msg.for_read(buf)             # <<<<<<<<<<<<<<
25632  *     return msg
25633  *
25634  */
25635   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io *)__pyx_v_msg->__pyx_vtab)->for_read(__pyx_v_msg, __pyx_v_buf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25636 
25637   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":826
25638  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25639  *     msg.for_read(buf)
25640  *     return msg             # <<<<<<<<<<<<<<
25641  *
25642  * cdef inline _p_msg_io message_io_write(object buf):
25643  */
25644   __Pyx_XDECREF(((PyObject *)__pyx_r));
25645   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
25646   __pyx_r = __pyx_v_msg;
25647   goto __pyx_L0;
25648 
25649   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)Py_None); __Pyx_INCREF(Py_None);
25650   goto __pyx_L0;
25651   __pyx_L1_error:;
25652   __Pyx_XDECREF(__pyx_t_1);
25653   __Pyx_AddTraceback("mpi4py.MPI.message_io_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
25654   __pyx_r = 0;
25655   __pyx_L0:;
25656   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
25657   __Pyx_XGIVEREF((PyObject *)__pyx_r);
25658   __Pyx_RefNannyFinishContext();
25659   return __pyx_r;
25660 }
25661 
25662 /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":828
25663  *     return msg
25664  *
25665  * cdef inline _p_msg_io message_io_write(object buf):             # <<<<<<<<<<<<<<
25666  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25667  *     msg.for_write(buf)
25668  */
25669 
__pyx_f_6mpi4py_3MPI_message_io_write(PyObject * __pyx_v_buf)25670 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_f_6mpi4py_3MPI_message_io_write(PyObject *__pyx_v_buf) {
25671   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_msg = 0;
25672   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_r = NULL;
25673   __Pyx_RefNannyDeclarations
25674   PyObject *__pyx_t_1 = NULL;
25675   int __pyx_t_2;
25676   int __pyx_lineno = 0;
25677   const char *__pyx_filename = NULL;
25678   int __pyx_clineno = 0;
25679   __Pyx_RefNannySetupContext("message_io_write");
25680 
25681   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":829
25682  *
25683  * cdef inline _p_msg_io message_io_write(object buf):
25684  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)             # <<<<<<<<<<<<<<
25685  *     msg.for_write(buf)
25686  *     return msg
25687  */
25688   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_msg_io)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25689   __Pyx_GOTREF(__pyx_t_1);
25690   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1)));
25691   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
25692   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25693 
25694   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":830
25695  * cdef inline _p_msg_io message_io_write(object buf):
25696  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25697  *     msg.for_write(buf)             # <<<<<<<<<<<<<<
25698  *     return msg
25699  *
25700  */
25701   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io *)__pyx_v_msg->__pyx_vtab)->for_write(__pyx_v_msg, __pyx_v_buf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
25702 
25703   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":831
25704  *     cdef _p_msg_io msg = <_p_msg_io>_p_msg_io.__new__(_p_msg_io)
25705  *     msg.for_write(buf)
25706  *     return msg             # <<<<<<<<<<<<<<
25707  *
25708  * #------------------------------------------------------------------------------
25709  */
25710   __Pyx_XDECREF(((PyObject *)__pyx_r));
25711   __Pyx_INCREF(((PyObject *)__pyx_v_msg));
25712   __pyx_r = __pyx_v_msg;
25713   goto __pyx_L0;
25714 
25715   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)Py_None); __Pyx_INCREF(Py_None);
25716   goto __pyx_L0;
25717   __pyx_L1_error:;
25718   __Pyx_XDECREF(__pyx_t_1);
25719   __Pyx_AddTraceback("mpi4py.MPI.message_io_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
25720   __pyx_r = 0;
25721   __pyx_L0:;
25722   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
25723   __Pyx_XGIVEREF((PyObject *)__pyx_r);
25724   __Pyx_RefNannyFinishContext();
25725   return __pyx_r;
25726 }
25727 
25728 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":39
25729  *     cdef object ob_PROTOCOL
25730  *
25731  *     def __cinit__(self):             # <<<<<<<<<<<<<<
25732  *         self.ob_dumps = None
25733  *         self.ob_loads = None
25734  */
25735 
25736 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)25737 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25738   int __pyx_r;
25739   __Pyx_RefNannyDeclarations
25740   __Pyx_RefNannySetupContext("__cinit__");
25741   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
25742     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
25743   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
25744 
25745   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":40
25746  *
25747  *     def __cinit__(self):
25748  *         self.ob_dumps = None             # <<<<<<<<<<<<<<
25749  *         self.ob_loads = None
25750  *         self.ob_PROTOCOL = PyPickle_PROTOCOL
25751  */
25752   __Pyx_INCREF(Py_None);
25753   __Pyx_GIVEREF(Py_None);
25754   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25755   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25756   ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps = Py_None;
25757 
25758   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":41
25759  *     def __cinit__(self):
25760  *         self.ob_dumps = None
25761  *         self.ob_loads = None             # <<<<<<<<<<<<<<
25762  *         self.ob_PROTOCOL = PyPickle_PROTOCOL
25763  *
25764  */
25765   __Pyx_INCREF(Py_None);
25766   __Pyx_GIVEREF(Py_None);
25767   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
25768   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
25769   ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads = Py_None;
25770 
25771   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":42
25772  *         self.ob_dumps = None
25773  *         self.ob_loads = None
25774  *         self.ob_PROTOCOL = PyPickle_PROTOCOL             # <<<<<<<<<<<<<<
25775  *
25776  *     property dumps:
25777  */
25778   __Pyx_INCREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
25779   __Pyx_GIVEREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
25780   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL);
25781   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL);
25782   ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL = __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL;
25783 
25784   __pyx_r = 0;
25785   __Pyx_RefNannyFinishContext();
25786   return __pyx_r;
25787 }
25788 
25789 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":45
25790  *
25791  *     property dumps:
25792  *         def __get__(self):             # <<<<<<<<<<<<<<
25793  *             if self.ob_dumps is None:
25794  *                 return PyPickle_dumps
25795  */
25796 
25797 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps___get__(PyObject * __pyx_v_self)25798 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps___get__(PyObject *__pyx_v_self) {
25799   PyObject *__pyx_r = NULL;
25800   __Pyx_RefNannyDeclarations
25801   int __pyx_t_1;
25802   __Pyx_RefNannySetupContext("__get__");
25803 
25804   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":46
25805  *     property dumps:
25806  *         def __get__(self):
25807  *             if self.ob_dumps is None:             # <<<<<<<<<<<<<<
25808  *                 return PyPickle_dumps
25809  *             else:
25810  */
25811   __pyx_t_1 = (((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps == Py_None);
25812   if (__pyx_t_1) {
25813 
25814     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":47
25815  *         def __get__(self):
25816  *             if self.ob_dumps is None:
25817  *                 return PyPickle_dumps             # <<<<<<<<<<<<<<
25818  *             else:
25819  *                 return self.ob_dumps
25820  */
25821     __Pyx_XDECREF(__pyx_r);
25822     __Pyx_INCREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
25823     __pyx_r = __pyx_v_6mpi4py_3MPI_PyPickle_dumps;
25824     goto __pyx_L0;
25825     goto __pyx_L5;
25826   }
25827   /*else*/ {
25828 
25829     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":49
25830  *                 return PyPickle_dumps
25831  *             else:
25832  *                 return self.ob_dumps             # <<<<<<<<<<<<<<
25833  *         def __set__(self, dumps):
25834  *             if dumps is PyPickle_dumps:
25835  */
25836     __Pyx_XDECREF(__pyx_r);
25837     __Pyx_INCREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25838     __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps;
25839     goto __pyx_L0;
25840   }
25841   __pyx_L5:;
25842 
25843   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25844   __pyx_L0:;
25845   __Pyx_XGIVEREF(__pyx_r);
25846   __Pyx_RefNannyFinishContext();
25847   return __pyx_r;
25848 }
25849 
25850 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":50
25851  *             else:
25852  *                 return self.ob_dumps
25853  *         def __set__(self, dumps):             # <<<<<<<<<<<<<<
25854  *             if dumps is PyPickle_dumps:
25855  *                 self.ob_dumps = None
25856  */
25857 
25858 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dumps); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_dumps)25859 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dumps) {
25860   int __pyx_r;
25861   __Pyx_RefNannyDeclarations
25862   int __pyx_t_1;
25863   __Pyx_RefNannySetupContext("__set__");
25864 
25865   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":51
25866  *                 return self.ob_dumps
25867  *         def __set__(self, dumps):
25868  *             if dumps is PyPickle_dumps:             # <<<<<<<<<<<<<<
25869  *                 self.ob_dumps = None
25870  *             else:
25871  */
25872   __pyx_t_1 = (__pyx_v_dumps == __pyx_v_6mpi4py_3MPI_PyPickle_dumps);
25873   if (__pyx_t_1) {
25874 
25875     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":52
25876  *         def __set__(self, dumps):
25877  *             if dumps is PyPickle_dumps:
25878  *                 self.ob_dumps = None             # <<<<<<<<<<<<<<
25879  *             else:
25880  *                 self.ob_dumps = dumps
25881  */
25882     __Pyx_INCREF(Py_None);
25883     __Pyx_GIVEREF(Py_None);
25884     __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25885     __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25886     ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps = Py_None;
25887     goto __pyx_L5;
25888   }
25889   /*else*/ {
25890 
25891     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":54
25892  *                 self.ob_dumps = None
25893  *             else:
25894  *                 self.ob_dumps = dumps             # <<<<<<<<<<<<<<
25895  *
25896  *     property loads:
25897  */
25898     __Pyx_INCREF(__pyx_v_dumps);
25899     __Pyx_GIVEREF(__pyx_v_dumps);
25900     __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25901     __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps);
25902     ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_dumps = __pyx_v_dumps;
25903   }
25904   __pyx_L5:;
25905 
25906   __pyx_r = 0;
25907   __Pyx_RefNannyFinishContext();
25908   return __pyx_r;
25909 }
25910 
25911 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":57
25912  *
25913  *     property loads:
25914  *         def __get__(self):             # <<<<<<<<<<<<<<
25915  *             if self.ob_loads is None:
25916  *                 return PyPickle_loads
25917  */
25918 
25919 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads___get__(PyObject * __pyx_v_self)25920 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads___get__(PyObject *__pyx_v_self) {
25921   PyObject *__pyx_r = NULL;
25922   __Pyx_RefNannyDeclarations
25923   int __pyx_t_1;
25924   __Pyx_RefNannySetupContext("__get__");
25925 
25926   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":58
25927  *     property loads:
25928  *         def __get__(self):
25929  *             if self.ob_loads is None:             # <<<<<<<<<<<<<<
25930  *                 return PyPickle_loads
25931  *             else:
25932  */
25933   __pyx_t_1 = (((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads == Py_None);
25934   if (__pyx_t_1) {
25935 
25936     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":59
25937  *         def __get__(self):
25938  *             if self.ob_loads is None:
25939  *                 return PyPickle_loads             # <<<<<<<<<<<<<<
25940  *             else:
25941  *                 return self.ob_loads
25942  */
25943     __Pyx_XDECREF(__pyx_r);
25944     __Pyx_INCREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
25945     __pyx_r = __pyx_v_6mpi4py_3MPI_PyPickle_loads;
25946     goto __pyx_L0;
25947     goto __pyx_L5;
25948   }
25949   /*else*/ {
25950 
25951     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":61
25952  *                 return PyPickle_loads
25953  *             else:
25954  *                 return self.ob_loads             # <<<<<<<<<<<<<<
25955  *         def __set__(self, loads):
25956  *             if loads is PyPickle_loads:
25957  */
25958     __Pyx_XDECREF(__pyx_r);
25959     __Pyx_INCREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
25960     __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads;
25961     goto __pyx_L0;
25962   }
25963   __pyx_L5:;
25964 
25965   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25966   __pyx_L0:;
25967   __Pyx_XGIVEREF(__pyx_r);
25968   __Pyx_RefNannyFinishContext();
25969   return __pyx_r;
25970 }
25971 
25972 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":62
25973  *             else:
25974  *                 return self.ob_loads
25975  *         def __set__(self, loads):             # <<<<<<<<<<<<<<
25976  *             if loads is PyPickle_loads:
25977  *                 self.ob_loads = None
25978  */
25979 
25980 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_loads); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_loads)25981 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_loads) {
25982   int __pyx_r;
25983   __Pyx_RefNannyDeclarations
25984   int __pyx_t_1;
25985   __Pyx_RefNannySetupContext("__set__");
25986 
25987   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":63
25988  *                 return self.ob_loads
25989  *         def __set__(self, loads):
25990  *             if loads is PyPickle_loads:             # <<<<<<<<<<<<<<
25991  *                 self.ob_loads = None
25992  *             else:
25993  */
25994   __pyx_t_1 = (__pyx_v_loads == __pyx_v_6mpi4py_3MPI_PyPickle_loads);
25995   if (__pyx_t_1) {
25996 
25997     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":64
25998  *         def __set__(self, loads):
25999  *             if loads is PyPickle_loads:
26000  *                 self.ob_loads = None             # <<<<<<<<<<<<<<
26001  *             else:
26002  *                 self.ob_loads = loads
26003  */
26004     __Pyx_INCREF(Py_None);
26005     __Pyx_GIVEREF(Py_None);
26006     __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
26007     __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
26008     ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads = Py_None;
26009     goto __pyx_L5;
26010   }
26011   /*else*/ {
26012 
26013     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":66
26014  *                 self.ob_loads = None
26015  *             else:
26016  *                 self.ob_loads = loads             # <<<<<<<<<<<<<<
26017  *
26018  *     property PROTOCOL:
26019  */
26020     __Pyx_INCREF(__pyx_v_loads);
26021     __Pyx_GIVEREF(__pyx_v_loads);
26022     __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
26023     __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads);
26024     ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_loads = __pyx_v_loads;
26025   }
26026   __pyx_L5:;
26027 
26028   __pyx_r = 0;
26029   __Pyx_RefNannyFinishContext();
26030   return __pyx_r;
26031 }
26032 
26033 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":69
26034  *
26035  *     property PROTOCOL:
26036  *         def __get__(self):             # <<<<<<<<<<<<<<
26037  *             return self.ob_PROTOCOL
26038  *         def __set__(self, PROTOCOL):
26039  */
26040 
26041 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL___get__(PyObject * __pyx_v_self)26042 static PyObject *__pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL___get__(PyObject *__pyx_v_self) {
26043   PyObject *__pyx_r = NULL;
26044   __Pyx_RefNannyDeclarations
26045   __Pyx_RefNannySetupContext("__get__");
26046 
26047   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":70
26048  *     property PROTOCOL:
26049  *         def __get__(self):
26050  *             return self.ob_PROTOCOL             # <<<<<<<<<<<<<<
26051  *         def __set__(self, PROTOCOL):
26052  *             self.ob_PROTOCOL = PROTOCOL
26053  */
26054   __Pyx_XDECREF(__pyx_r);
26055   __Pyx_INCREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL);
26056   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL;
26057   goto __pyx_L0;
26058 
26059   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26060   __pyx_L0:;
26061   __Pyx_XGIVEREF(__pyx_r);
26062   __Pyx_RefNannyFinishContext();
26063   return __pyx_r;
26064 }
26065 
26066 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":71
26067  *         def __get__(self):
26068  *             return self.ob_PROTOCOL
26069  *         def __set__(self, PROTOCOL):             # <<<<<<<<<<<<<<
26070  *             self.ob_PROTOCOL = PROTOCOL
26071  *
26072  */
26073 
26074 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_PROTOCOL); /*proto*/
__pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_PROTOCOL)26075 static int __pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_PROTOCOL) {
26076   int __pyx_r;
26077   __Pyx_RefNannyDeclarations
26078   __Pyx_RefNannySetupContext("__set__");
26079 
26080   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":72
26081  *             return self.ob_PROTOCOL
26082  *         def __set__(self, PROTOCOL):
26083  *             self.ob_PROTOCOL = PROTOCOL             # <<<<<<<<<<<<<<
26084  *
26085  *     cdef object dump(self, object obj, void **p, int *n):
26086  */
26087   __Pyx_INCREF(__pyx_v_PROTOCOL);
26088   __Pyx_GIVEREF(__pyx_v_PROTOCOL);
26089   __Pyx_GOTREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL);
26090   __Pyx_DECREF(((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL);
26091   ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_v_self)->ob_PROTOCOL = __pyx_v_PROTOCOL;
26092 
26093   __pyx_r = 0;
26094   __Pyx_RefNannyFinishContext();
26095   return __pyx_r;
26096 }
26097 
26098 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":74
26099  *             self.ob_PROTOCOL = PROTOCOL
26100  *
26101  *     cdef object dump(self, object obj, void **p, int *n):             # <<<<<<<<<<<<<<
26102  *         if obj is None:
26103  *             p[0] = NULL
26104  */
26105 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_dump(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,PyObject * __pyx_v_obj,void ** __pyx_v_p,int * __pyx_v_n)26106 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_dump(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, PyObject *__pyx_v_obj, void **__pyx_v_p, int *__pyx_v_n) {
26107   PyObject *__pyx_v_buf = 0;
26108   PyObject *__pyx_r = NULL;
26109   __Pyx_RefNannyDeclarations
26110   int __pyx_t_1;
26111   PyObject *__pyx_t_2 = NULL;
26112   PyObject *__pyx_t_3 = NULL;
26113   char *__pyx_t_4;
26114   Py_ssize_t __pyx_t_5;
26115   int __pyx_lineno = 0;
26116   const char *__pyx_filename = NULL;
26117   int __pyx_clineno = 0;
26118   __Pyx_RefNannySetupContext("dump");
26119 
26120   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":75
26121  *
26122  *     cdef object dump(self, object obj, void **p, int *n):
26123  *         if obj is None:             # <<<<<<<<<<<<<<
26124  *             p[0] = NULL
26125  *             n[0] = 0
26126  */
26127   __pyx_t_1 = (__pyx_v_obj == Py_None);
26128   if (__pyx_t_1) {
26129 
26130     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":76
26131  *     cdef object dump(self, object obj, void **p, int *n):
26132  *         if obj is None:
26133  *             p[0] = NULL             # <<<<<<<<<<<<<<
26134  *             n[0] = 0
26135  *             return None
26136  */
26137     (__pyx_v_p[0]) = NULL;
26138 
26139     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":77
26140  *         if obj is None:
26141  *             p[0] = NULL
26142  *             n[0] = 0             # <<<<<<<<<<<<<<
26143  *             return None
26144  *         cdef object buf
26145  */
26146     (__pyx_v_n[0]) = 0;
26147 
26148     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":78
26149  *             p[0] = NULL
26150  *             n[0] = 0
26151  *             return None             # <<<<<<<<<<<<<<
26152  *         cdef object buf
26153  *         if self.ob_dumps is None:
26154  */
26155     __Pyx_XDECREF(__pyx_r);
26156     __Pyx_INCREF(Py_None);
26157     __pyx_r = Py_None;
26158     goto __pyx_L0;
26159     goto __pyx_L3;
26160   }
26161   __pyx_L3:;
26162 
26163   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":80
26164  *             return None
26165  *         cdef object buf
26166  *         if self.ob_dumps is None:             # <<<<<<<<<<<<<<
26167  *             buf = PyPickle_dumps(obj, self.ob_PROTOCOL)
26168  *         else:
26169  */
26170   __pyx_t_1 = (__pyx_v_self->ob_dumps == Py_None);
26171   if (__pyx_t_1) {
26172 
26173     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":81
26174  *         cdef object buf
26175  *         if self.ob_dumps is None:
26176  *             buf = PyPickle_dumps(obj, self.ob_PROTOCOL)             # <<<<<<<<<<<<<<
26177  *         else:
26178  *             buf = self.ob_dumps(obj, self.ob_PROTOCOL)
26179  */
26180     __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26181     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
26182     __Pyx_INCREF(__pyx_v_obj);
26183     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_obj);
26184     __Pyx_GIVEREF(__pyx_v_obj);
26185     __Pyx_INCREF(__pyx_v_self->ob_PROTOCOL);
26186     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->ob_PROTOCOL);
26187     __Pyx_GIVEREF(__pyx_v_self->ob_PROTOCOL);
26188     __pyx_t_3 = PyObject_Call(__pyx_v_6mpi4py_3MPI_PyPickle_dumps, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26189     __Pyx_GOTREF(__pyx_t_3);
26190     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
26191     __pyx_v_buf = __pyx_t_3;
26192     __pyx_t_3 = 0;
26193     goto __pyx_L4;
26194   }
26195   /*else*/ {
26196 
26197     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":83
26198  *             buf = PyPickle_dumps(obj, self.ob_PROTOCOL)
26199  *         else:
26200  *             buf = self.ob_dumps(obj, self.ob_PROTOCOL)             # <<<<<<<<<<<<<<
26201  *         p[0] = <void*> PyBytes_AsString(buf)
26202  *         n[0] = <int>   PyBytes_Size(buf) # XXX overflow?
26203  */
26204     __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26205     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
26206     __Pyx_INCREF(__pyx_v_obj);
26207     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_obj);
26208     __Pyx_GIVEREF(__pyx_v_obj);
26209     __Pyx_INCREF(__pyx_v_self->ob_PROTOCOL);
26210     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->ob_PROTOCOL);
26211     __Pyx_GIVEREF(__pyx_v_self->ob_PROTOCOL);
26212     __pyx_t_2 = PyObject_Call(__pyx_v_self->ob_dumps, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26213     __Pyx_GOTREF(__pyx_t_2);
26214     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
26215     __pyx_v_buf = __pyx_t_2;
26216     __pyx_t_2 = 0;
26217   }
26218   __pyx_L4:;
26219 
26220   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":84
26221  *         else:
26222  *             buf = self.ob_dumps(obj, self.ob_PROTOCOL)
26223  *         p[0] = <void*> PyBytes_AsString(buf)             # <<<<<<<<<<<<<<
26224  *         n[0] = <int>   PyBytes_Size(buf) # XXX overflow?
26225  *         return buf
26226  */
26227   __pyx_t_4 = PyBytes_AsString(__pyx_v_buf); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26228   (__pyx_v_p[0]) = ((void *)__pyx_t_4);
26229 
26230   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":85
26231  *             buf = self.ob_dumps(obj, self.ob_PROTOCOL)
26232  *         p[0] = <void*> PyBytes_AsString(buf)
26233  *         n[0] = <int>   PyBytes_Size(buf) # XXX overflow?             # <<<<<<<<<<<<<<
26234  *         return buf
26235  *
26236  */
26237   __pyx_t_5 = PyBytes_Size(__pyx_v_buf); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26238   (__pyx_v_n[0]) = ((int)__pyx_t_5);
26239 
26240   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":86
26241  *         p[0] = <void*> PyBytes_AsString(buf)
26242  *         n[0] = <int>   PyBytes_Size(buf) # XXX overflow?
26243  *         return buf             # <<<<<<<<<<<<<<
26244  *
26245  *     cdef object alloc(self, void **p, int n):
26246  */
26247   __Pyx_XDECREF(__pyx_r);
26248   __Pyx_INCREF(__pyx_v_buf);
26249   __pyx_r = __pyx_v_buf;
26250   goto __pyx_L0;
26251 
26252   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26253   goto __pyx_L0;
26254   __pyx_L1_error:;
26255   __Pyx_XDECREF(__pyx_t_2);
26256   __Pyx_XDECREF(__pyx_t_3);
26257   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.dump", __pyx_clineno, __pyx_lineno, __pyx_filename);
26258   __pyx_r = 0;
26259   __pyx_L0:;
26260   __Pyx_XDECREF(__pyx_v_buf);
26261   __Pyx_XGIVEREF(__pyx_r);
26262   __Pyx_RefNannyFinishContext();
26263   return __pyx_r;
26264 }
26265 
26266 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":88
26267  *         return buf
26268  *
26269  *     cdef object alloc(self, void **p, int n):             # <<<<<<<<<<<<<<
26270  *         if n == 0:
26271  *             p[0] = NULL
26272  */
26273 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_alloc(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,void ** __pyx_v_p,int __pyx_v_n)26274 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_alloc(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, void **__pyx_v_p, int __pyx_v_n) {
26275   PyObject *__pyx_v_buf = 0;
26276   PyObject *__pyx_r = NULL;
26277   __Pyx_RefNannyDeclarations
26278   int __pyx_t_1;
26279   PyObject *__pyx_t_2 = NULL;
26280   char *__pyx_t_3;
26281   int __pyx_lineno = 0;
26282   const char *__pyx_filename = NULL;
26283   int __pyx_clineno = 0;
26284   __Pyx_RefNannySetupContext("alloc");
26285 
26286   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":89
26287  *
26288  *     cdef object alloc(self, void **p, int n):
26289  *         if n == 0:             # <<<<<<<<<<<<<<
26290  *             p[0] = NULL
26291  *             return None
26292  */
26293   __pyx_t_1 = (__pyx_v_n == 0);
26294   if (__pyx_t_1) {
26295 
26296     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":90
26297  *     cdef object alloc(self, void **p, int n):
26298  *         if n == 0:
26299  *             p[0] = NULL             # <<<<<<<<<<<<<<
26300  *             return None
26301  *         cdef object buf
26302  */
26303     (__pyx_v_p[0]) = NULL;
26304 
26305     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":91
26306  *         if n == 0:
26307  *             p[0] = NULL
26308  *             return None             # <<<<<<<<<<<<<<
26309  *         cdef object buf
26310  *         buf = PyBytes_FromStringAndSize(NULL, n)
26311  */
26312     __Pyx_XDECREF(__pyx_r);
26313     __Pyx_INCREF(Py_None);
26314     __pyx_r = Py_None;
26315     goto __pyx_L0;
26316     goto __pyx_L3;
26317   }
26318   __pyx_L3:;
26319 
26320   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":93
26321  *             return None
26322  *         cdef object buf
26323  *         buf = PyBytes_FromStringAndSize(NULL, n)             # <<<<<<<<<<<<<<
26324  *         p[0] = PyBytes_AsString(buf)
26325  *         return buf
26326  */
26327   __pyx_t_2 = PyBytes_FromStringAndSize(NULL, __pyx_v_n); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26328   __Pyx_GOTREF(__pyx_t_2);
26329   __pyx_v_buf = __pyx_t_2;
26330   __pyx_t_2 = 0;
26331 
26332   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":94
26333  *         cdef object buf
26334  *         buf = PyBytes_FromStringAndSize(NULL, n)
26335  *         p[0] = PyBytes_AsString(buf)             # <<<<<<<<<<<<<<
26336  *         return buf
26337  *
26338  */
26339   __pyx_t_3 = PyBytes_AsString(__pyx_v_buf); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26340   (__pyx_v_p[0]) = __pyx_t_3;
26341 
26342   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":95
26343  *         buf = PyBytes_FromStringAndSize(NULL, n)
26344  *         p[0] = PyBytes_AsString(buf)
26345  *         return buf             # <<<<<<<<<<<<<<
26346  *
26347  *     cdef object load(self, object buf):
26348  */
26349   __Pyx_XDECREF(__pyx_r);
26350   __Pyx_INCREF(__pyx_v_buf);
26351   __pyx_r = __pyx_v_buf;
26352   goto __pyx_L0;
26353 
26354   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26355   goto __pyx_L0;
26356   __pyx_L1_error:;
26357   __Pyx_XDECREF(__pyx_t_2);
26358   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.alloc", __pyx_clineno, __pyx_lineno, __pyx_filename);
26359   __pyx_r = 0;
26360   __pyx_L0:;
26361   __Pyx_XDECREF(__pyx_v_buf);
26362   __Pyx_XGIVEREF(__pyx_r);
26363   __Pyx_RefNannyFinishContext();
26364   return __pyx_r;
26365 }
26366 
26367 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":97
26368  *         return buf
26369  *
26370  *     cdef object load(self, object buf):             # <<<<<<<<<<<<<<
26371  *         if buf is None: return None
26372  *         cdef bint use_StringIO = \
26373  */
26374 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_load(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,PyObject * __pyx_v_buf)26375 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_load(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, PyObject *__pyx_v_buf) {
26376   int __pyx_v_use_StringIO;
26377   PyObject *__pyx_r = NULL;
26378   __Pyx_RefNannyDeclarations
26379   int __pyx_t_1;
26380   int __pyx_t_2;
26381   int __pyx_t_3;
26382   int __pyx_t_4;
26383   PyObject *__pyx_t_5 = NULL;
26384   PyObject *__pyx_t_6 = NULL;
26385   int __pyx_lineno = 0;
26386   const char *__pyx_filename = NULL;
26387   int __pyx_clineno = 0;
26388   __Pyx_RefNannySetupContext("load");
26389   __Pyx_INCREF(__pyx_v_buf);
26390 
26391   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":98
26392  *
26393  *     cdef object load(self, object buf):
26394  *         if buf is None: return None             # <<<<<<<<<<<<<<
26395  *         cdef bint use_StringIO = \
26396  *             (PY_MAJOR_VERSION == 2 and
26397  */
26398   __pyx_t_1 = (__pyx_v_buf == Py_None);
26399   if (__pyx_t_1) {
26400     __Pyx_XDECREF(__pyx_r);
26401     __Pyx_INCREF(Py_None);
26402     __pyx_r = Py_None;
26403     goto __pyx_L0;
26404     goto __pyx_L3;
26405   }
26406   __pyx_L3:;
26407 
26408   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":100
26409  *         if buf is None: return None
26410  *         cdef bint use_StringIO = \
26411  *             (PY_MAJOR_VERSION == 2 and             # <<<<<<<<<<<<<<
26412  *              not PyBytes_CheckExact(buf) and
26413  *              PyStringIO_New is not None)
26414  */
26415   __pyx_t_1 = (PY_MAJOR_VERSION == 2);
26416   if (__pyx_t_1) {
26417 
26418     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":101
26419  *         cdef bint use_StringIO = \
26420  *             (PY_MAJOR_VERSION == 2 and
26421  *              not PyBytes_CheckExact(buf) and             # <<<<<<<<<<<<<<
26422  *              PyStringIO_New is not None)
26423  *         if self.ob_loads is None:
26424  */
26425     __pyx_t_2 = (!PyBytes_CheckExact(__pyx_v_buf));
26426     if (__pyx_t_2) {
26427 
26428       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":102
26429  *             (PY_MAJOR_VERSION == 2 and
26430  *              not PyBytes_CheckExact(buf) and
26431  *              PyStringIO_New is not None)             # <<<<<<<<<<<<<<
26432  *         if self.ob_loads is None:
26433  *             if use_StringIO:
26434  */
26435       __pyx_t_3 = (__pyx_v_6mpi4py_3MPI_PyStringIO_New != Py_None);
26436       __pyx_t_4 = __pyx_t_3;
26437     } else {
26438       __pyx_t_4 = __pyx_t_2;
26439     }
26440     __pyx_t_2 = __pyx_t_4;
26441   } else {
26442     __pyx_t_2 = __pyx_t_1;
26443   }
26444   __pyx_v_use_StringIO = __pyx_t_2;
26445 
26446   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":103
26447  *              not PyBytes_CheckExact(buf) and
26448  *              PyStringIO_New is not None)
26449  *         if self.ob_loads is None:             # <<<<<<<<<<<<<<
26450  *             if use_StringIO:
26451  *                 buf = PyStringIO_New(buf)
26452  */
26453   __pyx_t_2 = (__pyx_v_self->ob_loads == Py_None);
26454   if (__pyx_t_2) {
26455 
26456     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":104
26457  *              PyStringIO_New is not None)
26458  *         if self.ob_loads is None:
26459  *             if use_StringIO:             # <<<<<<<<<<<<<<
26460  *                 buf = PyStringIO_New(buf)
26461  *                 if PyPickle_loadf is not None:
26462  */
26463     if (__pyx_v_use_StringIO) {
26464 
26465       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":105
26466  *         if self.ob_loads is None:
26467  *             if use_StringIO:
26468  *                 buf = PyStringIO_New(buf)             # <<<<<<<<<<<<<<
26469  *                 if PyPickle_loadf is not None:
26470  *                     return PyPickle_loadf(buf)
26471  */
26472       __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26473       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
26474       __Pyx_INCREF(__pyx_v_buf);
26475       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_buf);
26476       __Pyx_GIVEREF(__pyx_v_buf);
26477       __pyx_t_6 = PyObject_Call(__pyx_v_6mpi4py_3MPI_PyStringIO_New, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26478       __Pyx_GOTREF(__pyx_t_6);
26479       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
26480       __Pyx_DECREF(__pyx_v_buf);
26481       __pyx_v_buf = __pyx_t_6;
26482       __pyx_t_6 = 0;
26483 
26484       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":106
26485  *             if use_StringIO:
26486  *                 buf = PyStringIO_New(buf)
26487  *                 if PyPickle_loadf is not None:             # <<<<<<<<<<<<<<
26488  *                     return PyPickle_loadf(buf)
26489  *                 buf = buf.read()
26490  */
26491       __pyx_t_2 = (__pyx_v_6mpi4py_3MPI_PyPickle_loadf != Py_None);
26492       if (__pyx_t_2) {
26493 
26494         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":107
26495  *                 buf = PyStringIO_New(buf)
26496  *                 if PyPickle_loadf is not None:
26497  *                     return PyPickle_loadf(buf)             # <<<<<<<<<<<<<<
26498  *                 buf = buf.read()
26499  *             return PyPickle_loads(buf)
26500  */
26501         __Pyx_XDECREF(__pyx_r);
26502         __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26503         __Pyx_GOTREF(((PyObject *)__pyx_t_6));
26504         __Pyx_INCREF(__pyx_v_buf);
26505         PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_buf);
26506         __Pyx_GIVEREF(__pyx_v_buf);
26507         __pyx_t_5 = PyObject_Call(__pyx_v_6mpi4py_3MPI_PyPickle_loadf, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26508         __Pyx_GOTREF(__pyx_t_5);
26509         __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
26510         __pyx_r = __pyx_t_5;
26511         __pyx_t_5 = 0;
26512         goto __pyx_L0;
26513         goto __pyx_L6;
26514       }
26515       __pyx_L6:;
26516 
26517       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":108
26518  *                 if PyPickle_loadf is not None:
26519  *                     return PyPickle_loadf(buf)
26520  *                 buf = buf.read()             # <<<<<<<<<<<<<<
26521  *             return PyPickle_loads(buf)
26522  *         else:
26523  */
26524       __pyx_t_5 = PyObject_GetAttr(__pyx_v_buf, __pyx_n_s__read); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26525       __Pyx_GOTREF(__pyx_t_5);
26526       __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26527       __Pyx_GOTREF(__pyx_t_6);
26528       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26529       __Pyx_DECREF(__pyx_v_buf);
26530       __pyx_v_buf = __pyx_t_6;
26531       __pyx_t_6 = 0;
26532       goto __pyx_L5;
26533     }
26534     __pyx_L5:;
26535 
26536     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":109
26537  *                     return PyPickle_loadf(buf)
26538  *                 buf = buf.read()
26539  *             return PyPickle_loads(buf)             # <<<<<<<<<<<<<<
26540  *         else:
26541  *             if use_StringIO:
26542  */
26543     __Pyx_XDECREF(__pyx_r);
26544     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26545     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
26546     __Pyx_INCREF(__pyx_v_buf);
26547     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_buf);
26548     __Pyx_GIVEREF(__pyx_v_buf);
26549     __pyx_t_5 = PyObject_Call(__pyx_v_6mpi4py_3MPI_PyPickle_loads, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26550     __Pyx_GOTREF(__pyx_t_5);
26551     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
26552     __pyx_r = __pyx_t_5;
26553     __pyx_t_5 = 0;
26554     goto __pyx_L0;
26555     goto __pyx_L4;
26556   }
26557   /*else*/ {
26558 
26559     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":111
26560  *             return PyPickle_loads(buf)
26561  *         else:
26562  *             if use_StringIO:             # <<<<<<<<<<<<<<
26563  *                 buf = PyStringIO_New(buf)
26564  *                 buf = buf.read()
26565  */
26566     if (__pyx_v_use_StringIO) {
26567 
26568       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":112
26569  *         else:
26570  *             if use_StringIO:
26571  *                 buf = PyStringIO_New(buf)             # <<<<<<<<<<<<<<
26572  *                 buf = buf.read()
26573  *             return self.ob_loads(buf)
26574  */
26575       __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26576       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
26577       __Pyx_INCREF(__pyx_v_buf);
26578       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_buf);
26579       __Pyx_GIVEREF(__pyx_v_buf);
26580       __pyx_t_6 = PyObject_Call(__pyx_v_6mpi4py_3MPI_PyStringIO_New, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26581       __Pyx_GOTREF(__pyx_t_6);
26582       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
26583       __Pyx_DECREF(__pyx_v_buf);
26584       __pyx_v_buf = __pyx_t_6;
26585       __pyx_t_6 = 0;
26586 
26587       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":113
26588  *             if use_StringIO:
26589  *                 buf = PyStringIO_New(buf)
26590  *                 buf = buf.read()             # <<<<<<<<<<<<<<
26591  *             return self.ob_loads(buf)
26592  *
26593  */
26594       __pyx_t_6 = PyObject_GetAttr(__pyx_v_buf, __pyx_n_s__read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26595       __Pyx_GOTREF(__pyx_t_6);
26596       __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26597       __Pyx_GOTREF(__pyx_t_5);
26598       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26599       __Pyx_DECREF(__pyx_v_buf);
26600       __pyx_v_buf = __pyx_t_5;
26601       __pyx_t_5 = 0;
26602       goto __pyx_L7;
26603     }
26604     __pyx_L7:;
26605 
26606     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":114
26607  *                 buf = PyStringIO_New(buf)
26608  *                 buf = buf.read()
26609  *             return self.ob_loads(buf)             # <<<<<<<<<<<<<<
26610  *
26611  *     cdef object dumpv(self, object obj, void **p,
26612  */
26613     __Pyx_XDECREF(__pyx_r);
26614     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26615     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
26616     __Pyx_INCREF(__pyx_v_buf);
26617     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_buf);
26618     __Pyx_GIVEREF(__pyx_v_buf);
26619     __pyx_t_6 = PyObject_Call(__pyx_v_self->ob_loads, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26620     __Pyx_GOTREF(__pyx_t_6);
26621     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
26622     __pyx_r = __pyx_t_6;
26623     __pyx_t_6 = 0;
26624     goto __pyx_L0;
26625   }
26626   __pyx_L4:;
26627 
26628   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26629   goto __pyx_L0;
26630   __pyx_L1_error:;
26631   __Pyx_XDECREF(__pyx_t_5);
26632   __Pyx_XDECREF(__pyx_t_6);
26633   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.load", __pyx_clineno, __pyx_lineno, __pyx_filename);
26634   __pyx_r = 0;
26635   __pyx_L0:;
26636   __Pyx_XDECREF(__pyx_v_buf);
26637   __Pyx_XGIVEREF(__pyx_r);
26638   __Pyx_RefNannyFinishContext();
26639   return __pyx_r;
26640 }
26641 
26642 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":116
26643  *             return self.ob_loads(buf)
26644  *
26645  *     cdef object dumpv(self, object obj, void **p,             # <<<<<<<<<<<<<<
26646  *                       int n, int cnt[], int dsp[]):
26647  *         cdef Py_ssize_t i=0, m=n
26648  */
26649 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_dumpv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,PyObject * __pyx_v_obj,void ** __pyx_v_p,int __pyx_v_n,int * __pyx_v_cnt,int * __pyx_v_dsp)26650 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_dumpv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, PyObject *__pyx_v_obj, void **__pyx_v_p, int __pyx_v_n, int *__pyx_v_cnt, int *__pyx_v_dsp) {
26651   Py_ssize_t __pyx_v_i;
26652   Py_ssize_t __pyx_v_m;
26653   PyObject *__pyx_v_items = 0;
26654   int __pyx_v_d;
26655   int __pyx_v_c;
26656   PyObject *__pyx_v_buf = 0;
26657   PyObject *__pyx_r = NULL;
26658   __Pyx_RefNannyDeclarations
26659   int __pyx_t_1;
26660   Py_ssize_t __pyx_t_2;
26661   PyObject *__pyx_t_3 = NULL;
26662   PyObject *__pyx_t_4 = NULL;
26663   PyObject *__pyx_t_5 = NULL;
26664   char *__pyx_t_6;
26665   int __pyx_lineno = 0;
26666   const char *__pyx_filename = NULL;
26667   int __pyx_clineno = 0;
26668   __Pyx_RefNannySetupContext("dumpv");
26669 
26670   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":118
26671  *     cdef object dumpv(self, object obj, void **p,
26672  *                       int n, int cnt[], int dsp[]):
26673  *         cdef Py_ssize_t i=0, m=n             # <<<<<<<<<<<<<<
26674  *         if obj is None:
26675  *             p[0] = NULL
26676  */
26677   __pyx_v_i = 0;
26678   __pyx_v_m = __pyx_v_n;
26679 
26680   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":119
26681  *                       int n, int cnt[], int dsp[]):
26682  *         cdef Py_ssize_t i=0, m=n
26683  *         if obj is None:             # <<<<<<<<<<<<<<
26684  *             p[0] = NULL
26685  *             for i from 0 <= i < m:
26686  */
26687   __pyx_t_1 = (__pyx_v_obj == Py_None);
26688   if (__pyx_t_1) {
26689 
26690     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":120
26691  *         cdef Py_ssize_t i=0, m=n
26692  *         if obj is None:
26693  *             p[0] = NULL             # <<<<<<<<<<<<<<
26694  *             for i from 0 <= i < m:
26695  *                 cnt[i] = 0
26696  */
26697     (__pyx_v_p[0]) = NULL;
26698 
26699     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":121
26700  *         if obj is None:
26701  *             p[0] = NULL
26702  *             for i from 0 <= i < m:             # <<<<<<<<<<<<<<
26703  *                 cnt[i] = 0
26704  *                 dsp[i] = 0
26705  */
26706     __pyx_t_2 = __pyx_v_m;
26707     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
26708 
26709       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":122
26710  *             p[0] = NULL
26711  *             for i from 0 <= i < m:
26712  *                 cnt[i] = 0             # <<<<<<<<<<<<<<
26713  *                 dsp[i] = 0
26714  *             return None
26715  */
26716       (__pyx_v_cnt[__pyx_v_i]) = 0;
26717 
26718       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":123
26719  *             for i from 0 <= i < m:
26720  *                 cnt[i] = 0
26721  *                 dsp[i] = 0             # <<<<<<<<<<<<<<
26722  *             return None
26723  *         cdef object items = list(obj)
26724  */
26725       (__pyx_v_dsp[__pyx_v_i]) = 0;
26726     }
26727 
26728     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":124
26729  *                 cnt[i] = 0
26730  *                 dsp[i] = 0
26731  *             return None             # <<<<<<<<<<<<<<
26732  *         cdef object items = list(obj)
26733  *         m = len(items)
26734  */
26735     __Pyx_XDECREF(__pyx_r);
26736     __Pyx_INCREF(Py_None);
26737     __pyx_r = Py_None;
26738     goto __pyx_L0;
26739     goto __pyx_L3;
26740   }
26741   __pyx_L3:;
26742 
26743   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":125
26744  *                 dsp[i] = 0
26745  *             return None
26746  *         cdef object items = list(obj)             # <<<<<<<<<<<<<<
26747  *         m = len(items)
26748  *         if m != n: raise ValueError(
26749  */
26750   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26751   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
26752   __Pyx_INCREF(__pyx_v_obj);
26753   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_obj);
26754   __Pyx_GIVEREF(__pyx_v_obj);
26755   __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26756   __Pyx_GOTREF(__pyx_t_4);
26757   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
26758   __pyx_v_items = __pyx_t_4;
26759   __pyx_t_4 = 0;
26760 
26761   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":126
26762  *             return None
26763  *         cdef object items = list(obj)
26764  *         m = len(items)             # <<<<<<<<<<<<<<
26765  *         if m != n: raise ValueError(
26766  *             "expecting %d items, got %d" % (n, m))
26767  */
26768   __pyx_t_2 = PyObject_Length(__pyx_v_items); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26769   __pyx_v_m = __pyx_t_2;
26770 
26771   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":127
26772  *         cdef object items = list(obj)
26773  *         m = len(items)
26774  *         if m != n: raise ValueError(             # <<<<<<<<<<<<<<
26775  *             "expecting %d items, got %d" % (n, m))
26776  *         cdef int d=0, c=0
26777  */
26778   __pyx_t_1 = (__pyx_v_m != __pyx_v_n);
26779   if (__pyx_t_1) {
26780 
26781     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":128
26782  *         m = len(items)
26783  *         if m != n: raise ValueError(
26784  *             "expecting %d items, got %d" % (n, m))             # <<<<<<<<<<<<<<
26785  *         cdef int d=0, c=0
26786  *         for i from 0 <= i < m:
26787  */
26788     __pyx_t_4 = PyInt_FromLong(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26789     __Pyx_GOTREF(__pyx_t_4);
26790     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26791     __Pyx_GOTREF(__pyx_t_3);
26792     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26793     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
26794     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
26795     __Pyx_GIVEREF(__pyx_t_4);
26796     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
26797     __Pyx_GIVEREF(__pyx_t_3);
26798     __pyx_t_4 = 0;
26799     __pyx_t_3 = 0;
26800     __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_10), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26801     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
26802     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
26803     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26804     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
26805     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_3));
26806     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
26807     __pyx_t_3 = 0;
26808     __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26809     __Pyx_GOTREF(__pyx_t_3);
26810     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
26811     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
26812     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26813     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26814     goto __pyx_L6;
26815   }
26816   __pyx_L6:;
26817 
26818   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":129
26819  *         if m != n: raise ValueError(
26820  *             "expecting %d items, got %d" % (n, m))
26821  *         cdef int d=0, c=0             # <<<<<<<<<<<<<<
26822  *         for i from 0 <= i < m:
26823  *             items[i] = self.dump(items[i], p, &c)
26824  */
26825   __pyx_v_d = 0;
26826   __pyx_v_c = 0;
26827 
26828   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":130
26829  *             "expecting %d items, got %d" % (n, m))
26830  *         cdef int d=0, c=0
26831  *         for i from 0 <= i < m:             # <<<<<<<<<<<<<<
26832  *             items[i] = self.dump(items[i], p, &c)
26833  *             if c == 0: items[i] = b''
26834  */
26835   __pyx_t_2 = __pyx_v_m;
26836   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
26837 
26838     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":131
26839  *         cdef int d=0, c=0
26840  *         for i from 0 <= i < m:
26841  *             items[i] = self.dump(items[i], p, &c)             # <<<<<<<<<<<<<<
26842  *             if c == 0: items[i] = b''
26843  *             cnt[i] = c; dsp[i] = d; d += c
26844  */
26845     __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_items, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26846     __Pyx_GOTREF(__pyx_t_3);
26847     __pyx_t_5 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_self->__pyx_vtab)->dump(__pyx_v_self, __pyx_t_3, __pyx_v_p, (&__pyx_v_c)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26848     __Pyx_GOTREF(__pyx_t_5);
26849     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26850     if (__Pyx_SetItemInt(__pyx_v_items, __pyx_v_i, __pyx_t_5, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26851     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26852 
26853     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":132
26854  *         for i from 0 <= i < m:
26855  *             items[i] = self.dump(items[i], p, &c)
26856  *             if c == 0: items[i] = b''             # <<<<<<<<<<<<<<
26857  *             cnt[i] = c; dsp[i] = d; d += c
26858  *         cdef object buf = b''.join(items) # XXX use _PyBytes_Join() ?
26859  */
26860     __pyx_t_1 = (__pyx_v_c == 0);
26861     if (__pyx_t_1) {
26862       if (__Pyx_SetItemInt(__pyx_v_items, __pyx_v_i, ((PyObject *)__pyx_kp_b_50), sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26863       goto __pyx_L9;
26864     }
26865     __pyx_L9:;
26866 
26867     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":133
26868  *             items[i] = self.dump(items[i], p, &c)
26869  *             if c == 0: items[i] = b''
26870  *             cnt[i] = c; dsp[i] = d; d += c             # <<<<<<<<<<<<<<
26871  *         cdef object buf = b''.join(items) # XXX use _PyBytes_Join() ?
26872  *         p[0] = PyBytes_AsString(buf)
26873  */
26874     (__pyx_v_cnt[__pyx_v_i]) = __pyx_v_c;
26875     (__pyx_v_dsp[__pyx_v_i]) = __pyx_v_d;
26876     __pyx_v_d = (__pyx_v_d + __pyx_v_c);
26877   }
26878 
26879   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":134
26880  *             if c == 0: items[i] = b''
26881  *             cnt[i] = c; dsp[i] = d; d += c
26882  *         cdef object buf = b''.join(items) # XXX use _PyBytes_Join() ?             # <<<<<<<<<<<<<<
26883  *         p[0] = PyBytes_AsString(buf)
26884  *         return buf
26885  */
26886   __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_kp_b_50), __pyx_n_s__join); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26887   __Pyx_GOTREF(__pyx_t_5);
26888   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26889   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
26890   __Pyx_INCREF(__pyx_v_items);
26891   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_items);
26892   __Pyx_GIVEREF(__pyx_v_items);
26893   __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26894   __Pyx_GOTREF(__pyx_t_4);
26895   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26896   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
26897   __pyx_v_buf = __pyx_t_4;
26898   __pyx_t_4 = 0;
26899 
26900   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":135
26901  *             cnt[i] = c; dsp[i] = d; d += c
26902  *         cdef object buf = b''.join(items) # XXX use _PyBytes_Join() ?
26903  *         p[0] = PyBytes_AsString(buf)             # <<<<<<<<<<<<<<
26904  *         return buf
26905  *
26906  */
26907   __pyx_t_6 = PyBytes_AsString(__pyx_v_buf); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
26908   (__pyx_v_p[0]) = __pyx_t_6;
26909 
26910   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":136
26911  *         cdef object buf = b''.join(items) # XXX use _PyBytes_Join() ?
26912  *         p[0] = PyBytes_AsString(buf)
26913  *         return buf             # <<<<<<<<<<<<<<
26914  *
26915  *     cdef object allocv(self, void **p,
26916  */
26917   __Pyx_XDECREF(__pyx_r);
26918   __Pyx_INCREF(__pyx_v_buf);
26919   __pyx_r = __pyx_v_buf;
26920   goto __pyx_L0;
26921 
26922   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26923   goto __pyx_L0;
26924   __pyx_L1_error:;
26925   __Pyx_XDECREF(__pyx_t_3);
26926   __Pyx_XDECREF(__pyx_t_4);
26927   __Pyx_XDECREF(__pyx_t_5);
26928   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.dumpv", __pyx_clineno, __pyx_lineno, __pyx_filename);
26929   __pyx_r = 0;
26930   __pyx_L0:;
26931   __Pyx_XDECREF(__pyx_v_items);
26932   __Pyx_XDECREF(__pyx_v_buf);
26933   __Pyx_XGIVEREF(__pyx_r);
26934   __Pyx_RefNannyFinishContext();
26935   return __pyx_r;
26936 }
26937 
26938 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":138
26939  *         return buf
26940  *
26941  *     cdef object allocv(self, void **p,             # <<<<<<<<<<<<<<
26942  *                        int n, int cnt[], int dsp[]):
26943  *         cdef int i=0, d=0
26944  */
26945 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_allocv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,void ** __pyx_v_p,int __pyx_v_n,int * __pyx_v_cnt,int * __pyx_v_dsp)26946 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_allocv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, void **__pyx_v_p, int __pyx_v_n, int *__pyx_v_cnt, int *__pyx_v_dsp) {
26947   int __pyx_v_i;
26948   int __pyx_v_d;
26949   PyObject *__pyx_r = NULL;
26950   __Pyx_RefNannyDeclarations
26951   int __pyx_t_1;
26952   PyObject *__pyx_t_2 = NULL;
26953   int __pyx_lineno = 0;
26954   const char *__pyx_filename = NULL;
26955   int __pyx_clineno = 0;
26956   __Pyx_RefNannySetupContext("allocv");
26957 
26958   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":140
26959  *     cdef object allocv(self, void **p,
26960  *                        int n, int cnt[], int dsp[]):
26961  *         cdef int i=0, d=0             # <<<<<<<<<<<<<<
26962  *         for i from 0 <= i < n:
26963  *             dsp[i] = d
26964  */
26965   __pyx_v_i = 0;
26966   __pyx_v_d = 0;
26967 
26968   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":141
26969  *                        int n, int cnt[], int dsp[]):
26970  *         cdef int i=0, d=0
26971  *         for i from 0 <= i < n:             # <<<<<<<<<<<<<<
26972  *             dsp[i] = d
26973  *             d += cnt[i]
26974  */
26975   __pyx_t_1 = __pyx_v_n;
26976   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
26977 
26978     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":142
26979  *         cdef int i=0, d=0
26980  *         for i from 0 <= i < n:
26981  *             dsp[i] = d             # <<<<<<<<<<<<<<
26982  *             d += cnt[i]
26983  *         return self.alloc(p, d)
26984  */
26985     (__pyx_v_dsp[__pyx_v_i]) = __pyx_v_d;
26986 
26987     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":143
26988  *         for i from 0 <= i < n:
26989  *             dsp[i] = d
26990  *             d += cnt[i]             # <<<<<<<<<<<<<<
26991  *         return self.alloc(p, d)
26992  *
26993  */
26994     __pyx_v_d = (__pyx_v_d + (__pyx_v_cnt[__pyx_v_i]));
26995   }
26996 
26997   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":144
26998  *             dsp[i] = d
26999  *             d += cnt[i]
27000  *         return self.alloc(p, d)             # <<<<<<<<<<<<<<
27001  *
27002  *     cdef object loadv(self, object obj,
27003  */
27004   __Pyx_XDECREF(__pyx_r);
27005   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_self->__pyx_vtab)->alloc(__pyx_v_self, __pyx_v_p, __pyx_v_d); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27006   __Pyx_GOTREF(__pyx_t_2);
27007   __pyx_r = __pyx_t_2;
27008   __pyx_t_2 = 0;
27009   goto __pyx_L0;
27010 
27011   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27012   goto __pyx_L0;
27013   __pyx_L1_error:;
27014   __Pyx_XDECREF(__pyx_t_2);
27015   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.allocv", __pyx_clineno, __pyx_lineno, __pyx_filename);
27016   __pyx_r = 0;
27017   __pyx_L0:;
27018   __Pyx_XGIVEREF(__pyx_r);
27019   __Pyx_RefNannyFinishContext();
27020   return __pyx_r;
27021 }
27022 
27023 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":146
27024  *         return self.alloc(p, d)
27025  *
27026  *     cdef object loadv(self, object obj,             # <<<<<<<<<<<<<<
27027  *                       int n, int cnt[], int dsp[]):
27028  *         cdef Py_ssize_t i=0, m=n
27029  */
27030 
__pyx_f_6mpi4py_3MPI_9_p_Pickle_loadv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle * __pyx_v_self,PyObject * __pyx_v_obj,int __pyx_v_n,int * __pyx_v_cnt,int * __pyx_v_dsp)27031 static PyObject *__pyx_f_6mpi4py_3MPI_9_p_Pickle_loadv(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_n, int *__pyx_v_cnt, int *__pyx_v_dsp) {
27032   Py_ssize_t __pyx_v_i;
27033   Py_ssize_t __pyx_v_m;
27034   PyObject *__pyx_v_items = 0;
27035   char *__pyx_v_p;
27036   PyObject *__pyx_v_buf = 0;
27037   PyObject *__pyx_r = NULL;
27038   __Pyx_RefNannyDeclarations
27039   PyObject *__pyx_t_1 = NULL;
27040   PyObject *__pyx_t_2 = NULL;
27041   PyObject *__pyx_t_3 = NULL;
27042   int __pyx_t_4;
27043   char *__pyx_t_5;
27044   Py_ssize_t __pyx_t_6;
27045   int __pyx_lineno = 0;
27046   const char *__pyx_filename = NULL;
27047   int __pyx_clineno = 0;
27048   __Pyx_RefNannySetupContext("loadv");
27049 
27050   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":148
27051  *     cdef object loadv(self, object obj,
27052  *                       int n, int cnt[], int dsp[]):
27053  *         cdef Py_ssize_t i=0, m=n             # <<<<<<<<<<<<<<
27054  *         cdef object items = [None] * m
27055  *         if obj is None: return items
27056  */
27057   __pyx_v_i = 0;
27058   __pyx_v_m = __pyx_v_n;
27059 
27060   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":149
27061  *                       int n, int cnt[], int dsp[]):
27062  *         cdef Py_ssize_t i=0, m=n
27063  *         cdef object items = [None] * m             # <<<<<<<<<<<<<<
27064  *         if obj is None: return items
27065  *         cdef char *p = PyBytes_AsString(obj)
27066  */
27067   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27068   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
27069   __Pyx_INCREF(Py_None);
27070   PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
27071   __Pyx_GIVEREF(Py_None);
27072   __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27073   __Pyx_GOTREF(__pyx_t_2);
27074   __pyx_t_3 = PyNumber_Multiply(((PyObject *)__pyx_t_1), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27075   __Pyx_GOTREF(__pyx_t_3);
27076   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
27077   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
27078   __pyx_v_items = __pyx_t_3;
27079   __pyx_t_3 = 0;
27080 
27081   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":150
27082  *         cdef Py_ssize_t i=0, m=n
27083  *         cdef object items = [None] * m
27084  *         if obj is None: return items             # <<<<<<<<<<<<<<
27085  *         cdef char *p = PyBytes_AsString(obj)
27086  *         cdef object buf = None
27087  */
27088   __pyx_t_4 = (__pyx_v_obj == Py_None);
27089   if (__pyx_t_4) {
27090     __Pyx_XDECREF(__pyx_r);
27091     __Pyx_INCREF(__pyx_v_items);
27092     __pyx_r = __pyx_v_items;
27093     goto __pyx_L0;
27094     goto __pyx_L3;
27095   }
27096   __pyx_L3:;
27097 
27098   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":151
27099  *         cdef object items = [None] * m
27100  *         if obj is None: return items
27101  *         cdef char *p = PyBytes_AsString(obj)             # <<<<<<<<<<<<<<
27102  *         cdef object buf = None
27103  *         for i from 0 <= i < m:
27104  */
27105   __pyx_t_5 = PyBytes_AsString(__pyx_v_obj); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27106   __pyx_v_p = __pyx_t_5;
27107 
27108   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":152
27109  *         if obj is None: return items
27110  *         cdef char *p = PyBytes_AsString(obj)
27111  *         cdef object buf = None             # <<<<<<<<<<<<<<
27112  *         for i from 0 <= i < m:
27113  *             if cnt[i] == 0: continue
27114  */
27115   __Pyx_INCREF(Py_None);
27116   __pyx_v_buf = Py_None;
27117 
27118   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":153
27119  *         cdef char *p = PyBytes_AsString(obj)
27120  *         cdef object buf = None
27121  *         for i from 0 <= i < m:             # <<<<<<<<<<<<<<
27122  *             if cnt[i] == 0: continue
27123  *             buf = PyBytes_FromStringAndSize(p+dsp[i], cnt[i])
27124  */
27125   __pyx_t_6 = __pyx_v_m;
27126   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) {
27127 
27128     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":154
27129  *         cdef object buf = None
27130  *         for i from 0 <= i < m:
27131  *             if cnt[i] == 0: continue             # <<<<<<<<<<<<<<
27132  *             buf = PyBytes_FromStringAndSize(p+dsp[i], cnt[i])
27133  *             items[i] = self.load(buf)
27134  */
27135     __pyx_t_4 = ((__pyx_v_cnt[__pyx_v_i]) == 0);
27136     if (__pyx_t_4) {
27137       goto __pyx_L4_continue;
27138       goto __pyx_L6;
27139     }
27140     __pyx_L6:;
27141 
27142     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":155
27143  *         for i from 0 <= i < m:
27144  *             if cnt[i] == 0: continue
27145  *             buf = PyBytes_FromStringAndSize(p+dsp[i], cnt[i])             # <<<<<<<<<<<<<<
27146  *             items[i] = self.load(buf)
27147  *         return items
27148  */
27149     __pyx_t_3 = PyBytes_FromStringAndSize((__pyx_v_p + (__pyx_v_dsp[__pyx_v_i])), (__pyx_v_cnt[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27150     __Pyx_GOTREF(__pyx_t_3);
27151     __Pyx_DECREF(__pyx_v_buf);
27152     __pyx_v_buf = __pyx_t_3;
27153     __pyx_t_3 = 0;
27154 
27155     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":156
27156  *             if cnt[i] == 0: continue
27157  *             buf = PyBytes_FromStringAndSize(p+dsp[i], cnt[i])
27158  *             items[i] = self.load(buf)             # <<<<<<<<<<<<<<
27159  *         return items
27160  *
27161  */
27162     __pyx_t_3 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_self->__pyx_vtab)->load(__pyx_v_self, __pyx_v_buf); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27163     __Pyx_GOTREF(__pyx_t_3);
27164     if (__Pyx_SetItemInt(__pyx_v_items, __pyx_v_i, __pyx_t_3, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27165     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27166     __pyx_L4_continue:;
27167   }
27168 
27169   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":157
27170  *             buf = PyBytes_FromStringAndSize(p+dsp[i], cnt[i])
27171  *             items[i] = self.load(buf)
27172  *         return items             # <<<<<<<<<<<<<<
27173  *
27174  *
27175  */
27176   __Pyx_XDECREF(__pyx_r);
27177   __Pyx_INCREF(__pyx_v_items);
27178   __pyx_r = __pyx_v_items;
27179   goto __pyx_L0;
27180 
27181   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27182   goto __pyx_L0;
27183   __pyx_L1_error:;
27184   __Pyx_XDECREF(__pyx_t_1);
27185   __Pyx_XDECREF(__pyx_t_2);
27186   __Pyx_XDECREF(__pyx_t_3);
27187   __Pyx_AddTraceback("mpi4py.MPI._p_Pickle.loadv", __pyx_clineno, __pyx_lineno, __pyx_filename);
27188   __pyx_r = 0;
27189   __pyx_L0:;
27190   __Pyx_XDECREF(__pyx_v_items);
27191   __Pyx_XDECREF(__pyx_v_buf);
27192   __Pyx_XGIVEREF(__pyx_r);
27193   __Pyx_RefNannyFinishContext();
27194   return __pyx_r;
27195 }
27196 
27197 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":162
27198  * cdef _p_Pickle PyMPI_PICKLE = _p_Pickle()
27199  *
27200  * cdef inline _p_Pickle PyMPI_pickle():             # <<<<<<<<<<<<<<
27201  *     return PyMPI_PICKLE
27202  *
27203  */
27204 
__pyx_f_6mpi4py_3MPI_PyMPI_pickle(void)27205 static CYTHON_INLINE struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_f_6mpi4py_3MPI_PyMPI_pickle(void) {
27206   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_r = NULL;
27207   __Pyx_RefNannyDeclarations
27208   __Pyx_RefNannySetupContext("PyMPI_pickle");
27209 
27210   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":163
27211  *
27212  * cdef inline _p_Pickle PyMPI_pickle():
27213  *     return PyMPI_PICKLE             # <<<<<<<<<<<<<<
27214  *
27215  * _p_pickle = PyMPI_PICKLE
27216  */
27217   __Pyx_XDECREF(((PyObject *)__pyx_r));
27218   __Pyx_INCREF(((PyObject *)__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE));
27219   __pyx_r = __pyx_v_6mpi4py_3MPI_PyMPI_PICKLE;
27220   goto __pyx_L0;
27221 
27222   __pyx_r = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)Py_None); __Pyx_INCREF(Py_None);
27223   __pyx_L0:;
27224   __Pyx_XGIVEREF((PyObject *)__pyx_r);
27225   __Pyx_RefNannyFinishContext();
27226   return __pyx_r;
27227 }
27228 
27229 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":169
27230  * # -----------------------------------------------------------------------------
27231  *
27232  * cdef object PyMPI_send(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
27233  *                        MPI_Comm comm):
27234  *     cdef _p_Pickle pickle = PyMPI_pickle()
27235  */
27236 
__pyx_f_6mpi4py_3MPI_PyMPI_send(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm)27237 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_send(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm) {
27238   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
27239   void *__pyx_v_sbuf;
27240   int __pyx_v_scount;
27241   MPI_Datatype __pyx_v_stype;
27242   int __pyx_v_dosend;
27243   PyObject *__pyx_v_smsg = 0;
27244   PyObject *__pyx_r = NULL;
27245   __Pyx_RefNannyDeclarations
27246   PyObject *__pyx_t_1 = NULL;
27247   int __pyx_t_2;
27248   int __pyx_lineno = 0;
27249   const char *__pyx_filename = NULL;
27250   int __pyx_clineno = 0;
27251   __Pyx_RefNannySetupContext("PyMPI_send");
27252 
27253   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":171
27254  * cdef object PyMPI_send(object obj, int dest, int tag,
27255  *                        MPI_Comm comm):
27256  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
27257  *     #
27258  *     cdef void *sbuf = NULL
27259  */
27260   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27261   __Pyx_GOTREF(__pyx_t_1);
27262   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
27263   __pyx_t_1 = 0;
27264 
27265   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":173
27266  *     cdef _p_Pickle pickle = PyMPI_pickle()
27267  *     #
27268  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
27269  *     cdef int scount = 0
27270  *     cdef MPI_Datatype stype = MPI_BYTE
27271  */
27272   __pyx_v_sbuf = NULL;
27273 
27274   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":174
27275  *     #
27276  *     cdef void *sbuf = NULL
27277  *     cdef int scount = 0             # <<<<<<<<<<<<<<
27278  *     cdef MPI_Datatype stype = MPI_BYTE
27279  *     #
27280  */
27281   __pyx_v_scount = 0;
27282 
27283   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":175
27284  *     cdef void *sbuf = NULL
27285  *     cdef int scount = 0
27286  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
27287  *     #
27288  *     cdef int dosend = (dest != MPI_PROC_NULL)
27289  */
27290   __pyx_v_stype = MPI_BYTE;
27291 
27292   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":177
27293  *     cdef MPI_Datatype stype = MPI_BYTE
27294  *     #
27295  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
27296  *     #
27297  *     cdef object smsg = None
27298  */
27299   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
27300 
27301   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":179
27302  *     cdef int dosend = (dest != MPI_PROC_NULL)
27303  *     #
27304  *     cdef object smsg = None             # <<<<<<<<<<<<<<
27305  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27306  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,
27307  */
27308   __Pyx_INCREF(Py_None);
27309   __pyx_v_smsg = Py_None;
27310 
27311   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":180
27312  *     #
27313  *     cdef object smsg = None
27314  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
27315  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,
27316  *                                  dest, tag, comm) )
27317  */
27318   if (__pyx_v_dosend) {
27319     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27320     __Pyx_GOTREF(__pyx_t_1);
27321     __Pyx_DECREF(__pyx_v_smsg);
27322     __pyx_v_smsg = __pyx_t_1;
27323     __pyx_t_1 = 0;
27324     goto __pyx_L3;
27325   }
27326   __pyx_L3:;
27327 
27328   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":181
27329  *     cdef object smsg = None
27330  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27331  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27332  *                                  dest, tag, comm) )
27333  *     return None
27334  */
27335   {
27336       #ifdef WITH_THREAD
27337       PyThreadState *_save = NULL;
27338       #endif
27339       Py_UNBLOCK_THREADS
27340       /*try:*/ {
27341 
27342         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":182
27343  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27344  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,
27345  *                                  dest, tag, comm) )             # <<<<<<<<<<<<<<
27346  *     return None
27347  *
27348  */
27349         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Send(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L5;}
27350       }
27351 
27352       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":181
27353  *     cdef object smsg = None
27354  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27355  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27356  *                                  dest, tag, comm) )
27357  *     return None
27358  */
27359       /*finally:*/ {
27360         int __pyx_why;
27361         __pyx_why = 0; goto __pyx_L6;
27362         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
27363         __pyx_L6:;
27364         Py_BLOCK_THREADS
27365         switch (__pyx_why) {
27366           case 4: goto __pyx_L1_error;
27367         }
27368       }
27369   }
27370 
27371   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":183
27372  *     with nogil: CHKERR( MPI_Send(sbuf, scount, stype,
27373  *                                  dest, tag, comm) )
27374  *     return None             # <<<<<<<<<<<<<<
27375  *
27376  *
27377  */
27378   __Pyx_XDECREF(__pyx_r);
27379   __Pyx_INCREF(Py_None);
27380   __pyx_r = Py_None;
27381   goto __pyx_L0;
27382 
27383   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27384   goto __pyx_L0;
27385   __pyx_L1_error:;
27386   __Pyx_XDECREF(__pyx_t_1);
27387   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
27388   __pyx_r = 0;
27389   __pyx_L0:;
27390   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
27391   __Pyx_XDECREF(__pyx_v_smsg);
27392   __Pyx_XGIVEREF(__pyx_r);
27393   __Pyx_RefNannyFinishContext();
27394   return __pyx_r;
27395 }
27396 
27397 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":186
27398  *
27399  *
27400  * cdef object PyMPI_bsend(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
27401  *                         MPI_Comm comm):
27402  *     cdef _p_Pickle pickle = PyMPI_pickle()
27403  */
27404 
__pyx_f_6mpi4py_3MPI_PyMPI_bsend(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm)27405 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_bsend(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm) {
27406   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
27407   void *__pyx_v_sbuf;
27408   int __pyx_v_scount;
27409   MPI_Datatype __pyx_v_stype;
27410   int __pyx_v_dosend;
27411   PyObject *__pyx_v_smsg = 0;
27412   PyObject *__pyx_r = NULL;
27413   __Pyx_RefNannyDeclarations
27414   PyObject *__pyx_t_1 = NULL;
27415   int __pyx_t_2;
27416   int __pyx_lineno = 0;
27417   const char *__pyx_filename = NULL;
27418   int __pyx_clineno = 0;
27419   __Pyx_RefNannySetupContext("PyMPI_bsend");
27420 
27421   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":188
27422  * cdef object PyMPI_bsend(object obj, int dest, int tag,
27423  *                         MPI_Comm comm):
27424  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
27425  *     #
27426  *     cdef void *sbuf = NULL
27427  */
27428   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27429   __Pyx_GOTREF(__pyx_t_1);
27430   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
27431   __pyx_t_1 = 0;
27432 
27433   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":190
27434  *     cdef _p_Pickle pickle = PyMPI_pickle()
27435  *     #
27436  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
27437  *     cdef int scount = 0
27438  *     cdef MPI_Datatype stype = MPI_BYTE
27439  */
27440   __pyx_v_sbuf = NULL;
27441 
27442   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":191
27443  *     #
27444  *     cdef void *sbuf = NULL
27445  *     cdef int scount = 0             # <<<<<<<<<<<<<<
27446  *     cdef MPI_Datatype stype = MPI_BYTE
27447  *     #
27448  */
27449   __pyx_v_scount = 0;
27450 
27451   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":192
27452  *     cdef void *sbuf = NULL
27453  *     cdef int scount = 0
27454  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
27455  *     #
27456  *     cdef int dosend = (dest != MPI_PROC_NULL)
27457  */
27458   __pyx_v_stype = MPI_BYTE;
27459 
27460   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":194
27461  *     cdef MPI_Datatype stype = MPI_BYTE
27462  *     #
27463  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
27464  *     #
27465  *     cdef object smsg = None
27466  */
27467   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
27468 
27469   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":196
27470  *     cdef int dosend = (dest != MPI_PROC_NULL)
27471  *     #
27472  *     cdef object smsg = None             # <<<<<<<<<<<<<<
27473  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27474  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,
27475  */
27476   __Pyx_INCREF(Py_None);
27477   __pyx_v_smsg = Py_None;
27478 
27479   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":197
27480  *     #
27481  *     cdef object smsg = None
27482  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
27483  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,
27484  *                                   dest, tag, comm) )
27485  */
27486   if (__pyx_v_dosend) {
27487     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27488     __Pyx_GOTREF(__pyx_t_1);
27489     __Pyx_DECREF(__pyx_v_smsg);
27490     __pyx_v_smsg = __pyx_t_1;
27491     __pyx_t_1 = 0;
27492     goto __pyx_L3;
27493   }
27494   __pyx_L3:;
27495 
27496   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":198
27497  *     cdef object smsg = None
27498  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27499  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27500  *                                   dest, tag, comm) )
27501  *     return None
27502  */
27503   {
27504       #ifdef WITH_THREAD
27505       PyThreadState *_save = NULL;
27506       #endif
27507       Py_UNBLOCK_THREADS
27508       /*try:*/ {
27509 
27510         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":199
27511  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27512  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,
27513  *                                   dest, tag, comm) )             # <<<<<<<<<<<<<<
27514  *     return None
27515  *
27516  */
27517         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bsend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L5;}
27518       }
27519 
27520       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":198
27521  *     cdef object smsg = None
27522  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27523  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27524  *                                   dest, tag, comm) )
27525  *     return None
27526  */
27527       /*finally:*/ {
27528         int __pyx_why;
27529         __pyx_why = 0; goto __pyx_L6;
27530         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
27531         __pyx_L6:;
27532         Py_BLOCK_THREADS
27533         switch (__pyx_why) {
27534           case 4: goto __pyx_L1_error;
27535         }
27536       }
27537   }
27538 
27539   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":200
27540  *     with nogil: CHKERR( MPI_Bsend(sbuf, scount, stype,
27541  *                                   dest, tag, comm) )
27542  *     return None             # <<<<<<<<<<<<<<
27543  *
27544  *
27545  */
27546   __Pyx_XDECREF(__pyx_r);
27547   __Pyx_INCREF(Py_None);
27548   __pyx_r = Py_None;
27549   goto __pyx_L0;
27550 
27551   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27552   goto __pyx_L0;
27553   __pyx_L1_error:;
27554   __Pyx_XDECREF(__pyx_t_1);
27555   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_bsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
27556   __pyx_r = 0;
27557   __pyx_L0:;
27558   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
27559   __Pyx_XDECREF(__pyx_v_smsg);
27560   __Pyx_XGIVEREF(__pyx_r);
27561   __Pyx_RefNannyFinishContext();
27562   return __pyx_r;
27563 }
27564 
27565 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":203
27566  *
27567  *
27568  * cdef object PyMPI_ssend(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
27569  *                         MPI_Comm comm):
27570  *     cdef _p_Pickle pickle = PyMPI_pickle()
27571  */
27572 
__pyx_f_6mpi4py_3MPI_PyMPI_ssend(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm)27573 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_ssend(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm) {
27574   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
27575   void *__pyx_v_sbuf;
27576   int __pyx_v_scount;
27577   MPI_Datatype __pyx_v_stype;
27578   int __pyx_v_dosend;
27579   PyObject *__pyx_v_smsg = 0;
27580   PyObject *__pyx_r = NULL;
27581   __Pyx_RefNannyDeclarations
27582   PyObject *__pyx_t_1 = NULL;
27583   int __pyx_t_2;
27584   int __pyx_lineno = 0;
27585   const char *__pyx_filename = NULL;
27586   int __pyx_clineno = 0;
27587   __Pyx_RefNannySetupContext("PyMPI_ssend");
27588 
27589   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":205
27590  * cdef object PyMPI_ssend(object obj, int dest, int tag,
27591  *                         MPI_Comm comm):
27592  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
27593  *     #
27594  *     cdef void *sbuf = NULL
27595  */
27596   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27597   __Pyx_GOTREF(__pyx_t_1);
27598   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
27599   __pyx_t_1 = 0;
27600 
27601   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":207
27602  *     cdef _p_Pickle pickle = PyMPI_pickle()
27603  *     #
27604  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
27605  *     cdef int scount = 0
27606  *     cdef MPI_Datatype stype = MPI_BYTE
27607  */
27608   __pyx_v_sbuf = NULL;
27609 
27610   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":208
27611  *     #
27612  *     cdef void *sbuf = NULL
27613  *     cdef int scount = 0             # <<<<<<<<<<<<<<
27614  *     cdef MPI_Datatype stype = MPI_BYTE
27615  *     #
27616  */
27617   __pyx_v_scount = 0;
27618 
27619   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":209
27620  *     cdef void *sbuf = NULL
27621  *     cdef int scount = 0
27622  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
27623  *     #
27624  *     cdef int dosend = (dest != MPI_PROC_NULL)
27625  */
27626   __pyx_v_stype = MPI_BYTE;
27627 
27628   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":211
27629  *     cdef MPI_Datatype stype = MPI_BYTE
27630  *     #
27631  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
27632  *     #
27633  *     cdef object smsg = None
27634  */
27635   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
27636 
27637   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":213
27638  *     cdef int dosend = (dest != MPI_PROC_NULL)
27639  *     #
27640  *     cdef object smsg = None             # <<<<<<<<<<<<<<
27641  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27642  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,
27643  */
27644   __Pyx_INCREF(Py_None);
27645   __pyx_v_smsg = Py_None;
27646 
27647   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":214
27648  *     #
27649  *     cdef object smsg = None
27650  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
27651  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,
27652  *                                   dest, tag, comm) )
27653  */
27654   if (__pyx_v_dosend) {
27655     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27656     __Pyx_GOTREF(__pyx_t_1);
27657     __Pyx_DECREF(__pyx_v_smsg);
27658     __pyx_v_smsg = __pyx_t_1;
27659     __pyx_t_1 = 0;
27660     goto __pyx_L3;
27661   }
27662   __pyx_L3:;
27663 
27664   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":215
27665  *     cdef object smsg = None
27666  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27667  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27668  *                                   dest, tag, comm) )
27669  *     return None
27670  */
27671   {
27672       #ifdef WITH_THREAD
27673       PyThreadState *_save = NULL;
27674       #endif
27675       Py_UNBLOCK_THREADS
27676       /*try:*/ {
27677 
27678         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":216
27679  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27680  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,
27681  *                                   dest, tag, comm) )             # <<<<<<<<<<<<<<
27682  *     return None
27683  *
27684  */
27685         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Ssend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L5;}
27686       }
27687 
27688       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":215
27689  *     cdef object smsg = None
27690  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
27691  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
27692  *                                   dest, tag, comm) )
27693  *     return None
27694  */
27695       /*finally:*/ {
27696         int __pyx_why;
27697         __pyx_why = 0; goto __pyx_L6;
27698         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
27699         __pyx_L6:;
27700         Py_BLOCK_THREADS
27701         switch (__pyx_why) {
27702           case 4: goto __pyx_L1_error;
27703         }
27704       }
27705   }
27706 
27707   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":217
27708  *     with nogil: CHKERR( MPI_Ssend(sbuf, scount, stype,
27709  *                                   dest, tag, comm) )
27710  *     return None             # <<<<<<<<<<<<<<
27711  *
27712  *
27713  */
27714   __Pyx_XDECREF(__pyx_r);
27715   __Pyx_INCREF(Py_None);
27716   __pyx_r = Py_None;
27717   goto __pyx_L0;
27718 
27719   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27720   goto __pyx_L0;
27721   __pyx_L1_error:;
27722   __Pyx_XDECREF(__pyx_t_1);
27723   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_ssend", __pyx_clineno, __pyx_lineno, __pyx_filename);
27724   __pyx_r = 0;
27725   __pyx_L0:;
27726   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
27727   __Pyx_XDECREF(__pyx_v_smsg);
27728   __Pyx_XGIVEREF(__pyx_r);
27729   __Pyx_RefNannyFinishContext();
27730   return __pyx_r;
27731 }
27732 
27733 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":220
27734  *
27735  *
27736  * cdef object PyMPI_recv(object obj, int source, int tag,             # <<<<<<<<<<<<<<
27737  *                        MPI_Comm comm, MPI_Status *status):
27738  *     cdef _p_Pickle pickle = PyMPI_pickle()
27739  */
27740 
__pyx_f_6mpi4py_3MPI_PyMPI_recv(PyObject * __pyx_v_obj,int __pyx_v_source,int __pyx_v_tag,MPI_Comm __pyx_v_comm,MPI_Status * __pyx_v_status)27741 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_recv(PyObject *__pyx_v_obj, int __pyx_v_source, int __pyx_v_tag, MPI_Comm __pyx_v_comm, MPI_Status *__pyx_v_status) {
27742   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
27743   void *__pyx_v_rbuf;
27744   int __pyx_v_rcount;
27745   MPI_Datatype __pyx_v_rtype;
27746   int __pyx_v_dorecv;
27747   PyObject *__pyx_v_rmsg = 0;
27748   MPI_Status __pyx_v_rsts;
27749   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_m = 0;
27750   PyObject *__pyx_r = NULL;
27751   __Pyx_RefNannyDeclarations
27752   PyObject *__pyx_t_1 = NULL;
27753   int __pyx_t_2;
27754   int __pyx_t_3;
27755   int __pyx_lineno = 0;
27756   const char *__pyx_filename = NULL;
27757   int __pyx_clineno = 0;
27758   __Pyx_RefNannySetupContext("PyMPI_recv");
27759 
27760   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":222
27761  * cdef object PyMPI_recv(object obj, int source, int tag,
27762  *                        MPI_Comm comm, MPI_Status *status):
27763  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
27764  *     #
27765  *     cdef void *rbuf = NULL
27766  */
27767   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27768   __Pyx_GOTREF(__pyx_t_1);
27769   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
27770   __pyx_t_1 = 0;
27771 
27772   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":224
27773  *     cdef _p_Pickle pickle = PyMPI_pickle()
27774  *     #
27775  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
27776  *     cdef int rcount = 0
27777  *     cdef MPI_Datatype rtype = MPI_BYTE
27778  */
27779   __pyx_v_rbuf = NULL;
27780 
27781   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":225
27782  *     #
27783  *     cdef void *rbuf = NULL
27784  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
27785  *     cdef MPI_Datatype rtype = MPI_BYTE
27786  *     #
27787  */
27788   __pyx_v_rcount = 0;
27789 
27790   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":226
27791  *     cdef void *rbuf = NULL
27792  *     cdef int rcount = 0
27793  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
27794  *     #
27795  *     cdef int dorecv = (source != MPI_PROC_NULL)
27796  */
27797   __pyx_v_rtype = MPI_BYTE;
27798 
27799   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":228
27800  *     cdef MPI_Datatype rtype = MPI_BYTE
27801  *     #
27802  *     cdef int dorecv = (source != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
27803  *     #
27804  *     cdef object rmsg = None
27805  */
27806   __pyx_v_dorecv = (__pyx_v_source != MPI_PROC_NULL);
27807 
27808   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":230
27809  *     cdef int dorecv = (source != MPI_PROC_NULL)
27810  *     #
27811  *     cdef object rmsg = None             # <<<<<<<<<<<<<<
27812  *     cdef MPI_Status rsts
27813  *     cdef _p_buffer m
27814  */
27815   __Pyx_INCREF(Py_None);
27816   __pyx_v_rmsg = Py_None;
27817 
27818   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":233
27819  *     cdef MPI_Status rsts
27820  *     cdef _p_buffer m
27821  *     if dorecv:             # <<<<<<<<<<<<<<
27822  *         if obj is None:
27823  *             with nogil:
27824  */
27825   if (__pyx_v_dorecv) {
27826 
27827     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":234
27828  *     cdef _p_buffer m
27829  *     if dorecv:
27830  *         if obj is None:             # <<<<<<<<<<<<<<
27831  *             with nogil:
27832  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )
27833  */
27834     __pyx_t_2 = (__pyx_v_obj == Py_None);
27835     if (__pyx_t_2) {
27836 
27837       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":235
27838  *     if dorecv:
27839  *         if obj is None:
27840  *             with nogil:             # <<<<<<<<<<<<<<
27841  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )
27842  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
27843  */
27844       {
27845           #ifdef WITH_THREAD
27846           PyThreadState *_save = NULL;
27847           #endif
27848           Py_UNBLOCK_THREADS
27849           /*try:*/ {
27850 
27851             /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":236
27852  *         if obj is None:
27853  *             with nogil:
27854  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )             # <<<<<<<<<<<<<<
27855  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
27856  *             rmsg = pickle.alloc(&rbuf, rcount)
27857  */
27858             __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Probe(__pyx_v_source, __pyx_v_tag, __pyx_v_comm, (&__pyx_v_rsts))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L6;}
27859 
27860             /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":237
27861  *             with nogil:
27862  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )
27863  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
27864  *             rmsg = pickle.alloc(&rbuf, rcount)
27865  *             source = rsts.MPI_SOURCE
27866  */
27867             __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L6;}
27868           }
27869 
27870           /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":235
27871  *     if dorecv:
27872  *         if obj is None:
27873  *             with nogil:             # <<<<<<<<<<<<<<
27874  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )
27875  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
27876  */
27877           /*finally:*/ {
27878             int __pyx_why;
27879             __pyx_why = 0; goto __pyx_L7;
27880             __pyx_L6: __pyx_why = 4; goto __pyx_L7;
27881             __pyx_L7:;
27882             Py_BLOCK_THREADS
27883             switch (__pyx_why) {
27884               case 4: goto __pyx_L1_error;
27885             }
27886           }
27887       }
27888 
27889       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":238
27890  *                 CHKERR( MPI_Probe(source, tag, comm, &rsts) )
27891  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
27892  *             rmsg = pickle.alloc(&rbuf, rcount)             # <<<<<<<<<<<<<<
27893  *             source = rsts.MPI_SOURCE
27894  *             tag = rsts.MPI_TAG
27895  */
27896       __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->alloc(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_rcount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27897       __Pyx_GOTREF(__pyx_t_1);
27898       __Pyx_DECREF(__pyx_v_rmsg);
27899       __pyx_v_rmsg = __pyx_t_1;
27900       __pyx_t_1 = 0;
27901 
27902       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":239
27903  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
27904  *             rmsg = pickle.alloc(&rbuf, rcount)
27905  *             source = rsts.MPI_SOURCE             # <<<<<<<<<<<<<<
27906  *             tag = rsts.MPI_TAG
27907  *         else:
27908  */
27909       __pyx_v_source = __pyx_v_rsts.MPI_SOURCE;
27910 
27911       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":240
27912  *             rmsg = pickle.alloc(&rbuf, rcount)
27913  *             source = rsts.MPI_SOURCE
27914  *             tag = rsts.MPI_TAG             # <<<<<<<<<<<<<<
27915  *         else:
27916  *             rmsg = m = getbuffer(obj, 0, 0)
27917  */
27918       __pyx_v_tag = __pyx_v_rsts.MPI_TAG;
27919       goto __pyx_L4;
27920     }
27921     /*else*/ {
27922 
27923       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":242
27924  *             tag = rsts.MPI_TAG
27925  *         else:
27926  *             rmsg = m = getbuffer(obj, 0, 0)             # <<<<<<<<<<<<<<
27927  *             rbuf = m.view.buf
27928  *             rcount = <int> m.view.len # XXX overflow?
27929  */
27930       __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_obj, 0, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
27931       __Pyx_GOTREF(__pyx_t_1);
27932       __Pyx_INCREF(__pyx_t_1);
27933       __Pyx_DECREF(__pyx_v_rmsg);
27934       __pyx_v_rmsg = __pyx_t_1;
27935       __Pyx_INCREF(__pyx_t_1);
27936       __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
27937       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
27938 
27939       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":243
27940  *         else:
27941  *             rmsg = m = getbuffer(obj, 0, 0)
27942  *             rbuf = m.view.buf             # <<<<<<<<<<<<<<
27943  *             rcount = <int> m.view.len # XXX overflow?
27944  *     #
27945  */
27946       __pyx_v_rbuf = __pyx_v_m->view.buf;
27947 
27948       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":244
27949  *             rmsg = m = getbuffer(obj, 0, 0)
27950  *             rbuf = m.view.buf
27951  *             rcount = <int> m.view.len # XXX overflow?             # <<<<<<<<<<<<<<
27952  *     #
27953  *     with nogil: CHKERR( MPI_Recv(rbuf, rcount, rtype,
27954  */
27955       __pyx_v_rcount = ((int)__pyx_v_m->view.len);
27956     }
27957     __pyx_L4:;
27958     goto __pyx_L3;
27959   }
27960   __pyx_L3:;
27961 
27962   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":246
27963  *             rcount = <int> m.view.len # XXX overflow?
27964  *     #
27965  *     with nogil: CHKERR( MPI_Recv(rbuf, rcount, rtype,             # <<<<<<<<<<<<<<
27966  *                                  source, tag, comm, status) )
27967  *     if dorecv: rmsg = pickle.load(rmsg)
27968  */
27969   {
27970       #ifdef WITH_THREAD
27971       PyThreadState *_save = NULL;
27972       #endif
27973       Py_UNBLOCK_THREADS
27974       /*try:*/ {
27975 
27976         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":247
27977  *     #
27978  *     with nogil: CHKERR( MPI_Recv(rbuf, rcount, rtype,
27979  *                                  source, tag, comm, status) )             # <<<<<<<<<<<<<<
27980  *     if dorecv: rmsg = pickle.load(rmsg)
27981  *     return rmsg
27982  */
27983         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Recv(__pyx_v_rbuf, __pyx_v_rcount, __pyx_v_rtype, __pyx_v_source, __pyx_v_tag, __pyx_v_comm, __pyx_v_status)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L10;}
27984       }
27985 
27986       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":246
27987  *             rcount = <int> m.view.len # XXX overflow?
27988  *     #
27989  *     with nogil: CHKERR( MPI_Recv(rbuf, rcount, rtype,             # <<<<<<<<<<<<<<
27990  *                                  source, tag, comm, status) )
27991  *     if dorecv: rmsg = pickle.load(rmsg)
27992  */
27993       /*finally:*/ {
27994         int __pyx_why;
27995         __pyx_why = 0; goto __pyx_L11;
27996         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
27997         __pyx_L11:;
27998         Py_BLOCK_THREADS
27999         switch (__pyx_why) {
28000           case 4: goto __pyx_L1_error;
28001         }
28002       }
28003   }
28004 
28005   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":248
28006  *     with nogil: CHKERR( MPI_Recv(rbuf, rcount, rtype,
28007  *                                  source, tag, comm, status) )
28008  *     if dorecv: rmsg = pickle.load(rmsg)             # <<<<<<<<<<<<<<
28009  *     return rmsg
28010  *
28011  */
28012   if (__pyx_v_dorecv) {
28013     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_rmsg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28014     __Pyx_GOTREF(__pyx_t_1);
28015     __Pyx_DECREF(__pyx_v_rmsg);
28016     __pyx_v_rmsg = __pyx_t_1;
28017     __pyx_t_1 = 0;
28018     goto __pyx_L13;
28019   }
28020   __pyx_L13:;
28021 
28022   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":249
28023  *                                  source, tag, comm, status) )
28024  *     if dorecv: rmsg = pickle.load(rmsg)
28025  *     return rmsg             # <<<<<<<<<<<<<<
28026  *
28027  *
28028  */
28029   __Pyx_XDECREF(__pyx_r);
28030   __Pyx_INCREF(__pyx_v_rmsg);
28031   __pyx_r = __pyx_v_rmsg;
28032   goto __pyx_L0;
28033 
28034   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28035   goto __pyx_L0;
28036   __pyx_L1_error:;
28037   __Pyx_XDECREF(__pyx_t_1);
28038   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
28039   __pyx_r = 0;
28040   __pyx_L0:;
28041   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
28042   __Pyx_XDECREF(__pyx_v_rmsg);
28043   __Pyx_XDECREF((PyObject *)__pyx_v_m);
28044   __Pyx_XGIVEREF(__pyx_r);
28045   __Pyx_RefNannyFinishContext();
28046   return __pyx_r;
28047 }
28048 
28049 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":252
28050  *
28051  *
28052  * cdef object PyMPI_sendrecv(object sobj, int dest,   int sendtag,             # <<<<<<<<<<<<<<
28053  *                            object robj, int source, int recvtag,
28054  *                            MPI_Comm comm, MPI_Status *status):
28055  */
28056 
__pyx_f_6mpi4py_3MPI_PyMPI_sendrecv(PyObject * __pyx_v_sobj,int __pyx_v_dest,int __pyx_v_sendtag,PyObject * __pyx_v_robj,int __pyx_v_source,int __pyx_v_recvtag,MPI_Comm __pyx_v_comm,MPI_Status * __pyx_v_status)28057 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_sendrecv(PyObject *__pyx_v_sobj, int __pyx_v_dest, int __pyx_v_sendtag, PyObject *__pyx_v_robj, int __pyx_v_source, int __pyx_v_recvtag, MPI_Comm __pyx_v_comm, MPI_Status *__pyx_v_status) {
28058   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
28059   void *__pyx_v_sbuf;
28060   int __pyx_v_scount;
28061   MPI_Datatype __pyx_v_stype;
28062   void *__pyx_v_rbuf;
28063   int __pyx_v_rcount;
28064   MPI_Datatype __pyx_v_rtype;
28065   int __pyx_v_dosend;
28066   int __pyx_v_dorecv;
28067   PyObject *__pyx_v_smsg = 0;
28068   MPI_Request __pyx_v_sreq;
28069   PyObject *__pyx_v_rmsg = 0;
28070   MPI_Status __pyx_v_rsts;
28071   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_m = 0;
28072   PyObject *__pyx_r = NULL;
28073   __Pyx_RefNannyDeclarations
28074   PyObject *__pyx_t_1 = NULL;
28075   int __pyx_t_2;
28076   int __pyx_t_3;
28077   int __pyx_lineno = 0;
28078   const char *__pyx_filename = NULL;
28079   int __pyx_clineno = 0;
28080   __Pyx_RefNannySetupContext("PyMPI_sendrecv");
28081 
28082   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":255
28083  *                            object robj, int source, int recvtag,
28084  *                            MPI_Comm comm, MPI_Status *status):
28085  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
28086  *     #
28087  *     cdef void *sbuf = NULL
28088  */
28089   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28090   __Pyx_GOTREF(__pyx_t_1);
28091   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
28092   __pyx_t_1 = 0;
28093 
28094   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":257
28095  *     cdef _p_Pickle pickle = PyMPI_pickle()
28096  *     #
28097  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
28098  *     cdef int scount = 0
28099  *     cdef MPI_Datatype stype = MPI_BYTE
28100  */
28101   __pyx_v_sbuf = NULL;
28102 
28103   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":258
28104  *     #
28105  *     cdef void *sbuf = NULL
28106  *     cdef int scount = 0             # <<<<<<<<<<<<<<
28107  *     cdef MPI_Datatype stype = MPI_BYTE
28108  *     cdef void *rbuf = NULL
28109  */
28110   __pyx_v_scount = 0;
28111 
28112   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":259
28113  *     cdef void *sbuf = NULL
28114  *     cdef int scount = 0
28115  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
28116  *     cdef void *rbuf = NULL
28117  *     cdef int rcount = 0
28118  */
28119   __pyx_v_stype = MPI_BYTE;
28120 
28121   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":260
28122  *     cdef int scount = 0
28123  *     cdef MPI_Datatype stype = MPI_BYTE
28124  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
28125  *     cdef int rcount = 0
28126  *     cdef MPI_Datatype rtype = MPI_BYTE
28127  */
28128   __pyx_v_rbuf = NULL;
28129 
28130   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":261
28131  *     cdef MPI_Datatype stype = MPI_BYTE
28132  *     cdef void *rbuf = NULL
28133  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
28134  *     cdef MPI_Datatype rtype = MPI_BYTE
28135  *     #
28136  */
28137   __pyx_v_rcount = 0;
28138 
28139   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":262
28140  *     cdef void *rbuf = NULL
28141  *     cdef int rcount = 0
28142  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
28143  *     #
28144  *     cdef int dosend = (dest   != MPI_PROC_NULL)
28145  */
28146   __pyx_v_rtype = MPI_BYTE;
28147 
28148   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":264
28149  *     cdef MPI_Datatype rtype = MPI_BYTE
28150  *     #
28151  *     cdef int dosend = (dest   != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
28152  *     cdef int dorecv = (source != MPI_PROC_NULL)
28153  *     #
28154  */
28155   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
28156 
28157   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":265
28158  *     #
28159  *     cdef int dosend = (dest   != MPI_PROC_NULL)
28160  *     cdef int dorecv = (source != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
28161  *     #
28162  *     cdef object smsg = None
28163  */
28164   __pyx_v_dorecv = (__pyx_v_source != MPI_PROC_NULL);
28165 
28166   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":267
28167  *     cdef int dorecv = (source != MPI_PROC_NULL)
28168  *     #
28169  *     cdef object smsg = None             # <<<<<<<<<<<<<<
28170  *     if dosend: smsg = pickle.dump(sobj, &sbuf, &scount)
28171  *     cdef MPI_Request sreq = MPI_REQUEST_NULL
28172  */
28173   __Pyx_INCREF(Py_None);
28174   __pyx_v_smsg = Py_None;
28175 
28176   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":268
28177  *     #
28178  *     cdef object smsg = None
28179  *     if dosend: smsg = pickle.dump(sobj, &sbuf, &scount)             # <<<<<<<<<<<<<<
28180  *     cdef MPI_Request sreq = MPI_REQUEST_NULL
28181  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28182  */
28183   if (__pyx_v_dosend) {
28184     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_sobj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28185     __Pyx_GOTREF(__pyx_t_1);
28186     __Pyx_DECREF(__pyx_v_smsg);
28187     __pyx_v_smsg = __pyx_t_1;
28188     __pyx_t_1 = 0;
28189     goto __pyx_L3;
28190   }
28191   __pyx_L3:;
28192 
28193   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":269
28194  *     cdef object smsg = None
28195  *     if dosend: smsg = pickle.dump(sobj, &sbuf, &scount)
28196  *     cdef MPI_Request sreq = MPI_REQUEST_NULL             # <<<<<<<<<<<<<<
28197  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28198  *                                   dest, sendtag, comm, &sreq) )
28199  */
28200   __pyx_v_sreq = MPI_REQUEST_NULL;
28201 
28202   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":270
28203  *     if dosend: smsg = pickle.dump(sobj, &sbuf, &scount)
28204  *     cdef MPI_Request sreq = MPI_REQUEST_NULL
28205  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28206  *                                   dest, sendtag, comm, &sreq) )
28207  *     #
28208  */
28209   {
28210       #ifdef WITH_THREAD
28211       PyThreadState *_save = NULL;
28212       #endif
28213       Py_UNBLOCK_THREADS
28214       /*try:*/ {
28215 
28216         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":271
28217  *     cdef MPI_Request sreq = MPI_REQUEST_NULL
28218  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28219  *                                   dest, sendtag, comm, &sreq) )             # <<<<<<<<<<<<<<
28220  *     #
28221  *     cdef object rmsg = None
28222  */
28223         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Isend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_sendtag, __pyx_v_comm, (&__pyx_v_sreq))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L5;}
28224       }
28225 
28226       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":270
28227  *     if dosend: smsg = pickle.dump(sobj, &sbuf, &scount)
28228  *     cdef MPI_Request sreq = MPI_REQUEST_NULL
28229  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28230  *                                   dest, sendtag, comm, &sreq) )
28231  *     #
28232  */
28233       /*finally:*/ {
28234         int __pyx_why;
28235         __pyx_why = 0; goto __pyx_L6;
28236         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
28237         __pyx_L6:;
28238         Py_BLOCK_THREADS
28239         switch (__pyx_why) {
28240           case 4: goto __pyx_L1_error;
28241         }
28242       }
28243   }
28244 
28245   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":273
28246  *                                   dest, sendtag, comm, &sreq) )
28247  *     #
28248  *     cdef object rmsg = None             # <<<<<<<<<<<<<<
28249  *     cdef MPI_Status rsts
28250  *     cdef _p_buffer m
28251  */
28252   __Pyx_INCREF(Py_None);
28253   __pyx_v_rmsg = Py_None;
28254 
28255   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":276
28256  *     cdef MPI_Status rsts
28257  *     cdef _p_buffer m
28258  *     if dorecv:             # <<<<<<<<<<<<<<
28259  *         if robj is None:
28260  *             with nogil:
28261  */
28262   if (__pyx_v_dorecv) {
28263 
28264     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":277
28265  *     cdef _p_buffer m
28266  *     if dorecv:
28267  *         if robj is None:             # <<<<<<<<<<<<<<
28268  *             with nogil:
28269  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )
28270  */
28271     __pyx_t_3 = (__pyx_v_robj == Py_None);
28272     if (__pyx_t_3) {
28273 
28274       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":278
28275  *     if dorecv:
28276  *         if robj is None:
28277  *             with nogil:             # <<<<<<<<<<<<<<
28278  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )
28279  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
28280  */
28281       {
28282           #ifdef WITH_THREAD
28283           PyThreadState *_save = NULL;
28284           #endif
28285           Py_UNBLOCK_THREADS
28286           /*try:*/ {
28287 
28288             /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":279
28289  *         if robj is None:
28290  *             with nogil:
28291  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )             # <<<<<<<<<<<<<<
28292  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
28293  *             rmsg = pickle.alloc(&rbuf, rcount)
28294  */
28295             __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Probe(__pyx_v_source, __pyx_v_recvtag, __pyx_v_comm, (&__pyx_v_rsts))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L11;}
28296 
28297             /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":280
28298  *             with nogil:
28299  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )
28300  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
28301  *             rmsg = pickle.alloc(&rbuf, rcount)
28302  *             source = rsts.MPI_SOURCE
28303  */
28304             __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L11;}
28305           }
28306 
28307           /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":278
28308  *     if dorecv:
28309  *         if robj is None:
28310  *             with nogil:             # <<<<<<<<<<<<<<
28311  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )
28312  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
28313  */
28314           /*finally:*/ {
28315             int __pyx_why;
28316             __pyx_why = 0; goto __pyx_L12;
28317             __pyx_L11: __pyx_why = 4; goto __pyx_L12;
28318             __pyx_L12:;
28319             Py_BLOCK_THREADS
28320             switch (__pyx_why) {
28321               case 4: goto __pyx_L1_error;
28322             }
28323           }
28324       }
28325 
28326       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":281
28327  *                 CHKERR( MPI_Probe(source, recvtag, comm, &rsts) )
28328  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
28329  *             rmsg = pickle.alloc(&rbuf, rcount)             # <<<<<<<<<<<<<<
28330  *             source = rsts.MPI_SOURCE
28331  *             recvtag = rsts.MPI_TAG
28332  */
28333       __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->alloc(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_rcount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28334       __Pyx_GOTREF(__pyx_t_1);
28335       __Pyx_DECREF(__pyx_v_rmsg);
28336       __pyx_v_rmsg = __pyx_t_1;
28337       __pyx_t_1 = 0;
28338 
28339       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":282
28340  *                 CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
28341  *             rmsg = pickle.alloc(&rbuf, rcount)
28342  *             source = rsts.MPI_SOURCE             # <<<<<<<<<<<<<<
28343  *             recvtag = rsts.MPI_TAG
28344  *         else:
28345  */
28346       __pyx_v_source = __pyx_v_rsts.MPI_SOURCE;
28347 
28348       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":283
28349  *             rmsg = pickle.alloc(&rbuf, rcount)
28350  *             source = rsts.MPI_SOURCE
28351  *             recvtag = rsts.MPI_TAG             # <<<<<<<<<<<<<<
28352  *         else:
28353  *             rmsg = m = getbuffer(robj, 0, 0)
28354  */
28355       __pyx_v_recvtag = __pyx_v_rsts.MPI_TAG;
28356       goto __pyx_L9;
28357     }
28358     /*else*/ {
28359 
28360       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":285
28361  *             recvtag = rsts.MPI_TAG
28362  *         else:
28363  *             rmsg = m = getbuffer(robj, 0, 0)             # <<<<<<<<<<<<<<
28364  *             rbuf = m.view.buf
28365  *             rcount = <int> m.view.len # XXX overflow?
28366  */
28367       __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_robj, 0, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28368       __Pyx_GOTREF(__pyx_t_1);
28369       __Pyx_INCREF(__pyx_t_1);
28370       __Pyx_DECREF(__pyx_v_rmsg);
28371       __pyx_v_rmsg = __pyx_t_1;
28372       __Pyx_INCREF(__pyx_t_1);
28373       __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
28374       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28375 
28376       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":286
28377  *         else:
28378  *             rmsg = m = getbuffer(robj, 0, 0)
28379  *             rbuf = m.view.buf             # <<<<<<<<<<<<<<
28380  *             rcount = <int> m.view.len # XXX overflow?
28381  *     #
28382  */
28383       __pyx_v_rbuf = __pyx_v_m->view.buf;
28384 
28385       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":287
28386  *             rmsg = m = getbuffer(robj, 0, 0)
28387  *             rbuf = m.view.buf
28388  *             rcount = <int> m.view.len # XXX overflow?             # <<<<<<<<<<<<<<
28389  *     #
28390  *     with nogil:
28391  */
28392       __pyx_v_rcount = ((int)__pyx_v_m->view.len);
28393     }
28394     __pyx_L9:;
28395     goto __pyx_L8;
28396   }
28397   __pyx_L8:;
28398 
28399   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":289
28400  *             rcount = <int> m.view.len # XXX overflow?
28401  *     #
28402  *     with nogil:             # <<<<<<<<<<<<<<
28403  *         CHKERR( MPI_Recv(rbuf, rcount, rtype,
28404  *                          source, recvtag, comm, status) )
28405  */
28406   {
28407       #ifdef WITH_THREAD
28408       PyThreadState *_save = NULL;
28409       #endif
28410       Py_UNBLOCK_THREADS
28411       /*try:*/ {
28412 
28413         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":291
28414  *     with nogil:
28415  *         CHKERR( MPI_Recv(rbuf, rcount, rtype,
28416  *                          source, recvtag, comm, status) )             # <<<<<<<<<<<<<<
28417  *         CHKERR( MPI_Wait(&sreq, MPI_STATUS_IGNORE) )
28418  *     if dorecv: rmsg = pickle.load(rmsg)
28419  */
28420         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Recv(__pyx_v_rbuf, __pyx_v_rcount, __pyx_v_rtype, __pyx_v_source, __pyx_v_recvtag, __pyx_v_comm, __pyx_v_status)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L15;}
28421 
28422         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":292
28423  *         CHKERR( MPI_Recv(rbuf, rcount, rtype,
28424  *                          source, recvtag, comm, status) )
28425  *         CHKERR( MPI_Wait(&sreq, MPI_STATUS_IGNORE) )             # <<<<<<<<<<<<<<
28426  *     if dorecv: rmsg = pickle.load(rmsg)
28427  *     return rmsg
28428  */
28429         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Wait((&__pyx_v_sreq), MPI_STATUS_IGNORE)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L15;}
28430       }
28431 
28432       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":289
28433  *             rcount = <int> m.view.len # XXX overflow?
28434  *     #
28435  *     with nogil:             # <<<<<<<<<<<<<<
28436  *         CHKERR( MPI_Recv(rbuf, rcount, rtype,
28437  *                          source, recvtag, comm, status) )
28438  */
28439       /*finally:*/ {
28440         int __pyx_why;
28441         __pyx_why = 0; goto __pyx_L16;
28442         __pyx_L15: __pyx_why = 4; goto __pyx_L16;
28443         __pyx_L16:;
28444         Py_BLOCK_THREADS
28445         switch (__pyx_why) {
28446           case 4: goto __pyx_L1_error;
28447         }
28448       }
28449   }
28450 
28451   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":293
28452  *                          source, recvtag, comm, status) )
28453  *         CHKERR( MPI_Wait(&sreq, MPI_STATUS_IGNORE) )
28454  *     if dorecv: rmsg = pickle.load(rmsg)             # <<<<<<<<<<<<<<
28455  *     return rmsg
28456  *
28457  */
28458   if (__pyx_v_dorecv) {
28459     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_rmsg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28460     __Pyx_GOTREF(__pyx_t_1);
28461     __Pyx_DECREF(__pyx_v_rmsg);
28462     __pyx_v_rmsg = __pyx_t_1;
28463     __pyx_t_1 = 0;
28464     goto __pyx_L18;
28465   }
28466   __pyx_L18:;
28467 
28468   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":294
28469  *         CHKERR( MPI_Wait(&sreq, MPI_STATUS_IGNORE) )
28470  *     if dorecv: rmsg = pickle.load(rmsg)
28471  *     return rmsg             # <<<<<<<<<<<<<<
28472  *
28473  * # -----------------------------------------------------------------------------
28474  */
28475   __Pyx_XDECREF(__pyx_r);
28476   __Pyx_INCREF(__pyx_v_rmsg);
28477   __pyx_r = __pyx_v_rmsg;
28478   goto __pyx_L0;
28479 
28480   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28481   goto __pyx_L0;
28482   __pyx_L1_error:;
28483   __Pyx_XDECREF(__pyx_t_1);
28484   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_sendrecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
28485   __pyx_r = 0;
28486   __pyx_L0:;
28487   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
28488   __Pyx_XDECREF(__pyx_v_smsg);
28489   __Pyx_XDECREF(__pyx_v_rmsg);
28490   __Pyx_XDECREF((PyObject *)__pyx_v_m);
28491   __Pyx_XGIVEREF(__pyx_r);
28492   __Pyx_RefNannyFinishContext();
28493   return __pyx_r;
28494 }
28495 
28496 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":298
28497  * # -----------------------------------------------------------------------------
28498  *
28499  * cdef object PyMPI_isend(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
28500  *                         MPI_Comm comm, MPI_Request *request):
28501  *     cdef _p_Pickle pickle = PyMPI_pickle()
28502  */
28503 
__pyx_f_6mpi4py_3MPI_PyMPI_isend(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm,MPI_Request * __pyx_v_request)28504 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_isend(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm, MPI_Request *__pyx_v_request) {
28505   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
28506   void *__pyx_v_sbuf;
28507   int __pyx_v_scount;
28508   MPI_Datatype __pyx_v_stype;
28509   PyObject *__pyx_v_smsg = 0;
28510   int __pyx_v_dosend;
28511   PyObject *__pyx_r = NULL;
28512   __Pyx_RefNannyDeclarations
28513   PyObject *__pyx_t_1 = NULL;
28514   int __pyx_t_2;
28515   int __pyx_lineno = 0;
28516   const char *__pyx_filename = NULL;
28517   int __pyx_clineno = 0;
28518   __Pyx_RefNannySetupContext("PyMPI_isend");
28519 
28520   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":300
28521  * cdef object PyMPI_isend(object obj, int dest, int tag,
28522  *                         MPI_Comm comm, MPI_Request *request):
28523  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
28524  *     #
28525  *     cdef void *sbuf = NULL
28526  */
28527   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28528   __Pyx_GOTREF(__pyx_t_1);
28529   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
28530   __pyx_t_1 = 0;
28531 
28532   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":302
28533  *     cdef _p_Pickle pickle = PyMPI_pickle()
28534  *     #
28535  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
28536  *     cdef int scount = 0
28537  *     cdef MPI_Datatype stype = MPI_BYTE
28538  */
28539   __pyx_v_sbuf = NULL;
28540 
28541   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":303
28542  *     #
28543  *     cdef void *sbuf = NULL
28544  *     cdef int scount = 0             # <<<<<<<<<<<<<<
28545  *     cdef MPI_Datatype stype = MPI_BYTE
28546  *     #
28547  */
28548   __pyx_v_scount = 0;
28549 
28550   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":304
28551  *     cdef void *sbuf = NULL
28552  *     cdef int scount = 0
28553  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
28554  *     #
28555  *     cdef object smsg = None
28556  */
28557   __pyx_v_stype = MPI_BYTE;
28558 
28559   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":306
28560  *     cdef MPI_Datatype stype = MPI_BYTE
28561  *     #
28562  *     cdef object smsg = None             # <<<<<<<<<<<<<<
28563  *     cdef int dosend = (dest != MPI_PROC_NULL)
28564  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28565  */
28566   __Pyx_INCREF(Py_None);
28567   __pyx_v_smsg = Py_None;
28568 
28569   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":307
28570  *     #
28571  *     cdef object smsg = None
28572  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
28573  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28574  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28575  */
28576   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
28577 
28578   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":308
28579  *     cdef object smsg = None
28580  *     cdef int dosend = (dest != MPI_PROC_NULL)
28581  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
28582  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28583  *                                   dest, tag, comm, request) )
28584  */
28585   if (__pyx_v_dosend) {
28586     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28587     __Pyx_GOTREF(__pyx_t_1);
28588     __Pyx_DECREF(__pyx_v_smsg);
28589     __pyx_v_smsg = __pyx_t_1;
28590     __pyx_t_1 = 0;
28591     goto __pyx_L3;
28592   }
28593   __pyx_L3:;
28594 
28595   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":309
28596  *     cdef int dosend = (dest != MPI_PROC_NULL)
28597  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28598  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28599  *                                   dest, tag, comm, request) )
28600  *     return smsg
28601  */
28602   {
28603       #ifdef WITH_THREAD
28604       PyThreadState *_save = NULL;
28605       #endif
28606       Py_UNBLOCK_THREADS
28607       /*try:*/ {
28608 
28609         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":310
28610  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28611  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28612  *                                   dest, tag, comm, request) )             # <<<<<<<<<<<<<<
28613  *     return smsg
28614  *
28615  */
28616         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Isend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, __pyx_v_request)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L5;}
28617       }
28618 
28619       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":309
28620  *     cdef int dosend = (dest != MPI_PROC_NULL)
28621  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28622  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28623  *                                   dest, tag, comm, request) )
28624  *     return smsg
28625  */
28626       /*finally:*/ {
28627         int __pyx_why;
28628         __pyx_why = 0; goto __pyx_L6;
28629         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
28630         __pyx_L6:;
28631         Py_BLOCK_THREADS
28632         switch (__pyx_why) {
28633           case 4: goto __pyx_L1_error;
28634         }
28635       }
28636   }
28637 
28638   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":311
28639  *     with nogil: CHKERR( MPI_Isend(sbuf, scount, stype,
28640  *                                   dest, tag, comm, request) )
28641  *     return smsg             # <<<<<<<<<<<<<<
28642  *
28643  *
28644  */
28645   __Pyx_XDECREF(__pyx_r);
28646   __Pyx_INCREF(__pyx_v_smsg);
28647   __pyx_r = __pyx_v_smsg;
28648   goto __pyx_L0;
28649 
28650   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28651   goto __pyx_L0;
28652   __pyx_L1_error:;
28653   __Pyx_XDECREF(__pyx_t_1);
28654   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_isend", __pyx_clineno, __pyx_lineno, __pyx_filename);
28655   __pyx_r = 0;
28656   __pyx_L0:;
28657   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
28658   __Pyx_XDECREF(__pyx_v_smsg);
28659   __Pyx_XGIVEREF(__pyx_r);
28660   __Pyx_RefNannyFinishContext();
28661   return __pyx_r;
28662 }
28663 
28664 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":314
28665  *
28666  *
28667  * cdef object PyMPI_ibsend(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
28668  *                          MPI_Comm comm, MPI_Request *request):
28669  *     cdef _p_Pickle pickle = PyMPI_pickle()
28670  */
28671 
__pyx_f_6mpi4py_3MPI_PyMPI_ibsend(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm,MPI_Request * __pyx_v_request)28672 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_ibsend(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm, MPI_Request *__pyx_v_request) {
28673   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
28674   void *__pyx_v_sbuf;
28675   int __pyx_v_scount;
28676   MPI_Datatype __pyx_v_stype;
28677   PyObject *__pyx_v_smsg = 0;
28678   int __pyx_v_dosend;
28679   PyObject *__pyx_r = NULL;
28680   __Pyx_RefNannyDeclarations
28681   PyObject *__pyx_t_1 = NULL;
28682   int __pyx_t_2;
28683   int __pyx_lineno = 0;
28684   const char *__pyx_filename = NULL;
28685   int __pyx_clineno = 0;
28686   __Pyx_RefNannySetupContext("PyMPI_ibsend");
28687 
28688   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":316
28689  * cdef object PyMPI_ibsend(object obj, int dest, int tag,
28690  *                          MPI_Comm comm, MPI_Request *request):
28691  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
28692  *     #
28693  *     cdef void *sbuf = NULL
28694  */
28695   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28696   __Pyx_GOTREF(__pyx_t_1);
28697   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
28698   __pyx_t_1 = 0;
28699 
28700   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":318
28701  *     cdef _p_Pickle pickle = PyMPI_pickle()
28702  *     #
28703  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
28704  *     cdef int scount = 0
28705  *     cdef MPI_Datatype stype = MPI_BYTE
28706  */
28707   __pyx_v_sbuf = NULL;
28708 
28709   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":319
28710  *     #
28711  *     cdef void *sbuf = NULL
28712  *     cdef int scount = 0             # <<<<<<<<<<<<<<
28713  *     cdef MPI_Datatype stype = MPI_BYTE
28714  *     #
28715  */
28716   __pyx_v_scount = 0;
28717 
28718   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":320
28719  *     cdef void *sbuf = NULL
28720  *     cdef int scount = 0
28721  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
28722  *     #
28723  *     cdef object smsg = None
28724  */
28725   __pyx_v_stype = MPI_BYTE;
28726 
28727   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":322
28728  *     cdef MPI_Datatype stype = MPI_BYTE
28729  *     #
28730  *     cdef object smsg = None             # <<<<<<<<<<<<<<
28731  *     cdef int dosend = (dest != MPI_PROC_NULL)
28732  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28733  */
28734   __Pyx_INCREF(Py_None);
28735   __pyx_v_smsg = Py_None;
28736 
28737   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":323
28738  *     #
28739  *     cdef object smsg = None
28740  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
28741  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28742  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,
28743  */
28744   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
28745 
28746   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":324
28747  *     cdef object smsg = None
28748  *     cdef int dosend = (dest != MPI_PROC_NULL)
28749  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
28750  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,
28751  *                                    dest, tag, comm, request) )
28752  */
28753   if (__pyx_v_dosend) {
28754     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28755     __Pyx_GOTREF(__pyx_t_1);
28756     __Pyx_DECREF(__pyx_v_smsg);
28757     __pyx_v_smsg = __pyx_t_1;
28758     __pyx_t_1 = 0;
28759     goto __pyx_L3;
28760   }
28761   __pyx_L3:;
28762 
28763   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":325
28764  *     cdef int dosend = (dest != MPI_PROC_NULL)
28765  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28766  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28767  *                                    dest, tag, comm, request) )
28768  *     return smsg
28769  */
28770   {
28771       #ifdef WITH_THREAD
28772       PyThreadState *_save = NULL;
28773       #endif
28774       Py_UNBLOCK_THREADS
28775       /*try:*/ {
28776 
28777         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":326
28778  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28779  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,
28780  *                                    dest, tag, comm, request) )             # <<<<<<<<<<<<<<
28781  *     return smsg
28782  *
28783  */
28784         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Ibsend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, __pyx_v_request)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L5;}
28785       }
28786 
28787       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":325
28788  *     cdef int dosend = (dest != MPI_PROC_NULL)
28789  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28790  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28791  *                                    dest, tag, comm, request) )
28792  *     return smsg
28793  */
28794       /*finally:*/ {
28795         int __pyx_why;
28796         __pyx_why = 0; goto __pyx_L6;
28797         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
28798         __pyx_L6:;
28799         Py_BLOCK_THREADS
28800         switch (__pyx_why) {
28801           case 4: goto __pyx_L1_error;
28802         }
28803       }
28804   }
28805 
28806   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":327
28807  *     with nogil: CHKERR( MPI_Ibsend(sbuf, scount, stype,
28808  *                                    dest, tag, comm, request) )
28809  *     return smsg             # <<<<<<<<<<<<<<
28810  *
28811  *
28812  */
28813   __Pyx_XDECREF(__pyx_r);
28814   __Pyx_INCREF(__pyx_v_smsg);
28815   __pyx_r = __pyx_v_smsg;
28816   goto __pyx_L0;
28817 
28818   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28819   goto __pyx_L0;
28820   __pyx_L1_error:;
28821   __Pyx_XDECREF(__pyx_t_1);
28822   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_ibsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
28823   __pyx_r = 0;
28824   __pyx_L0:;
28825   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
28826   __Pyx_XDECREF(__pyx_v_smsg);
28827   __Pyx_XGIVEREF(__pyx_r);
28828   __Pyx_RefNannyFinishContext();
28829   return __pyx_r;
28830 }
28831 
28832 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":330
28833  *
28834  *
28835  * cdef object PyMPI_issend(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
28836  *                          MPI_Comm comm, MPI_Request *request):
28837  *     cdef _p_Pickle pickle = PyMPI_pickle()
28838  */
28839 
__pyx_f_6mpi4py_3MPI_PyMPI_issend(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm,MPI_Request * __pyx_v_request)28840 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_issend(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm, MPI_Request *__pyx_v_request) {
28841   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
28842   void *__pyx_v_sbuf;
28843   int __pyx_v_scount;
28844   MPI_Datatype __pyx_v_stype;
28845   PyObject *__pyx_v_smsg = 0;
28846   int __pyx_v_dosend;
28847   PyObject *__pyx_r = NULL;
28848   __Pyx_RefNannyDeclarations
28849   PyObject *__pyx_t_1 = NULL;
28850   int __pyx_t_2;
28851   int __pyx_lineno = 0;
28852   const char *__pyx_filename = NULL;
28853   int __pyx_clineno = 0;
28854   __Pyx_RefNannySetupContext("PyMPI_issend");
28855 
28856   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":332
28857  * cdef object PyMPI_issend(object obj, int dest, int tag,
28858  *                          MPI_Comm comm, MPI_Request *request):
28859  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
28860  *     #
28861  *     cdef void *sbuf = NULL
28862  */
28863   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28864   __Pyx_GOTREF(__pyx_t_1);
28865   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
28866   __pyx_t_1 = 0;
28867 
28868   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":334
28869  *     cdef _p_Pickle pickle = PyMPI_pickle()
28870  *     #
28871  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
28872  *     cdef int scount = 0
28873  *     cdef MPI_Datatype stype = MPI_BYTE
28874  */
28875   __pyx_v_sbuf = NULL;
28876 
28877   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":335
28878  *     #
28879  *     cdef void *sbuf = NULL
28880  *     cdef int scount = 0             # <<<<<<<<<<<<<<
28881  *     cdef MPI_Datatype stype = MPI_BYTE
28882  *     #
28883  */
28884   __pyx_v_scount = 0;
28885 
28886   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":336
28887  *     cdef void *sbuf = NULL
28888  *     cdef int scount = 0
28889  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
28890  *     #
28891  *     cdef object smsg = None
28892  */
28893   __pyx_v_stype = MPI_BYTE;
28894 
28895   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":338
28896  *     cdef MPI_Datatype stype = MPI_BYTE
28897  *     #
28898  *     cdef object smsg = None             # <<<<<<<<<<<<<<
28899  *     cdef int dosend = (dest != MPI_PROC_NULL)
28900  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28901  */
28902   __Pyx_INCREF(Py_None);
28903   __pyx_v_smsg = Py_None;
28904 
28905   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":339
28906  *     #
28907  *     cdef object smsg = None
28908  *     cdef int dosend = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
28909  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28910  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,
28911  */
28912   __pyx_v_dosend = (__pyx_v_dest != MPI_PROC_NULL);
28913 
28914   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":340
28915  *     cdef object smsg = None
28916  *     cdef int dosend = (dest != MPI_PROC_NULL)
28917  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)             # <<<<<<<<<<<<<<
28918  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,
28919  *                                    dest, tag, comm, request) )
28920  */
28921   if (__pyx_v_dosend) {
28922     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
28923     __Pyx_GOTREF(__pyx_t_1);
28924     __Pyx_DECREF(__pyx_v_smsg);
28925     __pyx_v_smsg = __pyx_t_1;
28926     __pyx_t_1 = 0;
28927     goto __pyx_L3;
28928   }
28929   __pyx_L3:;
28930 
28931   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":341
28932  *     cdef int dosend = (dest != MPI_PROC_NULL)
28933  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28934  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28935  *                                    dest, tag, comm, request) )
28936  *     return smsg
28937  */
28938   {
28939       #ifdef WITH_THREAD
28940       PyThreadState *_save = NULL;
28941       #endif
28942       Py_UNBLOCK_THREADS
28943       /*try:*/ {
28944 
28945         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":342
28946  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28947  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,
28948  *                                    dest, tag, comm, request) )             # <<<<<<<<<<<<<<
28949  *     return smsg
28950  *
28951  */
28952         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Issend(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, __pyx_v_request)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L5;}
28953       }
28954 
28955       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":341
28956  *     cdef int dosend = (dest != MPI_PROC_NULL)
28957  *     if dosend: smsg = pickle.dump(obj, &sbuf, &scount)
28958  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,             # <<<<<<<<<<<<<<
28959  *                                    dest, tag, comm, request) )
28960  *     return smsg
28961  */
28962       /*finally:*/ {
28963         int __pyx_why;
28964         __pyx_why = 0; goto __pyx_L6;
28965         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
28966         __pyx_L6:;
28967         Py_BLOCK_THREADS
28968         switch (__pyx_why) {
28969           case 4: goto __pyx_L1_error;
28970         }
28971       }
28972   }
28973 
28974   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":343
28975  *     with nogil: CHKERR( MPI_Issend(sbuf, scount, stype,
28976  *                                    dest, tag, comm, request) )
28977  *     return smsg             # <<<<<<<<<<<<<<
28978  *
28979  *
28980  */
28981   __Pyx_XDECREF(__pyx_r);
28982   __Pyx_INCREF(__pyx_v_smsg);
28983   __pyx_r = __pyx_v_smsg;
28984   goto __pyx_L0;
28985 
28986   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28987   goto __pyx_L0;
28988   __pyx_L1_error:;
28989   __Pyx_XDECREF(__pyx_t_1);
28990   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_issend", __pyx_clineno, __pyx_lineno, __pyx_filename);
28991   __pyx_r = 0;
28992   __pyx_L0:;
28993   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
28994   __Pyx_XDECREF(__pyx_v_smsg);
28995   __Pyx_XGIVEREF(__pyx_r);
28996   __Pyx_RefNannyFinishContext();
28997   return __pyx_r;
28998 }
28999 
29000 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":346
29001  *
29002  *
29003  * cdef object PyMPI_irecv(object obj, int dest, int tag,             # <<<<<<<<<<<<<<
29004  *                         MPI_Comm comm, MPI_Request *request):
29005  *     cdef _p_Pickle pickle = PyMPI_pickle()
29006  */
29007 
__pyx_f_6mpi4py_3MPI_PyMPI_irecv(PyObject * __pyx_v_obj,int __pyx_v_dest,int __pyx_v_tag,MPI_Comm __pyx_v_comm,MPI_Request * __pyx_v_request)29008 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_irecv(PyObject *__pyx_v_obj, int __pyx_v_dest, int __pyx_v_tag, MPI_Comm __pyx_v_comm, MPI_Request *__pyx_v_request) {
29009   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
29010   void *__pyx_v_rbuf;
29011   int __pyx_v_rcount;
29012   MPI_Datatype __pyx_v_rtype;
29013   struct __pyx_obj_6mpi4py_3MPI__p_buffer *__pyx_v_rmsg = 0;
29014   int __pyx_v_dorecv;
29015   PyObject *__pyx_r = NULL;
29016   __Pyx_RefNannyDeclarations
29017   PyObject *__pyx_t_1 = NULL;
29018   int __pyx_t_2;
29019   int __pyx_t_3;
29020   int __pyx_lineno = 0;
29021   const char *__pyx_filename = NULL;
29022   int __pyx_clineno = 0;
29023   __Pyx_RefNannySetupContext("PyMPI_irecv");
29024   __Pyx_INCREF(__pyx_v_obj);
29025 
29026   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":348
29027  * cdef object PyMPI_irecv(object obj, int dest, int tag,
29028  *                         MPI_Comm comm, MPI_Request *request):
29029  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
29030  *     #
29031  *     cdef void *rbuf = NULL
29032  */
29033   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29034   __Pyx_GOTREF(__pyx_t_1);
29035   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
29036   __pyx_t_1 = 0;
29037 
29038   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":350
29039  *     cdef _p_Pickle pickle = PyMPI_pickle()
29040  *     #
29041  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
29042  *     cdef int rcount = 0
29043  *     cdef MPI_Datatype rtype = MPI_BYTE
29044  */
29045   __pyx_v_rbuf = NULL;
29046 
29047   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":351
29048  *     #
29049  *     cdef void *rbuf = NULL
29050  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
29051  *     cdef MPI_Datatype rtype = MPI_BYTE
29052  *     #
29053  */
29054   __pyx_v_rcount = 0;
29055 
29056   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":352
29057  *     cdef void *rbuf = NULL
29058  *     cdef int rcount = 0
29059  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
29060  *     #
29061  *     cdef _p_buffer rmsg = None
29062  */
29063   __pyx_v_rtype = MPI_BYTE;
29064 
29065   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":354
29066  *     cdef MPI_Datatype rtype = MPI_BYTE
29067  *     #
29068  *     cdef _p_buffer rmsg = None             # <<<<<<<<<<<<<<
29069  *     cdef int dorecv = (dest != MPI_PROC_NULL)
29070  *     if dorecv:
29071  */
29072   __Pyx_INCREF(Py_None);
29073   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None);
29074 
29075   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":355
29076  *     #
29077  *     cdef _p_buffer rmsg = None
29078  *     cdef int dorecv = (dest != MPI_PROC_NULL)             # <<<<<<<<<<<<<<
29079  *     if dorecv:
29080  *         if obj is None:
29081  */
29082   __pyx_v_dorecv = (__pyx_v_dest != MPI_PROC_NULL);
29083 
29084   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":356
29085  *     cdef _p_buffer rmsg = None
29086  *     cdef int dorecv = (dest != MPI_PROC_NULL)
29087  *     if dorecv:             # <<<<<<<<<<<<<<
29088  *         if obj is None:
29089  *             rcount = <int>(1<<15)
29090  */
29091   if (__pyx_v_dorecv) {
29092 
29093     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":357
29094  *     cdef int dorecv = (dest != MPI_PROC_NULL)
29095  *     if dorecv:
29096  *         if obj is None:             # <<<<<<<<<<<<<<
29097  *             rcount = <int>(1<<15)
29098  *             obj = pickle.alloc(&rbuf, rcount)
29099  */
29100     __pyx_t_2 = (__pyx_v_obj == Py_None);
29101     if (__pyx_t_2) {
29102 
29103       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":358
29104  *     if dorecv:
29105  *         if obj is None:
29106  *             rcount = <int>(1<<15)             # <<<<<<<<<<<<<<
29107  *             obj = pickle.alloc(&rbuf, rcount)
29108  *             rmsg = getbuffer(obj, 1, 0)
29109  */
29110       __pyx_v_rcount = ((int)32768);
29111 
29112       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":359
29113  *         if obj is None:
29114  *             rcount = <int>(1<<15)
29115  *             obj = pickle.alloc(&rbuf, rcount)             # <<<<<<<<<<<<<<
29116  *             rmsg = getbuffer(obj, 1, 0)
29117  *         #elif is_int(obj):
29118  */
29119       __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->alloc(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_rcount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29120       __Pyx_GOTREF(__pyx_t_1);
29121       __Pyx_DECREF(__pyx_v_obj);
29122       __pyx_v_obj = __pyx_t_1;
29123       __pyx_t_1 = 0;
29124 
29125       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":360
29126  *             rcount = <int>(1<<15)
29127  *             obj = pickle.alloc(&rbuf, rcount)
29128  *             rmsg = getbuffer(obj, 1, 0)             # <<<<<<<<<<<<<<
29129  *         #elif is_int(obj):
29130  *         #    rcount = <int> obj
29131  */
29132       __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_obj, 1, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29133       __Pyx_GOTREF(__pyx_t_1);
29134       __Pyx_DECREF(((PyObject *)__pyx_v_rmsg));
29135       __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
29136       __pyx_t_1 = 0;
29137       goto __pyx_L4;
29138     }
29139     /*else*/ {
29140 
29141       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":366
29142  *         #    rmsg = getbuffer(obj, 1, 0)
29143  *         else:
29144  *             rmsg = getbuffer(obj, 0, 0)             # <<<<<<<<<<<<<<
29145  *             rbuf = rmsg.view.buf
29146  *             rcount = <int> rmsg.view.len # XXX overflow?
29147  */
29148       __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer(__pyx_v_obj, 0, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29149       __Pyx_GOTREF(__pyx_t_1);
29150       __Pyx_DECREF(((PyObject *)__pyx_v_rmsg));
29151       __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)__pyx_t_1);
29152       __pyx_t_1 = 0;
29153 
29154       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":367
29155  *         else:
29156  *             rmsg = getbuffer(obj, 0, 0)
29157  *             rbuf = rmsg.view.buf             # <<<<<<<<<<<<<<
29158  *             rcount = <int> rmsg.view.len # XXX overflow?
29159  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,
29160  */
29161       __pyx_v_rbuf = __pyx_v_rmsg->view.buf;
29162 
29163       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":368
29164  *             rmsg = getbuffer(obj, 0, 0)
29165  *             rbuf = rmsg.view.buf
29166  *             rcount = <int> rmsg.view.len # XXX overflow?             # <<<<<<<<<<<<<<
29167  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,
29168  *                                   dest, tag, comm, request) )
29169  */
29170       __pyx_v_rcount = ((int)__pyx_v_rmsg->view.len);
29171     }
29172     __pyx_L4:;
29173     goto __pyx_L3;
29174   }
29175   __pyx_L3:;
29176 
29177   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":369
29178  *             rbuf = rmsg.view.buf
29179  *             rcount = <int> rmsg.view.len # XXX overflow?
29180  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,             # <<<<<<<<<<<<<<
29181  *                                   dest, tag, comm, request) )
29182  *     return rmsg
29183  */
29184   {
29185       #ifdef WITH_THREAD
29186       PyThreadState *_save = NULL;
29187       #endif
29188       Py_UNBLOCK_THREADS
29189       /*try:*/ {
29190 
29191         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":370
29192  *             rcount = <int> rmsg.view.len # XXX overflow?
29193  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,
29194  *                                   dest, tag, comm, request) )             # <<<<<<<<<<<<<<
29195  *     return rmsg
29196  *
29197  */
29198         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Irecv(__pyx_v_rbuf, __pyx_v_rcount, __pyx_v_rtype, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, __pyx_v_request)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L6;}
29199       }
29200 
29201       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":369
29202  *             rbuf = rmsg.view.buf
29203  *             rcount = <int> rmsg.view.len # XXX overflow?
29204  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,             # <<<<<<<<<<<<<<
29205  *                                   dest, tag, comm, request) )
29206  *     return rmsg
29207  */
29208       /*finally:*/ {
29209         int __pyx_why;
29210         __pyx_why = 0; goto __pyx_L7;
29211         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
29212         __pyx_L7:;
29213         Py_BLOCK_THREADS
29214         switch (__pyx_why) {
29215           case 4: goto __pyx_L1_error;
29216         }
29217       }
29218   }
29219 
29220   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":371
29221  *     with nogil: CHKERR( MPI_Irecv(rbuf, rcount, rtype,
29222  *                                   dest, tag, comm, request) )
29223  *     return rmsg             # <<<<<<<<<<<<<<
29224  *
29225  *
29226  */
29227   __Pyx_XDECREF(__pyx_r);
29228   __Pyx_INCREF(((PyObject *)__pyx_v_rmsg));
29229   __pyx_r = ((PyObject *)__pyx_v_rmsg);
29230   goto __pyx_L0;
29231 
29232   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29233   goto __pyx_L0;
29234   __pyx_L1_error:;
29235   __Pyx_XDECREF(__pyx_t_1);
29236   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_irecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
29237   __pyx_r = 0;
29238   __pyx_L0:;
29239   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
29240   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
29241   __Pyx_XDECREF(__pyx_v_obj);
29242   __Pyx_XGIVEREF(__pyx_r);
29243   __Pyx_RefNannyFinishContext();
29244   return __pyx_r;
29245 }
29246 
29247 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":374
29248  *
29249  *
29250  * cdef object PyMPI_wait(Request request, Status status):             # <<<<<<<<<<<<<<
29251  *     cdef _p_Pickle pickle = PyMPI_pickle()
29252  *     cdef object buf
29253  */
29254 
__pyx_f_6mpi4py_3MPI_PyMPI_wait(struct PyMPIRequestObject * __pyx_v_request,struct PyMPIStatusObject * __pyx_v_status)29255 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_wait(struct PyMPIRequestObject *__pyx_v_request, struct PyMPIStatusObject *__pyx_v_status) {
29256   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
29257   PyObject *__pyx_v_buf = 0;
29258   MPI_Status __pyx_v_rsts;
29259   int __pyx_v_rcount;
29260   MPI_Datatype __pyx_v_rtype;
29261   PyObject *__pyx_r = NULL;
29262   __Pyx_RefNannyDeclarations
29263   PyObject *__pyx_t_1 = NULL;
29264   int __pyx_t_2;
29265   int __pyx_t_3;
29266   int __pyx_lineno = 0;
29267   const char *__pyx_filename = NULL;
29268   int __pyx_clineno = 0;
29269   __Pyx_RefNannySetupContext("PyMPI_wait");
29270 
29271   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":375
29272  *
29273  * cdef object PyMPI_wait(Request request, Status status):
29274  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
29275  *     cdef object buf
29276  *     #
29277  */
29278   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29279   __Pyx_GOTREF(__pyx_t_1);
29280   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
29281   __pyx_t_1 = 0;
29282 
29283   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":379
29284  *     #
29285  *     cdef MPI_Status rsts
29286  *     with nogil: CHKERR( MPI_Wait(&request.ob_mpi, &rsts) )             # <<<<<<<<<<<<<<
29287  *     buf = request.ob_buf
29288  *     if status is not None:
29289  */
29290   {
29291       #ifdef WITH_THREAD
29292       PyThreadState *_save = NULL;
29293       #endif
29294       Py_UNBLOCK_THREADS
29295       /*try:*/ {
29296         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Wait((&__pyx_v_request->ob_mpi), (&__pyx_v_rsts))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L4;}
29297       }
29298       /*finally:*/ {
29299         int __pyx_why;
29300         __pyx_why = 0; goto __pyx_L5;
29301         __pyx_L4: __pyx_why = 4; goto __pyx_L5;
29302         __pyx_L5:;
29303         Py_BLOCK_THREADS
29304         switch (__pyx_why) {
29305           case 4: goto __pyx_L1_error;
29306         }
29307       }
29308   }
29309 
29310   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":380
29311  *     cdef MPI_Status rsts
29312  *     with nogil: CHKERR( MPI_Wait(&request.ob_mpi, &rsts) )
29313  *     buf = request.ob_buf             # <<<<<<<<<<<<<<
29314  *     if status is not None:
29315  *         status.ob_mpi = rsts
29316  */
29317   __Pyx_INCREF(__pyx_v_request->ob_buf);
29318   __pyx_v_buf = __pyx_v_request->ob_buf;
29319 
29320   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":381
29321  *     with nogil: CHKERR( MPI_Wait(&request.ob_mpi, &rsts) )
29322  *     buf = request.ob_buf
29323  *     if status is not None:             # <<<<<<<<<<<<<<
29324  *         status.ob_mpi = rsts
29325  *     if request.ob_mpi == MPI_REQUEST_NULL:
29326  */
29327   __pyx_t_3 = (((PyObject *)__pyx_v_status) != Py_None);
29328   if (__pyx_t_3) {
29329 
29330     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":382
29331  *     buf = request.ob_buf
29332  *     if status is not None:
29333  *         status.ob_mpi = rsts             # <<<<<<<<<<<<<<
29334  *     if request.ob_mpi == MPI_REQUEST_NULL:
29335  *         request.ob_buf = None
29336  */
29337     __pyx_v_status->ob_mpi = __pyx_v_rsts;
29338     goto __pyx_L7;
29339   }
29340   __pyx_L7:;
29341 
29342   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":383
29343  *     if status is not None:
29344  *         status.ob_mpi = rsts
29345  *     if request.ob_mpi == MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
29346  *         request.ob_buf = None
29347  *     #
29348  */
29349   __pyx_t_3 = (__pyx_v_request->ob_mpi == MPI_REQUEST_NULL);
29350   if (__pyx_t_3) {
29351 
29352     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":384
29353  *         status.ob_mpi = rsts
29354  *     if request.ob_mpi == MPI_REQUEST_NULL:
29355  *         request.ob_buf = None             # <<<<<<<<<<<<<<
29356  *     #
29357  *     cdef int rcount = 0
29358  */
29359     __Pyx_INCREF(Py_None);
29360     __Pyx_GIVEREF(Py_None);
29361     __Pyx_GOTREF(__pyx_v_request->ob_buf);
29362     __Pyx_DECREF(__pyx_v_request->ob_buf);
29363     __pyx_v_request->ob_buf = Py_None;
29364     goto __pyx_L8;
29365   }
29366   __pyx_L8:;
29367 
29368   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":386
29369  *         request.ob_buf = None
29370  *     #
29371  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
29372  *     cdef MPI_Datatype rtype = MPI_BYTE
29373  *     if type(buf) is not _p_buffer: return None
29374  */
29375   __pyx_v_rcount = 0;
29376 
29377   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":387
29378  *     #
29379  *     cdef int rcount = 0
29380  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
29381  *     if type(buf) is not _p_buffer: return None
29382  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29383  */
29384   __pyx_v_rtype = MPI_BYTE;
29385 
29386   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":388
29387  *     cdef int rcount = 0
29388  *     cdef MPI_Datatype rtype = MPI_BYTE
29389  *     if type(buf) is not _p_buffer: return None             # <<<<<<<<<<<<<<
29390  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29391  *     if rcount <= 0: return None
29392  */
29393   __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_buf)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
29394   if (__pyx_t_3) {
29395     __Pyx_XDECREF(__pyx_r);
29396     __Pyx_INCREF(Py_None);
29397     __pyx_r = Py_None;
29398     goto __pyx_L0;
29399     goto __pyx_L9;
29400   }
29401   __pyx_L9:;
29402 
29403   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":389
29404  *     cdef MPI_Datatype rtype = MPI_BYTE
29405  *     if type(buf) is not _p_buffer: return None
29406  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
29407  *     if rcount <= 0: return None
29408  *     return pickle.load(buf)
29409  */
29410   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29411 
29412   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":390
29413  *     if type(buf) is not _p_buffer: return None
29414  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29415  *     if rcount <= 0: return None             # <<<<<<<<<<<<<<
29416  *     return pickle.load(buf)
29417  *
29418  */
29419   __pyx_t_3 = (__pyx_v_rcount <= 0);
29420   if (__pyx_t_3) {
29421     __Pyx_XDECREF(__pyx_r);
29422     __Pyx_INCREF(Py_None);
29423     __pyx_r = Py_None;
29424     goto __pyx_L0;
29425     goto __pyx_L10;
29426   }
29427   __pyx_L10:;
29428 
29429   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":391
29430  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29431  *     if rcount <= 0: return None
29432  *     return pickle.load(buf)             # <<<<<<<<<<<<<<
29433  *
29434  *
29435  */
29436   __Pyx_XDECREF(__pyx_r);
29437   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29438   __Pyx_GOTREF(__pyx_t_1);
29439   __pyx_r = __pyx_t_1;
29440   __pyx_t_1 = 0;
29441   goto __pyx_L0;
29442 
29443   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29444   goto __pyx_L0;
29445   __pyx_L1_error:;
29446   __Pyx_XDECREF(__pyx_t_1);
29447   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
29448   __pyx_r = 0;
29449   __pyx_L0:;
29450   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
29451   __Pyx_XDECREF(__pyx_v_buf);
29452   __Pyx_XGIVEREF(__pyx_r);
29453   __Pyx_RefNannyFinishContext();
29454   return __pyx_r;
29455 }
29456 
29457 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":394
29458  *
29459  *
29460  * cdef object PyMPI_test(Request request, int *flag, Status status):             # <<<<<<<<<<<<<<
29461  *     cdef _p_Pickle pickle = PyMPI_pickle()
29462  *     cdef object buf
29463  */
29464 
__pyx_f_6mpi4py_3MPI_PyMPI_test(struct PyMPIRequestObject * __pyx_v_request,int * __pyx_v_flag,struct PyMPIStatusObject * __pyx_v_status)29465 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_test(struct PyMPIRequestObject *__pyx_v_request, int *__pyx_v_flag, struct PyMPIStatusObject *__pyx_v_status) {
29466   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
29467   PyObject *__pyx_v_buf = 0;
29468   MPI_Status __pyx_v_rsts;
29469   int __pyx_v_rcount;
29470   MPI_Datatype __pyx_v_rtype;
29471   PyObject *__pyx_r = NULL;
29472   __Pyx_RefNannyDeclarations
29473   PyObject *__pyx_t_1 = NULL;
29474   int __pyx_t_2;
29475   int __pyx_t_3;
29476   int __pyx_lineno = 0;
29477   const char *__pyx_filename = NULL;
29478   int __pyx_clineno = 0;
29479   __Pyx_RefNannySetupContext("PyMPI_test");
29480 
29481   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":395
29482  *
29483  * cdef object PyMPI_test(Request request, int *flag, Status status):
29484  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
29485  *     cdef object buf
29486  *     #
29487  */
29488   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29489   __Pyx_GOTREF(__pyx_t_1);
29490   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
29491   __pyx_t_1 = 0;
29492 
29493   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":399
29494  *     #
29495  *     cdef MPI_Status rsts
29496  *     with nogil: CHKERR( MPI_Test(&request.ob_mpi, flag, &rsts) )             # <<<<<<<<<<<<<<
29497  *     if flag[0]:
29498  *         buf = request.ob_buf
29499  */
29500   {
29501       #ifdef WITH_THREAD
29502       PyThreadState *_save = NULL;
29503       #endif
29504       Py_UNBLOCK_THREADS
29505       /*try:*/ {
29506         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Test((&__pyx_v_request->ob_mpi), __pyx_v_flag, (&__pyx_v_rsts))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L4;}
29507       }
29508       /*finally:*/ {
29509         int __pyx_why;
29510         __pyx_why = 0; goto __pyx_L5;
29511         __pyx_L4: __pyx_why = 4; goto __pyx_L5;
29512         __pyx_L5:;
29513         Py_BLOCK_THREADS
29514         switch (__pyx_why) {
29515           case 4: goto __pyx_L1_error;
29516         }
29517       }
29518   }
29519 
29520   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":400
29521  *     cdef MPI_Status rsts
29522  *     with nogil: CHKERR( MPI_Test(&request.ob_mpi, flag, &rsts) )
29523  *     if flag[0]:             # <<<<<<<<<<<<<<
29524  *         buf = request.ob_buf
29525  *     if status is not None:
29526  */
29527   if ((__pyx_v_flag[0])) {
29528 
29529     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":401
29530  *     with nogil: CHKERR( MPI_Test(&request.ob_mpi, flag, &rsts) )
29531  *     if flag[0]:
29532  *         buf = request.ob_buf             # <<<<<<<<<<<<<<
29533  *     if status is not None:
29534  *         status.ob_mpi = rsts
29535  */
29536     __Pyx_INCREF(__pyx_v_request->ob_buf);
29537     __pyx_v_buf = __pyx_v_request->ob_buf;
29538     goto __pyx_L7;
29539   }
29540   __pyx_L7:;
29541 
29542   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":402
29543  *     if flag[0]:
29544  *         buf = request.ob_buf
29545  *     if status is not None:             # <<<<<<<<<<<<<<
29546  *         status.ob_mpi = rsts
29547  *     if request.ob_mpi == MPI_REQUEST_NULL:
29548  */
29549   __pyx_t_3 = (((PyObject *)__pyx_v_status) != Py_None);
29550   if (__pyx_t_3) {
29551 
29552     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":403
29553  *         buf = request.ob_buf
29554  *     if status is not None:
29555  *         status.ob_mpi = rsts             # <<<<<<<<<<<<<<
29556  *     if request.ob_mpi == MPI_REQUEST_NULL:
29557  *         request.ob_buf = None
29558  */
29559     __pyx_v_status->ob_mpi = __pyx_v_rsts;
29560     goto __pyx_L8;
29561   }
29562   __pyx_L8:;
29563 
29564   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":404
29565  *     if status is not None:
29566  *         status.ob_mpi = rsts
29567  *     if request.ob_mpi == MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
29568  *         request.ob_buf = None
29569  *     #
29570  */
29571   __pyx_t_3 = (__pyx_v_request->ob_mpi == MPI_REQUEST_NULL);
29572   if (__pyx_t_3) {
29573 
29574     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":405
29575  *         status.ob_mpi = rsts
29576  *     if request.ob_mpi == MPI_REQUEST_NULL:
29577  *         request.ob_buf = None             # <<<<<<<<<<<<<<
29578  *     #
29579  *     if not flag[0]: return None
29580  */
29581     __Pyx_INCREF(Py_None);
29582     __Pyx_GIVEREF(Py_None);
29583     __Pyx_GOTREF(__pyx_v_request->ob_buf);
29584     __Pyx_DECREF(__pyx_v_request->ob_buf);
29585     __pyx_v_request->ob_buf = Py_None;
29586     goto __pyx_L9;
29587   }
29588   __pyx_L9:;
29589 
29590   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":407
29591  *         request.ob_buf = None
29592  *     #
29593  *     if not flag[0]: return None             # <<<<<<<<<<<<<<
29594  *     cdef int rcount = 0
29595  *     cdef MPI_Datatype rtype = MPI_BYTE
29596  */
29597   __pyx_t_3 = (!(__pyx_v_flag[0]));
29598   if (__pyx_t_3) {
29599     __Pyx_XDECREF(__pyx_r);
29600     __Pyx_INCREF(Py_None);
29601     __pyx_r = Py_None;
29602     goto __pyx_L0;
29603     goto __pyx_L10;
29604   }
29605   __pyx_L10:;
29606 
29607   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":408
29608  *     #
29609  *     if not flag[0]: return None
29610  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
29611  *     cdef MPI_Datatype rtype = MPI_BYTE
29612  *     if type(buf) is not _p_buffer: return None
29613  */
29614   __pyx_v_rcount = 0;
29615 
29616   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":409
29617  *     if not flag[0]: return None
29618  *     cdef int rcount = 0
29619  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
29620  *     if type(buf) is not _p_buffer: return None
29621  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29622  */
29623   __pyx_v_rtype = MPI_BYTE;
29624   if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_buf)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
29625 
29626   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":410
29627  *     cdef int rcount = 0
29628  *     cdef MPI_Datatype rtype = MPI_BYTE
29629  *     if type(buf) is not _p_buffer: return None             # <<<<<<<<<<<<<<
29630  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29631  *     if rcount <= 0: return None
29632  */
29633   if (__pyx_t_3) {
29634     __Pyx_XDECREF(__pyx_r);
29635     __Pyx_INCREF(Py_None);
29636     __pyx_r = Py_None;
29637     goto __pyx_L0;
29638     goto __pyx_L11;
29639   }
29640   __pyx_L11:;
29641 
29642   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":411
29643  *     cdef MPI_Datatype rtype = MPI_BYTE
29644  *     if type(buf) is not _p_buffer: return None
29645  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
29646  *     if rcount <= 0: return None
29647  *     return pickle.load(buf)
29648  */
29649   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29650 
29651   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":412
29652  *     if type(buf) is not _p_buffer: return None
29653  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29654  *     if rcount <= 0: return None             # <<<<<<<<<<<<<<
29655  *     return pickle.load(buf)
29656  *
29657  */
29658   __pyx_t_3 = (__pyx_v_rcount <= 0);
29659   if (__pyx_t_3) {
29660     __Pyx_XDECREF(__pyx_r);
29661     __Pyx_INCREF(Py_None);
29662     __pyx_r = Py_None;
29663     goto __pyx_L0;
29664     goto __pyx_L12;
29665   }
29666   __pyx_L12:;
29667 
29668   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":413
29669  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29670  *     if rcount <= 0: return None
29671  *     return pickle.load(buf)             # <<<<<<<<<<<<<<
29672  *
29673  *
29674  */
29675   __Pyx_XDECREF(__pyx_r);
29676   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29677   __Pyx_GOTREF(__pyx_t_1);
29678   __pyx_r = __pyx_t_1;
29679   __pyx_t_1 = 0;
29680   goto __pyx_L0;
29681 
29682   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29683   goto __pyx_L0;
29684   __pyx_L1_error:;
29685   __Pyx_XDECREF(__pyx_t_1);
29686   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
29687   __pyx_r = 0;
29688   __pyx_L0:;
29689   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
29690   __Pyx_XDECREF(__pyx_v_buf);
29691   __Pyx_XGIVEREF(__pyx_r);
29692   __Pyx_RefNannyFinishContext();
29693   return __pyx_r;
29694 }
29695 
29696 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":416
29697  *
29698  *
29699  * cdef object PyMPI_waitany(requests, int *index, Status status):             # <<<<<<<<<<<<<<
29700  *     cdef _p_Pickle pickle = PyMPI_pickle()
29701  *     cdef object buf
29702  */
29703 
__pyx_f_6mpi4py_3MPI_PyMPI_waitany(PyObject * __pyx_v_requests,int * __pyx_v_index,struct PyMPIStatusObject * __pyx_v_status)29704 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_waitany(PyObject *__pyx_v_requests, int *__pyx_v_index, struct PyMPIStatusObject *__pyx_v_status) {
29705   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
29706   PyObject *__pyx_v_buf = 0;
29707   int __pyx_v_count;
29708   MPI_Request *__pyx_v_irequests;
29709   MPI_Status __pyx_v_rsts;
29710   PyObject *__pyx_v_tmp = 0;
29711   int __pyx_v_rcount;
29712   MPI_Datatype __pyx_v_rtype;
29713   PyObject *__pyx_r = NULL;
29714   __Pyx_RefNannyDeclarations
29715   PyObject *__pyx_t_1 = NULL;
29716   PyObject *__pyx_t_2 = NULL;
29717   int __pyx_t_3;
29718   int __pyx_t_4;
29719   int __pyx_lineno = 0;
29720   const char *__pyx_filename = NULL;
29721   int __pyx_clineno = 0;
29722   __Pyx_RefNannySetupContext("PyMPI_waitany");
29723 
29724   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":417
29725  *
29726  * cdef object PyMPI_waitany(requests, int *index, Status status):
29727  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
29728  *     cdef object buf
29729  *     #
29730  */
29731   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29732   __Pyx_GOTREF(__pyx_t_1);
29733   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
29734   __pyx_t_1 = 0;
29735 
29736   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":420
29737  *     cdef object buf
29738  *     #
29739  *     cdef int count = 0             # <<<<<<<<<<<<<<
29740  *     cdef MPI_Request *irequests = NULL
29741  *     cdef MPI_Status rsts
29742  */
29743   __pyx_v_count = 0;
29744 
29745   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":421
29746  *     #
29747  *     cdef int count = 0
29748  *     cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
29749  *     cdef MPI_Status rsts
29750  *     #
29751  */
29752   __pyx_v_irequests = NULL;
29753 
29754   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":424
29755  *     cdef MPI_Status rsts
29756  *     #
29757  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)             # <<<<<<<<<<<<<<
29758  *     try:
29759  *         with nogil: CHKERR( MPI_Waitany(count, irequests, index, &rsts) )
29760  */
29761   __pyx_t_1 = Py_None;
29762   __Pyx_INCREF(__pyx_t_1);
29763   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29764   __Pyx_GOTREF(__pyx_t_2);
29765   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
29766   __pyx_v_tmp = __pyx_t_2;
29767   __pyx_t_2 = 0;
29768 
29769   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":425
29770  *     #
29771  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
29772  *     try:             # <<<<<<<<<<<<<<
29773  *         with nogil: CHKERR( MPI_Waitany(count, irequests, index, &rsts) )
29774  *         if index[0] != MPI_UNDEFINED:
29775  */
29776   /*try:*/ {
29777 
29778     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":426
29779  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
29780  *     try:
29781  *         with nogil: CHKERR( MPI_Waitany(count, irequests, index, &rsts) )             # <<<<<<<<<<<<<<
29782  *         if index[0] != MPI_UNDEFINED:
29783  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
29784  */
29785     {
29786         #ifdef WITH_THREAD
29787         PyThreadState *_save = NULL;
29788         #endif
29789         Py_UNBLOCK_THREADS
29790         /*try:*/ {
29791           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Waitany(__pyx_v_count, __pyx_v_irequests, __pyx_v_index, (&__pyx_v_rsts))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L7;}
29792         }
29793         /*finally:*/ {
29794           int __pyx_why;
29795           __pyx_why = 0; goto __pyx_L8;
29796           __pyx_L7: __pyx_why = 4; goto __pyx_L8;
29797           __pyx_L8:;
29798           Py_BLOCK_THREADS
29799           switch (__pyx_why) {
29800             case 4: goto __pyx_L4;
29801           }
29802         }
29803     }
29804 
29805     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":427
29806  *     try:
29807  *         with nogil: CHKERR( MPI_Waitany(count, irequests, index, &rsts) )
29808  *         if index[0] != MPI_UNDEFINED:             # <<<<<<<<<<<<<<
29809  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
29810  *         if status is not None:
29811  */
29812     __pyx_t_4 = ((__pyx_v_index[0]) != MPI_UNDEFINED);
29813     if (__pyx_t_4) {
29814 
29815       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":428
29816  *         with nogil: CHKERR( MPI_Waitany(count, irequests, index, &rsts) )
29817  *         if index[0] != MPI_UNDEFINED:
29818  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf             # <<<<<<<<<<<<<<
29819  *         if status is not None:
29820  *             status.ob_mpi = rsts
29821  */
29822       __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_requests, ((Py_ssize_t)(__pyx_v_index[0])), sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L4;}
29823       __Pyx_GOTREF(__pyx_t_2);
29824       __Pyx_INCREF(((struct PyMPIRequestObject *)__pyx_t_2)->ob_buf);
29825       __pyx_v_buf = ((struct PyMPIRequestObject *)__pyx_t_2)->ob_buf;
29826       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
29827       goto __pyx_L10;
29828     }
29829     __pyx_L10:;
29830 
29831     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":429
29832  *         if index[0] != MPI_UNDEFINED:
29833  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
29834  *         if status is not None:             # <<<<<<<<<<<<<<
29835  *             status.ob_mpi = rsts
29836  *     finally:
29837  */
29838     __pyx_t_4 = (((PyObject *)__pyx_v_status) != Py_None);
29839     if (__pyx_t_4) {
29840 
29841       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":430
29842  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
29843  *         if status is not None:
29844  *             status.ob_mpi = rsts             # <<<<<<<<<<<<<<
29845  *     finally:
29846  *         release_rs(requests, None, count, irequests, NULL)
29847  */
29848       __pyx_v_status->ob_mpi = __pyx_v_rsts;
29849       goto __pyx_L11;
29850     }
29851     __pyx_L11:;
29852   }
29853 
29854   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":432
29855  *             status.ob_mpi = rsts
29856  *     finally:
29857  *         release_rs(requests, None, count, irequests, NULL)             # <<<<<<<<<<<<<<
29858  *     #
29859  *     if index[0] == MPI_UNDEFINED: return None
29860  */
29861   /*finally:*/ {
29862     int __pyx_why;
29863     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
29864     int __pyx_exc_lineno;
29865     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
29866     __pyx_why = 0; goto __pyx_L5;
29867     __pyx_L4: {
29868       __pyx_why = 4;
29869       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
29870       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
29871       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
29872       __pyx_exc_lineno = __pyx_lineno;
29873       goto __pyx_L5;
29874     }
29875     __pyx_L5:;
29876     __pyx_t_2 = Py_None;
29877     __Pyx_INCREF(__pyx_t_2);
29878     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_t_2, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
29879     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
29880     goto __pyx_L13;
29881     __pyx_L12_error:;
29882     if (__pyx_why == 4) {
29883       Py_XDECREF(__pyx_exc_type);
29884       Py_XDECREF(__pyx_exc_value);
29885       Py_XDECREF(__pyx_exc_tb);
29886     }
29887     goto __pyx_L1_error;
29888     __pyx_L13:;
29889     switch (__pyx_why) {
29890       case 4: {
29891         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
29892         __pyx_lineno = __pyx_exc_lineno;
29893         __pyx_exc_type = 0;
29894         __pyx_exc_value = 0;
29895         __pyx_exc_tb = 0;
29896         goto __pyx_L1_error;
29897       }
29898     }
29899   }
29900 
29901   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":434
29902  *         release_rs(requests, None, count, irequests, NULL)
29903  *     #
29904  *     if index[0] == MPI_UNDEFINED: return None             # <<<<<<<<<<<<<<
29905  *     cdef int rcount = 0
29906  *     cdef MPI_Datatype rtype = MPI_BYTE
29907  */
29908   __pyx_t_4 = ((__pyx_v_index[0]) == MPI_UNDEFINED);
29909   if (__pyx_t_4) {
29910     __Pyx_XDECREF(__pyx_r);
29911     __Pyx_INCREF(Py_None);
29912     __pyx_r = Py_None;
29913     goto __pyx_L0;
29914     goto __pyx_L14;
29915   }
29916   __pyx_L14:;
29917 
29918   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":435
29919  *     #
29920  *     if index[0] == MPI_UNDEFINED: return None
29921  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
29922  *     cdef MPI_Datatype rtype = MPI_BYTE
29923  *     if type(buf) is not _p_buffer: return None
29924  */
29925   __pyx_v_rcount = 0;
29926 
29927   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":436
29928  *     if index[0] == MPI_UNDEFINED: return None
29929  *     cdef int rcount = 0
29930  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
29931  *     if type(buf) is not _p_buffer: return None
29932  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29933  */
29934   __pyx_v_rtype = MPI_BYTE;
29935   if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_buf)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
29936 
29937   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":437
29938  *     cdef int rcount = 0
29939  *     cdef MPI_Datatype rtype = MPI_BYTE
29940  *     if type(buf) is not _p_buffer: return None             # <<<<<<<<<<<<<<
29941  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29942  *     if rcount <= 0: return None
29943  */
29944   if (__pyx_t_4) {
29945     __Pyx_XDECREF(__pyx_r);
29946     __Pyx_INCREF(Py_None);
29947     __pyx_r = Py_None;
29948     goto __pyx_L0;
29949     goto __pyx_L15;
29950   }
29951   __pyx_L15:;
29952 
29953   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":438
29954  *     cdef MPI_Datatype rtype = MPI_BYTE
29955  *     if type(buf) is not _p_buffer: return None
29956  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
29957  *     if rcount <= 0: return None
29958  *     return pickle.load(buf)
29959  */
29960   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29961 
29962   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":439
29963  *     if type(buf) is not _p_buffer: return None
29964  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29965  *     if rcount <= 0: return None             # <<<<<<<<<<<<<<
29966  *     return pickle.load(buf)
29967  *
29968  */
29969   __pyx_t_4 = (__pyx_v_rcount <= 0);
29970   if (__pyx_t_4) {
29971     __Pyx_XDECREF(__pyx_r);
29972     __Pyx_INCREF(Py_None);
29973     __pyx_r = Py_None;
29974     goto __pyx_L0;
29975     goto __pyx_L16;
29976   }
29977   __pyx_L16:;
29978 
29979   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":440
29980  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
29981  *     if rcount <= 0: return None
29982  *     return pickle.load(buf)             # <<<<<<<<<<<<<<
29983  *
29984  *
29985  */
29986   __Pyx_XDECREF(__pyx_r);
29987   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
29988   __Pyx_GOTREF(__pyx_t_2);
29989   __pyx_r = __pyx_t_2;
29990   __pyx_t_2 = 0;
29991   goto __pyx_L0;
29992 
29993   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29994   goto __pyx_L0;
29995   __pyx_L1_error:;
29996   __Pyx_XDECREF(__pyx_t_1);
29997   __Pyx_XDECREF(__pyx_t_2);
29998   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_waitany", __pyx_clineno, __pyx_lineno, __pyx_filename);
29999   __pyx_r = 0;
30000   __pyx_L0:;
30001   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
30002   __Pyx_XDECREF(__pyx_v_buf);
30003   __Pyx_XDECREF(__pyx_v_tmp);
30004   __Pyx_XGIVEREF(__pyx_r);
30005   __Pyx_RefNannyFinishContext();
30006   return __pyx_r;
30007 }
30008 
30009 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":443
30010  *
30011  *
30012  * cdef object PyMPI_testany(requests, int *index, int *flag, Status status):             # <<<<<<<<<<<<<<
30013  *     cdef _p_Pickle pickle = PyMPI_pickle()
30014  *     cdef object buf
30015  */
30016 
__pyx_f_6mpi4py_3MPI_PyMPI_testany(PyObject * __pyx_v_requests,int * __pyx_v_index,int * __pyx_v_flag,struct PyMPIStatusObject * __pyx_v_status)30017 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_testany(PyObject *__pyx_v_requests, int *__pyx_v_index, int *__pyx_v_flag, struct PyMPIStatusObject *__pyx_v_status) {
30018   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
30019   PyObject *__pyx_v_buf = 0;
30020   int __pyx_v_count;
30021   MPI_Request *__pyx_v_irequests;
30022   MPI_Status __pyx_v_rsts;
30023   PyObject *__pyx_v_tmp = 0;
30024   int __pyx_v_rcount;
30025   MPI_Datatype __pyx_v_rtype;
30026   PyObject *__pyx_r = NULL;
30027   __Pyx_RefNannyDeclarations
30028   PyObject *__pyx_t_1 = NULL;
30029   PyObject *__pyx_t_2 = NULL;
30030   int __pyx_t_3;
30031   int __pyx_t_4;
30032   int __pyx_lineno = 0;
30033   const char *__pyx_filename = NULL;
30034   int __pyx_clineno = 0;
30035   __Pyx_RefNannySetupContext("PyMPI_testany");
30036 
30037   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":444
30038  *
30039  * cdef object PyMPI_testany(requests, int *index, int *flag, Status status):
30040  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
30041  *     cdef object buf
30042  *     #
30043  */
30044   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30045   __Pyx_GOTREF(__pyx_t_1);
30046   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
30047   __pyx_t_1 = 0;
30048 
30049   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":447
30050  *     cdef object buf
30051  *     #
30052  *     cdef int count = 0             # <<<<<<<<<<<<<<
30053  *     cdef MPI_Request *irequests = NULL
30054  *     cdef MPI_Status rsts
30055  */
30056   __pyx_v_count = 0;
30057 
30058   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":448
30059  *     #
30060  *     cdef int count = 0
30061  *     cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
30062  *     cdef MPI_Status rsts
30063  *     #
30064  */
30065   __pyx_v_irequests = NULL;
30066 
30067   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":451
30068  *     cdef MPI_Status rsts
30069  *     #
30070  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)             # <<<<<<<<<<<<<<
30071  *     try:
30072  *         with nogil: CHKERR( MPI_Testany(count, irequests, index, flag, &rsts) )
30073  */
30074   __pyx_t_1 = Py_None;
30075   __Pyx_INCREF(__pyx_t_1);
30076   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30077   __Pyx_GOTREF(__pyx_t_2);
30078   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30079   __pyx_v_tmp = __pyx_t_2;
30080   __pyx_t_2 = 0;
30081 
30082   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":452
30083  *     #
30084  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
30085  *     try:             # <<<<<<<<<<<<<<
30086  *         with nogil: CHKERR( MPI_Testany(count, irequests, index, flag, &rsts) )
30087  *         if index[0] != MPI_UNDEFINED:
30088  */
30089   /*try:*/ {
30090 
30091     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":453
30092  *     cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
30093  *     try:
30094  *         with nogil: CHKERR( MPI_Testany(count, irequests, index, flag, &rsts) )             # <<<<<<<<<<<<<<
30095  *         if index[0] != MPI_UNDEFINED:
30096  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
30097  */
30098     {
30099         #ifdef WITH_THREAD
30100         PyThreadState *_save = NULL;
30101         #endif
30102         Py_UNBLOCK_THREADS
30103         /*try:*/ {
30104           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Testany(__pyx_v_count, __pyx_v_irequests, __pyx_v_index, __pyx_v_flag, (&__pyx_v_rsts))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L7;}
30105         }
30106         /*finally:*/ {
30107           int __pyx_why;
30108           __pyx_why = 0; goto __pyx_L8;
30109           __pyx_L7: __pyx_why = 4; goto __pyx_L8;
30110           __pyx_L8:;
30111           Py_BLOCK_THREADS
30112           switch (__pyx_why) {
30113             case 4: goto __pyx_L4;
30114           }
30115         }
30116     }
30117 
30118     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":454
30119  *     try:
30120  *         with nogil: CHKERR( MPI_Testany(count, irequests, index, flag, &rsts) )
30121  *         if index[0] != MPI_UNDEFINED:             # <<<<<<<<<<<<<<
30122  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
30123  *         if status is not None:
30124  */
30125     __pyx_t_4 = ((__pyx_v_index[0]) != MPI_UNDEFINED);
30126     if (__pyx_t_4) {
30127 
30128       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":455
30129  *         with nogil: CHKERR( MPI_Testany(count, irequests, index, flag, &rsts) )
30130  *         if index[0] != MPI_UNDEFINED:
30131  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf             # <<<<<<<<<<<<<<
30132  *         if status is not None:
30133  *             status.ob_mpi = rsts
30134  */
30135       __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_requests, ((Py_ssize_t)(__pyx_v_index[0])), sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L4;}
30136       __Pyx_GOTREF(__pyx_t_2);
30137       __Pyx_INCREF(((struct PyMPIRequestObject *)__pyx_t_2)->ob_buf);
30138       __pyx_v_buf = ((struct PyMPIRequestObject *)__pyx_t_2)->ob_buf;
30139       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30140       goto __pyx_L10;
30141     }
30142     __pyx_L10:;
30143 
30144     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":456
30145  *         if index[0] != MPI_UNDEFINED:
30146  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
30147  *         if status is not None:             # <<<<<<<<<<<<<<
30148  *             status.ob_mpi = rsts
30149  *     finally:
30150  */
30151     __pyx_t_4 = (((PyObject *)__pyx_v_status) != Py_None);
30152     if (__pyx_t_4) {
30153 
30154       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":457
30155  *             buf = (<Request>requests[<Py_ssize_t>index[0]]).ob_buf
30156  *         if status is not None:
30157  *             status.ob_mpi = rsts             # <<<<<<<<<<<<<<
30158  *     finally:
30159  *         release_rs(requests, None, count, irequests, NULL)
30160  */
30161       __pyx_v_status->ob_mpi = __pyx_v_rsts;
30162       goto __pyx_L11;
30163     }
30164     __pyx_L11:;
30165   }
30166 
30167   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":459
30168  *             status.ob_mpi = rsts
30169  *     finally:
30170  *         release_rs(requests, None, count, irequests, NULL)             # <<<<<<<<<<<<<<
30171  *     #
30172  *     if index[0] == MPI_UNDEFINED: return None
30173  */
30174   /*finally:*/ {
30175     int __pyx_why;
30176     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
30177     int __pyx_exc_lineno;
30178     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
30179     __pyx_why = 0; goto __pyx_L5;
30180     __pyx_L4: {
30181       __pyx_why = 4;
30182       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30183       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30184       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
30185       __pyx_exc_lineno = __pyx_lineno;
30186       goto __pyx_L5;
30187     }
30188     __pyx_L5:;
30189     __pyx_t_2 = Py_None;
30190     __Pyx_INCREF(__pyx_t_2);
30191     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_t_2, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
30192     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30193     goto __pyx_L13;
30194     __pyx_L12_error:;
30195     if (__pyx_why == 4) {
30196       Py_XDECREF(__pyx_exc_type);
30197       Py_XDECREF(__pyx_exc_value);
30198       Py_XDECREF(__pyx_exc_tb);
30199     }
30200     goto __pyx_L1_error;
30201     __pyx_L13:;
30202     switch (__pyx_why) {
30203       case 4: {
30204         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
30205         __pyx_lineno = __pyx_exc_lineno;
30206         __pyx_exc_type = 0;
30207         __pyx_exc_value = 0;
30208         __pyx_exc_tb = 0;
30209         goto __pyx_L1_error;
30210       }
30211     }
30212   }
30213 
30214   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":461
30215  *         release_rs(requests, None, count, irequests, NULL)
30216  *     #
30217  *     if index[0] == MPI_UNDEFINED: return None             # <<<<<<<<<<<<<<
30218  *     if not flag[0]: return None
30219  *     cdef int rcount = 0
30220  */
30221   __pyx_t_4 = ((__pyx_v_index[0]) == MPI_UNDEFINED);
30222   if (__pyx_t_4) {
30223     __Pyx_XDECREF(__pyx_r);
30224     __Pyx_INCREF(Py_None);
30225     __pyx_r = Py_None;
30226     goto __pyx_L0;
30227     goto __pyx_L14;
30228   }
30229   __pyx_L14:;
30230 
30231   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":462
30232  *     #
30233  *     if index[0] == MPI_UNDEFINED: return None
30234  *     if not flag[0]: return None             # <<<<<<<<<<<<<<
30235  *     cdef int rcount = 0
30236  *     cdef MPI_Datatype rtype = MPI_BYTE
30237  */
30238   __pyx_t_4 = (!(__pyx_v_flag[0]));
30239   if (__pyx_t_4) {
30240     __Pyx_XDECREF(__pyx_r);
30241     __Pyx_INCREF(Py_None);
30242     __pyx_r = Py_None;
30243     goto __pyx_L0;
30244     goto __pyx_L15;
30245   }
30246   __pyx_L15:;
30247 
30248   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":463
30249  *     if index[0] == MPI_UNDEFINED: return None
30250  *     if not flag[0]: return None
30251  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
30252  *     cdef MPI_Datatype rtype = MPI_BYTE
30253  *     if type(buf) is not _p_buffer: return None
30254  */
30255   __pyx_v_rcount = 0;
30256 
30257   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":464
30258  *     if not flag[0]: return None
30259  *     cdef int rcount = 0
30260  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
30261  *     if type(buf) is not _p_buffer: return None
30262  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
30263  */
30264   __pyx_v_rtype = MPI_BYTE;
30265   if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_buf)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
30266 
30267   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":465
30268  *     cdef int rcount = 0
30269  *     cdef MPI_Datatype rtype = MPI_BYTE
30270  *     if type(buf) is not _p_buffer: return None             # <<<<<<<<<<<<<<
30271  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
30272  *     if rcount <= 0: return None
30273  */
30274   if (__pyx_t_4) {
30275     __Pyx_XDECREF(__pyx_r);
30276     __Pyx_INCREF(Py_None);
30277     __pyx_r = Py_None;
30278     goto __pyx_L0;
30279     goto __pyx_L16;
30280   }
30281   __pyx_L16:;
30282 
30283   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":466
30284  *     cdef MPI_Datatype rtype = MPI_BYTE
30285  *     if type(buf) is not _p_buffer: return None
30286  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )             # <<<<<<<<<<<<<<
30287  *     if rcount <= 0: return None
30288  *     return pickle.load(buf)
30289  */
30290   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&__pyx_v_rsts), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30291 
30292   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":467
30293  *     if type(buf) is not _p_buffer: return None
30294  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
30295  *     if rcount <= 0: return None             # <<<<<<<<<<<<<<
30296  *     return pickle.load(buf)
30297  *
30298  */
30299   __pyx_t_4 = (__pyx_v_rcount <= 0);
30300   if (__pyx_t_4) {
30301     __Pyx_XDECREF(__pyx_r);
30302     __Pyx_INCREF(Py_None);
30303     __pyx_r = Py_None;
30304     goto __pyx_L0;
30305     goto __pyx_L17;
30306   }
30307   __pyx_L17:;
30308 
30309   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":468
30310  *     CHKERR( MPI_Get_count(&rsts, rtype, &rcount) )
30311  *     if rcount <= 0: return None
30312  *     return pickle.load(buf)             # <<<<<<<<<<<<<<
30313  *
30314  *
30315  */
30316   __Pyx_XDECREF(__pyx_r);
30317   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30318   __Pyx_GOTREF(__pyx_t_2);
30319   __pyx_r = __pyx_t_2;
30320   __pyx_t_2 = 0;
30321   goto __pyx_L0;
30322 
30323   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30324   goto __pyx_L0;
30325   __pyx_L1_error:;
30326   __Pyx_XDECREF(__pyx_t_1);
30327   __Pyx_XDECREF(__pyx_t_2);
30328   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_testany", __pyx_clineno, __pyx_lineno, __pyx_filename);
30329   __pyx_r = 0;
30330   __pyx_L0:;
30331   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
30332   __Pyx_XDECREF(__pyx_v_buf);
30333   __Pyx_XDECREF(__pyx_v_tmp);
30334   __Pyx_XGIVEREF(__pyx_r);
30335   __Pyx_RefNannyFinishContext();
30336   return __pyx_r;
30337 }
30338 
30339 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":471
30340  *
30341  *
30342  * cdef object PyMPI_waitall(requests, statuses):             # <<<<<<<<<<<<<<
30343  *     cdef _p_Pickle pickle = PyMPI_pickle()
30344  *     cdef object buf, bufs
30345  */
30346 
__pyx_f_6mpi4py_3MPI_PyMPI_waitall(PyObject * __pyx_v_requests,PyObject * __pyx_v_statuses)30347 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_waitall(PyObject *__pyx_v_requests, PyObject *__pyx_v_statuses) {
30348   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
30349   PyObject *__pyx_v_buf = 0;
30350   PyObject *__pyx_v_bufs = 0;
30351   Py_ssize_t __pyx_v_i;
30352   int __pyx_v_count;
30353   MPI_Request *__pyx_v_irequests;
30354   MPI_Status *__pyx_v_istatuses;
30355   PyObject *__pyx_v_tmp = 0;
30356   int __pyx_v_rcount;
30357   MPI_Datatype __pyx_v_rtype;
30358   PyObject *__pyx_r = NULL;
30359   __Pyx_RefNannyDeclarations
30360   PyObject *__pyx_t_1 = NULL;
30361   PyObject *__pyx_t_2 = NULL;
30362   int __pyx_t_3;
30363   int __pyx_t_4;
30364   int __pyx_t_5;
30365   Py_ssize_t __pyx_t_6;
30366   PyObject *(*__pyx_t_7)(PyObject *);
30367   PyObject *__pyx_t_8 = NULL;
30368   int __pyx_lineno = 0;
30369   const char *__pyx_filename = NULL;
30370   int __pyx_clineno = 0;
30371   __Pyx_RefNannySetupContext("PyMPI_waitall");
30372 
30373   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":472
30374  *
30375  * cdef object PyMPI_waitall(requests, statuses):
30376  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
30377  *     cdef object buf, bufs
30378  *     #
30379  */
30380   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30381   __Pyx_GOTREF(__pyx_t_1);
30382   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
30383   __pyx_t_1 = 0;
30384 
30385   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":475
30386  *     cdef object buf, bufs
30387  *     #
30388  *     cdef Py_ssize_t i = 0             # <<<<<<<<<<<<<<
30389  *     cdef int count = 0
30390  *     cdef MPI_Request *irequests = NULL
30391  */
30392   __pyx_v_i = 0;
30393 
30394   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":476
30395  *     #
30396  *     cdef Py_ssize_t i = 0
30397  *     cdef int count = 0             # <<<<<<<<<<<<<<
30398  *     cdef MPI_Request *irequests = NULL
30399  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30400  */
30401   __pyx_v_count = 0;
30402 
30403   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":477
30404  *     cdef Py_ssize_t i = 0
30405  *     cdef int count = 0
30406  *     cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
30407  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30408  *     #
30409  */
30410   __pyx_v_irequests = NULL;
30411 
30412   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":478
30413  *     cdef int count = 0
30414  *     cdef MPI_Request *irequests = NULL
30415  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
30416  *     #
30417  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30418  */
30419   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
30420 
30421   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":480
30422  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30423  *     #
30424  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)             # <<<<<<<<<<<<<<
30425  *     try:
30426  *         with nogil: CHKERR( MPI_Waitall(count, irequests, istatuses) )
30427  */
30428   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30429   __Pyx_GOTREF(__pyx_t_1);
30430   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30431   __Pyx_GOTREF(__pyx_t_2);
30432   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30433   __pyx_v_tmp = __pyx_t_2;
30434   __pyx_t_2 = 0;
30435 
30436   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":481
30437  *     #
30438  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30439  *     try:             # <<<<<<<<<<<<<<
30440  *         with nogil: CHKERR( MPI_Waitall(count, irequests, istatuses) )
30441  *         bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30442  */
30443   /*try:*/ {
30444 
30445     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":482
30446  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30447  *     try:
30448  *         with nogil: CHKERR( MPI_Waitall(count, irequests, istatuses) )             # <<<<<<<<<<<<<<
30449  *         bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30450  *     finally:
30451  */
30452     {
30453         #ifdef WITH_THREAD
30454         PyThreadState *_save = NULL;
30455         #endif
30456         Py_UNBLOCK_THREADS
30457         /*try:*/ {
30458           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Waitall(__pyx_v_count, __pyx_v_irequests, __pyx_v_istatuses)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L7;}
30459         }
30460         /*finally:*/ {
30461           int __pyx_why;
30462           __pyx_why = 0; goto __pyx_L8;
30463           __pyx_L7: __pyx_why = 4; goto __pyx_L8;
30464           __pyx_L8:;
30465           Py_BLOCK_THREADS
30466           switch (__pyx_why) {
30467             case 4: goto __pyx_L4;
30468           }
30469         }
30470     }
30471 
30472     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":483
30473  *     try:
30474  *         with nogil: CHKERR( MPI_Waitall(count, irequests, istatuses) )
30475  *         bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]             # <<<<<<<<<<<<<<
30476  *     finally:
30477  *         release_rs(requests, statuses, count, irequests, NULL)
30478  */
30479     __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L4;}
30480     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
30481     __pyx_t_3 = __pyx_v_count;
30482     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
30483       __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_requests, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L4;}
30484       __Pyx_GOTREF(__pyx_t_1);
30485       if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)((struct PyMPIRequestObject *)__pyx_t_1)->ob_buf))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L4;}
30486       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30487     }
30488     __Pyx_INCREF(((PyObject *)__pyx_t_2));
30489     __pyx_v_bufs = ((PyObject *)__pyx_t_2);
30490     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
30491   }
30492 
30493   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":485
30494  *         bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30495  *     finally:
30496  *         release_rs(requests, statuses, count, irequests, NULL)             # <<<<<<<<<<<<<<
30497  *     #
30498  *     cdef int rcount = 0
30499  */
30500   /*finally:*/ {
30501     int __pyx_why;
30502     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
30503     int __pyx_exc_lineno;
30504     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
30505     __pyx_why = 0; goto __pyx_L5;
30506     __pyx_L4: {
30507       __pyx_why = 4;
30508       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30509       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30510       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
30511       __pyx_exc_lineno = __pyx_lineno;
30512       goto __pyx_L5;
30513     }
30514     __pyx_L5:;
30515     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
30516     goto __pyx_L13;
30517     __pyx_L12_error:;
30518     if (__pyx_why == 4) {
30519       Py_XDECREF(__pyx_exc_type);
30520       Py_XDECREF(__pyx_exc_value);
30521       Py_XDECREF(__pyx_exc_tb);
30522     }
30523     goto __pyx_L1_error;
30524     __pyx_L13:;
30525     switch (__pyx_why) {
30526       case 4: {
30527         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
30528         __pyx_lineno = __pyx_exc_lineno;
30529         __pyx_exc_type = 0;
30530         __pyx_exc_value = 0;
30531         __pyx_exc_tb = 0;
30532         goto __pyx_L1_error;
30533       }
30534     }
30535   }
30536 
30537   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":487
30538  *         release_rs(requests, statuses, count, irequests, NULL)
30539  *     #
30540  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
30541  *     cdef MPI_Datatype rtype = MPI_BYTE
30542  *     for i from 0 <= i < count:
30543  */
30544   __pyx_v_rcount = 0;
30545 
30546   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":488
30547  *     #
30548  *     cdef int rcount = 0
30549  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
30550  *     for i from 0 <= i < count:
30551  *         if type(bufs[i]) is not _p_buffer:
30552  */
30553   __pyx_v_rtype = MPI_BYTE;
30554 
30555   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":489
30556  *     cdef int rcount = 0
30557  *     cdef MPI_Datatype rtype = MPI_BYTE
30558  *     for i from 0 <= i < count:             # <<<<<<<<<<<<<<
30559  *         if type(bufs[i]) is not _p_buffer:
30560  *             bufs[i] = None; continue
30561  */
30562   __pyx_t_3 = __pyx_v_count;
30563   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
30564 
30565     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":490
30566  *     cdef MPI_Datatype rtype = MPI_BYTE
30567  *     for i from 0 <= i < count:
30568  *         if type(bufs[i]) is not _p_buffer:             # <<<<<<<<<<<<<<
30569  *             bufs[i] = None; continue
30570  *         rcount = 0
30571  */
30572     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_bufs, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30573     __Pyx_GOTREF(__pyx_t_2);
30574     __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_t_2)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
30575     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30576     if (__pyx_t_4) {
30577 
30578       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":491
30579  *     for i from 0 <= i < count:
30580  *         if type(bufs[i]) is not _p_buffer:
30581  *             bufs[i] = None; continue             # <<<<<<<<<<<<<<
30582  *         rcount = 0
30583  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30584  */
30585       if (__Pyx_SetItemInt(__pyx_v_bufs, __pyx_v_i, Py_None, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30586       goto __pyx_L14_continue;
30587       goto __pyx_L16;
30588     }
30589     __pyx_L16:;
30590 
30591     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":492
30592  *         if type(bufs[i]) is not _p_buffer:
30593  *             bufs[i] = None; continue
30594  *         rcount = 0             # <<<<<<<<<<<<<<
30595  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30596  *         if rcount <= 0: bufs[i] = None
30597  */
30598     __pyx_v_rcount = 0;
30599 
30600     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":493
30601  *             bufs[i] = None; continue
30602  *         rcount = 0
30603  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )             # <<<<<<<<<<<<<<
30604  *         if rcount <= 0: bufs[i] = None
30605  *     return [pickle.load(buf) for buf in bufs]
30606  */
30607     __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&(__pyx_v_istatuses[__pyx_v_i])), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30608 
30609     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":494
30610  *         rcount = 0
30611  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30612  *         if rcount <= 0: bufs[i] = None             # <<<<<<<<<<<<<<
30613  *     return [pickle.load(buf) for buf in bufs]
30614  *
30615  */
30616     __pyx_t_4 = (__pyx_v_rcount <= 0);
30617     if (__pyx_t_4) {
30618       if (__Pyx_SetItemInt(__pyx_v_bufs, __pyx_v_i, Py_None, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30619       goto __pyx_L17;
30620     }
30621     __pyx_L17:;
30622     __pyx_L14_continue:;
30623   }
30624 
30625   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":495
30626  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30627  *         if rcount <= 0: bufs[i] = None
30628  *     return [pickle.load(buf) for buf in bufs]             # <<<<<<<<<<<<<<
30629  *
30630  *
30631  */
30632   __Pyx_XDECREF(__pyx_r);
30633   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30634   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
30635   if (PyList_CheckExact(__pyx_v_bufs) || PyTuple_CheckExact(__pyx_v_bufs)) {
30636     __pyx_t_1 = __pyx_v_bufs; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
30637     __pyx_t_7 = NULL;
30638   } else {
30639     __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_bufs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30640     __Pyx_GOTREF(__pyx_t_1);
30641     __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext;
30642   }
30643   for (;;) {
30644     if (PyList_CheckExact(__pyx_t_1)) {
30645       if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
30646       __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++;
30647     } else if (PyTuple_CheckExact(__pyx_t_1)) {
30648       if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
30649       __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++;
30650     } else {
30651       __pyx_t_8 = __pyx_t_7(__pyx_t_1);
30652       if (unlikely(!__pyx_t_8)) {
30653         if (PyErr_Occurred()) {
30654           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
30655           else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30656         }
30657         break;
30658       }
30659       __Pyx_GOTREF(__pyx_t_8);
30660     }
30661     __Pyx_XDECREF(__pyx_v_buf);
30662     __pyx_v_buf = __pyx_t_8;
30663     __pyx_t_8 = 0;
30664     __pyx_t_8 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30665     __Pyx_GOTREF(__pyx_t_8);
30666     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30667     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
30668   }
30669   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30670   __Pyx_INCREF(((PyObject *)__pyx_t_2));
30671   __pyx_r = ((PyObject *)__pyx_t_2);
30672   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
30673   goto __pyx_L0;
30674 
30675   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30676   goto __pyx_L0;
30677   __pyx_L1_error:;
30678   __Pyx_XDECREF(__pyx_t_1);
30679   __Pyx_XDECREF(__pyx_t_2);
30680   __Pyx_XDECREF(__pyx_t_8);
30681   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_waitall", __pyx_clineno, __pyx_lineno, __pyx_filename);
30682   __pyx_r = 0;
30683   __pyx_L0:;
30684   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
30685   __Pyx_XDECREF(__pyx_v_buf);
30686   __Pyx_XDECREF(__pyx_v_bufs);
30687   __Pyx_XDECREF(__pyx_v_tmp);
30688   __Pyx_XGIVEREF(__pyx_r);
30689   __Pyx_RefNannyFinishContext();
30690   return __pyx_r;
30691 }
30692 
30693 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":498
30694  *
30695  *
30696  * cdef object PyMPI_testall(requests, int *flag, statuses):             # <<<<<<<<<<<<<<
30697  *     cdef _p_Pickle pickle = PyMPI_pickle()
30698  *     cdef object buf, bufs
30699  */
30700 
__pyx_f_6mpi4py_3MPI_PyMPI_testall(PyObject * __pyx_v_requests,int * __pyx_v_flag,PyObject * __pyx_v_statuses)30701 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_testall(PyObject *__pyx_v_requests, int *__pyx_v_flag, PyObject *__pyx_v_statuses) {
30702   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
30703   PyObject *__pyx_v_buf = 0;
30704   PyObject *__pyx_v_bufs = 0;
30705   Py_ssize_t __pyx_v_i;
30706   int __pyx_v_count;
30707   MPI_Request *__pyx_v_irequests;
30708   MPI_Status *__pyx_v_istatuses;
30709   PyObject *__pyx_v_tmp = 0;
30710   int __pyx_v_rcount;
30711   MPI_Datatype __pyx_v_rtype;
30712   PyObject *__pyx_r = NULL;
30713   __Pyx_RefNannyDeclarations
30714   PyObject *__pyx_t_1 = NULL;
30715   PyObject *__pyx_t_2 = NULL;
30716   int __pyx_t_3;
30717   int __pyx_t_4;
30718   int __pyx_t_5;
30719   Py_ssize_t __pyx_t_6;
30720   PyObject *(*__pyx_t_7)(PyObject *);
30721   PyObject *__pyx_t_8 = NULL;
30722   int __pyx_lineno = 0;
30723   const char *__pyx_filename = NULL;
30724   int __pyx_clineno = 0;
30725   __Pyx_RefNannySetupContext("PyMPI_testall");
30726 
30727   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":499
30728  *
30729  * cdef object PyMPI_testall(requests, int *flag, statuses):
30730  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
30731  *     cdef object buf, bufs
30732  *     #
30733  */
30734   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30735   __Pyx_GOTREF(__pyx_t_1);
30736   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
30737   __pyx_t_1 = 0;
30738 
30739   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":502
30740  *     cdef object buf, bufs
30741  *     #
30742  *     cdef Py_ssize_t i = 0             # <<<<<<<<<<<<<<
30743  *     cdef int count = 0
30744  *     cdef MPI_Request *irequests = NULL
30745  */
30746   __pyx_v_i = 0;
30747 
30748   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":503
30749  *     #
30750  *     cdef Py_ssize_t i = 0
30751  *     cdef int count = 0             # <<<<<<<<<<<<<<
30752  *     cdef MPI_Request *irequests = NULL
30753  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30754  */
30755   __pyx_v_count = 0;
30756 
30757   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":504
30758  *     cdef Py_ssize_t i = 0
30759  *     cdef int count = 0
30760  *     cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
30761  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30762  *     #
30763  */
30764   __pyx_v_irequests = NULL;
30765 
30766   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":505
30767  *     cdef int count = 0
30768  *     cdef MPI_Request *irequests = NULL
30769  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
30770  *     #
30771  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30772  */
30773   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
30774 
30775   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":507
30776  *     cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
30777  *     #
30778  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)             # <<<<<<<<<<<<<<
30779  *     try:
30780  *         with nogil: CHKERR( MPI_Testall(count, irequests, flag, istatuses) )
30781  */
30782   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30783   __Pyx_GOTREF(__pyx_t_1);
30784   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30785   __Pyx_GOTREF(__pyx_t_2);
30786   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30787   __pyx_v_tmp = __pyx_t_2;
30788   __pyx_t_2 = 0;
30789 
30790   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":508
30791  *     #
30792  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30793  *     try:             # <<<<<<<<<<<<<<
30794  *         with nogil: CHKERR( MPI_Testall(count, irequests, flag, istatuses) )
30795  *         if flag[0]:
30796  */
30797   /*try:*/ {
30798 
30799     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":509
30800  *     cdef tmp = acquire_rs(requests, True, &count, &irequests, &istatuses)
30801  *     try:
30802  *         with nogil: CHKERR( MPI_Testall(count, irequests, flag, istatuses) )             # <<<<<<<<<<<<<<
30803  *         if flag[0]:
30804  *             bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30805  */
30806     {
30807         #ifdef WITH_THREAD
30808         PyThreadState *_save = NULL;
30809         #endif
30810         Py_UNBLOCK_THREADS
30811         /*try:*/ {
30812           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Testall(__pyx_v_count, __pyx_v_irequests, __pyx_v_flag, __pyx_v_istatuses)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L7;}
30813         }
30814         /*finally:*/ {
30815           int __pyx_why;
30816           __pyx_why = 0; goto __pyx_L8;
30817           __pyx_L7: __pyx_why = 4; goto __pyx_L8;
30818           __pyx_L8:;
30819           Py_BLOCK_THREADS
30820           switch (__pyx_why) {
30821             case 4: goto __pyx_L4;
30822           }
30823         }
30824     }
30825 
30826     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":510
30827  *     try:
30828  *         with nogil: CHKERR( MPI_Testall(count, irequests, flag, istatuses) )
30829  *         if flag[0]:             # <<<<<<<<<<<<<<
30830  *             bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30831  *     finally:
30832  */
30833     if ((__pyx_v_flag[0])) {
30834 
30835       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":511
30836  *         with nogil: CHKERR( MPI_Testall(count, irequests, flag, istatuses) )
30837  *         if flag[0]:
30838  *             bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]             # <<<<<<<<<<<<<<
30839  *     finally:
30840  *         release_rs(requests, statuses, count, irequests, NULL)
30841  */
30842       __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4;}
30843       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
30844       __pyx_t_3 = __pyx_v_count;
30845       for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
30846         __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_requests, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4;}
30847         __Pyx_GOTREF(__pyx_t_1);
30848         if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)((struct PyMPIRequestObject *)__pyx_t_1)->ob_buf))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4;}
30849         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30850       }
30851       __Pyx_INCREF(((PyObject *)__pyx_t_2));
30852       __pyx_v_bufs = ((PyObject *)__pyx_t_2);
30853       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
30854       goto __pyx_L10;
30855     }
30856     __pyx_L10:;
30857   }
30858 
30859   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":513
30860  *             bufs = [(<Request>requests[i]).ob_buf for i from 0 <= i < count]
30861  *     finally:
30862  *         release_rs(requests, statuses, count, irequests, NULL)             # <<<<<<<<<<<<<<
30863  *     #
30864  *     if not flag[0]: return None
30865  */
30866   /*finally:*/ {
30867     int __pyx_why;
30868     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
30869     int __pyx_exc_lineno;
30870     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
30871     __pyx_why = 0; goto __pyx_L5;
30872     __pyx_L4: {
30873       __pyx_why = 4;
30874       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30875       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30876       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
30877       __pyx_exc_lineno = __pyx_lineno;
30878       goto __pyx_L5;
30879     }
30880     __pyx_L5:;
30881     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
30882     goto __pyx_L14;
30883     __pyx_L13_error:;
30884     if (__pyx_why == 4) {
30885       Py_XDECREF(__pyx_exc_type);
30886       Py_XDECREF(__pyx_exc_value);
30887       Py_XDECREF(__pyx_exc_tb);
30888     }
30889     goto __pyx_L1_error;
30890     __pyx_L14:;
30891     switch (__pyx_why) {
30892       case 4: {
30893         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
30894         __pyx_lineno = __pyx_exc_lineno;
30895         __pyx_exc_type = 0;
30896         __pyx_exc_value = 0;
30897         __pyx_exc_tb = 0;
30898         goto __pyx_L1_error;
30899       }
30900     }
30901   }
30902 
30903   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":515
30904  *         release_rs(requests, statuses, count, irequests, NULL)
30905  *     #
30906  *     if not flag[0]: return None             # <<<<<<<<<<<<<<
30907  *     cdef int rcount = 0
30908  *     cdef MPI_Datatype rtype = MPI_BYTE
30909  */
30910   __pyx_t_4 = (!(__pyx_v_flag[0]));
30911   if (__pyx_t_4) {
30912     __Pyx_XDECREF(__pyx_r);
30913     __Pyx_INCREF(Py_None);
30914     __pyx_r = Py_None;
30915     goto __pyx_L0;
30916     goto __pyx_L15;
30917   }
30918   __pyx_L15:;
30919 
30920   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":516
30921  *     #
30922  *     if not flag[0]: return None
30923  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
30924  *     cdef MPI_Datatype rtype = MPI_BYTE
30925  *     for i from 0 <= i < count:
30926  */
30927   __pyx_v_rcount = 0;
30928 
30929   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":517
30930  *     if not flag[0]: return None
30931  *     cdef int rcount = 0
30932  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
30933  *     for i from 0 <= i < count:
30934  *         if type(bufs[i]) is not _p_buffer:
30935  */
30936   __pyx_v_rtype = MPI_BYTE;
30937 
30938   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":518
30939  *     cdef int rcount = 0
30940  *     cdef MPI_Datatype rtype = MPI_BYTE
30941  *     for i from 0 <= i < count:             # <<<<<<<<<<<<<<
30942  *         if type(bufs[i]) is not _p_buffer:
30943  *             bufs[i] = None; continue
30944  */
30945   __pyx_t_3 = __pyx_v_count;
30946   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
30947     if (unlikely(!__pyx_v_bufs)) { __Pyx_RaiseUnboundLocalError("bufs"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_bufs, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30948 
30949     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":519
30950  *     cdef MPI_Datatype rtype = MPI_BYTE
30951  *     for i from 0 <= i < count:
30952  *         if type(bufs[i]) is not _p_buffer:             # <<<<<<<<<<<<<<
30953  *             bufs[i] = None; continue
30954  *         rcount = 0
30955  */
30956     __Pyx_GOTREF(__pyx_t_2);
30957     __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_t_2)) != ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_buffer)));
30958     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30959     if (__pyx_t_4) {
30960 
30961       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":520
30962  *     for i from 0 <= i < count:
30963  *         if type(bufs[i]) is not _p_buffer:
30964  *             bufs[i] = None; continue             # <<<<<<<<<<<<<<
30965  *         rcount = 0
30966  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30967  */
30968       if (__Pyx_SetItemInt(__pyx_v_bufs, __pyx_v_i, Py_None, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30969       goto __pyx_L16_continue;
30970       goto __pyx_L18;
30971     }
30972     __pyx_L18:;
30973 
30974     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":521
30975  *         if type(bufs[i]) is not _p_buffer:
30976  *             bufs[i] = None; continue
30977  *         rcount = 0             # <<<<<<<<<<<<<<
30978  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30979  *         if rcount <= 0: bufs[i] = None
30980  */
30981     __pyx_v_rcount = 0;
30982 
30983     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":522
30984  *             bufs[i] = None; continue
30985  *         rcount = 0
30986  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )             # <<<<<<<<<<<<<<
30987  *         if rcount <= 0: bufs[i] = None
30988  *     return [pickle.load(buf) for buf in bufs]
30989  */
30990     __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&(__pyx_v_istatuses[__pyx_v_i])), __pyx_v_rtype, (&__pyx_v_rcount))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
30991 
30992     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":523
30993  *         rcount = 0
30994  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
30995  *         if rcount <= 0: bufs[i] = None             # <<<<<<<<<<<<<<
30996  *     return [pickle.load(buf) for buf in bufs]
30997  *
30998  */
30999     __pyx_t_4 = (__pyx_v_rcount <= 0);
31000     if (__pyx_t_4) {
31001       if (__Pyx_SetItemInt(__pyx_v_bufs, __pyx_v_i, Py_None, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31002       goto __pyx_L19;
31003     }
31004     __pyx_L19:;
31005     __pyx_L16_continue:;
31006   }
31007 
31008   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":524
31009  *         CHKERR( MPI_Get_count(&istatuses[i], rtype, &rcount) )
31010  *         if rcount <= 0: bufs[i] = None
31011  *     return [pickle.load(buf) for buf in bufs]             # <<<<<<<<<<<<<<
31012  *
31013  * # -----------------------------------------------------------------------------
31014  */
31015   __Pyx_XDECREF(__pyx_r);
31016   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31017   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
31018   if (unlikely(!__pyx_v_bufs)) { __Pyx_RaiseUnboundLocalError("bufs"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (PyList_CheckExact(__pyx_v_bufs) || PyTuple_CheckExact(__pyx_v_bufs)) {
31019     __pyx_t_1 = __pyx_v_bufs; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
31020     __pyx_t_7 = NULL;
31021   } else {
31022     __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_bufs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31023     __Pyx_GOTREF(__pyx_t_1);
31024     __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext;
31025   }
31026   for (;;) {
31027     if (PyList_CheckExact(__pyx_t_1)) {
31028       if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
31029       __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++;
31030     } else if (PyTuple_CheckExact(__pyx_t_1)) {
31031       if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
31032       __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++;
31033     } else {
31034       __pyx_t_8 = __pyx_t_7(__pyx_t_1);
31035       if (unlikely(!__pyx_t_8)) {
31036         if (PyErr_Occurred()) {
31037           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
31038           else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31039         }
31040         break;
31041       }
31042       __Pyx_GOTREF(__pyx_t_8);
31043     }
31044     __Pyx_XDECREF(__pyx_v_buf);
31045     __pyx_v_buf = __pyx_t_8;
31046     __pyx_t_8 = 0;
31047     __pyx_t_8 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_buf); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31048     __Pyx_GOTREF(__pyx_t_8);
31049     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31050     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31051   }
31052   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31053   __Pyx_INCREF(((PyObject *)__pyx_t_2));
31054   __pyx_r = ((PyObject *)__pyx_t_2);
31055   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
31056   goto __pyx_L0;
31057 
31058   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31059   goto __pyx_L0;
31060   __pyx_L1_error:;
31061   __Pyx_XDECREF(__pyx_t_1);
31062   __Pyx_XDECREF(__pyx_t_2);
31063   __Pyx_XDECREF(__pyx_t_8);
31064   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_testall", __pyx_clineno, __pyx_lineno, __pyx_filename);
31065   __pyx_r = 0;
31066   __pyx_L0:;
31067   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
31068   __Pyx_XDECREF(__pyx_v_buf);
31069   __Pyx_XDECREF(__pyx_v_bufs);
31070   __Pyx_XDECREF(__pyx_v_tmp);
31071   __Pyx_XGIVEREF(__pyx_r);
31072   __Pyx_RefNannyFinishContext();
31073   return __pyx_r;
31074 }
31075 
31076 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":528
31077  * # -----------------------------------------------------------------------------
31078  *
31079  * cdef object PyMPI_barrier(MPI_Comm comm):             # <<<<<<<<<<<<<<
31080  *     with nogil: CHKERR( MPI_Barrier(comm) )
31081  *     return None
31082  */
31083 
__pyx_f_6mpi4py_3MPI_PyMPI_barrier(MPI_Comm __pyx_v_comm)31084 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_barrier(MPI_Comm __pyx_v_comm) {
31085   PyObject *__pyx_r = NULL;
31086   __Pyx_RefNannyDeclarations
31087   int __pyx_t_1;
31088   int __pyx_lineno = 0;
31089   const char *__pyx_filename = NULL;
31090   int __pyx_clineno = 0;
31091   __Pyx_RefNannySetupContext("PyMPI_barrier");
31092 
31093   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":529
31094  *
31095  * cdef object PyMPI_barrier(MPI_Comm comm):
31096  *     with nogil: CHKERR( MPI_Barrier(comm) )             # <<<<<<<<<<<<<<
31097  *     return None
31098  *
31099  */
31100   {
31101       #ifdef WITH_THREAD
31102       PyThreadState *_save = NULL;
31103       #endif
31104       Py_UNBLOCK_THREADS
31105       /*try:*/ {
31106         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Barrier(__pyx_v_comm)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L4;}
31107       }
31108       /*finally:*/ {
31109         int __pyx_why;
31110         __pyx_why = 0; goto __pyx_L5;
31111         __pyx_L4: __pyx_why = 4; goto __pyx_L5;
31112         __pyx_L5:;
31113         Py_BLOCK_THREADS
31114         switch (__pyx_why) {
31115           case 4: goto __pyx_L1_error;
31116         }
31117       }
31118   }
31119 
31120   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":530
31121  * cdef object PyMPI_barrier(MPI_Comm comm):
31122  *     with nogil: CHKERR( MPI_Barrier(comm) )
31123  *     return None             # <<<<<<<<<<<<<<
31124  *
31125  *
31126  */
31127   __Pyx_XDECREF(__pyx_r);
31128   __Pyx_INCREF(Py_None);
31129   __pyx_r = Py_None;
31130   goto __pyx_L0;
31131 
31132   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31133   goto __pyx_L0;
31134   __pyx_L1_error:;
31135   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_barrier", __pyx_clineno, __pyx_lineno, __pyx_filename);
31136   __pyx_r = 0;
31137   __pyx_L0:;
31138   __Pyx_XGIVEREF(__pyx_r);
31139   __Pyx_RefNannyFinishContext();
31140   return __pyx_r;
31141 }
31142 
31143 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":533
31144  *
31145  *
31146  * cdef object PyMPI_bcast(object obj,             # <<<<<<<<<<<<<<
31147  *                         int root, MPI_Comm comm):
31148  *     cdef _p_Pickle pickle = PyMPI_pickle()
31149  */
31150 
__pyx_f_6mpi4py_3MPI_PyMPI_bcast(PyObject * __pyx_v_obj,int __pyx_v_root,MPI_Comm __pyx_v_comm)31151 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_bcast(PyObject *__pyx_v_obj, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
31152   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
31153   void *__pyx_v_buf;
31154   int __pyx_v_count;
31155   MPI_Datatype __pyx_v_dtype;
31156   int __pyx_v_dosend;
31157   int __pyx_v_dorecv;
31158   int __pyx_v_inter;
31159   int __pyx_v_rank;
31160   PyObject *__pyx_v_smsg = 0;
31161   PyObject *__pyx_v_rmsg = 0;
31162   PyObject *__pyx_r = NULL;
31163   __Pyx_RefNannyDeclarations
31164   PyObject *__pyx_t_1 = NULL;
31165   int __pyx_t_2;
31166   int __pyx_t_3;
31167   int __pyx_lineno = 0;
31168   const char *__pyx_filename = NULL;
31169   int __pyx_clineno = 0;
31170   __Pyx_RefNannySetupContext("PyMPI_bcast");
31171 
31172   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":535
31173  * cdef object PyMPI_bcast(object obj,
31174  *                         int root, MPI_Comm comm):
31175  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
31176  *     #
31177  *     cdef void *buf = NULL
31178  */
31179   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31180   __Pyx_GOTREF(__pyx_t_1);
31181   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
31182   __pyx_t_1 = 0;
31183 
31184   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":537
31185  *     cdef _p_Pickle pickle = PyMPI_pickle()
31186  *     #
31187  *     cdef void *buf = NULL             # <<<<<<<<<<<<<<
31188  *     cdef int count = 0
31189  *     cdef MPI_Datatype dtype = MPI_BYTE
31190  */
31191   __pyx_v_buf = NULL;
31192 
31193   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":538
31194  *     #
31195  *     cdef void *buf = NULL
31196  *     cdef int count = 0             # <<<<<<<<<<<<<<
31197  *     cdef MPI_Datatype dtype = MPI_BYTE
31198  *     #
31199  */
31200   __pyx_v_count = 0;
31201 
31202   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":539
31203  *     cdef void *buf = NULL
31204  *     cdef int count = 0
31205  *     cdef MPI_Datatype dtype = MPI_BYTE             # <<<<<<<<<<<<<<
31206  *     #
31207  *     cdef int dosend=0, dorecv=0
31208  */
31209   __pyx_v_dtype = MPI_BYTE;
31210 
31211   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":541
31212  *     cdef MPI_Datatype dtype = MPI_BYTE
31213  *     #
31214  *     cdef int dosend=0, dorecv=0             # <<<<<<<<<<<<<<
31215  *     cdef int inter=0, rank=0
31216  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31217  */
31218   __pyx_v_dosend = 0;
31219   __pyx_v_dorecv = 0;
31220 
31221   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":542
31222  *     #
31223  *     cdef int dosend=0, dorecv=0
31224  *     cdef int inter=0, rank=0             # <<<<<<<<<<<<<<
31225  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31226  *     if inter:
31227  */
31228   __pyx_v_inter = 0;
31229   __pyx_v_rank = 0;
31230 
31231   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":543
31232  *     cdef int dosend=0, dorecv=0
31233  *     cdef int inter=0, rank=0
31234  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
31235  *     if inter:
31236  *         if root == <int>MPI_PROC_NULL:
31237  */
31238   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31239 
31240   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":544
31241  *     cdef int inter=0, rank=0
31242  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31243  *     if inter:             # <<<<<<<<<<<<<<
31244  *         if root == <int>MPI_PROC_NULL:
31245  *             dosend=0; dorecv=0;
31246  */
31247   if (__pyx_v_inter) {
31248 
31249     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":545
31250  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31251  *     if inter:
31252  *         if root == <int>MPI_PROC_NULL:             # <<<<<<<<<<<<<<
31253  *             dosend=0; dorecv=0;
31254  *         elif root == <int>MPI_ROOT:
31255  */
31256     __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
31257     if (__pyx_t_3) {
31258 
31259       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":546
31260  *     if inter:
31261  *         if root == <int>MPI_PROC_NULL:
31262  *             dosend=0; dorecv=0;             # <<<<<<<<<<<<<<
31263  *         elif root == <int>MPI_ROOT:
31264  *             dosend=1; dorecv=0;
31265  */
31266       __pyx_v_dosend = 0;
31267       __pyx_v_dorecv = 0;
31268       goto __pyx_L4;
31269     }
31270 
31271     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":547
31272  *         if root == <int>MPI_PROC_NULL:
31273  *             dosend=0; dorecv=0;
31274  *         elif root == <int>MPI_ROOT:             # <<<<<<<<<<<<<<
31275  *             dosend=1; dorecv=0;
31276  *         else:
31277  */
31278     __pyx_t_3 = (__pyx_v_root == ((int)MPI_ROOT));
31279     if (__pyx_t_3) {
31280 
31281       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":548
31282  *             dosend=0; dorecv=0;
31283  *         elif root == <int>MPI_ROOT:
31284  *             dosend=1; dorecv=0;             # <<<<<<<<<<<<<<
31285  *         else:
31286  *             dosend=0; dorecv=1;
31287  */
31288       __pyx_v_dosend = 1;
31289       __pyx_v_dorecv = 0;
31290       goto __pyx_L4;
31291     }
31292     /*else*/ {
31293 
31294       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":550
31295  *             dosend=1; dorecv=0;
31296  *         else:
31297  *             dosend=0; dorecv=1;             # <<<<<<<<<<<<<<
31298  *     else:
31299  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31300  */
31301       __pyx_v_dosend = 0;
31302       __pyx_v_dorecv = 1;
31303     }
31304     __pyx_L4:;
31305     goto __pyx_L3;
31306   }
31307   /*else*/ {
31308 
31309     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":552
31310  *             dosend=0; dorecv=1;
31311  *     else:
31312  *         CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
31313  *         if root == rank:
31314  *             dosend=1; dorecv=1;
31315  */
31316     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31317 
31318     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":553
31319  *     else:
31320  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31321  *         if root == rank:             # <<<<<<<<<<<<<<
31322  *             dosend=1; dorecv=1;
31323  *         else:
31324  */
31325     __pyx_t_3 = (__pyx_v_root == __pyx_v_rank);
31326     if (__pyx_t_3) {
31327 
31328       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":554
31329  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31330  *         if root == rank:
31331  *             dosend=1; dorecv=1;             # <<<<<<<<<<<<<<
31332  *         else:
31333  *             dosend=0; dorecv=1;
31334  */
31335       __pyx_v_dosend = 1;
31336       __pyx_v_dorecv = 1;
31337       goto __pyx_L5;
31338     }
31339     /*else*/ {
31340 
31341       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":556
31342  *             dosend=1; dorecv=1;
31343  *         else:
31344  *             dosend=0; dorecv=1;             # <<<<<<<<<<<<<<
31345  *     #
31346  *     cdef object smsg = None
31347  */
31348       __pyx_v_dosend = 0;
31349       __pyx_v_dorecv = 1;
31350     }
31351     __pyx_L5:;
31352   }
31353   __pyx_L3:;
31354 
31355   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":558
31356  *             dosend=0; dorecv=1;
31357  *     #
31358  *     cdef object smsg = None             # <<<<<<<<<<<<<<
31359  *     if dosend: smsg = pickle.dump(obj, &buf, &count)
31360  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,
31361  */
31362   __Pyx_INCREF(Py_None);
31363   __pyx_v_smsg = Py_None;
31364 
31365   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":559
31366  *     #
31367  *     cdef object smsg = None
31368  *     if dosend: smsg = pickle.dump(obj, &buf, &count)             # <<<<<<<<<<<<<<
31369  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,
31370  *                                   root, comm) )
31371  */
31372   if (__pyx_v_dosend) {
31373     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_obj, (&__pyx_v_buf), (&__pyx_v_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31374     __Pyx_GOTREF(__pyx_t_1);
31375     __Pyx_DECREF(__pyx_v_smsg);
31376     __pyx_v_smsg = __pyx_t_1;
31377     __pyx_t_1 = 0;
31378     goto __pyx_L6;
31379   }
31380   __pyx_L6:;
31381 
31382   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":560
31383  *     cdef object smsg = None
31384  *     if dosend: smsg = pickle.dump(obj, &buf, &count)
31385  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,             # <<<<<<<<<<<<<<
31386  *                                   root, comm) )
31387  *     cdef object rmsg = None
31388  */
31389   {
31390       #ifdef WITH_THREAD
31391       PyThreadState *_save = NULL;
31392       #endif
31393       Py_UNBLOCK_THREADS
31394       /*try:*/ {
31395 
31396         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":561
31397  *     if dosend: smsg = pickle.dump(obj, &buf, &count)
31398  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,
31399  *                                   root, comm) )             # <<<<<<<<<<<<<<
31400  *     cdef object rmsg = None
31401  *     if dorecv and dosend: rmsg = smsg
31402  */
31403         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bcast((&__pyx_v_count), 1, MPI_INT, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8;}
31404       }
31405 
31406       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":560
31407  *     cdef object smsg = None
31408  *     if dosend: smsg = pickle.dump(obj, &buf, &count)
31409  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,             # <<<<<<<<<<<<<<
31410  *                                   root, comm) )
31411  *     cdef object rmsg = None
31412  */
31413       /*finally:*/ {
31414         int __pyx_why;
31415         __pyx_why = 0; goto __pyx_L9;
31416         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
31417         __pyx_L9:;
31418         Py_BLOCK_THREADS
31419         switch (__pyx_why) {
31420           case 4: goto __pyx_L1_error;
31421         }
31422       }
31423   }
31424 
31425   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":562
31426  *     with nogil: CHKERR( MPI_Bcast(&count, 1, MPI_INT,
31427  *                                   root, comm) )
31428  *     cdef object rmsg = None             # <<<<<<<<<<<<<<
31429  *     if dorecv and dosend: rmsg = smsg
31430  *     elif dorecv: rmsg = pickle.alloc(&buf, count)
31431  */
31432   __Pyx_INCREF(Py_None);
31433   __pyx_v_rmsg = Py_None;
31434 
31435   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":563
31436  *                                   root, comm) )
31437  *     cdef object rmsg = None
31438  *     if dorecv and dosend: rmsg = smsg             # <<<<<<<<<<<<<<
31439  *     elif dorecv: rmsg = pickle.alloc(&buf, count)
31440  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,
31441  */
31442   if (__pyx_v_dorecv) {
31443     __pyx_t_3 = __pyx_v_dosend;
31444   } else {
31445     __pyx_t_3 = __pyx_v_dorecv;
31446   }
31447   if (__pyx_t_3) {
31448     __Pyx_INCREF(__pyx_v_smsg);
31449     __Pyx_DECREF(__pyx_v_rmsg);
31450     __pyx_v_rmsg = __pyx_v_smsg;
31451     goto __pyx_L11;
31452   }
31453 
31454   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":564
31455  *     cdef object rmsg = None
31456  *     if dorecv and dosend: rmsg = smsg
31457  *     elif dorecv: rmsg = pickle.alloc(&buf, count)             # <<<<<<<<<<<<<<
31458  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,
31459  *                                   root, comm) )
31460  */
31461   if (__pyx_v_dorecv) {
31462     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->alloc(__pyx_v_pickle, (&__pyx_v_buf), __pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31463     __Pyx_GOTREF(__pyx_t_1);
31464     __Pyx_DECREF(__pyx_v_rmsg);
31465     __pyx_v_rmsg = __pyx_t_1;
31466     __pyx_t_1 = 0;
31467     goto __pyx_L11;
31468   }
31469   __pyx_L11:;
31470 
31471   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":565
31472  *     if dorecv and dosend: rmsg = smsg
31473  *     elif dorecv: rmsg = pickle.alloc(&buf, count)
31474  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,             # <<<<<<<<<<<<<<
31475  *                                   root, comm) )
31476  *     if dorecv: rmsg = pickle.load(rmsg)
31477  */
31478   {
31479       #ifdef WITH_THREAD
31480       PyThreadState *_save = NULL;
31481       #endif
31482       Py_UNBLOCK_THREADS
31483       /*try:*/ {
31484 
31485         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":566
31486  *     elif dorecv: rmsg = pickle.alloc(&buf, count)
31487  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,
31488  *                                   root, comm) )             # <<<<<<<<<<<<<<
31489  *     if dorecv: rmsg = pickle.load(rmsg)
31490  *     return rmsg
31491  */
31492         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bcast(__pyx_v_buf, __pyx_v_count, __pyx_v_dtype, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L13;}
31493       }
31494 
31495       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":565
31496  *     if dorecv and dosend: rmsg = smsg
31497  *     elif dorecv: rmsg = pickle.alloc(&buf, count)
31498  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,             # <<<<<<<<<<<<<<
31499  *                                   root, comm) )
31500  *     if dorecv: rmsg = pickle.load(rmsg)
31501  */
31502       /*finally:*/ {
31503         int __pyx_why;
31504         __pyx_why = 0; goto __pyx_L14;
31505         __pyx_L13: __pyx_why = 4; goto __pyx_L14;
31506         __pyx_L14:;
31507         Py_BLOCK_THREADS
31508         switch (__pyx_why) {
31509           case 4: goto __pyx_L1_error;
31510         }
31511       }
31512   }
31513 
31514   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":567
31515  *     with nogil: CHKERR( MPI_Bcast(buf, count, dtype,
31516  *                                   root, comm) )
31517  *     if dorecv: rmsg = pickle.load(rmsg)             # <<<<<<<<<<<<<<
31518  *     return rmsg
31519  *
31520  */
31521   if (__pyx_v_dorecv) {
31522     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_rmsg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31523     __Pyx_GOTREF(__pyx_t_1);
31524     __Pyx_DECREF(__pyx_v_rmsg);
31525     __pyx_v_rmsg = __pyx_t_1;
31526     __pyx_t_1 = 0;
31527     goto __pyx_L16;
31528   }
31529   __pyx_L16:;
31530 
31531   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":568
31532  *                                   root, comm) )
31533  *     if dorecv: rmsg = pickle.load(rmsg)
31534  *     return rmsg             # <<<<<<<<<<<<<<
31535  *
31536  *
31537  */
31538   __Pyx_XDECREF(__pyx_r);
31539   __Pyx_INCREF(__pyx_v_rmsg);
31540   __pyx_r = __pyx_v_rmsg;
31541   goto __pyx_L0;
31542 
31543   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31544   goto __pyx_L0;
31545   __pyx_L1_error:;
31546   __Pyx_XDECREF(__pyx_t_1);
31547   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
31548   __pyx_r = 0;
31549   __pyx_L0:;
31550   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
31551   __Pyx_XDECREF(__pyx_v_smsg);
31552   __Pyx_XDECREF(__pyx_v_rmsg);
31553   __Pyx_XGIVEREF(__pyx_r);
31554   __Pyx_RefNannyFinishContext();
31555   return __pyx_r;
31556 }
31557 
31558 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":571
31559  *
31560  *
31561  * cdef object PyMPI_gather(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
31562  *                          int root, MPI_Comm comm):
31563  *     cdef _p_Pickle pickle = PyMPI_pickle()
31564  */
31565 
__pyx_f_6mpi4py_3MPI_PyMPI_gather(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,int __pyx_v_root,MPI_Comm __pyx_v_comm)31566 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_gather(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
31567   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
31568   void *__pyx_v_sbuf;
31569   int __pyx_v_scount;
31570   MPI_Datatype __pyx_v_stype;
31571   void *__pyx_v_rbuf;
31572   int *__pyx_v_rcounts;
31573   int *__pyx_v_rdispls;
31574   MPI_Datatype __pyx_v_rtype;
31575   int __pyx_v_dosend;
31576   int __pyx_v_dorecv;
31577   int __pyx_v_inter;
31578   int __pyx_v_size;
31579   int __pyx_v_rank;
31580   PyObject *__pyx_v_tmp1 = 0;
31581   PyObject *__pyx_v_tmp2 = 0;
31582   PyObject *__pyx_v_smsg = 0;
31583   PyObject *__pyx_v_rmsg = 0;
31584   PyObject *__pyx_r = NULL;
31585   __Pyx_RefNannyDeclarations
31586   PyObject *__pyx_t_1 = NULL;
31587   int __pyx_t_2;
31588   int __pyx_t_3;
31589   int __pyx_lineno = 0;
31590   const char *__pyx_filename = NULL;
31591   int __pyx_clineno = 0;
31592   __Pyx_RefNannySetupContext("PyMPI_gather");
31593 
31594   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":573
31595  * cdef object PyMPI_gather(object sendobj, object recvobj,
31596  *                          int root, MPI_Comm comm):
31597  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
31598  *     #
31599  *     cdef void *sbuf = NULL
31600  */
31601   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31602   __Pyx_GOTREF(__pyx_t_1);
31603   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
31604   __pyx_t_1 = 0;
31605 
31606   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":575
31607  *     cdef _p_Pickle pickle = PyMPI_pickle()
31608  *     #
31609  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
31610  *     cdef int scount = 0
31611  *     cdef MPI_Datatype stype = MPI_BYTE
31612  */
31613   __pyx_v_sbuf = NULL;
31614 
31615   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":576
31616  *     #
31617  *     cdef void *sbuf = NULL
31618  *     cdef int scount = 0             # <<<<<<<<<<<<<<
31619  *     cdef MPI_Datatype stype = MPI_BYTE
31620  *     cdef void *rbuf = NULL
31621  */
31622   __pyx_v_scount = 0;
31623 
31624   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":577
31625  *     cdef void *sbuf = NULL
31626  *     cdef int scount = 0
31627  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
31628  *     cdef void *rbuf = NULL
31629  *     cdef int *rcounts = NULL
31630  */
31631   __pyx_v_stype = MPI_BYTE;
31632 
31633   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":578
31634  *     cdef int scount = 0
31635  *     cdef MPI_Datatype stype = MPI_BYTE
31636  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
31637  *     cdef int *rcounts = NULL
31638  *     cdef int *rdispls = NULL
31639  */
31640   __pyx_v_rbuf = NULL;
31641 
31642   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":579
31643  *     cdef MPI_Datatype stype = MPI_BYTE
31644  *     cdef void *rbuf = NULL
31645  *     cdef int *rcounts = NULL             # <<<<<<<<<<<<<<
31646  *     cdef int *rdispls = NULL
31647  *     cdef MPI_Datatype rtype = MPI_BYTE
31648  */
31649   __pyx_v_rcounts = NULL;
31650 
31651   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":580
31652  *     cdef void *rbuf = NULL
31653  *     cdef int *rcounts = NULL
31654  *     cdef int *rdispls = NULL             # <<<<<<<<<<<<<<
31655  *     cdef MPI_Datatype rtype = MPI_BYTE
31656  *     #
31657  */
31658   __pyx_v_rdispls = NULL;
31659 
31660   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":581
31661  *     cdef int *rcounts = NULL
31662  *     cdef int *rdispls = NULL
31663  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
31664  *     #
31665  *     cdef int dosend=0, dorecv=0
31666  */
31667   __pyx_v_rtype = MPI_BYTE;
31668 
31669   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":583
31670  *     cdef MPI_Datatype rtype = MPI_BYTE
31671  *     #
31672  *     cdef int dosend=0, dorecv=0             # <<<<<<<<<<<<<<
31673  *     cdef int inter=0, size=0, rank=0
31674  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31675  */
31676   __pyx_v_dosend = 0;
31677   __pyx_v_dorecv = 0;
31678 
31679   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":584
31680  *     #
31681  *     cdef int dosend=0, dorecv=0
31682  *     cdef int inter=0, size=0, rank=0             # <<<<<<<<<<<<<<
31683  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31684  *     if inter:
31685  */
31686   __pyx_v_inter = 0;
31687   __pyx_v_size = 0;
31688   __pyx_v_rank = 0;
31689 
31690   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":585
31691  *     cdef int dosend=0, dorecv=0
31692  *     cdef int inter=0, size=0, rank=0
31693  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
31694  *     if inter:
31695  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
31696  */
31697   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31698 
31699   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":586
31700  *     cdef int inter=0, size=0, rank=0
31701  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31702  *     if inter:             # <<<<<<<<<<<<<<
31703  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
31704  *         if root == <int>MPI_PROC_NULL:
31705  */
31706   if (__pyx_v_inter) {
31707 
31708     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":587
31709  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
31710  *     if inter:
31711  *         CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
31712  *         if root == <int>MPI_PROC_NULL:
31713  *             dosend=0; dorecv=0;
31714  */
31715     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31716 
31717     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":588
31718  *     if inter:
31719  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
31720  *         if root == <int>MPI_PROC_NULL:             # <<<<<<<<<<<<<<
31721  *             dosend=0; dorecv=0;
31722  *         elif root == <int>MPI_ROOT:
31723  */
31724     __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
31725     if (__pyx_t_3) {
31726 
31727       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":589
31728  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
31729  *         if root == <int>MPI_PROC_NULL:
31730  *             dosend=0; dorecv=0;             # <<<<<<<<<<<<<<
31731  *         elif root == <int>MPI_ROOT:
31732  *             dosend=0; dorecv=1;
31733  */
31734       __pyx_v_dosend = 0;
31735       __pyx_v_dorecv = 0;
31736       goto __pyx_L4;
31737     }
31738 
31739     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":590
31740  *         if root == <int>MPI_PROC_NULL:
31741  *             dosend=0; dorecv=0;
31742  *         elif root == <int>MPI_ROOT:             # <<<<<<<<<<<<<<
31743  *             dosend=0; dorecv=1;
31744  *         else:
31745  */
31746     __pyx_t_3 = (__pyx_v_root == ((int)MPI_ROOT));
31747     if (__pyx_t_3) {
31748 
31749       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":591
31750  *             dosend=0; dorecv=0;
31751  *         elif root == <int>MPI_ROOT:
31752  *             dosend=0; dorecv=1;             # <<<<<<<<<<<<<<
31753  *         else:
31754  *             dosend=1; dorecv=0;
31755  */
31756       __pyx_v_dosend = 0;
31757       __pyx_v_dorecv = 1;
31758       goto __pyx_L4;
31759     }
31760     /*else*/ {
31761 
31762       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":593
31763  *             dosend=0; dorecv=1;
31764  *         else:
31765  *             dosend=1; dorecv=0;             # <<<<<<<<<<<<<<
31766  *     else:
31767  *         CHKERR( MPI_Comm_size(comm, &size) )
31768  */
31769       __pyx_v_dosend = 1;
31770       __pyx_v_dorecv = 0;
31771     }
31772     __pyx_L4:;
31773     goto __pyx_L3;
31774   }
31775   /*else*/ {
31776 
31777     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":595
31778  *             dosend=1; dorecv=0;
31779  *     else:
31780  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
31781  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31782  *         if root == rank:
31783  */
31784     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31785 
31786     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":596
31787  *     else:
31788  *         CHKERR( MPI_Comm_size(comm, &size) )
31789  *         CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
31790  *         if root == rank:
31791  *             dosend=1; dorecv=1;
31792  */
31793     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31794 
31795     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":597
31796  *         CHKERR( MPI_Comm_size(comm, &size) )
31797  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31798  *         if root == rank:             # <<<<<<<<<<<<<<
31799  *             dosend=1; dorecv=1;
31800  *         else:
31801  */
31802     __pyx_t_3 = (__pyx_v_root == __pyx_v_rank);
31803     if (__pyx_t_3) {
31804 
31805       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":598
31806  *         CHKERR( MPI_Comm_rank(comm, &rank) )
31807  *         if root == rank:
31808  *             dosend=1; dorecv=1;             # <<<<<<<<<<<<<<
31809  *         else:
31810  *             dosend=1; dorecv=0;
31811  */
31812       __pyx_v_dosend = 1;
31813       __pyx_v_dorecv = 1;
31814       goto __pyx_L5;
31815     }
31816     /*else*/ {
31817 
31818       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":600
31819  *             dosend=1; dorecv=1;
31820  *         else:
31821  *             dosend=1; dorecv=0;             # <<<<<<<<<<<<<<
31822  *     #
31823  *     cdef object tmp1=None, tmp2=None
31824  */
31825       __pyx_v_dosend = 1;
31826       __pyx_v_dorecv = 0;
31827     }
31828     __pyx_L5:;
31829   }
31830   __pyx_L3:;
31831 
31832   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":602
31833  *             dosend=1; dorecv=0;
31834  *     #
31835  *     cdef object tmp1=None, tmp2=None             # <<<<<<<<<<<<<<
31836  *     if dorecv: tmp1 = allocate_int(size, &rcounts)
31837  *     if dorecv: tmp2 = allocate_int(size, &rdispls)
31838  */
31839   __Pyx_INCREF(Py_None);
31840   __pyx_v_tmp1 = Py_None;
31841   __Pyx_INCREF(Py_None);
31842   __pyx_v_tmp2 = Py_None;
31843 
31844   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":603
31845  *     #
31846  *     cdef object tmp1=None, tmp2=None
31847  *     if dorecv: tmp1 = allocate_int(size, &rcounts)             # <<<<<<<<<<<<<<
31848  *     if dorecv: tmp2 = allocate_int(size, &rdispls)
31849  *     #
31850  */
31851   if (__pyx_v_dorecv) {
31852     __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rcounts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31853     __Pyx_GOTREF(__pyx_t_1);
31854     __Pyx_DECREF(__pyx_v_tmp1);
31855     __pyx_v_tmp1 = __pyx_t_1;
31856     __pyx_t_1 = 0;
31857     goto __pyx_L6;
31858   }
31859   __pyx_L6:;
31860 
31861   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":604
31862  *     cdef object tmp1=None, tmp2=None
31863  *     if dorecv: tmp1 = allocate_int(size, &rcounts)
31864  *     if dorecv: tmp2 = allocate_int(size, &rdispls)             # <<<<<<<<<<<<<<
31865  *     #
31866  *     cdef object smsg = None
31867  */
31868   if (__pyx_v_dorecv) {
31869     __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rdispls)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31870     __Pyx_GOTREF(__pyx_t_1);
31871     __Pyx_DECREF(__pyx_v_tmp2);
31872     __pyx_v_tmp2 = __pyx_t_1;
31873     __pyx_t_1 = 0;
31874     goto __pyx_L7;
31875   }
31876   __pyx_L7:;
31877 
31878   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":606
31879  *     if dorecv: tmp2 = allocate_int(size, &rdispls)
31880  *     #
31881  *     cdef object smsg = None             # <<<<<<<<<<<<<<
31882  *     if dosend: smsg = pickle.dump(sendobj, &sbuf, &scount)
31883  *     with nogil: CHKERR( MPI_Gather(&scount, 1, MPI_INT,
31884  */
31885   __Pyx_INCREF(Py_None);
31886   __pyx_v_smsg = Py_None;
31887 
31888   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":607
31889  *     #
31890  *     cdef object smsg = None
31891  *     if dosend: smsg = pickle.dump(sendobj, &sbuf, &scount)             # <<<<<<<<<<<<<<
31892  *     with nogil: CHKERR( MPI_Gather(&scount, 1, MPI_INT,
31893  *                                    rcounts, 1, MPI_INT,
31894  */
31895   if (__pyx_v_dosend) {
31896     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_sendobj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31897     __Pyx_GOTREF(__pyx_t_1);
31898     __Pyx_DECREF(__pyx_v_smsg);
31899     __pyx_v_smsg = __pyx_t_1;
31900     __pyx_t_1 = 0;
31901     goto __pyx_L8;
31902   }
31903   __pyx_L8:;
31904 
31905   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":608
31906  *     cdef object smsg = None
31907  *     if dosend: smsg = pickle.dump(sendobj, &sbuf, &scount)
31908  *     with nogil: CHKERR( MPI_Gather(&scount, 1, MPI_INT,             # <<<<<<<<<<<<<<
31909  *                                    rcounts, 1, MPI_INT,
31910  *                                    root, comm) )
31911  */
31912   {
31913       #ifdef WITH_THREAD
31914       PyThreadState *_save = NULL;
31915       #endif
31916       Py_UNBLOCK_THREADS
31917       /*try:*/ {
31918 
31919         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":610
31920  *     with nogil: CHKERR( MPI_Gather(&scount, 1, MPI_INT,
31921  *                                    rcounts, 1, MPI_INT,
31922  *                                    root, comm) )             # <<<<<<<<<<<<<<
31923  *     cdef object rmsg = None
31924  *     if dorecv: rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
31925  */
31926         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Gather((&__pyx_v_scount), 1, MPI_INT, __pyx_v_rcounts, 1, MPI_INT, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L10;}
31927       }
31928 
31929       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":608
31930  *     cdef object smsg = None
31931  *     if dosend: smsg = pickle.dump(sendobj, &sbuf, &scount)
31932  *     with nogil: CHKERR( MPI_Gather(&scount, 1, MPI_INT,             # <<<<<<<<<<<<<<
31933  *                                    rcounts, 1, MPI_INT,
31934  *                                    root, comm) )
31935  */
31936       /*finally:*/ {
31937         int __pyx_why;
31938         __pyx_why = 0; goto __pyx_L11;
31939         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
31940         __pyx_L11:;
31941         Py_BLOCK_THREADS
31942         switch (__pyx_why) {
31943           case 4: goto __pyx_L1_error;
31944         }
31945       }
31946   }
31947 
31948   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":611
31949  *                                    rcounts, 1, MPI_INT,
31950  *                                    root, comm) )
31951  *     cdef object rmsg = None             # <<<<<<<<<<<<<<
31952  *     if dorecv: rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
31953  *     with nogil: CHKERR( MPI_Gatherv(sbuf, scount,           stype,
31954  */
31955   __Pyx_INCREF(Py_None);
31956   __pyx_v_rmsg = Py_None;
31957 
31958   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":612
31959  *                                    root, comm) )
31960  *     cdef object rmsg = None
31961  *     if dorecv: rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
31962  *     with nogil: CHKERR( MPI_Gatherv(sbuf, scount,           stype,
31963  *                                     rbuf, rcounts, rdispls, rtype,
31964  */
31965   if (__pyx_v_dorecv) {
31966     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->allocv(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
31967     __Pyx_GOTREF(__pyx_t_1);
31968     __Pyx_DECREF(__pyx_v_rmsg);
31969     __pyx_v_rmsg = __pyx_t_1;
31970     __pyx_t_1 = 0;
31971     goto __pyx_L13;
31972   }
31973   __pyx_L13:;
31974 
31975   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":613
31976  *     cdef object rmsg = None
31977  *     if dorecv: rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
31978  *     with nogil: CHKERR( MPI_Gatherv(sbuf, scount,           stype,             # <<<<<<<<<<<<<<
31979  *                                     rbuf, rcounts, rdispls, rtype,
31980  *                                     root, comm) )
31981  */
31982   {
31983       #ifdef WITH_THREAD
31984       PyThreadState *_save = NULL;
31985       #endif
31986       Py_UNBLOCK_THREADS
31987       /*try:*/ {
31988 
31989         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":615
31990  *     with nogil: CHKERR( MPI_Gatherv(sbuf, scount,           stype,
31991  *                                     rbuf, rcounts, rdispls, rtype,
31992  *                                     root, comm) )             # <<<<<<<<<<<<<<
31993  *     if dorecv: rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
31994  *     return rmsg
31995  */
31996         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Gatherv(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_rbuf, __pyx_v_rcounts, __pyx_v_rdispls, __pyx_v_rtype, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L15;}
31997       }
31998 
31999       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":613
32000  *     cdef object rmsg = None
32001  *     if dorecv: rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
32002  *     with nogil: CHKERR( MPI_Gatherv(sbuf, scount,           stype,             # <<<<<<<<<<<<<<
32003  *                                     rbuf, rcounts, rdispls, rtype,
32004  *                                     root, comm) )
32005  */
32006       /*finally:*/ {
32007         int __pyx_why;
32008         __pyx_why = 0; goto __pyx_L16;
32009         __pyx_L15: __pyx_why = 4; goto __pyx_L16;
32010         __pyx_L16:;
32011         Py_BLOCK_THREADS
32012         switch (__pyx_why) {
32013           case 4: goto __pyx_L1_error;
32014         }
32015       }
32016   }
32017 
32018   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":616
32019  *                                     rbuf, rcounts, rdispls, rtype,
32020  *                                     root, comm) )
32021  *     if dorecv: rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
32022  *     return rmsg
32023  *
32024  */
32025   if (__pyx_v_dorecv) {
32026     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->loadv(__pyx_v_pickle, __pyx_v_rmsg, __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32027     __Pyx_GOTREF(__pyx_t_1);
32028     __Pyx_DECREF(__pyx_v_rmsg);
32029     __pyx_v_rmsg = __pyx_t_1;
32030     __pyx_t_1 = 0;
32031     goto __pyx_L18;
32032   }
32033   __pyx_L18:;
32034 
32035   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":617
32036  *                                     root, comm) )
32037  *     if dorecv: rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
32038  *     return rmsg             # <<<<<<<<<<<<<<
32039  *
32040  *
32041  */
32042   __Pyx_XDECREF(__pyx_r);
32043   __Pyx_INCREF(__pyx_v_rmsg);
32044   __pyx_r = __pyx_v_rmsg;
32045   goto __pyx_L0;
32046 
32047   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32048   goto __pyx_L0;
32049   __pyx_L1_error:;
32050   __Pyx_XDECREF(__pyx_t_1);
32051   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
32052   __pyx_r = 0;
32053   __pyx_L0:;
32054   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
32055   __Pyx_XDECREF(__pyx_v_tmp1);
32056   __Pyx_XDECREF(__pyx_v_tmp2);
32057   __Pyx_XDECREF(__pyx_v_smsg);
32058   __Pyx_XDECREF(__pyx_v_rmsg);
32059   __Pyx_XGIVEREF(__pyx_r);
32060   __Pyx_RefNannyFinishContext();
32061   return __pyx_r;
32062 }
32063 
32064 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":620
32065  *
32066  *
32067  * cdef object PyMPI_scatter(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
32068  *                           int root, MPI_Comm comm):
32069  *     cdef _p_Pickle pickle = PyMPI_pickle()
32070  */
32071 
__pyx_f_6mpi4py_3MPI_PyMPI_scatter(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,int __pyx_v_root,MPI_Comm __pyx_v_comm)32072 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_scatter(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
32073   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
32074   void *__pyx_v_sbuf;
32075   int *__pyx_v_scounts;
32076   int *__pyx_v_sdispls;
32077   MPI_Datatype __pyx_v_stype;
32078   void *__pyx_v_rbuf;
32079   int __pyx_v_rcount;
32080   MPI_Datatype __pyx_v_rtype;
32081   int __pyx_v_dosend;
32082   int __pyx_v_dorecv;
32083   int __pyx_v_inter;
32084   int __pyx_v_size;
32085   int __pyx_v_rank;
32086   PyObject *__pyx_v_tmp1 = 0;
32087   PyObject *__pyx_v_tmp2 = 0;
32088   PyObject *__pyx_v_smsg = 0;
32089   PyObject *__pyx_v_rmsg = 0;
32090   PyObject *__pyx_r = NULL;
32091   __Pyx_RefNannyDeclarations
32092   PyObject *__pyx_t_1 = NULL;
32093   int __pyx_t_2;
32094   int __pyx_t_3;
32095   int __pyx_lineno = 0;
32096   const char *__pyx_filename = NULL;
32097   int __pyx_clineno = 0;
32098   __Pyx_RefNannySetupContext("PyMPI_scatter");
32099 
32100   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":622
32101  * cdef object PyMPI_scatter(object sendobj, object recvobj,
32102  *                           int root, MPI_Comm comm):
32103  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
32104  *     #
32105  *     cdef void *sbuf = NULL
32106  */
32107   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32108   __Pyx_GOTREF(__pyx_t_1);
32109   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
32110   __pyx_t_1 = 0;
32111 
32112   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":624
32113  *     cdef _p_Pickle pickle = PyMPI_pickle()
32114  *     #
32115  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
32116  *     cdef int *scounts = NULL
32117  *     cdef int *sdispls = NULL
32118  */
32119   __pyx_v_sbuf = NULL;
32120 
32121   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":625
32122  *     #
32123  *     cdef void *sbuf = NULL
32124  *     cdef int *scounts = NULL             # <<<<<<<<<<<<<<
32125  *     cdef int *sdispls = NULL
32126  *     cdef MPI_Datatype stype = MPI_BYTE
32127  */
32128   __pyx_v_scounts = NULL;
32129 
32130   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":626
32131  *     cdef void *sbuf = NULL
32132  *     cdef int *scounts = NULL
32133  *     cdef int *sdispls = NULL             # <<<<<<<<<<<<<<
32134  *     cdef MPI_Datatype stype = MPI_BYTE
32135  *     cdef void *rbuf = NULL
32136  */
32137   __pyx_v_sdispls = NULL;
32138 
32139   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":627
32140  *     cdef int *scounts = NULL
32141  *     cdef int *sdispls = NULL
32142  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
32143  *     cdef void *rbuf = NULL
32144  *     cdef int rcount = 0
32145  */
32146   __pyx_v_stype = MPI_BYTE;
32147 
32148   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":628
32149  *     cdef int *sdispls = NULL
32150  *     cdef MPI_Datatype stype = MPI_BYTE
32151  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
32152  *     cdef int rcount = 0
32153  *     cdef MPI_Datatype rtype = MPI_BYTE
32154  */
32155   __pyx_v_rbuf = NULL;
32156 
32157   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":629
32158  *     cdef MPI_Datatype stype = MPI_BYTE
32159  *     cdef void *rbuf = NULL
32160  *     cdef int rcount = 0             # <<<<<<<<<<<<<<
32161  *     cdef MPI_Datatype rtype = MPI_BYTE
32162  *     #
32163  */
32164   __pyx_v_rcount = 0;
32165 
32166   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":630
32167  *     cdef void *rbuf = NULL
32168  *     cdef int rcount = 0
32169  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
32170  *     #
32171  *     cdef int dosend=0, dorecv=0
32172  */
32173   __pyx_v_rtype = MPI_BYTE;
32174 
32175   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":632
32176  *     cdef MPI_Datatype rtype = MPI_BYTE
32177  *     #
32178  *     cdef int dosend=0, dorecv=0             # <<<<<<<<<<<<<<
32179  *     cdef int inter=0, size=0, rank=0
32180  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32181  */
32182   __pyx_v_dosend = 0;
32183   __pyx_v_dorecv = 0;
32184 
32185   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":633
32186  *     #
32187  *     cdef int dosend=0, dorecv=0
32188  *     cdef int inter=0, size=0, rank=0             # <<<<<<<<<<<<<<
32189  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32190  *     if inter:
32191  */
32192   __pyx_v_inter = 0;
32193   __pyx_v_size = 0;
32194   __pyx_v_rank = 0;
32195 
32196   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":634
32197  *     cdef int dosend=0, dorecv=0
32198  *     cdef int inter=0, size=0, rank=0
32199  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
32200  *     if inter:
32201  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32202  */
32203   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32204 
32205   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":635
32206  *     cdef int inter=0, size=0, rank=0
32207  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32208  *     if inter:             # <<<<<<<<<<<<<<
32209  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32210  *         if root == <int>MPI_PROC_NULL:
32211  */
32212   if (__pyx_v_inter) {
32213 
32214     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":636
32215  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32216  *     if inter:
32217  *         CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
32218  *         if root == <int>MPI_PROC_NULL:
32219  *             dosend=1; dorecv=0;
32220  */
32221     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32222 
32223     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":637
32224  *     if inter:
32225  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32226  *         if root == <int>MPI_PROC_NULL:             # <<<<<<<<<<<<<<
32227  *             dosend=1; dorecv=0;
32228  *         elif root == <int>MPI_ROOT:
32229  */
32230     __pyx_t_3 = (__pyx_v_root == ((int)MPI_PROC_NULL));
32231     if (__pyx_t_3) {
32232 
32233       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":638
32234  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32235  *         if root == <int>MPI_PROC_NULL:
32236  *             dosend=1; dorecv=0;             # <<<<<<<<<<<<<<
32237  *         elif root == <int>MPI_ROOT:
32238  *             dosend=1; dorecv=0;
32239  */
32240       __pyx_v_dosend = 1;
32241       __pyx_v_dorecv = 0;
32242       goto __pyx_L4;
32243     }
32244 
32245     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":639
32246  *         if root == <int>MPI_PROC_NULL:
32247  *             dosend=1; dorecv=0;
32248  *         elif root == <int>MPI_ROOT:             # <<<<<<<<<<<<<<
32249  *             dosend=1; dorecv=0;
32250  *         else:
32251  */
32252     __pyx_t_3 = (__pyx_v_root == ((int)MPI_ROOT));
32253     if (__pyx_t_3) {
32254 
32255       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":640
32256  *             dosend=1; dorecv=0;
32257  *         elif root == <int>MPI_ROOT:
32258  *             dosend=1; dorecv=0;             # <<<<<<<<<<<<<<
32259  *         else:
32260  *             dosend=0; dorecv=1;
32261  */
32262       __pyx_v_dosend = 1;
32263       __pyx_v_dorecv = 0;
32264       goto __pyx_L4;
32265     }
32266     /*else*/ {
32267 
32268       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":642
32269  *             dosend=1; dorecv=0;
32270  *         else:
32271  *             dosend=0; dorecv=1;             # <<<<<<<<<<<<<<
32272  *     else:
32273  *         CHKERR( MPI_Comm_size(comm, &size) )
32274  */
32275       __pyx_v_dosend = 0;
32276       __pyx_v_dorecv = 1;
32277     }
32278     __pyx_L4:;
32279     goto __pyx_L3;
32280   }
32281   /*else*/ {
32282 
32283     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":644
32284  *             dosend=0; dorecv=1;
32285  *     else:
32286  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
32287  *         CHKERR( MPI_Comm_rank(comm, &rank) )
32288  *         if root == rank:
32289  */
32290     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32291 
32292     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":645
32293  *     else:
32294  *         CHKERR( MPI_Comm_size(comm, &size) )
32295  *         CHKERR( MPI_Comm_rank(comm, &rank) )             # <<<<<<<<<<<<<<
32296  *         if root == rank:
32297  *             dosend=1; dorecv=1;
32298  */
32299     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32300 
32301     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":646
32302  *         CHKERR( MPI_Comm_size(comm, &size) )
32303  *         CHKERR( MPI_Comm_rank(comm, &rank) )
32304  *         if root == rank:             # <<<<<<<<<<<<<<
32305  *             dosend=1; dorecv=1;
32306  *         else:
32307  */
32308     __pyx_t_3 = (__pyx_v_root == __pyx_v_rank);
32309     if (__pyx_t_3) {
32310 
32311       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":647
32312  *         CHKERR( MPI_Comm_rank(comm, &rank) )
32313  *         if root == rank:
32314  *             dosend=1; dorecv=1;             # <<<<<<<<<<<<<<
32315  *         else:
32316  *             dosend=0; dorecv=1;
32317  */
32318       __pyx_v_dosend = 1;
32319       __pyx_v_dorecv = 1;
32320       goto __pyx_L5;
32321     }
32322     /*else*/ {
32323 
32324       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":649
32325  *             dosend=1; dorecv=1;
32326  *         else:
32327  *             dosend=0; dorecv=1;             # <<<<<<<<<<<<<<
32328  *     #
32329  *     cdef object tmp1=None, tmp2=None
32330  */
32331       __pyx_v_dosend = 0;
32332       __pyx_v_dorecv = 1;
32333     }
32334     __pyx_L5:;
32335   }
32336   __pyx_L3:;
32337 
32338   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":651
32339  *             dosend=0; dorecv=1;
32340  *     #
32341  *     cdef object tmp1=None, tmp2=None             # <<<<<<<<<<<<<<
32342  *     if dosend: tmp1 = allocate_int(size, &scounts)
32343  *     if dosend: tmp2 = allocate_int(size, &sdispls)
32344  */
32345   __Pyx_INCREF(Py_None);
32346   __pyx_v_tmp1 = Py_None;
32347   __Pyx_INCREF(Py_None);
32348   __pyx_v_tmp2 = Py_None;
32349 
32350   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":652
32351  *     #
32352  *     cdef object tmp1=None, tmp2=None
32353  *     if dosend: tmp1 = allocate_int(size, &scounts)             # <<<<<<<<<<<<<<
32354  *     if dosend: tmp2 = allocate_int(size, &sdispls)
32355  *     #
32356  */
32357   if (__pyx_v_dosend) {
32358     __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_scounts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32359     __Pyx_GOTREF(__pyx_t_1);
32360     __Pyx_DECREF(__pyx_v_tmp1);
32361     __pyx_v_tmp1 = __pyx_t_1;
32362     __pyx_t_1 = 0;
32363     goto __pyx_L6;
32364   }
32365   __pyx_L6:;
32366 
32367   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":653
32368  *     cdef object tmp1=None, tmp2=None
32369  *     if dosend: tmp1 = allocate_int(size, &scounts)
32370  *     if dosend: tmp2 = allocate_int(size, &sdispls)             # <<<<<<<<<<<<<<
32371  *     #
32372  *     cdef object smsg = None
32373  */
32374   if (__pyx_v_dosend) {
32375     __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_sdispls)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32376     __Pyx_GOTREF(__pyx_t_1);
32377     __Pyx_DECREF(__pyx_v_tmp2);
32378     __pyx_v_tmp2 = __pyx_t_1;
32379     __pyx_t_1 = 0;
32380     goto __pyx_L7;
32381   }
32382   __pyx_L7:;
32383 
32384   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":655
32385  *     if dosend: tmp2 = allocate_int(size, &sdispls)
32386  *     #
32387  *     cdef object smsg = None             # <<<<<<<<<<<<<<
32388  *     if dosend: smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
32389  *     with nogil: CHKERR( MPI_Scatter(scounts, 1, MPI_INT,
32390  */
32391   __Pyx_INCREF(Py_None);
32392   __pyx_v_smsg = Py_None;
32393 
32394   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":656
32395  *     #
32396  *     cdef object smsg = None
32397  *     if dosend: smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)             # <<<<<<<<<<<<<<
32398  *     with nogil: CHKERR( MPI_Scatter(scounts, 1, MPI_INT,
32399  *                                     &rcount, 1, MPI_INT,
32400  */
32401   if (__pyx_v_dosend) {
32402     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dumpv(__pyx_v_pickle, __pyx_v_sendobj, (&__pyx_v_sbuf), __pyx_v_size, __pyx_v_scounts, __pyx_v_sdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32403     __Pyx_GOTREF(__pyx_t_1);
32404     __Pyx_DECREF(__pyx_v_smsg);
32405     __pyx_v_smsg = __pyx_t_1;
32406     __pyx_t_1 = 0;
32407     goto __pyx_L8;
32408   }
32409   __pyx_L8:;
32410 
32411   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":657
32412  *     cdef object smsg = None
32413  *     if dosend: smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
32414  *     with nogil: CHKERR( MPI_Scatter(scounts, 1, MPI_INT,             # <<<<<<<<<<<<<<
32415  *                                     &rcount, 1, MPI_INT,
32416  *                                     root, comm) )
32417  */
32418   {
32419       #ifdef WITH_THREAD
32420       PyThreadState *_save = NULL;
32421       #endif
32422       Py_UNBLOCK_THREADS
32423       /*try:*/ {
32424 
32425         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":659
32426  *     with nogil: CHKERR( MPI_Scatter(scounts, 1, MPI_INT,
32427  *                                     &rcount, 1, MPI_INT,
32428  *                                     root, comm) )             # <<<<<<<<<<<<<<
32429  *     cdef object rmsg = None
32430  *     if dorecv: rmsg = pickle.alloc(&rbuf, rcount)
32431  */
32432         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Scatter(__pyx_v_scounts, 1, MPI_INT, (&__pyx_v_rcount), 1, MPI_INT, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L10;}
32433       }
32434 
32435       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":657
32436  *     cdef object smsg = None
32437  *     if dosend: smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
32438  *     with nogil: CHKERR( MPI_Scatter(scounts, 1, MPI_INT,             # <<<<<<<<<<<<<<
32439  *                                     &rcount, 1, MPI_INT,
32440  *                                     root, comm) )
32441  */
32442       /*finally:*/ {
32443         int __pyx_why;
32444         __pyx_why = 0; goto __pyx_L11;
32445         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
32446         __pyx_L11:;
32447         Py_BLOCK_THREADS
32448         switch (__pyx_why) {
32449           case 4: goto __pyx_L1_error;
32450         }
32451       }
32452   }
32453 
32454   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":660
32455  *                                     &rcount, 1, MPI_INT,
32456  *                                     root, comm) )
32457  *     cdef object rmsg = None             # <<<<<<<<<<<<<<
32458  *     if dorecv: rmsg = pickle.alloc(&rbuf, rcount)
32459  *     with nogil: CHKERR( MPI_Scatterv(sbuf, scounts, sdispls, stype,
32460  */
32461   __Pyx_INCREF(Py_None);
32462   __pyx_v_rmsg = Py_None;
32463 
32464   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":661
32465  *                                     root, comm) )
32466  *     cdef object rmsg = None
32467  *     if dorecv: rmsg = pickle.alloc(&rbuf, rcount)             # <<<<<<<<<<<<<<
32468  *     with nogil: CHKERR( MPI_Scatterv(sbuf, scounts, sdispls, stype,
32469  *                                      rbuf, rcount,           rtype,
32470  */
32471   if (__pyx_v_dorecv) {
32472     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->alloc(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_rcount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32473     __Pyx_GOTREF(__pyx_t_1);
32474     __Pyx_DECREF(__pyx_v_rmsg);
32475     __pyx_v_rmsg = __pyx_t_1;
32476     __pyx_t_1 = 0;
32477     goto __pyx_L13;
32478   }
32479   __pyx_L13:;
32480 
32481   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":662
32482  *     cdef object rmsg = None
32483  *     if dorecv: rmsg = pickle.alloc(&rbuf, rcount)
32484  *     with nogil: CHKERR( MPI_Scatterv(sbuf, scounts, sdispls, stype,             # <<<<<<<<<<<<<<
32485  *                                      rbuf, rcount,           rtype,
32486  *                                      root, comm) )
32487  */
32488   {
32489       #ifdef WITH_THREAD
32490       PyThreadState *_save = NULL;
32491       #endif
32492       Py_UNBLOCK_THREADS
32493       /*try:*/ {
32494 
32495         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":664
32496  *     with nogil: CHKERR( MPI_Scatterv(sbuf, scounts, sdispls, stype,
32497  *                                      rbuf, rcount,           rtype,
32498  *                                      root, comm) )             # <<<<<<<<<<<<<<
32499  *     if dorecv: rmsg = pickle.load(rmsg)
32500  *     return rmsg
32501  */
32502         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Scatterv(__pyx_v_sbuf, __pyx_v_scounts, __pyx_v_sdispls, __pyx_v_stype, __pyx_v_rbuf, __pyx_v_rcount, __pyx_v_rtype, __pyx_v_root, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L15;}
32503       }
32504 
32505       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":662
32506  *     cdef object rmsg = None
32507  *     if dorecv: rmsg = pickle.alloc(&rbuf, rcount)
32508  *     with nogil: CHKERR( MPI_Scatterv(sbuf, scounts, sdispls, stype,             # <<<<<<<<<<<<<<
32509  *                                      rbuf, rcount,           rtype,
32510  *                                      root, comm) )
32511  */
32512       /*finally:*/ {
32513         int __pyx_why;
32514         __pyx_why = 0; goto __pyx_L16;
32515         __pyx_L15: __pyx_why = 4; goto __pyx_L16;
32516         __pyx_L16:;
32517         Py_BLOCK_THREADS
32518         switch (__pyx_why) {
32519           case 4: goto __pyx_L1_error;
32520         }
32521       }
32522   }
32523 
32524   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":665
32525  *                                      rbuf, rcount,           rtype,
32526  *                                      root, comm) )
32527  *     if dorecv: rmsg = pickle.load(rmsg)             # <<<<<<<<<<<<<<
32528  *     return rmsg
32529  *
32530  */
32531   if (__pyx_v_dorecv) {
32532     __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->load(__pyx_v_pickle, __pyx_v_rmsg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32533     __Pyx_GOTREF(__pyx_t_1);
32534     __Pyx_DECREF(__pyx_v_rmsg);
32535     __pyx_v_rmsg = __pyx_t_1;
32536     __pyx_t_1 = 0;
32537     goto __pyx_L18;
32538   }
32539   __pyx_L18:;
32540 
32541   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":666
32542  *                                      root, comm) )
32543  *     if dorecv: rmsg = pickle.load(rmsg)
32544  *     return rmsg             # <<<<<<<<<<<<<<
32545  *
32546  *
32547  */
32548   __Pyx_XDECREF(__pyx_r);
32549   __Pyx_INCREF(__pyx_v_rmsg);
32550   __pyx_r = __pyx_v_rmsg;
32551   goto __pyx_L0;
32552 
32553   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32554   goto __pyx_L0;
32555   __pyx_L1_error:;
32556   __Pyx_XDECREF(__pyx_t_1);
32557   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
32558   __pyx_r = 0;
32559   __pyx_L0:;
32560   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
32561   __Pyx_XDECREF(__pyx_v_tmp1);
32562   __Pyx_XDECREF(__pyx_v_tmp2);
32563   __Pyx_XDECREF(__pyx_v_smsg);
32564   __Pyx_XDECREF(__pyx_v_rmsg);
32565   __Pyx_XGIVEREF(__pyx_r);
32566   __Pyx_RefNannyFinishContext();
32567   return __pyx_r;
32568 }
32569 
32570 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":669
32571  *
32572  *
32573  * cdef object PyMPI_allgather(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
32574  *                             MPI_Comm comm):
32575  *     cdef _p_Pickle pickle = PyMPI_pickle()
32576  */
32577 
__pyx_f_6mpi4py_3MPI_PyMPI_allgather(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,MPI_Comm __pyx_v_comm)32578 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_allgather(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, MPI_Comm __pyx_v_comm) {
32579   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
32580   void *__pyx_v_sbuf;
32581   int __pyx_v_scount;
32582   MPI_Datatype __pyx_v_stype;
32583   void *__pyx_v_rbuf;
32584   int *__pyx_v_rcounts;
32585   int *__pyx_v_rdispls;
32586   MPI_Datatype __pyx_v_rtype;
32587   int __pyx_v_inter;
32588   int __pyx_v_size;
32589   PyObject *__pyx_v_tmp1 = 0;
32590   PyObject *__pyx_v_tmp2 = 0;
32591   PyObject *__pyx_v_smsg = 0;
32592   PyObject *__pyx_v_rmsg = 0;
32593   PyObject *__pyx_r = NULL;
32594   __Pyx_RefNannyDeclarations
32595   PyObject *__pyx_t_1 = NULL;
32596   int __pyx_t_2;
32597   int __pyx_lineno = 0;
32598   const char *__pyx_filename = NULL;
32599   int __pyx_clineno = 0;
32600   __Pyx_RefNannySetupContext("PyMPI_allgather");
32601 
32602   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":671
32603  * cdef object PyMPI_allgather(object sendobj, object recvobj,
32604  *                             MPI_Comm comm):
32605  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
32606  *     #
32607  *     cdef void *sbuf = NULL
32608  */
32609   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32610   __Pyx_GOTREF(__pyx_t_1);
32611   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
32612   __pyx_t_1 = 0;
32613 
32614   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":673
32615  *     cdef _p_Pickle pickle = PyMPI_pickle()
32616  *     #
32617  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
32618  *     cdef int scount = 0
32619  *     cdef MPI_Datatype stype = MPI_BYTE
32620  */
32621   __pyx_v_sbuf = NULL;
32622 
32623   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":674
32624  *     #
32625  *     cdef void *sbuf = NULL
32626  *     cdef int scount = 0             # <<<<<<<<<<<<<<
32627  *     cdef MPI_Datatype stype = MPI_BYTE
32628  *     cdef void *rbuf = NULL
32629  */
32630   __pyx_v_scount = 0;
32631 
32632   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":675
32633  *     cdef void *sbuf = NULL
32634  *     cdef int scount = 0
32635  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
32636  *     cdef void *rbuf = NULL
32637  *     cdef int *rcounts = NULL
32638  */
32639   __pyx_v_stype = MPI_BYTE;
32640 
32641   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":676
32642  *     cdef int scount = 0
32643  *     cdef MPI_Datatype stype = MPI_BYTE
32644  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
32645  *     cdef int *rcounts = NULL
32646  *     cdef int *rdispls = NULL
32647  */
32648   __pyx_v_rbuf = NULL;
32649 
32650   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":677
32651  *     cdef MPI_Datatype stype = MPI_BYTE
32652  *     cdef void *rbuf = NULL
32653  *     cdef int *rcounts = NULL             # <<<<<<<<<<<<<<
32654  *     cdef int *rdispls = NULL
32655  *     cdef MPI_Datatype rtype = MPI_BYTE
32656  */
32657   __pyx_v_rcounts = NULL;
32658 
32659   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":678
32660  *     cdef void *rbuf = NULL
32661  *     cdef int *rcounts = NULL
32662  *     cdef int *rdispls = NULL             # <<<<<<<<<<<<<<
32663  *     cdef MPI_Datatype rtype = MPI_BYTE
32664  *     #
32665  */
32666   __pyx_v_rdispls = NULL;
32667 
32668   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":679
32669  *     cdef int *rcounts = NULL
32670  *     cdef int *rdispls = NULL
32671  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
32672  *     #
32673  *     cdef int inter=0, size=0
32674  */
32675   __pyx_v_rtype = MPI_BYTE;
32676 
32677   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":681
32678  *     cdef MPI_Datatype rtype = MPI_BYTE
32679  *     #
32680  *     cdef int inter=0, size=0             # <<<<<<<<<<<<<<
32681  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32682  *     if inter:
32683  */
32684   __pyx_v_inter = 0;
32685   __pyx_v_size = 0;
32686 
32687   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":682
32688  *     #
32689  *     cdef int inter=0, size=0
32690  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
32691  *     if inter:
32692  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32693  */
32694   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32695 
32696   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":683
32697  *     cdef int inter=0, size=0
32698  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32699  *     if inter:             # <<<<<<<<<<<<<<
32700  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32701  *     else:
32702  */
32703   if (__pyx_v_inter) {
32704 
32705     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":684
32706  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
32707  *     if inter:
32708  *         CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
32709  *     else:
32710  *         CHKERR( MPI_Comm_size(comm, &size) )
32711  */
32712     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32713     goto __pyx_L3;
32714   }
32715   /*else*/ {
32716 
32717     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":686
32718  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
32719  *     else:
32720  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
32721  *     #
32722  *     cdef object tmp1 = allocate_int(size, &rcounts)
32723  */
32724     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32725   }
32726   __pyx_L3:;
32727 
32728   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":688
32729  *         CHKERR( MPI_Comm_size(comm, &size) )
32730  *     #
32731  *     cdef object tmp1 = allocate_int(size, &rcounts)             # <<<<<<<<<<<<<<
32732  *     cdef object tmp2 = allocate_int(size, &rdispls)
32733  *     #
32734  */
32735   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rcounts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32736   __Pyx_GOTREF(__pyx_t_1);
32737   __pyx_v_tmp1 = __pyx_t_1;
32738   __pyx_t_1 = 0;
32739 
32740   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":689
32741  *     #
32742  *     cdef object tmp1 = allocate_int(size, &rcounts)
32743  *     cdef object tmp2 = allocate_int(size, &rdispls)             # <<<<<<<<<<<<<<
32744  *     #
32745  *     cdef object smsg = pickle.dump(sendobj, &sbuf, &scount)
32746  */
32747   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rdispls)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32748   __Pyx_GOTREF(__pyx_t_1);
32749   __pyx_v_tmp2 = __pyx_t_1;
32750   __pyx_t_1 = 0;
32751 
32752   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":691
32753  *     cdef object tmp2 = allocate_int(size, &rdispls)
32754  *     #
32755  *     cdef object smsg = pickle.dump(sendobj, &sbuf, &scount)             # <<<<<<<<<<<<<<
32756  *     with nogil: CHKERR( MPI_Allgather(&scount, 1, MPI_INT,
32757  *                                       rcounts, 1, MPI_INT,
32758  */
32759   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dump(__pyx_v_pickle, __pyx_v_sendobj, (&__pyx_v_sbuf), (&__pyx_v_scount)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32760   __Pyx_GOTREF(__pyx_t_1);
32761   __pyx_v_smsg = __pyx_t_1;
32762   __pyx_t_1 = 0;
32763 
32764   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":692
32765  *     #
32766  *     cdef object smsg = pickle.dump(sendobj, &sbuf, &scount)
32767  *     with nogil: CHKERR( MPI_Allgather(&scount, 1, MPI_INT,             # <<<<<<<<<<<<<<
32768  *                                       rcounts, 1, MPI_INT,
32769  *                                       comm) )
32770  */
32771   {
32772       #ifdef WITH_THREAD
32773       PyThreadState *_save = NULL;
32774       #endif
32775       Py_UNBLOCK_THREADS
32776       /*try:*/ {
32777 
32778         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":694
32779  *     with nogil: CHKERR( MPI_Allgather(&scount, 1, MPI_INT,
32780  *                                       rcounts, 1, MPI_INT,
32781  *                                       comm) )             # <<<<<<<<<<<<<<
32782  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
32783  *     with nogil: CHKERR( MPI_Allgatherv(sbuf, scount,           stype,
32784  */
32785         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allgather((&__pyx_v_scount), 1, MPI_INT, __pyx_v_rcounts, 1, MPI_INT, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L5;}
32786       }
32787 
32788       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":692
32789  *     #
32790  *     cdef object smsg = pickle.dump(sendobj, &sbuf, &scount)
32791  *     with nogil: CHKERR( MPI_Allgather(&scount, 1, MPI_INT,             # <<<<<<<<<<<<<<
32792  *                                       rcounts, 1, MPI_INT,
32793  *                                       comm) )
32794  */
32795       /*finally:*/ {
32796         int __pyx_why;
32797         __pyx_why = 0; goto __pyx_L6;
32798         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
32799         __pyx_L6:;
32800         Py_BLOCK_THREADS
32801         switch (__pyx_why) {
32802           case 4: goto __pyx_L1_error;
32803         }
32804       }
32805   }
32806 
32807   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":695
32808  *                                       rcounts, 1, MPI_INT,
32809  *                                       comm) )
32810  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
32811  *     with nogil: CHKERR( MPI_Allgatherv(sbuf, scount,           stype,
32812  *                                        rbuf, rcounts, rdispls, rtype,
32813  */
32814   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->allocv(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32815   __Pyx_GOTREF(__pyx_t_1);
32816   __pyx_v_rmsg = __pyx_t_1;
32817   __pyx_t_1 = 0;
32818 
32819   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":696
32820  *                                       comm) )
32821  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
32822  *     with nogil: CHKERR( MPI_Allgatherv(sbuf, scount,           stype,             # <<<<<<<<<<<<<<
32823  *                                        rbuf, rcounts, rdispls, rtype,
32824  *                                        comm) )
32825  */
32826   {
32827       #ifdef WITH_THREAD
32828       PyThreadState *_save = NULL;
32829       #endif
32830       Py_UNBLOCK_THREADS
32831       /*try:*/ {
32832 
32833         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":698
32834  *     with nogil: CHKERR( MPI_Allgatherv(sbuf, scount,           stype,
32835  *                                        rbuf, rcounts, rdispls, rtype,
32836  *                                        comm) )             # <<<<<<<<<<<<<<
32837  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
32838  *     return rmsg
32839  */
32840         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allgatherv(__pyx_v_sbuf, __pyx_v_scount, __pyx_v_stype, __pyx_v_rbuf, __pyx_v_rcounts, __pyx_v_rdispls, __pyx_v_rtype, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L9;}
32841       }
32842 
32843       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":696
32844  *                                       comm) )
32845  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
32846  *     with nogil: CHKERR( MPI_Allgatherv(sbuf, scount,           stype,             # <<<<<<<<<<<<<<
32847  *                                        rbuf, rcounts, rdispls, rtype,
32848  *                                        comm) )
32849  */
32850       /*finally:*/ {
32851         int __pyx_why;
32852         __pyx_why = 0; goto __pyx_L10;
32853         __pyx_L9: __pyx_why = 4; goto __pyx_L10;
32854         __pyx_L10:;
32855         Py_BLOCK_THREADS
32856         switch (__pyx_why) {
32857           case 4: goto __pyx_L1_error;
32858         }
32859       }
32860   }
32861 
32862   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":699
32863  *                                        rbuf, rcounts, rdispls, rtype,
32864  *                                        comm) )
32865  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
32866  *     return rmsg
32867  *
32868  */
32869   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->loadv(__pyx_v_pickle, __pyx_v_rmsg, __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32870   __Pyx_GOTREF(__pyx_t_1);
32871   __Pyx_DECREF(__pyx_v_rmsg);
32872   __pyx_v_rmsg = __pyx_t_1;
32873   __pyx_t_1 = 0;
32874 
32875   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":700
32876  *                                        comm) )
32877  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
32878  *     return rmsg             # <<<<<<<<<<<<<<
32879  *
32880  *
32881  */
32882   __Pyx_XDECREF(__pyx_r);
32883   __Pyx_INCREF(__pyx_v_rmsg);
32884   __pyx_r = __pyx_v_rmsg;
32885   goto __pyx_L0;
32886 
32887   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32888   goto __pyx_L0;
32889   __pyx_L1_error:;
32890   __Pyx_XDECREF(__pyx_t_1);
32891   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
32892   __pyx_r = 0;
32893   __pyx_L0:;
32894   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
32895   __Pyx_XDECREF(__pyx_v_tmp1);
32896   __Pyx_XDECREF(__pyx_v_tmp2);
32897   __Pyx_XDECREF(__pyx_v_smsg);
32898   __Pyx_XDECREF(__pyx_v_rmsg);
32899   __Pyx_XGIVEREF(__pyx_r);
32900   __Pyx_RefNannyFinishContext();
32901   return __pyx_r;
32902 }
32903 
32904 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":703
32905  *
32906  *
32907  * cdef object PyMPI_alltoall(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
32908  *                            MPI_Comm comm):
32909  *     cdef _p_Pickle pickle = PyMPI_pickle()
32910  */
32911 
__pyx_f_6mpi4py_3MPI_PyMPI_alltoall(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,MPI_Comm __pyx_v_comm)32912 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_alltoall(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, MPI_Comm __pyx_v_comm) {
32913   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *__pyx_v_pickle = 0;
32914   void *__pyx_v_sbuf;
32915   int *__pyx_v_scounts;
32916   int *__pyx_v_sdispls;
32917   MPI_Datatype __pyx_v_stype;
32918   void *__pyx_v_rbuf;
32919   int *__pyx_v_rcounts;
32920   int *__pyx_v_rdispls;
32921   MPI_Datatype __pyx_v_rtype;
32922   int __pyx_v_inter;
32923   int __pyx_v_size;
32924   PyObject *__pyx_v_stmp1 = 0;
32925   PyObject *__pyx_v_stmp2 = 0;
32926   PyObject *__pyx_v_rtmp1 = 0;
32927   PyObject *__pyx_v_rtmp2 = 0;
32928   PyObject *__pyx_v_smsg = 0;
32929   PyObject *__pyx_v_rmsg = 0;
32930   PyObject *__pyx_r = NULL;
32931   __Pyx_RefNannyDeclarations
32932   PyObject *__pyx_t_1 = NULL;
32933   int __pyx_t_2;
32934   int __pyx_lineno = 0;
32935   const char *__pyx_filename = NULL;
32936   int __pyx_clineno = 0;
32937   __Pyx_RefNannySetupContext("PyMPI_alltoall");
32938 
32939   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":705
32940  * cdef object PyMPI_alltoall(object sendobj, object recvobj,
32941  *                            MPI_Comm comm):
32942  *     cdef _p_Pickle pickle = PyMPI_pickle()             # <<<<<<<<<<<<<<
32943  *     #
32944  *     cdef void *sbuf = NULL
32945  */
32946   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_PyMPI_pickle()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
32947   __Pyx_GOTREF(__pyx_t_1);
32948   __pyx_v_pickle = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_1);
32949   __pyx_t_1 = 0;
32950 
32951   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":707
32952  *     cdef _p_Pickle pickle = PyMPI_pickle()
32953  *     #
32954  *     cdef void *sbuf = NULL             # <<<<<<<<<<<<<<
32955  *     cdef int *scounts = NULL
32956  *     cdef int *sdispls = NULL
32957  */
32958   __pyx_v_sbuf = NULL;
32959 
32960   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":708
32961  *     #
32962  *     cdef void *sbuf = NULL
32963  *     cdef int *scounts = NULL             # <<<<<<<<<<<<<<
32964  *     cdef int *sdispls = NULL
32965  *     cdef MPI_Datatype stype = MPI_BYTE
32966  */
32967   __pyx_v_scounts = NULL;
32968 
32969   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":709
32970  *     cdef void *sbuf = NULL
32971  *     cdef int *scounts = NULL
32972  *     cdef int *sdispls = NULL             # <<<<<<<<<<<<<<
32973  *     cdef MPI_Datatype stype = MPI_BYTE
32974  *     cdef void *rbuf = NULL
32975  */
32976   __pyx_v_sdispls = NULL;
32977 
32978   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":710
32979  *     cdef int *scounts = NULL
32980  *     cdef int *sdispls = NULL
32981  *     cdef MPI_Datatype stype = MPI_BYTE             # <<<<<<<<<<<<<<
32982  *     cdef void *rbuf = NULL
32983  *     cdef int *rcounts = NULL
32984  */
32985   __pyx_v_stype = MPI_BYTE;
32986 
32987   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":711
32988  *     cdef int *sdispls = NULL
32989  *     cdef MPI_Datatype stype = MPI_BYTE
32990  *     cdef void *rbuf = NULL             # <<<<<<<<<<<<<<
32991  *     cdef int *rcounts = NULL
32992  *     cdef int *rdispls = NULL
32993  */
32994   __pyx_v_rbuf = NULL;
32995 
32996   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":712
32997  *     cdef MPI_Datatype stype = MPI_BYTE
32998  *     cdef void *rbuf = NULL
32999  *     cdef int *rcounts = NULL             # <<<<<<<<<<<<<<
33000  *     cdef int *rdispls = NULL
33001  *     cdef MPI_Datatype rtype = MPI_BYTE
33002  */
33003   __pyx_v_rcounts = NULL;
33004 
33005   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":713
33006  *     cdef void *rbuf = NULL
33007  *     cdef int *rcounts = NULL
33008  *     cdef int *rdispls = NULL             # <<<<<<<<<<<<<<
33009  *     cdef MPI_Datatype rtype = MPI_BYTE
33010  *     #
33011  */
33012   __pyx_v_rdispls = NULL;
33013 
33014   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":714
33015  *     cdef int *rcounts = NULL
33016  *     cdef int *rdispls = NULL
33017  *     cdef MPI_Datatype rtype = MPI_BYTE             # <<<<<<<<<<<<<<
33018  *     #
33019  *     cdef int inter=0, size=0
33020  */
33021   __pyx_v_rtype = MPI_BYTE;
33022 
33023   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":716
33024  *     cdef MPI_Datatype rtype = MPI_BYTE
33025  *     #
33026  *     cdef int inter=0, size=0             # <<<<<<<<<<<<<<
33027  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
33028  *     if inter:
33029  */
33030   __pyx_v_inter = 0;
33031   __pyx_v_size = 0;
33032 
33033   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":717
33034  *     #
33035  *     cdef int inter=0, size=0
33036  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )             # <<<<<<<<<<<<<<
33037  *     if inter:
33038  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
33039  */
33040   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_comm, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33041 
33042   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":718
33043  *     cdef int inter=0, size=0
33044  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
33045  *     if inter:             # <<<<<<<<<<<<<<
33046  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
33047  *     else:
33048  */
33049   if (__pyx_v_inter) {
33050 
33051     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":719
33052  *     CHKERR( MPI_Comm_test_inter(comm, &inter) )
33053  *     if inter:
33054  *         CHKERR( MPI_Comm_remote_size(comm, &size) )             # <<<<<<<<<<<<<<
33055  *     else:
33056  *         CHKERR( MPI_Comm_size(comm, &size) )
33057  */
33058     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33059     goto __pyx_L3;
33060   }
33061   /*else*/ {
33062 
33063     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":721
33064  *         CHKERR( MPI_Comm_remote_size(comm, &size) )
33065  *     else:
33066  *         CHKERR( MPI_Comm_size(comm, &size) )             # <<<<<<<<<<<<<<
33067  *     #
33068  *     cdef object stmp1 = allocate_int(size, &scounts)
33069  */
33070     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33071   }
33072   __pyx_L3:;
33073 
33074   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":723
33075  *         CHKERR( MPI_Comm_size(comm, &size) )
33076  *     #
33077  *     cdef object stmp1 = allocate_int(size, &scounts)             # <<<<<<<<<<<<<<
33078  *     cdef object stmp2 = allocate_int(size, &sdispls)
33079  *     cdef object rtmp1 = allocate_int(size, &rcounts)
33080  */
33081   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_scounts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33082   __Pyx_GOTREF(__pyx_t_1);
33083   __pyx_v_stmp1 = __pyx_t_1;
33084   __pyx_t_1 = 0;
33085 
33086   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":724
33087  *     #
33088  *     cdef object stmp1 = allocate_int(size, &scounts)
33089  *     cdef object stmp2 = allocate_int(size, &sdispls)             # <<<<<<<<<<<<<<
33090  *     cdef object rtmp1 = allocate_int(size, &rcounts)
33091  *     cdef object rtmp2 = allocate_int(size, &rdispls)
33092  */
33093   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_sdispls)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33094   __Pyx_GOTREF(__pyx_t_1);
33095   __pyx_v_stmp2 = __pyx_t_1;
33096   __pyx_t_1 = 0;
33097 
33098   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":725
33099  *     cdef object stmp1 = allocate_int(size, &scounts)
33100  *     cdef object stmp2 = allocate_int(size, &sdispls)
33101  *     cdef object rtmp1 = allocate_int(size, &rcounts)             # <<<<<<<<<<<<<<
33102  *     cdef object rtmp2 = allocate_int(size, &rdispls)
33103  *     #
33104  */
33105   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rcounts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33106   __Pyx_GOTREF(__pyx_t_1);
33107   __pyx_v_rtmp1 = __pyx_t_1;
33108   __pyx_t_1 = 0;
33109 
33110   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":726
33111  *     cdef object stmp2 = allocate_int(size, &sdispls)
33112  *     cdef object rtmp1 = allocate_int(size, &rcounts)
33113  *     cdef object rtmp2 = allocate_int(size, &rdispls)             # <<<<<<<<<<<<<<
33114  *     #
33115  *     cdef object smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
33116  */
33117   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_allocate_int(__pyx_v_size, (&__pyx_v_rdispls)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33118   __Pyx_GOTREF(__pyx_t_1);
33119   __pyx_v_rtmp2 = __pyx_t_1;
33120   __pyx_t_1 = 0;
33121 
33122   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":728
33123  *     cdef object rtmp2 = allocate_int(size, &rdispls)
33124  *     #
33125  *     cdef object smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)             # <<<<<<<<<<<<<<
33126  *     with nogil: CHKERR( MPI_Alltoall(scounts, 1, MPI_INT,
33127  *                                      rcounts, 1, MPI_INT,
33128  */
33129   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->dumpv(__pyx_v_pickle, __pyx_v_sendobj, (&__pyx_v_sbuf), __pyx_v_size, __pyx_v_scounts, __pyx_v_sdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33130   __Pyx_GOTREF(__pyx_t_1);
33131   __pyx_v_smsg = __pyx_t_1;
33132   __pyx_t_1 = 0;
33133 
33134   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":729
33135  *     #
33136  *     cdef object smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
33137  *     with nogil: CHKERR( MPI_Alltoall(scounts, 1, MPI_INT,             # <<<<<<<<<<<<<<
33138  *                                      rcounts, 1, MPI_INT,
33139  *                                      comm) )
33140  */
33141   {
33142       #ifdef WITH_THREAD
33143       PyThreadState *_save = NULL;
33144       #endif
33145       Py_UNBLOCK_THREADS
33146       /*try:*/ {
33147 
33148         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":731
33149  *     with nogil: CHKERR( MPI_Alltoall(scounts, 1, MPI_INT,
33150  *                                      rcounts, 1, MPI_INT,
33151  *                                      comm) )             # <<<<<<<<<<<<<<
33152  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
33153  *     with nogil: CHKERR( MPI_Alltoallv(sbuf, scounts, sdispls, stype,
33154  */
33155         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Alltoall(__pyx_v_scounts, 1, MPI_INT, __pyx_v_rcounts, 1, MPI_INT, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L5;}
33156       }
33157 
33158       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":729
33159  *     #
33160  *     cdef object smsg = pickle.dumpv(sendobj, &sbuf, size, scounts, sdispls)
33161  *     with nogil: CHKERR( MPI_Alltoall(scounts, 1, MPI_INT,             # <<<<<<<<<<<<<<
33162  *                                      rcounts, 1, MPI_INT,
33163  *                                      comm) )
33164  */
33165       /*finally:*/ {
33166         int __pyx_why;
33167         __pyx_why = 0; goto __pyx_L6;
33168         __pyx_L5: __pyx_why = 4; goto __pyx_L6;
33169         __pyx_L6:;
33170         Py_BLOCK_THREADS
33171         switch (__pyx_why) {
33172           case 4: goto __pyx_L1_error;
33173         }
33174       }
33175   }
33176 
33177   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":732
33178  *                                      rcounts, 1, MPI_INT,
33179  *                                      comm) )
33180  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
33181  *     with nogil: CHKERR( MPI_Alltoallv(sbuf, scounts, sdispls, stype,
33182  *                                       rbuf, rcounts, rdispls, rtype,
33183  */
33184   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->allocv(__pyx_v_pickle, (&__pyx_v_rbuf), __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33185   __Pyx_GOTREF(__pyx_t_1);
33186   __pyx_v_rmsg = __pyx_t_1;
33187   __pyx_t_1 = 0;
33188 
33189   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":733
33190  *                                      comm) )
33191  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
33192  *     with nogil: CHKERR( MPI_Alltoallv(sbuf, scounts, sdispls, stype,             # <<<<<<<<<<<<<<
33193  *                                       rbuf, rcounts, rdispls, rtype,
33194  *                                       comm) )
33195  */
33196   {
33197       #ifdef WITH_THREAD
33198       PyThreadState *_save = NULL;
33199       #endif
33200       Py_UNBLOCK_THREADS
33201       /*try:*/ {
33202 
33203         /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":735
33204  *     with nogil: CHKERR( MPI_Alltoallv(sbuf, scounts, sdispls, stype,
33205  *                                       rbuf, rcounts, rdispls, rtype,
33206  *                                       comm) )             # <<<<<<<<<<<<<<
33207  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
33208  *     return rmsg
33209  */
33210         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Alltoallv(__pyx_v_sbuf, __pyx_v_scounts, __pyx_v_sdispls, __pyx_v_stype, __pyx_v_rbuf, __pyx_v_rcounts, __pyx_v_rdispls, __pyx_v_rtype, __pyx_v_comm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L9;}
33211       }
33212 
33213       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":733
33214  *                                      comm) )
33215  *     cdef object rmsg = pickle.allocv(&rbuf, size, rcounts, rdispls)
33216  *     with nogil: CHKERR( MPI_Alltoallv(sbuf, scounts, sdispls, stype,             # <<<<<<<<<<<<<<
33217  *                                       rbuf, rcounts, rdispls, rtype,
33218  *                                       comm) )
33219  */
33220       /*finally:*/ {
33221         int __pyx_why;
33222         __pyx_why = 0; goto __pyx_L10;
33223         __pyx_L9: __pyx_why = 4; goto __pyx_L10;
33224         __pyx_L10:;
33225         Py_BLOCK_THREADS
33226         switch (__pyx_why) {
33227           case 4: goto __pyx_L1_error;
33228         }
33229       }
33230   }
33231 
33232   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":736
33233  *                                       rbuf, rcounts, rdispls, rtype,
33234  *                                       comm) )
33235  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)             # <<<<<<<<<<<<<<
33236  *     return rmsg
33237  *
33238  */
33239   __pyx_t_1 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle *)__pyx_v_pickle->__pyx_vtab)->loadv(__pyx_v_pickle, __pyx_v_rmsg, __pyx_v_size, __pyx_v_rcounts, __pyx_v_rdispls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33240   __Pyx_GOTREF(__pyx_t_1);
33241   __Pyx_DECREF(__pyx_v_rmsg);
33242   __pyx_v_rmsg = __pyx_t_1;
33243   __pyx_t_1 = 0;
33244 
33245   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":737
33246  *                                       comm) )
33247  *     rmsg = pickle.loadv(rmsg, size, rcounts, rdispls)
33248  *     return rmsg             # <<<<<<<<<<<<<<
33249  *
33250  * # -----------------------------------------------------------------------------
33251  */
33252   __Pyx_XDECREF(__pyx_r);
33253   __Pyx_INCREF(__pyx_v_rmsg);
33254   __pyx_r = __pyx_v_rmsg;
33255   goto __pyx_L0;
33256 
33257   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33258   goto __pyx_L0;
33259   __pyx_L1_error:;
33260   __Pyx_XDECREF(__pyx_t_1);
33261   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
33262   __pyx_r = 0;
33263   __pyx_L0:;
33264   __Pyx_XDECREF((PyObject *)__pyx_v_pickle);
33265   __Pyx_XDECREF(__pyx_v_stmp1);
33266   __Pyx_XDECREF(__pyx_v_stmp2);
33267   __Pyx_XDECREF(__pyx_v_rtmp1);
33268   __Pyx_XDECREF(__pyx_v_rtmp2);
33269   __Pyx_XDECREF(__pyx_v_smsg);
33270   __Pyx_XDECREF(__pyx_v_rmsg);
33271   __Pyx_XGIVEREF(__pyx_r);
33272   __Pyx_RefNannyFinishContext();
33273   return __pyx_r;
33274 }
33275 
33276 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":741
33277  * # -----------------------------------------------------------------------------
33278  *
33279  * cdef inline object _py_reduce(object seq, object op):             # <<<<<<<<<<<<<<
33280  *     if seq is None: return None
33281  *     cdef object res
33282  */
33283 
__pyx_f_6mpi4py_3MPI__py_reduce(PyObject * __pyx_v_seq,PyObject * __pyx_v_op)33284 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_reduce(PyObject *__pyx_v_seq, PyObject *__pyx_v_op) {
33285   PyObject *__pyx_v_res = 0;
33286   Py_ssize_t __pyx_v_i;
33287   Py_ssize_t __pyx_v_n;
33288   PyObject *__pyx_r = NULL;
33289   __Pyx_RefNannyDeclarations
33290   int __pyx_t_1;
33291   Py_ssize_t __pyx_t_2;
33292   int __pyx_t_3;
33293   int __pyx_t_4;
33294   PyObject *__pyx_t_5 = NULL;
33295   PyObject *__pyx_t_6 = NULL;
33296   PyObject *__pyx_t_7 = NULL;
33297   int __pyx_lineno = 0;
33298   const char *__pyx_filename = NULL;
33299   int __pyx_clineno = 0;
33300   __Pyx_RefNannySetupContext("_py_reduce");
33301 
33302   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":742
33303  *
33304  * cdef inline object _py_reduce(object seq, object op):
33305  *     if seq is None: return None             # <<<<<<<<<<<<<<
33306  *     cdef object res
33307  *     cdef Py_ssize_t i=0, n=len(seq)
33308  */
33309   __pyx_t_1 = (__pyx_v_seq == Py_None);
33310   if (__pyx_t_1) {
33311     __Pyx_XDECREF(__pyx_r);
33312     __Pyx_INCREF(Py_None);
33313     __pyx_r = Py_None;
33314     goto __pyx_L0;
33315     goto __pyx_L3;
33316   }
33317   __pyx_L3:;
33318 
33319   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":744
33320  *     if seq is None: return None
33321  *     cdef object res
33322  *     cdef Py_ssize_t i=0, n=len(seq)             # <<<<<<<<<<<<<<
33323  *     if op is __MAXLOC__ or op is __MINLOC__:
33324  *         res = (seq[0], 0)
33325  */
33326   __pyx_v_i = 0;
33327   __pyx_t_2 = PyObject_Length(__pyx_v_seq); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33328   __pyx_v_n = __pyx_t_2;
33329 
33330   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":745
33331  *     cdef object res
33332  *     cdef Py_ssize_t i=0, n=len(seq)
33333  *     if op is __MAXLOC__ or op is __MINLOC__:             # <<<<<<<<<<<<<<
33334  *         res = (seq[0], 0)
33335  *         for i from 1 <= i < n:
33336  */
33337   __pyx_t_1 = (__pyx_v_op == ((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__));
33338   if (!__pyx_t_1) {
33339     __pyx_t_3 = (__pyx_v_op == ((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__));
33340     __pyx_t_4 = __pyx_t_3;
33341   } else {
33342     __pyx_t_4 = __pyx_t_1;
33343   }
33344   if (__pyx_t_4) {
33345 
33346     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":746
33347  *     cdef Py_ssize_t i=0, n=len(seq)
33348  *     if op is __MAXLOC__ or op is __MINLOC__:
33349  *         res = (seq[0], 0)             # <<<<<<<<<<<<<<
33350  *         for i from 1 <= i < n:
33351  *             res = op(res, (seq[i], i))
33352  */
33353     __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_seq, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33354     __Pyx_GOTREF(__pyx_t_5);
33355     __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33356     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
33357     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
33358     __Pyx_GIVEREF(__pyx_t_5);
33359     __Pyx_INCREF(__pyx_int_0);
33360     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_0);
33361     __Pyx_GIVEREF(__pyx_int_0);
33362     __pyx_t_5 = 0;
33363     __pyx_v_res = ((PyObject *)__pyx_t_6);
33364     __pyx_t_6 = 0;
33365 
33366     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":747
33367  *     if op is __MAXLOC__ or op is __MINLOC__:
33368  *         res = (seq[0], 0)
33369  *         for i from 1 <= i < n:             # <<<<<<<<<<<<<<
33370  *             res = op(res, (seq[i], i))
33371  *     else:
33372  */
33373     __pyx_t_2 = __pyx_v_n;
33374     for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
33375 
33376       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":748
33377  *         res = (seq[0], 0)
33378  *         for i from 1 <= i < n:
33379  *             res = op(res, (seq[i], i))             # <<<<<<<<<<<<<<
33380  *     else:
33381  *         res = seq[0]
33382  */
33383       __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33384       __Pyx_GOTREF(__pyx_t_6);
33385       __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33386       __Pyx_GOTREF(__pyx_t_5);
33387       __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33388       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
33389       PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
33390       __Pyx_GIVEREF(__pyx_t_6);
33391       PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
33392       __Pyx_GIVEREF(__pyx_t_5);
33393       __pyx_t_6 = 0;
33394       __pyx_t_5 = 0;
33395       __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33396       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
33397       __Pyx_INCREF(__pyx_v_res);
33398       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_res);
33399       __Pyx_GIVEREF(__pyx_v_res);
33400       PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_t_7));
33401       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
33402       __pyx_t_7 = 0;
33403       __pyx_t_7 = PyObject_Call(__pyx_v_op, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33404       __Pyx_GOTREF(__pyx_t_7);
33405       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
33406       __Pyx_DECREF(__pyx_v_res);
33407       __pyx_v_res = __pyx_t_7;
33408       __pyx_t_7 = 0;
33409     }
33410     goto __pyx_L4;
33411   }
33412   /*else*/ {
33413 
33414     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":750
33415  *             res = op(res, (seq[i], i))
33416  *     else:
33417  *         res = seq[0]             # <<<<<<<<<<<<<<
33418  *         for i from 1 <= i < n:
33419  *             res = op(res, seq[i])
33420  */
33421     __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_seq, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33422     __Pyx_GOTREF(__pyx_t_7);
33423     __pyx_v_res = __pyx_t_7;
33424     __pyx_t_7 = 0;
33425 
33426     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":751
33427  *     else:
33428  *         res = seq[0]
33429  *         for i from 1 <= i < n:             # <<<<<<<<<<<<<<
33430  *             res = op(res, seq[i])
33431  *     return res
33432  */
33433     __pyx_t_2 = __pyx_v_n;
33434     for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
33435 
33436       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":752
33437  *         res = seq[0]
33438  *         for i from 1 <= i < n:
33439  *             res = op(res, seq[i])             # <<<<<<<<<<<<<<
33440  *     return res
33441  *
33442  */
33443       __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33444       __Pyx_GOTREF(__pyx_t_7);
33445       __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33446       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
33447       __Pyx_INCREF(__pyx_v_res);
33448       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_res);
33449       __Pyx_GIVEREF(__pyx_v_res);
33450       PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7);
33451       __Pyx_GIVEREF(__pyx_t_7);
33452       __pyx_t_7 = 0;
33453       __pyx_t_7 = PyObject_Call(__pyx_v_op, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33454       __Pyx_GOTREF(__pyx_t_7);
33455       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
33456       __Pyx_DECREF(__pyx_v_res);
33457       __pyx_v_res = __pyx_t_7;
33458       __pyx_t_7 = 0;
33459     }
33460   }
33461   __pyx_L4:;
33462 
33463   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":753
33464  *         for i from 1 <= i < n:
33465  *             res = op(res, seq[i])
33466  *     return res             # <<<<<<<<<<<<<<
33467  *
33468  * cdef inline object _py_scan(object seq, object op):
33469  */
33470   __Pyx_XDECREF(__pyx_r);
33471   __Pyx_INCREF(__pyx_v_res);
33472   __pyx_r = __pyx_v_res;
33473   goto __pyx_L0;
33474 
33475   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33476   goto __pyx_L0;
33477   __pyx_L1_error:;
33478   __Pyx_XDECREF(__pyx_t_5);
33479   __Pyx_XDECREF(__pyx_t_6);
33480   __Pyx_XDECREF(__pyx_t_7);
33481   __Pyx_AddTraceback("mpi4py.MPI._py_reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
33482   __pyx_r = 0;
33483   __pyx_L0:;
33484   __Pyx_XDECREF(__pyx_v_res);
33485   __Pyx_XGIVEREF(__pyx_r);
33486   __Pyx_RefNannyFinishContext();
33487   return __pyx_r;
33488 }
33489 
33490 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":755
33491  *     return res
33492  *
33493  * cdef inline object _py_scan(object seq, object op):             # <<<<<<<<<<<<<<
33494  *     if seq is None: return None
33495  *     cdef Py_ssize_t i=0, n=len(seq)
33496  */
33497 
__pyx_f_6mpi4py_3MPI__py_scan(PyObject * __pyx_v_seq,PyObject * __pyx_v_op)33498 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_scan(PyObject *__pyx_v_seq, PyObject *__pyx_v_op) {
33499   Py_ssize_t __pyx_v_i;
33500   Py_ssize_t __pyx_v_n;
33501   PyObject *__pyx_r = NULL;
33502   __Pyx_RefNannyDeclarations
33503   int __pyx_t_1;
33504   Py_ssize_t __pyx_t_2;
33505   int __pyx_t_3;
33506   int __pyx_t_4;
33507   PyObject *__pyx_t_5 = NULL;
33508   PyObject *__pyx_t_6 = NULL;
33509   Py_ssize_t __pyx_t_7;
33510   PyObject *__pyx_t_8 = NULL;
33511   PyObject *__pyx_t_9 = NULL;
33512   int __pyx_lineno = 0;
33513   const char *__pyx_filename = NULL;
33514   int __pyx_clineno = 0;
33515   __Pyx_RefNannySetupContext("_py_scan");
33516 
33517   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":756
33518  *
33519  * cdef inline object _py_scan(object seq, object op):
33520  *     if seq is None: return None             # <<<<<<<<<<<<<<
33521  *     cdef Py_ssize_t i=0, n=len(seq)
33522  *     if op is __MAXLOC__ or op is __MINLOC__:
33523  */
33524   __pyx_t_1 = (__pyx_v_seq == Py_None);
33525   if (__pyx_t_1) {
33526     __Pyx_XDECREF(__pyx_r);
33527     __Pyx_INCREF(Py_None);
33528     __pyx_r = Py_None;
33529     goto __pyx_L0;
33530     goto __pyx_L3;
33531   }
33532   __pyx_L3:;
33533 
33534   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":757
33535  * cdef inline object _py_scan(object seq, object op):
33536  *     if seq is None: return None
33537  *     cdef Py_ssize_t i=0, n=len(seq)             # <<<<<<<<<<<<<<
33538  *     if op is __MAXLOC__ or op is __MINLOC__:
33539  *         seq[0] = (seq[0], 0)
33540  */
33541   __pyx_v_i = 0;
33542   __pyx_t_2 = PyObject_Length(__pyx_v_seq); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33543   __pyx_v_n = __pyx_t_2;
33544 
33545   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":758
33546  *     if seq is None: return None
33547  *     cdef Py_ssize_t i=0, n=len(seq)
33548  *     if op is __MAXLOC__ or op is __MINLOC__:             # <<<<<<<<<<<<<<
33549  *         seq[0] = (seq[0], 0)
33550  *         for i from 1 <= i < n:
33551  */
33552   __pyx_t_1 = (__pyx_v_op == ((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__));
33553   if (!__pyx_t_1) {
33554     __pyx_t_3 = (__pyx_v_op == ((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__));
33555     __pyx_t_4 = __pyx_t_3;
33556   } else {
33557     __pyx_t_4 = __pyx_t_1;
33558   }
33559   if (__pyx_t_4) {
33560 
33561     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":759
33562  *     cdef Py_ssize_t i=0, n=len(seq)
33563  *     if op is __MAXLOC__ or op is __MINLOC__:
33564  *         seq[0] = (seq[0], 0)             # <<<<<<<<<<<<<<
33565  *         for i from 1 <= i < n:
33566  *             seq[i] = op(seq[i-1], (seq[i], i))
33567  */
33568     __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_seq, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33569     __Pyx_GOTREF(__pyx_t_5);
33570     __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33571     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
33572     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
33573     __Pyx_GIVEREF(__pyx_t_5);
33574     __Pyx_INCREF(__pyx_int_0);
33575     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_0);
33576     __Pyx_GIVEREF(__pyx_int_0);
33577     __pyx_t_5 = 0;
33578     if (__Pyx_SetItemInt(__pyx_v_seq, 0, ((PyObject *)__pyx_t_6), sizeof(long), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33579     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
33580 
33581     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":760
33582  *     if op is __MAXLOC__ or op is __MINLOC__:
33583  *         seq[0] = (seq[0], 0)
33584  *         for i from 1 <= i < n:             # <<<<<<<<<<<<<<
33585  *             seq[i] = op(seq[i-1], (seq[i], i))
33586  *     else:
33587  */
33588     __pyx_t_2 = __pyx_v_n;
33589     for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
33590 
33591       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":761
33592  *         seq[0] = (seq[0], 0)
33593  *         for i from 1 <= i < n:
33594  *             seq[i] = op(seq[i-1], (seq[i], i))             # <<<<<<<<<<<<<<
33595  *     else:
33596  *         for i from 1 <= i < n:
33597  */
33598       __pyx_t_7 = (__pyx_v_i - 1);
33599       __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_t_7, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33600       __Pyx_GOTREF(__pyx_t_6);
33601       __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33602       __Pyx_GOTREF(__pyx_t_5);
33603       __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33604       __Pyx_GOTREF(__pyx_t_8);
33605       __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33606       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
33607       PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5);
33608       __Pyx_GIVEREF(__pyx_t_5);
33609       PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
33610       __Pyx_GIVEREF(__pyx_t_8);
33611       __pyx_t_5 = 0;
33612       __pyx_t_8 = 0;
33613       __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33614       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
33615       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
33616       __Pyx_GIVEREF(__pyx_t_6);
33617       PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_9));
33618       __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
33619       __pyx_t_6 = 0;
33620       __pyx_t_9 = 0;
33621       __pyx_t_9 = PyObject_Call(__pyx_v_op, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33622       __Pyx_GOTREF(__pyx_t_9);
33623       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
33624       if (__Pyx_SetItemInt(__pyx_v_seq, __pyx_v_i, __pyx_t_9, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33625       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
33626     }
33627     goto __pyx_L4;
33628   }
33629   /*else*/ {
33630 
33631     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":763
33632  *             seq[i] = op(seq[i-1], (seq[i], i))
33633  *     else:
33634  *         for i from 1 <= i < n:             # <<<<<<<<<<<<<<
33635  *             seq[i] = op(seq[i-1], seq[i])
33636  *     return seq
33637  */
33638     __pyx_t_2 = __pyx_v_n;
33639     for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
33640 
33641       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":764
33642  *     else:
33643  *         for i from 1 <= i < n:
33644  *             seq[i] = op(seq[i-1], seq[i])             # <<<<<<<<<<<<<<
33645  *     return seq
33646  *
33647  */
33648       __pyx_t_7 = (__pyx_v_i - 1);
33649       __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_t_7, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33650       __Pyx_GOTREF(__pyx_t_9);
33651       __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_seq, __pyx_v_i, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33652       __Pyx_GOTREF(__pyx_t_8);
33653       __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33654       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
33655       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9);
33656       __Pyx_GIVEREF(__pyx_t_9);
33657       PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
33658       __Pyx_GIVEREF(__pyx_t_8);
33659       __pyx_t_9 = 0;
33660       __pyx_t_8 = 0;
33661       __pyx_t_8 = PyObject_Call(__pyx_v_op, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33662       __Pyx_GOTREF(__pyx_t_8);
33663       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
33664       if (__Pyx_SetItemInt(__pyx_v_seq, __pyx_v_i, __pyx_t_8, sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33665       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
33666     }
33667   }
33668   __pyx_L4:;
33669 
33670   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":765
33671  *         for i from 1 <= i < n:
33672  *             seq[i] = op(seq[i-1], seq[i])
33673  *     return seq             # <<<<<<<<<<<<<<
33674  *
33675  * cdef inline object _py_exscan(object seq, object op):
33676  */
33677   __Pyx_XDECREF(__pyx_r);
33678   __Pyx_INCREF(__pyx_v_seq);
33679   __pyx_r = __pyx_v_seq;
33680   goto __pyx_L0;
33681 
33682   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33683   goto __pyx_L0;
33684   __pyx_L1_error:;
33685   __Pyx_XDECREF(__pyx_t_5);
33686   __Pyx_XDECREF(__pyx_t_6);
33687   __Pyx_XDECREF(__pyx_t_8);
33688   __Pyx_XDECREF(__pyx_t_9);
33689   __Pyx_AddTraceback("mpi4py.MPI._py_scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
33690   __pyx_r = 0;
33691   __pyx_L0:;
33692   __Pyx_XGIVEREF(__pyx_r);
33693   __Pyx_RefNannyFinishContext();
33694   return __pyx_r;
33695 }
33696 
33697 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":767
33698  *     return seq
33699  *
33700  * cdef inline object _py_exscan(object seq, object op):             # <<<<<<<<<<<<<<
33701  *     if seq is None: return None
33702  *     seq = _py_scan(seq, op)
33703  */
33704 
__pyx_f_6mpi4py_3MPI__py_exscan(PyObject * __pyx_v_seq,PyObject * __pyx_v_op)33705 static CYTHON_INLINE PyObject *__pyx_f_6mpi4py_3MPI__py_exscan(PyObject *__pyx_v_seq, PyObject *__pyx_v_op) {
33706   PyObject *__pyx_r = NULL;
33707   __Pyx_RefNannyDeclarations
33708   int __pyx_t_1;
33709   PyObject *__pyx_t_2 = NULL;
33710   PyObject *__pyx_t_3 = NULL;
33711   int __pyx_lineno = 0;
33712   const char *__pyx_filename = NULL;
33713   int __pyx_clineno = 0;
33714   __Pyx_RefNannySetupContext("_py_exscan");
33715   __Pyx_INCREF(__pyx_v_seq);
33716 
33717   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":768
33718  *
33719  * cdef inline object _py_exscan(object seq, object op):
33720  *     if seq is None: return None             # <<<<<<<<<<<<<<
33721  *     seq = _py_scan(seq, op)
33722  *     seq.pop(-1)
33723  */
33724   __pyx_t_1 = (__pyx_v_seq == Py_None);
33725   if (__pyx_t_1) {
33726     __Pyx_XDECREF(__pyx_r);
33727     __Pyx_INCREF(Py_None);
33728     __pyx_r = Py_None;
33729     goto __pyx_L0;
33730     goto __pyx_L3;
33731   }
33732   __pyx_L3:;
33733 
33734   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":769
33735  * cdef inline object _py_exscan(object seq, object op):
33736  *     if seq is None: return None
33737  *     seq = _py_scan(seq, op)             # <<<<<<<<<<<<<<
33738  *     seq.pop(-1)
33739  *     seq.insert(0, None)
33740  */
33741   __pyx_t_2 = __pyx_f_6mpi4py_3MPI__py_scan(__pyx_v_seq, __pyx_v_op); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33742   __Pyx_GOTREF(__pyx_t_2);
33743   __Pyx_DECREF(__pyx_v_seq);
33744   __pyx_v_seq = __pyx_t_2;
33745   __pyx_t_2 = 0;
33746 
33747   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":770
33748  *     if seq is None: return None
33749  *     seq = _py_scan(seq, op)
33750  *     seq.pop(-1)             # <<<<<<<<<<<<<<
33751  *     seq.insert(0, None)
33752  *     return seq
33753  */
33754   __pyx_t_2 = PyObject_GetAttr(__pyx_v_seq, __pyx_n_s__pop); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33755   __Pyx_GOTREF(__pyx_t_2);
33756   __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_51), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33757   __Pyx_GOTREF(__pyx_t_3);
33758   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33759   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33760 
33761   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":771
33762  *     seq = _py_scan(seq, op)
33763  *     seq.pop(-1)
33764  *     seq.insert(0, None)             # <<<<<<<<<<<<<<
33765  *     return seq
33766  *
33767  */
33768   __pyx_t_3 = PyObject_GetAttr(__pyx_v_seq, __pyx_n_s__insert); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33769   __Pyx_GOTREF(__pyx_t_3);
33770   __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_52), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33771   __Pyx_GOTREF(__pyx_t_2);
33772   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33773   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33774 
33775   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":772
33776  *     seq.pop(-1)
33777  *     seq.insert(0, None)
33778  *     return seq             # <<<<<<<<<<<<<<
33779  *
33780  *
33781  */
33782   __Pyx_XDECREF(__pyx_r);
33783   __Pyx_INCREF(__pyx_v_seq);
33784   __pyx_r = __pyx_v_seq;
33785   goto __pyx_L0;
33786 
33787   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33788   goto __pyx_L0;
33789   __pyx_L1_error:;
33790   __Pyx_XDECREF(__pyx_t_2);
33791   __Pyx_XDECREF(__pyx_t_3);
33792   __Pyx_AddTraceback("mpi4py.MPI._py_exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
33793   __pyx_r = 0;
33794   __pyx_L0:;
33795   __Pyx_XDECREF(__pyx_v_seq);
33796   __Pyx_XGIVEREF(__pyx_r);
33797   __Pyx_RefNannyFinishContext();
33798   return __pyx_r;
33799 }
33800 
33801 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":775
33802  *
33803  *
33804  * cdef object PyMPI_reduce(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
33805  *                          object op, int root, MPI_Comm comm):
33806  *     cdef object items = PyMPI_gather(sendobj, recvobj, root, comm)
33807  */
33808 
__pyx_f_6mpi4py_3MPI_PyMPI_reduce(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,PyObject * __pyx_v_op,int __pyx_v_root,MPI_Comm __pyx_v_comm)33809 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_reduce(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, PyObject *__pyx_v_op, int __pyx_v_root, MPI_Comm __pyx_v_comm) {
33810   PyObject *__pyx_v_items = 0;
33811   PyObject *__pyx_r = NULL;
33812   __Pyx_RefNannyDeclarations
33813   PyObject *__pyx_t_1 = NULL;
33814   int __pyx_lineno = 0;
33815   const char *__pyx_filename = NULL;
33816   int __pyx_clineno = 0;
33817   __Pyx_RefNannySetupContext("PyMPI_reduce");
33818 
33819   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":777
33820  * cdef object PyMPI_reduce(object sendobj, object recvobj,
33821  *                          object op, int root, MPI_Comm comm):
33822  *     cdef object items = PyMPI_gather(sendobj, recvobj, root, comm)             # <<<<<<<<<<<<<<
33823  *     return _py_reduce(items, op)
33824  *
33825  */
33826   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_gather(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_root, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33827   __Pyx_GOTREF(__pyx_t_1);
33828   __pyx_v_items = __pyx_t_1;
33829   __pyx_t_1 = 0;
33830 
33831   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":778
33832  *                          object op, int root, MPI_Comm comm):
33833  *     cdef object items = PyMPI_gather(sendobj, recvobj, root, comm)
33834  *     return _py_reduce(items, op)             # <<<<<<<<<<<<<<
33835  *
33836  *
33837  */
33838   __Pyx_XDECREF(__pyx_r);
33839   __pyx_t_1 = __pyx_f_6mpi4py_3MPI__py_reduce(__pyx_v_items, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33840   __Pyx_GOTREF(__pyx_t_1);
33841   __pyx_r = __pyx_t_1;
33842   __pyx_t_1 = 0;
33843   goto __pyx_L0;
33844 
33845   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33846   goto __pyx_L0;
33847   __pyx_L1_error:;
33848   __Pyx_XDECREF(__pyx_t_1);
33849   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
33850   __pyx_r = 0;
33851   __pyx_L0:;
33852   __Pyx_XDECREF(__pyx_v_items);
33853   __Pyx_XGIVEREF(__pyx_r);
33854   __Pyx_RefNannyFinishContext();
33855   return __pyx_r;
33856 }
33857 
33858 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":781
33859  *
33860  *
33861  * cdef object PyMPI_allreduce(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
33862  *                             object op, MPI_Comm comm):
33863  *     cdef object items = PyMPI_allgather(sendobj, recvobj, comm)
33864  */
33865 
__pyx_f_6mpi4py_3MPI_PyMPI_allreduce(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,PyObject * __pyx_v_op,MPI_Comm __pyx_v_comm)33866 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_allreduce(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, PyObject *__pyx_v_op, MPI_Comm __pyx_v_comm) {
33867   PyObject *__pyx_v_items = 0;
33868   PyObject *__pyx_r = NULL;
33869   __Pyx_RefNannyDeclarations
33870   PyObject *__pyx_t_1 = NULL;
33871   int __pyx_lineno = 0;
33872   const char *__pyx_filename = NULL;
33873   int __pyx_clineno = 0;
33874   __Pyx_RefNannySetupContext("PyMPI_allreduce");
33875 
33876   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":783
33877  * cdef object PyMPI_allreduce(object sendobj, object recvobj,
33878  *                             object op, MPI_Comm comm):
33879  *     cdef object items = PyMPI_allgather(sendobj, recvobj, comm)             # <<<<<<<<<<<<<<
33880  *     return _py_reduce(items, op)
33881  *
33882  */
33883   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_allgather(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33884   __Pyx_GOTREF(__pyx_t_1);
33885   __pyx_v_items = __pyx_t_1;
33886   __pyx_t_1 = 0;
33887 
33888   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":784
33889  *                             object op, MPI_Comm comm):
33890  *     cdef object items = PyMPI_allgather(sendobj, recvobj, comm)
33891  *     return _py_reduce(items, op)             # <<<<<<<<<<<<<<
33892  *
33893  *
33894  */
33895   __Pyx_XDECREF(__pyx_r);
33896   __pyx_t_1 = __pyx_f_6mpi4py_3MPI__py_reduce(__pyx_v_items, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33897   __Pyx_GOTREF(__pyx_t_1);
33898   __pyx_r = __pyx_t_1;
33899   __pyx_t_1 = 0;
33900   goto __pyx_L0;
33901 
33902   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33903   goto __pyx_L0;
33904   __pyx_L1_error:;
33905   __Pyx_XDECREF(__pyx_t_1);
33906   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
33907   __pyx_r = 0;
33908   __pyx_L0:;
33909   __Pyx_XDECREF(__pyx_v_items);
33910   __Pyx_XGIVEREF(__pyx_r);
33911   __Pyx_RefNannyFinishContext();
33912   return __pyx_r;
33913 }
33914 
33915 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":787
33916  *
33917  *
33918  * cdef object PyMPI_scan(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
33919  *                        object op, MPI_Comm comm):
33920  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
33921  */
33922 
__pyx_f_6mpi4py_3MPI_PyMPI_scan(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,PyObject * __pyx_v_op,MPI_Comm __pyx_v_comm)33923 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_scan(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, PyObject *__pyx_v_op, MPI_Comm __pyx_v_comm) {
33924   PyObject *__pyx_v_items = 0;
33925   PyObject *__pyx_r = NULL;
33926   __Pyx_RefNannyDeclarations
33927   PyObject *__pyx_t_1 = NULL;
33928   PyObject *__pyx_t_2 = NULL;
33929   int __pyx_lineno = 0;
33930   const char *__pyx_filename = NULL;
33931   int __pyx_clineno = 0;
33932   __Pyx_RefNannySetupContext("PyMPI_scan");
33933 
33934   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":789
33935  * cdef object PyMPI_scan(object sendobj, object recvobj,
33936  *                        object op, MPI_Comm comm):
33937  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)             # <<<<<<<<<<<<<<
33938  *     items = _py_scan(items, op)
33939  *     return PyMPI_scatter(items, None, 0, comm)
33940  */
33941   __pyx_t_1 = Py_None;
33942   __Pyx_INCREF(__pyx_t_1);
33943   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_gather(__pyx_v_sendobj, __pyx_t_1, 0, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33944   __Pyx_GOTREF(__pyx_t_2);
33945   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33946   __pyx_v_items = __pyx_t_2;
33947   __pyx_t_2 = 0;
33948 
33949   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":790
33950  *                        object op, MPI_Comm comm):
33951  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
33952  *     items = _py_scan(items, op)             # <<<<<<<<<<<<<<
33953  *     return PyMPI_scatter(items, None, 0, comm)
33954  *
33955  */
33956   __pyx_t_2 = __pyx_f_6mpi4py_3MPI__py_scan(__pyx_v_items, __pyx_v_op); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33957   __Pyx_GOTREF(__pyx_t_2);
33958   __Pyx_DECREF(__pyx_v_items);
33959   __pyx_v_items = __pyx_t_2;
33960   __pyx_t_2 = 0;
33961 
33962   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":791
33963  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
33964  *     items = _py_scan(items, op)
33965  *     return PyMPI_scatter(items, None, 0, comm)             # <<<<<<<<<<<<<<
33966  *
33967  *
33968  */
33969   __Pyx_XDECREF(__pyx_r);
33970   __pyx_t_2 = Py_None;
33971   __Pyx_INCREF(__pyx_t_2);
33972   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_scatter(__pyx_v_items, __pyx_t_2, 0, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
33973   __Pyx_GOTREF(__pyx_t_1);
33974   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33975   __pyx_r = __pyx_t_1;
33976   __pyx_t_1 = 0;
33977   goto __pyx_L0;
33978 
33979   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33980   goto __pyx_L0;
33981   __pyx_L1_error:;
33982   __Pyx_XDECREF(__pyx_t_1);
33983   __Pyx_XDECREF(__pyx_t_2);
33984   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
33985   __pyx_r = 0;
33986   __pyx_L0:;
33987   __Pyx_XDECREF(__pyx_v_items);
33988   __Pyx_XGIVEREF(__pyx_r);
33989   __Pyx_RefNannyFinishContext();
33990   return __pyx_r;
33991 }
33992 
33993 /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":794
33994  *
33995  *
33996  * cdef object PyMPI_exscan(object sendobj, object recvobj,             # <<<<<<<<<<<<<<
33997  *                          object op, MPI_Comm comm):
33998  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
33999  */
34000 
__pyx_f_6mpi4py_3MPI_PyMPI_exscan(PyObject * __pyx_v_sendobj,PyObject * __pyx_v_recvobj,PyObject * __pyx_v_op,MPI_Comm __pyx_v_comm)34001 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPI_exscan(PyObject *__pyx_v_sendobj, PyObject *__pyx_v_recvobj, PyObject *__pyx_v_op, MPI_Comm __pyx_v_comm) {
34002   PyObject *__pyx_v_items = 0;
34003   PyObject *__pyx_r = NULL;
34004   __Pyx_RefNannyDeclarations
34005   PyObject *__pyx_t_1 = NULL;
34006   PyObject *__pyx_t_2 = NULL;
34007   int __pyx_lineno = 0;
34008   const char *__pyx_filename = NULL;
34009   int __pyx_clineno = 0;
34010   __Pyx_RefNannySetupContext("PyMPI_exscan");
34011 
34012   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":796
34013  * cdef object PyMPI_exscan(object sendobj, object recvobj,
34014  *                          object op, MPI_Comm comm):
34015  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)             # <<<<<<<<<<<<<<
34016  *     items = _py_exscan(items, op)
34017  *     return PyMPI_scatter(items, None, 0, comm)
34018  */
34019   __pyx_t_1 = Py_None;
34020   __Pyx_INCREF(__pyx_t_1);
34021   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_gather(__pyx_v_sendobj, __pyx_t_1, 0, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34022   __Pyx_GOTREF(__pyx_t_2);
34023   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34024   __pyx_v_items = __pyx_t_2;
34025   __pyx_t_2 = 0;
34026 
34027   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":797
34028  *                          object op, MPI_Comm comm):
34029  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
34030  *     items = _py_exscan(items, op)             # <<<<<<<<<<<<<<
34031  *     return PyMPI_scatter(items, None, 0, comm)
34032  *
34033  */
34034   __pyx_t_2 = __pyx_f_6mpi4py_3MPI__py_exscan(__pyx_v_items, __pyx_v_op); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34035   __Pyx_GOTREF(__pyx_t_2);
34036   __Pyx_DECREF(__pyx_v_items);
34037   __pyx_v_items = __pyx_t_2;
34038   __pyx_t_2 = 0;
34039 
34040   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":798
34041  *     cdef object items = PyMPI_gather(sendobj, None, 0, comm)
34042  *     items = _py_exscan(items, op)
34043  *     return PyMPI_scatter(items, None, 0, comm)             # <<<<<<<<<<<<<<
34044  *
34045  * # -----------------------------------------------------------------------------
34046  */
34047   __Pyx_XDECREF(__pyx_r);
34048   __pyx_t_2 = Py_None;
34049   __Pyx_INCREF(__pyx_t_2);
34050   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_scatter(__pyx_v_items, __pyx_t_2, 0, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34051   __Pyx_GOTREF(__pyx_t_1);
34052   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
34053   __pyx_r = __pyx_t_1;
34054   __pyx_t_1 = 0;
34055   goto __pyx_L0;
34056 
34057   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34058   goto __pyx_L0;
34059   __pyx_L1_error:;
34060   __Pyx_XDECREF(__pyx_t_1);
34061   __Pyx_XDECREF(__pyx_t_2);
34062   __Pyx_AddTraceback("mpi4py.MPI.PyMPI_exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
34063   __pyx_r = 0;
34064   __pyx_L0:;
34065   __Pyx_XDECREF(__pyx_v_items);
34066   __Pyx_XGIVEREF(__pyx_r);
34067   __Pyx_RefNannyFinishContext();
34068   return __pyx_r;
34069 }
34070 
34071 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":5
34072  * #  Datatype
34073  *
34074  * cdef api object PyMPIDatatype_New(MPI_Datatype arg):             # <<<<<<<<<<<<<<
34075  *     cdef Datatype obj = <Datatype>Datatype.__new__(Datatype)
34076  *     obj.ob_mpi = arg
34077  */
34078 
__pyx_f_6mpi4py_3MPI_PyMPIDatatype_New(MPI_Datatype __pyx_v_arg)34079 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIDatatype_New(MPI_Datatype __pyx_v_arg) {
34080   struct PyMPIDatatypeObject *__pyx_v_obj = 0;
34081   PyObject *__pyx_r = NULL;
34082   __Pyx_RefNannyDeclarations
34083   PyObject *__pyx_t_1 = NULL;
34084   int __pyx_lineno = 0;
34085   const char *__pyx_filename = NULL;
34086   int __pyx_clineno = 0;
34087   __Pyx_RefNannySetupContext("PyMPIDatatype_New");
34088 
34089   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":6
34090  *
34091  * cdef api object PyMPIDatatype_New(MPI_Datatype arg):
34092  *     cdef Datatype obj = <Datatype>Datatype.__new__(Datatype)             # <<<<<<<<<<<<<<
34093  *     obj.ob_mpi = arg
34094  *     return obj
34095  */
34096   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34097   __Pyx_GOTREF(__pyx_t_1);
34098   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
34099   __pyx_v_obj = ((struct PyMPIDatatypeObject *)__pyx_t_1);
34100   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34101 
34102   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":7
34103  * cdef api object PyMPIDatatype_New(MPI_Datatype arg):
34104  *     cdef Datatype obj = <Datatype>Datatype.__new__(Datatype)
34105  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34106  *     return obj
34107  *
34108  */
34109   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34110 
34111   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":8
34112  *     cdef Datatype obj = <Datatype>Datatype.__new__(Datatype)
34113  *     obj.ob_mpi = arg
34114  *     return obj             # <<<<<<<<<<<<<<
34115  *
34116  * cdef api MPI_Datatype* PyMPIDatatype_Get(object arg) except NULL:
34117  */
34118   __Pyx_XDECREF(__pyx_r);
34119   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34120   __pyx_r = ((PyObject *)__pyx_v_obj);
34121   goto __pyx_L0;
34122 
34123   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34124   goto __pyx_L0;
34125   __pyx_L1_error:;
34126   __Pyx_XDECREF(__pyx_t_1);
34127   __Pyx_AddTraceback("mpi4py.MPI.PyMPIDatatype_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34128   __pyx_r = 0;
34129   __pyx_L0:;
34130   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34131   __Pyx_XGIVEREF(__pyx_r);
34132   __Pyx_RefNannyFinishContext();
34133   return __pyx_r;
34134 }
34135 
34136 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":10
34137  *     return obj
34138  *
34139  * cdef api MPI_Datatype* PyMPIDatatype_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
34140  *     return &(<Datatype?>arg).ob_mpi
34141  *
34142  */
34143 
__pyx_f_6mpi4py_3MPI_PyMPIDatatype_Get(PyObject * __pyx_v_arg)34144 static MPI_Datatype *__pyx_f_6mpi4py_3MPI_PyMPIDatatype_Get(PyObject *__pyx_v_arg) {
34145   MPI_Datatype *__pyx_r;
34146   __Pyx_RefNannyDeclarations
34147   int __pyx_lineno = 0;
34148   const char *__pyx_filename = NULL;
34149   int __pyx_clineno = 0;
34150   __Pyx_RefNannySetupContext("PyMPIDatatype_Get");
34151 
34152   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":11
34153  *
34154  * cdef api MPI_Datatype* PyMPIDatatype_Get(object arg) except NULL:
34155  *     return &(<Datatype?>arg).ob_mpi             # <<<<<<<<<<<<<<
34156  *
34157  * # -----------------------------------------------------------------------------
34158  */
34159   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Datatype)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34160   __pyx_r = (&((struct PyMPIDatatypeObject *)__pyx_v_arg)->ob_mpi);
34161   goto __pyx_L0;
34162 
34163   __pyx_r = 0;
34164   goto __pyx_L0;
34165   __pyx_L1_error:;
34166   __Pyx_AddTraceback("mpi4py.MPI.PyMPIDatatype_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34167   __pyx_r = NULL;
34168   __pyx_L0:;
34169   __Pyx_RefNannyFinishContext();
34170   return __pyx_r;
34171 }
34172 
34173 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":17
34174  * #  Status
34175  *
34176  * cdef api object PyMPIStatus_New(MPI_Status *arg):             # <<<<<<<<<<<<<<
34177  *     cdef Status obj = <Status>Status.__new__(Status)
34178  *     if (arg != NULL and
34179  */
34180 
__pyx_f_6mpi4py_3MPI_PyMPIStatus_New(MPI_Status * __pyx_v_arg)34181 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIStatus_New(MPI_Status *__pyx_v_arg) {
34182   struct PyMPIStatusObject *__pyx_v_obj = 0;
34183   PyObject *__pyx_r = NULL;
34184   __Pyx_RefNannyDeclarations
34185   PyObject *__pyx_t_1 = NULL;
34186   int __pyx_t_2;
34187   int __pyx_t_3;
34188   int __pyx_t_4;
34189   int __pyx_t_5;
34190   int __pyx_lineno = 0;
34191   const char *__pyx_filename = NULL;
34192   int __pyx_clineno = 0;
34193   __Pyx_RefNannySetupContext("PyMPIStatus_New");
34194 
34195   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":18
34196  *
34197  * cdef api object PyMPIStatus_New(MPI_Status *arg):
34198  *     cdef Status obj = <Status>Status.__new__(Status)             # <<<<<<<<<<<<<<
34199  *     if (arg != NULL and
34200  *         arg != MPI_STATUS_IGNORE and
34201  */
34202   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Status)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34203   __Pyx_GOTREF(__pyx_t_1);
34204   __Pyx_INCREF(((PyObject *)((struct PyMPIStatusObject *)__pyx_t_1)));
34205   __pyx_v_obj = ((struct PyMPIStatusObject *)__pyx_t_1);
34206   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34207 
34208   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":19
34209  * cdef api object PyMPIStatus_New(MPI_Status *arg):
34210  *     cdef Status obj = <Status>Status.__new__(Status)
34211  *     if (arg != NULL and             # <<<<<<<<<<<<<<
34212  *         arg != MPI_STATUS_IGNORE and
34213  *         arg != MPI_STATUSES_IGNORE):
34214  */
34215   __pyx_t_2 = (__pyx_v_arg != NULL);
34216   if (__pyx_t_2) {
34217 
34218     /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":20
34219  *     cdef Status obj = <Status>Status.__new__(Status)
34220  *     if (arg != NULL and
34221  *         arg != MPI_STATUS_IGNORE and             # <<<<<<<<<<<<<<
34222  *         arg != MPI_STATUSES_IGNORE):
34223  *         obj.ob_mpi = arg[0]
34224  */
34225     __pyx_t_3 = (__pyx_v_arg != MPI_STATUS_IGNORE);
34226     if (__pyx_t_3) {
34227 
34228       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":21
34229  *     if (arg != NULL and
34230  *         arg != MPI_STATUS_IGNORE and
34231  *         arg != MPI_STATUSES_IGNORE):             # <<<<<<<<<<<<<<
34232  *         obj.ob_mpi = arg[0]
34233  *     else: pass  # XXX should fail ?
34234  */
34235       __pyx_t_4 = (__pyx_v_arg != MPI_STATUSES_IGNORE);
34236       __pyx_t_5 = __pyx_t_4;
34237     } else {
34238       __pyx_t_5 = __pyx_t_3;
34239     }
34240     __pyx_t_3 = __pyx_t_5;
34241   } else {
34242     __pyx_t_3 = __pyx_t_2;
34243   }
34244   if (__pyx_t_3) {
34245 
34246     /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":22
34247  *         arg != MPI_STATUS_IGNORE and
34248  *         arg != MPI_STATUSES_IGNORE):
34249  *         obj.ob_mpi = arg[0]             # <<<<<<<<<<<<<<
34250  *     else: pass  # XXX should fail ?
34251  *     return obj
34252  */
34253     __pyx_v_obj->ob_mpi = (__pyx_v_arg[0]);
34254     goto __pyx_L3;
34255   }
34256   /*else*/ {
34257   }
34258   __pyx_L3:;
34259 
34260   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":24
34261  *         obj.ob_mpi = arg[0]
34262  *     else: pass  # XXX should fail ?
34263  *     return obj             # <<<<<<<<<<<<<<
34264  *
34265  * cdef api MPI_Status* PyMPIStatus_Get(object arg) except? NULL:
34266  */
34267   __Pyx_XDECREF(__pyx_r);
34268   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34269   __pyx_r = ((PyObject *)__pyx_v_obj);
34270   goto __pyx_L0;
34271 
34272   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34273   goto __pyx_L0;
34274   __pyx_L1_error:;
34275   __Pyx_XDECREF(__pyx_t_1);
34276   __Pyx_AddTraceback("mpi4py.MPI.PyMPIStatus_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34277   __pyx_r = 0;
34278   __pyx_L0:;
34279   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34280   __Pyx_XGIVEREF(__pyx_r);
34281   __Pyx_RefNannyFinishContext();
34282   return __pyx_r;
34283 }
34284 
34285 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":26
34286  *     return obj
34287  *
34288  * cdef api MPI_Status* PyMPIStatus_Get(object arg) except? NULL:             # <<<<<<<<<<<<<<
34289  *     if arg is None: return MPI_STATUS_IGNORE
34290  *     return &(<Status?>arg).ob_mpi
34291  */
34292 
__pyx_f_6mpi4py_3MPI_PyMPIStatus_Get(PyObject * __pyx_v_arg)34293 static MPI_Status *__pyx_f_6mpi4py_3MPI_PyMPIStatus_Get(PyObject *__pyx_v_arg) {
34294   MPI_Status *__pyx_r;
34295   __Pyx_RefNannyDeclarations
34296   int __pyx_t_1;
34297   int __pyx_lineno = 0;
34298   const char *__pyx_filename = NULL;
34299   int __pyx_clineno = 0;
34300   __Pyx_RefNannySetupContext("PyMPIStatus_Get");
34301 
34302   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":27
34303  *
34304  * cdef api MPI_Status* PyMPIStatus_Get(object arg) except? NULL:
34305  *     if arg is None: return MPI_STATUS_IGNORE             # <<<<<<<<<<<<<<
34306  *     return &(<Status?>arg).ob_mpi
34307  *
34308  */
34309   __pyx_t_1 = (__pyx_v_arg == Py_None);
34310   if (__pyx_t_1) {
34311     __pyx_r = MPI_STATUS_IGNORE;
34312     goto __pyx_L0;
34313     goto __pyx_L3;
34314   }
34315   __pyx_L3:;
34316 
34317   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":28
34318  * cdef api MPI_Status* PyMPIStatus_Get(object arg) except? NULL:
34319  *     if arg is None: return MPI_STATUS_IGNORE
34320  *     return &(<Status?>arg).ob_mpi             # <<<<<<<<<<<<<<
34321  *
34322  * # -----------------------------------------------------------------------------
34323  */
34324   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Status)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34325   __pyx_r = (&((struct PyMPIStatusObject *)__pyx_v_arg)->ob_mpi);
34326   goto __pyx_L0;
34327 
34328   __pyx_r = 0;
34329   goto __pyx_L0;
34330   __pyx_L1_error:;
34331   __Pyx_AddTraceback("mpi4py.MPI.PyMPIStatus_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34332   __pyx_r = NULL;
34333   __pyx_L0:;
34334   __Pyx_RefNannyFinishContext();
34335   return __pyx_r;
34336 }
34337 
34338 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":34
34339  * #  Request
34340  *
34341  * cdef api object PyMPIRequest_New(MPI_Request arg):             # <<<<<<<<<<<<<<
34342  *     cdef Request obj = <Request>Request.__new__(Request)
34343  *     obj.ob_mpi = arg
34344  */
34345 
__pyx_f_6mpi4py_3MPI_PyMPIRequest_New(MPI_Request __pyx_v_arg)34346 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIRequest_New(MPI_Request __pyx_v_arg) {
34347   struct PyMPIRequestObject *__pyx_v_obj = 0;
34348   PyObject *__pyx_r = NULL;
34349   __Pyx_RefNannyDeclarations
34350   PyObject *__pyx_t_1 = NULL;
34351   int __pyx_lineno = 0;
34352   const char *__pyx_filename = NULL;
34353   int __pyx_clineno = 0;
34354   __Pyx_RefNannySetupContext("PyMPIRequest_New");
34355 
34356   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":35
34357  *
34358  * cdef api object PyMPIRequest_New(MPI_Request arg):
34359  *     cdef Request obj = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
34360  *     obj.ob_mpi = arg
34361  *     return obj
34362  */
34363   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34364   __Pyx_GOTREF(__pyx_t_1);
34365   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
34366   __pyx_v_obj = ((struct PyMPIRequestObject *)__pyx_t_1);
34367   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34368 
34369   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":36
34370  * cdef api object PyMPIRequest_New(MPI_Request arg):
34371  *     cdef Request obj = <Request>Request.__new__(Request)
34372  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34373  *     return obj
34374  *
34375  */
34376   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34377 
34378   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":37
34379  *     cdef Request obj = <Request>Request.__new__(Request)
34380  *     obj.ob_mpi = arg
34381  *     return obj             # <<<<<<<<<<<<<<
34382  *
34383  * cdef api MPI_Request* PyMPIRequest_Get(object arg) except NULL:
34384  */
34385   __Pyx_XDECREF(__pyx_r);
34386   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34387   __pyx_r = ((PyObject *)__pyx_v_obj);
34388   goto __pyx_L0;
34389 
34390   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34391   goto __pyx_L0;
34392   __pyx_L1_error:;
34393   __Pyx_XDECREF(__pyx_t_1);
34394   __Pyx_AddTraceback("mpi4py.MPI.PyMPIRequest_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34395   __pyx_r = 0;
34396   __pyx_L0:;
34397   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34398   __Pyx_XGIVEREF(__pyx_r);
34399   __Pyx_RefNannyFinishContext();
34400   return __pyx_r;
34401 }
34402 
34403 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":39
34404  *     return obj
34405  *
34406  * cdef api MPI_Request* PyMPIRequest_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
34407  *     return &(<Request?>arg).ob_mpi
34408  *
34409  */
34410 
__pyx_f_6mpi4py_3MPI_PyMPIRequest_Get(PyObject * __pyx_v_arg)34411 static MPI_Request *__pyx_f_6mpi4py_3MPI_PyMPIRequest_Get(PyObject *__pyx_v_arg) {
34412   MPI_Request *__pyx_r;
34413   __Pyx_RefNannyDeclarations
34414   int __pyx_lineno = 0;
34415   const char *__pyx_filename = NULL;
34416   int __pyx_clineno = 0;
34417   __Pyx_RefNannySetupContext("PyMPIRequest_Get");
34418 
34419   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":40
34420  *
34421  * cdef api MPI_Request* PyMPIRequest_Get(object arg) except NULL:
34422  *     return &(<Request?>arg).ob_mpi             # <<<<<<<<<<<<<<
34423  *
34424  * # -----------------------------------------------------------------------------
34425  */
34426   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Request)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34427   __pyx_r = (&((struct PyMPIRequestObject *)__pyx_v_arg)->ob_mpi);
34428   goto __pyx_L0;
34429 
34430   __pyx_r = 0;
34431   goto __pyx_L0;
34432   __pyx_L1_error:;
34433   __Pyx_AddTraceback("mpi4py.MPI.PyMPIRequest_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34434   __pyx_r = NULL;
34435   __pyx_L0:;
34436   __Pyx_RefNannyFinishContext();
34437   return __pyx_r;
34438 }
34439 
34440 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":46
34441  * #  Op
34442  *
34443  * cdef api object PyMPIOp_New(MPI_Op arg):             # <<<<<<<<<<<<<<
34444  *     cdef Op obj = <Op>Op.__new__(Op)
34445  *     obj.ob_mpi = arg
34446  */
34447 
__pyx_f_6mpi4py_3MPI_PyMPIOp_New(MPI_Op __pyx_v_arg)34448 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIOp_New(MPI_Op __pyx_v_arg) {
34449   struct PyMPIOpObject *__pyx_v_obj = 0;
34450   PyObject *__pyx_r = NULL;
34451   __Pyx_RefNannyDeclarations
34452   PyObject *__pyx_t_1 = NULL;
34453   int __pyx_lineno = 0;
34454   const char *__pyx_filename = NULL;
34455   int __pyx_clineno = 0;
34456   __Pyx_RefNannySetupContext("PyMPIOp_New");
34457 
34458   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":47
34459  *
34460  * cdef api object PyMPIOp_New(MPI_Op arg):
34461  *     cdef Op obj = <Op>Op.__new__(Op)             # <<<<<<<<<<<<<<
34462  *     obj.ob_mpi = arg
34463  *     return obj
34464  */
34465   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Op)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34466   __Pyx_GOTREF(__pyx_t_1);
34467   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_t_1)));
34468   __pyx_v_obj = ((struct PyMPIOpObject *)__pyx_t_1);
34469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34470 
34471   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":48
34472  * cdef api object PyMPIOp_New(MPI_Op arg):
34473  *     cdef Op obj = <Op>Op.__new__(Op)
34474  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34475  *     return obj
34476  *
34477  */
34478   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34479 
34480   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":49
34481  *     cdef Op obj = <Op>Op.__new__(Op)
34482  *     obj.ob_mpi = arg
34483  *     return obj             # <<<<<<<<<<<<<<
34484  *
34485  * cdef api MPI_Op* PyMPIOp_Get(object arg) except NULL:
34486  */
34487   __Pyx_XDECREF(__pyx_r);
34488   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34489   __pyx_r = ((PyObject *)__pyx_v_obj);
34490   goto __pyx_L0;
34491 
34492   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34493   goto __pyx_L0;
34494   __pyx_L1_error:;
34495   __Pyx_XDECREF(__pyx_t_1);
34496   __Pyx_AddTraceback("mpi4py.MPI.PyMPIOp_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34497   __pyx_r = 0;
34498   __pyx_L0:;
34499   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34500   __Pyx_XGIVEREF(__pyx_r);
34501   __Pyx_RefNannyFinishContext();
34502   return __pyx_r;
34503 }
34504 
34505 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":51
34506  *     return obj
34507  *
34508  * cdef api MPI_Op* PyMPIOp_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
34509  *     return &(<Op?>arg).ob_mpi
34510  *
34511  */
34512 
__pyx_f_6mpi4py_3MPI_PyMPIOp_Get(PyObject * __pyx_v_arg)34513 static MPI_Op *__pyx_f_6mpi4py_3MPI_PyMPIOp_Get(PyObject *__pyx_v_arg) {
34514   MPI_Op *__pyx_r;
34515   __Pyx_RefNannyDeclarations
34516   int __pyx_lineno = 0;
34517   const char *__pyx_filename = NULL;
34518   int __pyx_clineno = 0;
34519   __Pyx_RefNannySetupContext("PyMPIOp_Get");
34520 
34521   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":52
34522  *
34523  * cdef api MPI_Op* PyMPIOp_Get(object arg) except NULL:
34524  *     return &(<Op?>arg).ob_mpi             # <<<<<<<<<<<<<<
34525  *
34526  * # -----------------------------------------------------------------------------
34527  */
34528   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Op)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34529   __pyx_r = (&((struct PyMPIOpObject *)__pyx_v_arg)->ob_mpi);
34530   goto __pyx_L0;
34531 
34532   __pyx_r = 0;
34533   goto __pyx_L0;
34534   __pyx_L1_error:;
34535   __Pyx_AddTraceback("mpi4py.MPI.PyMPIOp_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34536   __pyx_r = NULL;
34537   __pyx_L0:;
34538   __Pyx_RefNannyFinishContext();
34539   return __pyx_r;
34540 }
34541 
34542 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":58
34543  * #  Info
34544  *
34545  * cdef api object PyMPIInfo_New(MPI_Info arg):             # <<<<<<<<<<<<<<
34546  *     cdef Info obj = <Info>Info.__new__(Info)
34547  *     obj.ob_mpi = arg
34548  */
34549 
__pyx_f_6mpi4py_3MPI_PyMPIInfo_New(MPI_Info __pyx_v_arg)34550 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIInfo_New(MPI_Info __pyx_v_arg) {
34551   struct PyMPIInfoObject *__pyx_v_obj = 0;
34552   PyObject *__pyx_r = NULL;
34553   __Pyx_RefNannyDeclarations
34554   PyObject *__pyx_t_1 = NULL;
34555   int __pyx_lineno = 0;
34556   const char *__pyx_filename = NULL;
34557   int __pyx_clineno = 0;
34558   __Pyx_RefNannySetupContext("PyMPIInfo_New");
34559 
34560   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":59
34561  *
34562  * cdef api object PyMPIInfo_New(MPI_Info arg):
34563  *     cdef Info obj = <Info>Info.__new__(Info)             # <<<<<<<<<<<<<<
34564  *     obj.ob_mpi = arg
34565  *     return obj
34566  */
34567   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34568   __Pyx_GOTREF(__pyx_t_1);
34569   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
34570   __pyx_v_obj = ((struct PyMPIInfoObject *)__pyx_t_1);
34571   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34572 
34573   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":60
34574  * cdef api object PyMPIInfo_New(MPI_Info arg):
34575  *     cdef Info obj = <Info>Info.__new__(Info)
34576  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34577  *     return obj
34578  *
34579  */
34580   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34581 
34582   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":61
34583  *     cdef Info obj = <Info>Info.__new__(Info)
34584  *     obj.ob_mpi = arg
34585  *     return obj             # <<<<<<<<<<<<<<
34586  *
34587  * cdef api MPI_Info* PyMPIInfo_Get(object arg) except NULL:
34588  */
34589   __Pyx_XDECREF(__pyx_r);
34590   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34591   __pyx_r = ((PyObject *)__pyx_v_obj);
34592   goto __pyx_L0;
34593 
34594   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34595   goto __pyx_L0;
34596   __pyx_L1_error:;
34597   __Pyx_XDECREF(__pyx_t_1);
34598   __Pyx_AddTraceback("mpi4py.MPI.PyMPIInfo_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34599   __pyx_r = 0;
34600   __pyx_L0:;
34601   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34602   __Pyx_XGIVEREF(__pyx_r);
34603   __Pyx_RefNannyFinishContext();
34604   return __pyx_r;
34605 }
34606 
34607 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":63
34608  *     return obj
34609  *
34610  * cdef api MPI_Info* PyMPIInfo_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
34611  *     return &(<Info?>arg).ob_mpi
34612  *
34613  */
34614 
__pyx_f_6mpi4py_3MPI_PyMPIInfo_Get(PyObject * __pyx_v_arg)34615 static MPI_Info *__pyx_f_6mpi4py_3MPI_PyMPIInfo_Get(PyObject *__pyx_v_arg) {
34616   MPI_Info *__pyx_r;
34617   __Pyx_RefNannyDeclarations
34618   int __pyx_lineno = 0;
34619   const char *__pyx_filename = NULL;
34620   int __pyx_clineno = 0;
34621   __Pyx_RefNannySetupContext("PyMPIInfo_Get");
34622 
34623   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":64
34624  *
34625  * cdef api MPI_Info* PyMPIInfo_Get(object arg) except NULL:
34626  *     return &(<Info?>arg).ob_mpi             # <<<<<<<<<<<<<<
34627  *
34628  * # -----------------------------------------------------------------------------
34629  */
34630   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Info)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34631   __pyx_r = (&((struct PyMPIInfoObject *)__pyx_v_arg)->ob_mpi);
34632   goto __pyx_L0;
34633 
34634   __pyx_r = 0;
34635   goto __pyx_L0;
34636   __pyx_L1_error:;
34637   __Pyx_AddTraceback("mpi4py.MPI.PyMPIInfo_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34638   __pyx_r = NULL;
34639   __pyx_L0:;
34640   __Pyx_RefNannyFinishContext();
34641   return __pyx_r;
34642 }
34643 
34644 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":70
34645  * #  Group
34646  *
34647  * cdef api object PyMPIGroup_New(MPI_Group arg):             # <<<<<<<<<<<<<<
34648  *     cdef Group obj = <Group>Group.__new__(Group)
34649  *     obj.ob_mpi = arg
34650  */
34651 
__pyx_f_6mpi4py_3MPI_PyMPIGroup_New(MPI_Group __pyx_v_arg)34652 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIGroup_New(MPI_Group __pyx_v_arg) {
34653   struct PyMPIGroupObject *__pyx_v_obj = 0;
34654   PyObject *__pyx_r = NULL;
34655   __Pyx_RefNannyDeclarations
34656   PyObject *__pyx_t_1 = NULL;
34657   int __pyx_lineno = 0;
34658   const char *__pyx_filename = NULL;
34659   int __pyx_clineno = 0;
34660   __Pyx_RefNannySetupContext("PyMPIGroup_New");
34661 
34662   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":71
34663  *
34664  * cdef api object PyMPIGroup_New(MPI_Group arg):
34665  *     cdef Group obj = <Group>Group.__new__(Group)             # <<<<<<<<<<<<<<
34666  *     obj.ob_mpi = arg
34667  *     return obj
34668  */
34669   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34670   __Pyx_GOTREF(__pyx_t_1);
34671   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
34672   __pyx_v_obj = ((struct PyMPIGroupObject *)__pyx_t_1);
34673   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34674 
34675   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":72
34676  * cdef api object PyMPIGroup_New(MPI_Group arg):
34677  *     cdef Group obj = <Group>Group.__new__(Group)
34678  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34679  *     return obj
34680  *
34681  */
34682   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34683 
34684   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":73
34685  *     cdef Group obj = <Group>Group.__new__(Group)
34686  *     obj.ob_mpi = arg
34687  *     return obj             # <<<<<<<<<<<<<<
34688  *
34689  * cdef api MPI_Group* PyMPIGroup_Get(object arg) except NULL:
34690  */
34691   __Pyx_XDECREF(__pyx_r);
34692   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34693   __pyx_r = ((PyObject *)__pyx_v_obj);
34694   goto __pyx_L0;
34695 
34696   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34697   goto __pyx_L0;
34698   __pyx_L1_error:;
34699   __Pyx_XDECREF(__pyx_t_1);
34700   __Pyx_AddTraceback("mpi4py.MPI.PyMPIGroup_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34701   __pyx_r = 0;
34702   __pyx_L0:;
34703   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
34704   __Pyx_XGIVEREF(__pyx_r);
34705   __Pyx_RefNannyFinishContext();
34706   return __pyx_r;
34707 }
34708 
34709 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":75
34710  *     return obj
34711  *
34712  * cdef api MPI_Group* PyMPIGroup_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
34713  *     return &(<Group?>arg).ob_mpi
34714  *
34715  */
34716 
__pyx_f_6mpi4py_3MPI_PyMPIGroup_Get(PyObject * __pyx_v_arg)34717 static MPI_Group *__pyx_f_6mpi4py_3MPI_PyMPIGroup_Get(PyObject *__pyx_v_arg) {
34718   MPI_Group *__pyx_r;
34719   __Pyx_RefNannyDeclarations
34720   int __pyx_lineno = 0;
34721   const char *__pyx_filename = NULL;
34722   int __pyx_clineno = 0;
34723   __Pyx_RefNannySetupContext("PyMPIGroup_Get");
34724 
34725   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":76
34726  *
34727  * cdef api MPI_Group* PyMPIGroup_Get(object arg) except NULL:
34728  *     return &(<Group?>arg).ob_mpi             # <<<<<<<<<<<<<<
34729  *
34730  * # -----------------------------------------------------------------------------
34731  */
34732   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Group)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34733   __pyx_r = (&((struct PyMPIGroupObject *)__pyx_v_arg)->ob_mpi);
34734   goto __pyx_L0;
34735 
34736   __pyx_r = 0;
34737   goto __pyx_L0;
34738   __pyx_L1_error:;
34739   __Pyx_AddTraceback("mpi4py.MPI.PyMPIGroup_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
34740   __pyx_r = NULL;
34741   __pyx_L0:;
34742   __Pyx_RefNannyFinishContext();
34743   return __pyx_r;
34744 }
34745 
34746 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":82
34747  * # Comm
34748  *
34749  * cdef api object PyMPIComm_New(MPI_Comm arg):             # <<<<<<<<<<<<<<
34750  *     cdef type cls   = Comm
34751  *     cdef int  inter = 0
34752  */
34753 
__pyx_f_6mpi4py_3MPI_PyMPIComm_New(MPI_Comm __pyx_v_arg)34754 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIComm_New(MPI_Comm __pyx_v_arg) {
34755   PyObject *__pyx_v_cls = 0;
34756   int __pyx_v_inter;
34757   int __pyx_v_topo;
34758   struct PyMPICommObject *__pyx_v_obj = 0;
34759   PyObject *__pyx_r = NULL;
34760   __Pyx_RefNannyDeclarations
34761   int __pyx_t_1;
34762   int __pyx_t_2;
34763   PyObject *__pyx_t_3 = NULL;
34764   int __pyx_lineno = 0;
34765   const char *__pyx_filename = NULL;
34766   int __pyx_clineno = 0;
34767   __Pyx_RefNannySetupContext("PyMPIComm_New");
34768 
34769   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":83
34770  *
34771  * cdef api object PyMPIComm_New(MPI_Comm arg):
34772  *     cdef type cls   = Comm             # <<<<<<<<<<<<<<
34773  *     cdef int  inter = 0
34774  *     cdef int  topo  = MPI_UNDEFINED
34775  */
34776   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Comm)));
34777   __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Comm);
34778 
34779   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":84
34780  * cdef api object PyMPIComm_New(MPI_Comm arg):
34781  *     cdef type cls   = Comm
34782  *     cdef int  inter = 0             # <<<<<<<<<<<<<<
34783  *     cdef int  topo  = MPI_UNDEFINED
34784  *     if arg != MPI_COMM_NULL:
34785  */
34786   __pyx_v_inter = 0;
34787 
34788   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":85
34789  *     cdef type cls   = Comm
34790  *     cdef int  inter = 0
34791  *     cdef int  topo  = MPI_UNDEFINED             # <<<<<<<<<<<<<<
34792  *     if arg != MPI_COMM_NULL:
34793  *         CHKERR( MPI_Comm_test_inter(arg, &inter) )
34794  */
34795   __pyx_v_topo = MPI_UNDEFINED;
34796 
34797   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":86
34798  *     cdef int  inter = 0
34799  *     cdef int  topo  = MPI_UNDEFINED
34800  *     if arg != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
34801  *         CHKERR( MPI_Comm_test_inter(arg, &inter) )
34802  *         if inter:
34803  */
34804   __pyx_t_1 = (__pyx_v_arg != MPI_COMM_NULL);
34805   if (__pyx_t_1) {
34806 
34807     /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":87
34808  *     cdef int  topo  = MPI_UNDEFINED
34809  *     if arg != MPI_COMM_NULL:
34810  *         CHKERR( MPI_Comm_test_inter(arg, &inter) )             # <<<<<<<<<<<<<<
34811  *         if inter:
34812  *             cls = Intercomm
34813  */
34814     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(__pyx_v_arg, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34815 
34816     /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":88
34817  *     if arg != MPI_COMM_NULL:
34818  *         CHKERR( MPI_Comm_test_inter(arg, &inter) )
34819  *         if inter:             # <<<<<<<<<<<<<<
34820  *             cls = Intercomm
34821  *         else:
34822  */
34823     if (__pyx_v_inter) {
34824 
34825       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":89
34826  *         CHKERR( MPI_Comm_test_inter(arg, &inter) )
34827  *         if inter:
34828  *             cls = Intercomm             # <<<<<<<<<<<<<<
34829  *         else:
34830  *             CHKERR( MPI_Topo_test(arg, &topo) )
34831  */
34832       __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)));
34833       __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34834       __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm);
34835       goto __pyx_L4;
34836     }
34837     /*else*/ {
34838 
34839       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":91
34840  *             cls = Intercomm
34841  *         else:
34842  *             CHKERR( MPI_Topo_test(arg, &topo) )             # <<<<<<<<<<<<<<
34843  *             if topo == <int>MPI_UNDEFINED:
34844  *                 cls = Intracomm
34845  */
34846       __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Topo_test(__pyx_v_arg, (&__pyx_v_topo))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34847 
34848       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":92
34849  *         else:
34850  *             CHKERR( MPI_Topo_test(arg, &topo) )
34851  *             if topo == <int>MPI_UNDEFINED:             # <<<<<<<<<<<<<<
34852  *                 cls = Intracomm
34853  *             elif topo == <int>MPI_CART:
34854  */
34855       __pyx_t_1 = (__pyx_v_topo == ((int)MPI_UNDEFINED));
34856       if (__pyx_t_1) {
34857 
34858         /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":93
34859  *             CHKERR( MPI_Topo_test(arg, &topo) )
34860  *             if topo == <int>MPI_UNDEFINED:
34861  *                 cls = Intracomm             # <<<<<<<<<<<<<<
34862  *             elif topo == <int>MPI_CART:
34863  *                 cls = Cartcomm
34864  */
34865         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm)));
34866         __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34867         __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm);
34868         goto __pyx_L5;
34869       }
34870 
34871       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":94
34872  *             if topo == <int>MPI_UNDEFINED:
34873  *                 cls = Intracomm
34874  *             elif topo == <int>MPI_CART:             # <<<<<<<<<<<<<<
34875  *                 cls = Cartcomm
34876  *             elif topo == <int>MPI_GRAPH:
34877  */
34878       __pyx_t_1 = (__pyx_v_topo == ((int)MPI_CART));
34879       if (__pyx_t_1) {
34880 
34881         /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":95
34882  *                 cls = Intracomm
34883  *             elif topo == <int>MPI_CART:
34884  *                 cls = Cartcomm             # <<<<<<<<<<<<<<
34885  *             elif topo == <int>MPI_GRAPH:
34886  *                 cls = Graphcomm
34887  */
34888         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Cartcomm)));
34889         __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34890         __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Cartcomm);
34891         goto __pyx_L5;
34892       }
34893 
34894       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":96
34895  *             elif topo == <int>MPI_CART:
34896  *                 cls = Cartcomm
34897  *             elif topo == <int>MPI_GRAPH:             # <<<<<<<<<<<<<<
34898  *                 cls = Graphcomm
34899  *             elif topo == <int>MPI_DIST_GRAPH:
34900  */
34901       __pyx_t_1 = (__pyx_v_topo == ((int)MPI_GRAPH));
34902       if (__pyx_t_1) {
34903 
34904         /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":97
34905  *                 cls = Cartcomm
34906  *             elif topo == <int>MPI_GRAPH:
34907  *                 cls = Graphcomm             # <<<<<<<<<<<<<<
34908  *             elif topo == <int>MPI_DIST_GRAPH:
34909  *                 cls = Distgraphcomm
34910  */
34911         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Graphcomm)));
34912         __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34913         __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Graphcomm);
34914         goto __pyx_L5;
34915       }
34916 
34917       /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":98
34918  *             elif topo == <int>MPI_GRAPH:
34919  *                 cls = Graphcomm
34920  *             elif topo == <int>MPI_DIST_GRAPH:             # <<<<<<<<<<<<<<
34921  *                 cls = Distgraphcomm
34922  *             else:
34923  */
34924       __pyx_t_1 = (__pyx_v_topo == ((int)MPI_DIST_GRAPH));
34925       if (__pyx_t_1) {
34926 
34927         /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":99
34928  *                 cls = Graphcomm
34929  *             elif topo == <int>MPI_DIST_GRAPH:
34930  *                 cls = Distgraphcomm             # <<<<<<<<<<<<<<
34931  *             else:
34932  *                 cls = Intracomm
34933  */
34934         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Distgraphcomm)));
34935         __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34936         __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Distgraphcomm);
34937         goto __pyx_L5;
34938       }
34939       /*else*/ {
34940 
34941         /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":101
34942  *                 cls = Distgraphcomm
34943  *             else:
34944  *                 cls = Intracomm             # <<<<<<<<<<<<<<
34945  *     cdef Comm obj = <Comm>cls()
34946  *     obj.ob_mpi = arg
34947  */
34948         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm)));
34949         __Pyx_DECREF(((PyObject *)__pyx_v_cls));
34950         __pyx_v_cls = ((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm);
34951       }
34952       __pyx_L5:;
34953     }
34954     __pyx_L4:;
34955     goto __pyx_L3;
34956   }
34957   __pyx_L3:;
34958 
34959   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":102
34960  *             else:
34961  *                 cls = Intracomm
34962  *     cdef Comm obj = <Comm>cls()             # <<<<<<<<<<<<<<
34963  *     obj.ob_mpi = arg
34964  *     return obj
34965  */
34966   __pyx_t_3 = PyObject_Call(((PyObject *)__pyx_v_cls), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
34967   __Pyx_GOTREF(__pyx_t_3);
34968   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_t_3)));
34969   __pyx_v_obj = ((struct PyMPICommObject *)__pyx_t_3);
34970   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34971 
34972   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":103
34973  *                 cls = Intracomm
34974  *     cdef Comm obj = <Comm>cls()
34975  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
34976  *     return obj
34977  *
34978  */
34979   __pyx_v_obj->ob_mpi = __pyx_v_arg;
34980 
34981   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":104
34982  *     cdef Comm obj = <Comm>cls()
34983  *     obj.ob_mpi = arg
34984  *     return obj             # <<<<<<<<<<<<<<
34985  *
34986  * cdef api MPI_Comm* PyMPIComm_Get(object arg) except NULL:
34987  */
34988   __Pyx_XDECREF(__pyx_r);
34989   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
34990   __pyx_r = ((PyObject *)__pyx_v_obj);
34991   goto __pyx_L0;
34992 
34993   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34994   goto __pyx_L0;
34995   __pyx_L1_error:;
34996   __Pyx_XDECREF(__pyx_t_3);
34997   __Pyx_AddTraceback("mpi4py.MPI.PyMPIComm_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
34998   __pyx_r = 0;
34999   __pyx_L0:;
35000   __Pyx_XDECREF(__pyx_v_cls);
35001   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
35002   __Pyx_XGIVEREF(__pyx_r);
35003   __Pyx_RefNannyFinishContext();
35004   return __pyx_r;
35005 }
35006 
35007 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":106
35008  *     return obj
35009  *
35010  * cdef api MPI_Comm* PyMPIComm_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
35011  *     return &(<Comm?>arg).ob_mpi
35012  *
35013  */
35014 
__pyx_f_6mpi4py_3MPI_PyMPIComm_Get(PyObject * __pyx_v_arg)35015 static MPI_Comm *__pyx_f_6mpi4py_3MPI_PyMPIComm_Get(PyObject *__pyx_v_arg) {
35016   MPI_Comm *__pyx_r;
35017   __Pyx_RefNannyDeclarations
35018   int __pyx_lineno = 0;
35019   const char *__pyx_filename = NULL;
35020   int __pyx_clineno = 0;
35021   __Pyx_RefNannySetupContext("PyMPIComm_Get");
35022 
35023   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":107
35024  *
35025  * cdef api MPI_Comm* PyMPIComm_Get(object arg) except NULL:
35026  *     return &(<Comm?>arg).ob_mpi             # <<<<<<<<<<<<<<
35027  *
35028  * # -----------------------------------------------------------------------------
35029  */
35030   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Comm)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35031   __pyx_r = (&((struct PyMPICommObject *)__pyx_v_arg)->ob_mpi);
35032   goto __pyx_L0;
35033 
35034   __pyx_r = 0;
35035   goto __pyx_L0;
35036   __pyx_L1_error:;
35037   __Pyx_AddTraceback("mpi4py.MPI.PyMPIComm_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
35038   __pyx_r = NULL;
35039   __pyx_L0:;
35040   __Pyx_RefNannyFinishContext();
35041   return __pyx_r;
35042 }
35043 
35044 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":113
35045  * # Win
35046  *
35047  * cdef api object PyMPIWin_New(MPI_Win arg):             # <<<<<<<<<<<<<<
35048  *     cdef Win obj = <Win>Win.__new__(Win)
35049  *     obj.ob_mpi = arg
35050  */
35051 
__pyx_f_6mpi4py_3MPI_PyMPIWin_New(MPI_Win __pyx_v_arg)35052 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIWin_New(MPI_Win __pyx_v_arg) {
35053   struct PyMPIWinObject *__pyx_v_obj = 0;
35054   PyObject *__pyx_r = NULL;
35055   __Pyx_RefNannyDeclarations
35056   PyObject *__pyx_t_1 = NULL;
35057   int __pyx_lineno = 0;
35058   const char *__pyx_filename = NULL;
35059   int __pyx_clineno = 0;
35060   __Pyx_RefNannySetupContext("PyMPIWin_New");
35061 
35062   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":114
35063  *
35064  * cdef api object PyMPIWin_New(MPI_Win arg):
35065  *     cdef Win obj = <Win>Win.__new__(Win)             # <<<<<<<<<<<<<<
35066  *     obj.ob_mpi = arg
35067  *     return obj
35068  */
35069   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Win)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35070   __Pyx_GOTREF(__pyx_t_1);
35071   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_t_1)));
35072   __pyx_v_obj = ((struct PyMPIWinObject *)__pyx_t_1);
35073   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35074 
35075   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":115
35076  * cdef api object PyMPIWin_New(MPI_Win arg):
35077  *     cdef Win obj = <Win>Win.__new__(Win)
35078  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
35079  *     return obj
35080  *
35081  */
35082   __pyx_v_obj->ob_mpi = __pyx_v_arg;
35083 
35084   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":116
35085  *     cdef Win obj = <Win>Win.__new__(Win)
35086  *     obj.ob_mpi = arg
35087  *     return obj             # <<<<<<<<<<<<<<
35088  *
35089  * cdef api MPI_Win* PyMPIWin_Get(object arg) except NULL:
35090  */
35091   __Pyx_XDECREF(__pyx_r);
35092   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
35093   __pyx_r = ((PyObject *)__pyx_v_obj);
35094   goto __pyx_L0;
35095 
35096   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35097   goto __pyx_L0;
35098   __pyx_L1_error:;
35099   __Pyx_XDECREF(__pyx_t_1);
35100   __Pyx_AddTraceback("mpi4py.MPI.PyMPIWin_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
35101   __pyx_r = 0;
35102   __pyx_L0:;
35103   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
35104   __Pyx_XGIVEREF(__pyx_r);
35105   __Pyx_RefNannyFinishContext();
35106   return __pyx_r;
35107 }
35108 
35109 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":118
35110  *     return obj
35111  *
35112  * cdef api MPI_Win* PyMPIWin_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
35113  *     return &(<Win?>arg).ob_mpi
35114  *
35115  */
35116 
__pyx_f_6mpi4py_3MPI_PyMPIWin_Get(PyObject * __pyx_v_arg)35117 static MPI_Win *__pyx_f_6mpi4py_3MPI_PyMPIWin_Get(PyObject *__pyx_v_arg) {
35118   MPI_Win *__pyx_r;
35119   __Pyx_RefNannyDeclarations
35120   int __pyx_lineno = 0;
35121   const char *__pyx_filename = NULL;
35122   int __pyx_clineno = 0;
35123   __Pyx_RefNannySetupContext("PyMPIWin_Get");
35124 
35125   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":119
35126  *
35127  * cdef api MPI_Win* PyMPIWin_Get(object arg) except NULL:
35128  *     return &(<Win?>arg).ob_mpi             # <<<<<<<<<<<<<<
35129  *
35130  * # -----------------------------------------------------------------------------
35131  */
35132   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Win)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35133   __pyx_r = (&((struct PyMPIWinObject *)__pyx_v_arg)->ob_mpi);
35134   goto __pyx_L0;
35135 
35136   __pyx_r = 0;
35137   goto __pyx_L0;
35138   __pyx_L1_error:;
35139   __Pyx_AddTraceback("mpi4py.MPI.PyMPIWin_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
35140   __pyx_r = NULL;
35141   __pyx_L0:;
35142   __Pyx_RefNannyFinishContext();
35143   return __pyx_r;
35144 }
35145 
35146 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":125
35147  * # File
35148  *
35149  * cdef api object PyMPIFile_New(MPI_File arg):             # <<<<<<<<<<<<<<
35150  *     cdef File obj = <File>File.__new__(File)
35151  *     obj.ob_mpi = arg
35152  */
35153 
__pyx_f_6mpi4py_3MPI_PyMPIFile_New(MPI_File __pyx_v_arg)35154 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIFile_New(MPI_File __pyx_v_arg) {
35155   struct PyMPIFileObject *__pyx_v_obj = 0;
35156   PyObject *__pyx_r = NULL;
35157   __Pyx_RefNannyDeclarations
35158   PyObject *__pyx_t_1 = NULL;
35159   int __pyx_lineno = 0;
35160   const char *__pyx_filename = NULL;
35161   int __pyx_clineno = 0;
35162   __Pyx_RefNannySetupContext("PyMPIFile_New");
35163 
35164   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":126
35165  *
35166  * cdef api object PyMPIFile_New(MPI_File arg):
35167  *     cdef File obj = <File>File.__new__(File)             # <<<<<<<<<<<<<<
35168  *     obj.ob_mpi = arg
35169  *     return obj
35170  */
35171   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_File)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35172   __Pyx_GOTREF(__pyx_t_1);
35173   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_t_1)));
35174   __pyx_v_obj = ((struct PyMPIFileObject *)__pyx_t_1);
35175   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35176 
35177   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":127
35178  * cdef api object PyMPIFile_New(MPI_File arg):
35179  *     cdef File obj = <File>File.__new__(File)
35180  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
35181  *     return obj
35182  *
35183  */
35184   __pyx_v_obj->ob_mpi = __pyx_v_arg;
35185 
35186   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":128
35187  *     cdef File obj = <File>File.__new__(File)
35188  *     obj.ob_mpi = arg
35189  *     return obj             # <<<<<<<<<<<<<<
35190  *
35191  * cdef api MPI_File* PyMPIFile_Get(object arg) except NULL:
35192  */
35193   __Pyx_XDECREF(__pyx_r);
35194   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
35195   __pyx_r = ((PyObject *)__pyx_v_obj);
35196   goto __pyx_L0;
35197 
35198   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35199   goto __pyx_L0;
35200   __pyx_L1_error:;
35201   __Pyx_XDECREF(__pyx_t_1);
35202   __Pyx_AddTraceback("mpi4py.MPI.PyMPIFile_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
35203   __pyx_r = 0;
35204   __pyx_L0:;
35205   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
35206   __Pyx_XGIVEREF(__pyx_r);
35207   __Pyx_RefNannyFinishContext();
35208   return __pyx_r;
35209 }
35210 
35211 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":130
35212  *     return obj
35213  *
35214  * cdef api MPI_File* PyMPIFile_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
35215  *     return &(<File?>arg).ob_mpi
35216  *
35217  */
35218 
__pyx_f_6mpi4py_3MPI_PyMPIFile_Get(PyObject * __pyx_v_arg)35219 static MPI_File *__pyx_f_6mpi4py_3MPI_PyMPIFile_Get(PyObject *__pyx_v_arg) {
35220   MPI_File *__pyx_r;
35221   __Pyx_RefNannyDeclarations
35222   int __pyx_lineno = 0;
35223   const char *__pyx_filename = NULL;
35224   int __pyx_clineno = 0;
35225   __Pyx_RefNannySetupContext("PyMPIFile_Get");
35226 
35227   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":131
35228  *
35229  * cdef api MPI_File* PyMPIFile_Get(object arg) except NULL:
35230  *     return &(<File?>arg).ob_mpi             # <<<<<<<<<<<<<<
35231  *
35232  * # -----------------------------------------------------------------------------
35233  */
35234   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_File)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35235   __pyx_r = (&((struct PyMPIFileObject *)__pyx_v_arg)->ob_mpi);
35236   goto __pyx_L0;
35237 
35238   __pyx_r = 0;
35239   goto __pyx_L0;
35240   __pyx_L1_error:;
35241   __Pyx_AddTraceback("mpi4py.MPI.PyMPIFile_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
35242   __pyx_r = NULL;
35243   __pyx_L0:;
35244   __Pyx_RefNannyFinishContext();
35245   return __pyx_r;
35246 }
35247 
35248 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":137
35249  * # Errhandler
35250  *
35251  * cdef api object PyMPIErrhandler_New(MPI_Errhandler arg):             # <<<<<<<<<<<<<<
35252  *     cdef Errhandler obj = <Errhandler>Errhandler.__new__(Errhandler)
35253  *     obj.ob_mpi = arg
35254  */
35255 
__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_New(MPI_Errhandler __pyx_v_arg)35256 static PyObject *__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_New(MPI_Errhandler __pyx_v_arg) {
35257   struct PyMPIErrhandlerObject *__pyx_v_obj = 0;
35258   PyObject *__pyx_r = NULL;
35259   __Pyx_RefNannyDeclarations
35260   PyObject *__pyx_t_1 = NULL;
35261   int __pyx_lineno = 0;
35262   const char *__pyx_filename = NULL;
35263   int __pyx_clineno = 0;
35264   __Pyx_RefNannySetupContext("PyMPIErrhandler_New");
35265 
35266   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":138
35267  *
35268  * cdef api object PyMPIErrhandler_New(MPI_Errhandler arg):
35269  *     cdef Errhandler obj = <Errhandler>Errhandler.__new__(Errhandler)             # <<<<<<<<<<<<<<
35270  *     obj.ob_mpi = arg
35271  *     return obj
35272  */
35273   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35274   __Pyx_GOTREF(__pyx_t_1);
35275   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
35276   __pyx_v_obj = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
35277   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35278 
35279   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":139
35280  * cdef api object PyMPIErrhandler_New(MPI_Errhandler arg):
35281  *     cdef Errhandler obj = <Errhandler>Errhandler.__new__(Errhandler)
35282  *     obj.ob_mpi = arg             # <<<<<<<<<<<<<<
35283  *     return obj
35284  *
35285  */
35286   __pyx_v_obj->ob_mpi = __pyx_v_arg;
35287 
35288   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":140
35289  *     cdef Errhandler obj = <Errhandler>Errhandler.__new__(Errhandler)
35290  *     obj.ob_mpi = arg
35291  *     return obj             # <<<<<<<<<<<<<<
35292  *
35293  * cdef api MPI_Errhandler* PyMPIErrhandler_Get(object arg) except NULL:
35294  */
35295   __Pyx_XDECREF(__pyx_r);
35296   __Pyx_INCREF(((PyObject *)__pyx_v_obj));
35297   __pyx_r = ((PyObject *)__pyx_v_obj);
35298   goto __pyx_L0;
35299 
35300   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35301   goto __pyx_L0;
35302   __pyx_L1_error:;
35303   __Pyx_XDECREF(__pyx_t_1);
35304   __Pyx_AddTraceback("mpi4py.MPI.PyMPIErrhandler_New", __pyx_clineno, __pyx_lineno, __pyx_filename);
35305   __pyx_r = 0;
35306   __pyx_L0:;
35307   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
35308   __Pyx_XGIVEREF(__pyx_r);
35309   __Pyx_RefNannyFinishContext();
35310   return __pyx_r;
35311 }
35312 
35313 /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":142
35314  *     return obj
35315  *
35316  * cdef api MPI_Errhandler* PyMPIErrhandler_Get(object arg) except NULL:             # <<<<<<<<<<<<<<
35317  *     return &(<Errhandler?>arg).ob_mpi
35318  *
35319  */
35320 
__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_Get(PyObject * __pyx_v_arg)35321 static MPI_Errhandler *__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_Get(PyObject *__pyx_v_arg) {
35322   MPI_Errhandler *__pyx_r;
35323   __Pyx_RefNannyDeclarations
35324   int __pyx_lineno = 0;
35325   const char *__pyx_filename = NULL;
35326   int __pyx_clineno = 0;
35327   __Pyx_RefNannySetupContext("PyMPIErrhandler_Get");
35328 
35329   /* "/home/devel/mpi4py-1.3/src/MPI/CAPI.pxi":143
35330  *
35331  * cdef api MPI_Errhandler* PyMPIErrhandler_Get(object arg) except NULL:
35332  *     return &(<Errhandler?>arg).ob_mpi             # <<<<<<<<<<<<<<
35333  *
35334  * # -----------------------------------------------------------------------------
35335  */
35336   if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_6mpi4py_3MPI_Errhandler)))) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35337   __pyx_r = (&((struct PyMPIErrhandlerObject *)__pyx_v_arg)->ob_mpi);
35338   goto __pyx_L0;
35339 
35340   __pyx_r = 0;
35341   goto __pyx_L0;
35342   __pyx_L1_error:;
35343   __Pyx_AddTraceback("mpi4py.MPI.PyMPIErrhandler_Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
35344   __pyx_r = NULL;
35345   __pyx_L0:;
35346   __Pyx_RefNannyFinishContext();
35347   return __pyx_r;
35348 }
35349 
35350 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":7
35351  *     """
35352  *
35353  *     def __init__(self, int ierr=0):             # <<<<<<<<<<<<<<
35354  *         if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN
35355  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
35356  */
35357 
35358 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35359 static char __pyx_doc_6mpi4py_3MPI_9Exception___init__[] = "Exception.__init__(self, int ierr=0)";
35360 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception___init__)};
__pyx_pf_6mpi4py_3MPI_9Exception___init__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35361 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35362   PyObject *__pyx_v_self = 0;
35363   int __pyx_v_ierr;
35364   PyObject *__pyx_r = NULL;
35365   __Pyx_RefNannyDeclarations
35366   int __pyx_t_1;
35367   PyObject *__pyx_t_2 = NULL;
35368   PyObject *__pyx_t_3 = NULL;
35369   PyObject *__pyx_t_4 = NULL;
35370   int __pyx_lineno = 0;
35371   const char *__pyx_filename = NULL;
35372   int __pyx_clineno = 0;
35373   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__ierr,0};
35374   __Pyx_RefNannySetupContext("__init__");
35375   __pyx_self = __pyx_self;
35376   {
35377     PyObject* values[2] = {0,0};
35378     if (unlikely(__pyx_kwds)) {
35379       Py_ssize_t kw_args;
35380       switch (PyTuple_GET_SIZE(__pyx_args)) {
35381         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35382         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35383         case  0: break;
35384         default: goto __pyx_L5_argtuple_error;
35385       }
35386       kw_args = PyDict_Size(__pyx_kwds);
35387       switch (PyTuple_GET_SIZE(__pyx_args)) {
35388         case  0:
35389         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35390         if (likely(values[0])) kw_args--;
35391         else goto __pyx_L5_argtuple_error;
35392         case  1:
35393         if (kw_args > 0) {
35394           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ierr);
35395           if (value) { values[1] = value; kw_args--; }
35396         }
35397       }
35398       if (unlikely(kw_args > 0)) {
35399         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35400       }
35401     } else {
35402       switch (PyTuple_GET_SIZE(__pyx_args)) {
35403         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35404         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35405         break;
35406         default: goto __pyx_L5_argtuple_error;
35407       }
35408     }
35409     __pyx_v_self = values[0];
35410     if (values[1]) {
35411       __pyx_v_ierr = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_ierr == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35412     } else {
35413       __pyx_v_ierr = ((int)0);
35414     }
35415   }
35416   goto __pyx_L4_argument_unpacking_done;
35417   __pyx_L5_argtuple_error:;
35418   __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35419   __pyx_L3_error:;
35420   __Pyx_AddTraceback("mpi4py.MPI.Exception.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35421   __Pyx_RefNannyFinishContext();
35422   return NULL;
35423   __pyx_L4_argument_unpacking_done:;
35424 
35425   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":8
35426  *
35427  *     def __init__(self, int ierr=0):
35428  *         if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN             # <<<<<<<<<<<<<<
35429  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
35430  *         self.ob_mpi = ierr
35431  */
35432   __pyx_t_1 = (__pyx_v_ierr < MPI_SUCCESS);
35433   if (__pyx_t_1) {
35434     __pyx_v_ierr = MPI_ERR_UNKNOWN;
35435     goto __pyx_L6;
35436   }
35437   __pyx_L6:;
35438 
35439   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":9
35440  *     def __init__(self, int ierr=0):
35441  *         if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN
35442  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN             # <<<<<<<<<<<<<<
35443  *         self.ob_mpi = ierr
35444  *         RuntimeError.__init__(self, self.ob_mpi)
35445  */
35446   __pyx_t_1 = (__pyx_v_ierr > MPI_ERR_LASTCODE);
35447   if (__pyx_t_1) {
35448     __pyx_v_ierr = MPI_ERR_UNKNOWN;
35449     goto __pyx_L7;
35450   }
35451   __pyx_L7:;
35452 
35453   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":10
35454  *         if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN
35455  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
35456  *         self.ob_mpi = ierr             # <<<<<<<<<<<<<<
35457  *         RuntimeError.__init__(self, self.ob_mpi)
35458  *
35459  */
35460   __pyx_t_2 = PyInt_FromLong(__pyx_v_ierr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35461   __Pyx_GOTREF(__pyx_t_2);
35462   if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__ob_mpi, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35463   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35464 
35465   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":11
35466  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
35467  *         self.ob_mpi = ierr
35468  *         RuntimeError.__init__(self, self.ob_mpi)             # <<<<<<<<<<<<<<
35469  *
35470  *     def __eq__(self, int error):
35471  */
35472   __pyx_t_2 = PyObject_GetAttr(__pyx_builtin_RuntimeError, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35473   __Pyx_GOTREF(__pyx_t_2);
35474   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35475   __Pyx_GOTREF(__pyx_t_3);
35476   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35477   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
35478   __Pyx_INCREF(__pyx_v_self);
35479   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self);
35480   __Pyx_GIVEREF(__pyx_v_self);
35481   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
35482   __Pyx_GIVEREF(__pyx_t_3);
35483   __pyx_t_3 = 0;
35484   __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35485   __Pyx_GOTREF(__pyx_t_3);
35486   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35487   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
35488   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35489 
35490   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35491   goto __pyx_L0;
35492   __pyx_L1_error:;
35493   __Pyx_XDECREF(__pyx_t_2);
35494   __Pyx_XDECREF(__pyx_t_3);
35495   __Pyx_XDECREF(__pyx_t_4);
35496   __Pyx_AddTraceback("mpi4py.MPI.Exception.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35497   __pyx_r = NULL;
35498   __pyx_L0:;
35499   __Pyx_XGIVEREF(__pyx_r);
35500   __Pyx_RefNannyFinishContext();
35501   return __pyx_r;
35502 }
35503 
35504 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":13
35505  *         RuntimeError.__init__(self, self.ob_mpi)
35506  *
35507  *     def __eq__(self, int error):             # <<<<<<<<<<<<<<
35508  *         cdef int ierr = self.ob_mpi
35509  *         return <bint> (ierr == error)
35510  */
35511 
35512 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_1__eq__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35513 static char __pyx_doc_6mpi4py_3MPI_9Exception_1__eq__[] = "Exception.__eq__(self, int error)";
35514 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_1__eq__ = {__Pyx_NAMESTR("__eq__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_1__eq__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_1__eq__)};
__pyx_pf_6mpi4py_3MPI_9Exception_1__eq__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35515 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_1__eq__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35516   PyObject *__pyx_v_self = 0;
35517   int __pyx_v_error;
35518   int __pyx_v_ierr;
35519   PyObject *__pyx_r = NULL;
35520   __Pyx_RefNannyDeclarations
35521   PyObject *__pyx_t_1 = NULL;
35522   int __pyx_t_2;
35523   int __pyx_lineno = 0;
35524   const char *__pyx_filename = NULL;
35525   int __pyx_clineno = 0;
35526   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
35527   __Pyx_RefNannySetupContext("__eq__");
35528   __pyx_self = __pyx_self;
35529   {
35530     PyObject* values[2] = {0,0};
35531     if (unlikely(__pyx_kwds)) {
35532       Py_ssize_t kw_args;
35533       switch (PyTuple_GET_SIZE(__pyx_args)) {
35534         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35535         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35536         case  0: break;
35537         default: goto __pyx_L5_argtuple_error;
35538       }
35539       kw_args = PyDict_Size(__pyx_kwds);
35540       switch (PyTuple_GET_SIZE(__pyx_args)) {
35541         case  0:
35542         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35543         if (likely(values[0])) kw_args--;
35544         else goto __pyx_L5_argtuple_error;
35545         case  1:
35546         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
35547         if (likely(values[1])) kw_args--;
35548         else {
35549           __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35550         }
35551       }
35552       if (unlikely(kw_args > 0)) {
35553         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__eq__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35554       }
35555     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35556       goto __pyx_L5_argtuple_error;
35557     } else {
35558       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35559       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35560     }
35561     __pyx_v_self = values[0];
35562     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35563   }
35564   goto __pyx_L4_argument_unpacking_done;
35565   __pyx_L5_argtuple_error:;
35566   __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35567   __pyx_L3_error:;
35568   __Pyx_AddTraceback("mpi4py.MPI.Exception.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35569   __Pyx_RefNannyFinishContext();
35570   return NULL;
35571   __pyx_L4_argument_unpacking_done:;
35572 
35573   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":14
35574  *
35575  *     def __eq__(self, int error):
35576  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
35577  *         return <bint> (ierr == error)
35578  *     def __ne__(self, int error):
35579  */
35580   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35581   __Pyx_GOTREF(__pyx_t_1);
35582   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35583   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35584   __pyx_v_ierr = __pyx_t_2;
35585 
35586   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":15
35587  *     def __eq__(self, int error):
35588  *         cdef int ierr = self.ob_mpi
35589  *         return <bint> (ierr == error)             # <<<<<<<<<<<<<<
35590  *     def __ne__(self, int error):
35591  *         cdef int ierr = self.ob_mpi
35592  */
35593   __Pyx_XDECREF(__pyx_r);
35594   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr == __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35595   __Pyx_GOTREF(__pyx_t_1);
35596   __pyx_r = __pyx_t_1;
35597   __pyx_t_1 = 0;
35598   goto __pyx_L0;
35599 
35600   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35601   goto __pyx_L0;
35602   __pyx_L1_error:;
35603   __Pyx_XDECREF(__pyx_t_1);
35604   __Pyx_AddTraceback("mpi4py.MPI.Exception.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35605   __pyx_r = NULL;
35606   __pyx_L0:;
35607   __Pyx_XGIVEREF(__pyx_r);
35608   __Pyx_RefNannyFinishContext();
35609   return __pyx_r;
35610 }
35611 
35612 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":16
35613  *         cdef int ierr = self.ob_mpi
35614  *         return <bint> (ierr == error)
35615  *     def __ne__(self, int error):             # <<<<<<<<<<<<<<
35616  *         cdef int ierr = self.ob_mpi
35617  *         return <bint> (ierr != error)
35618  */
35619 
35620 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_2__ne__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35621 static char __pyx_doc_6mpi4py_3MPI_9Exception_2__ne__[] = "Exception.__ne__(self, int error)";
35622 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_2__ne__ = {__Pyx_NAMESTR("__ne__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_2__ne__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_2__ne__)};
__pyx_pf_6mpi4py_3MPI_9Exception_2__ne__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35623 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_2__ne__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35624   PyObject *__pyx_v_self = 0;
35625   int __pyx_v_error;
35626   int __pyx_v_ierr;
35627   PyObject *__pyx_r = NULL;
35628   __Pyx_RefNannyDeclarations
35629   PyObject *__pyx_t_1 = NULL;
35630   int __pyx_t_2;
35631   int __pyx_lineno = 0;
35632   const char *__pyx_filename = NULL;
35633   int __pyx_clineno = 0;
35634   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
35635   __Pyx_RefNannySetupContext("__ne__");
35636   __pyx_self = __pyx_self;
35637   {
35638     PyObject* values[2] = {0,0};
35639     if (unlikely(__pyx_kwds)) {
35640       Py_ssize_t kw_args;
35641       switch (PyTuple_GET_SIZE(__pyx_args)) {
35642         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35643         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35644         case  0: break;
35645         default: goto __pyx_L5_argtuple_error;
35646       }
35647       kw_args = PyDict_Size(__pyx_kwds);
35648       switch (PyTuple_GET_SIZE(__pyx_args)) {
35649         case  0:
35650         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35651         if (likely(values[0])) kw_args--;
35652         else goto __pyx_L5_argtuple_error;
35653         case  1:
35654         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
35655         if (likely(values[1])) kw_args--;
35656         else {
35657           __Pyx_RaiseArgtupleInvalid("__ne__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35658         }
35659       }
35660       if (unlikely(kw_args > 0)) {
35661         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__ne__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35662       }
35663     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35664       goto __pyx_L5_argtuple_error;
35665     } else {
35666       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35667       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35668     }
35669     __pyx_v_self = values[0];
35670     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35671   }
35672   goto __pyx_L4_argument_unpacking_done;
35673   __pyx_L5_argtuple_error:;
35674   __Pyx_RaiseArgtupleInvalid("__ne__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35675   __pyx_L3_error:;
35676   __Pyx_AddTraceback("mpi4py.MPI.Exception.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35677   __Pyx_RefNannyFinishContext();
35678   return NULL;
35679   __pyx_L4_argument_unpacking_done:;
35680 
35681   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":17
35682  *         return <bint> (ierr == error)
35683  *     def __ne__(self, int error):
35684  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
35685  *         return <bint> (ierr != error)
35686  *     def __lt__(self, int error):
35687  */
35688   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35689   __Pyx_GOTREF(__pyx_t_1);
35690   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35691   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35692   __pyx_v_ierr = __pyx_t_2;
35693 
35694   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":18
35695  *     def __ne__(self, int error):
35696  *         cdef int ierr = self.ob_mpi
35697  *         return <bint> (ierr != error)             # <<<<<<<<<<<<<<
35698  *     def __lt__(self, int error):
35699  *         cdef int ierr = self.ob_mpi
35700  */
35701   __Pyx_XDECREF(__pyx_r);
35702   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr != __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35703   __Pyx_GOTREF(__pyx_t_1);
35704   __pyx_r = __pyx_t_1;
35705   __pyx_t_1 = 0;
35706   goto __pyx_L0;
35707 
35708   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35709   goto __pyx_L0;
35710   __pyx_L1_error:;
35711   __Pyx_XDECREF(__pyx_t_1);
35712   __Pyx_AddTraceback("mpi4py.MPI.Exception.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35713   __pyx_r = NULL;
35714   __pyx_L0:;
35715   __Pyx_XGIVEREF(__pyx_r);
35716   __Pyx_RefNannyFinishContext();
35717   return __pyx_r;
35718 }
35719 
35720 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":19
35721  *         cdef int ierr = self.ob_mpi
35722  *         return <bint> (ierr != error)
35723  *     def __lt__(self, int error):             # <<<<<<<<<<<<<<
35724  *         cdef int ierr = self.ob_mpi
35725  *         return <bint> (ierr < error)
35726  */
35727 
35728 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_3__lt__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35729 static char __pyx_doc_6mpi4py_3MPI_9Exception_3__lt__[] = "Exception.__lt__(self, int error)";
35730 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_3__lt__ = {__Pyx_NAMESTR("__lt__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_3__lt__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_3__lt__)};
__pyx_pf_6mpi4py_3MPI_9Exception_3__lt__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35731 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_3__lt__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35732   PyObject *__pyx_v_self = 0;
35733   int __pyx_v_error;
35734   int __pyx_v_ierr;
35735   PyObject *__pyx_r = NULL;
35736   __Pyx_RefNannyDeclarations
35737   PyObject *__pyx_t_1 = NULL;
35738   int __pyx_t_2;
35739   int __pyx_lineno = 0;
35740   const char *__pyx_filename = NULL;
35741   int __pyx_clineno = 0;
35742   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
35743   __Pyx_RefNannySetupContext("__lt__");
35744   __pyx_self = __pyx_self;
35745   {
35746     PyObject* values[2] = {0,0};
35747     if (unlikely(__pyx_kwds)) {
35748       Py_ssize_t kw_args;
35749       switch (PyTuple_GET_SIZE(__pyx_args)) {
35750         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35751         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35752         case  0: break;
35753         default: goto __pyx_L5_argtuple_error;
35754       }
35755       kw_args = PyDict_Size(__pyx_kwds);
35756       switch (PyTuple_GET_SIZE(__pyx_args)) {
35757         case  0:
35758         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35759         if (likely(values[0])) kw_args--;
35760         else goto __pyx_L5_argtuple_error;
35761         case  1:
35762         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
35763         if (likely(values[1])) kw_args--;
35764         else {
35765           __Pyx_RaiseArgtupleInvalid("__lt__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35766         }
35767       }
35768       if (unlikely(kw_args > 0)) {
35769         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__lt__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35770       }
35771     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35772       goto __pyx_L5_argtuple_error;
35773     } else {
35774       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35775       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35776     }
35777     __pyx_v_self = values[0];
35778     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35779   }
35780   goto __pyx_L4_argument_unpacking_done;
35781   __pyx_L5_argtuple_error:;
35782   __Pyx_RaiseArgtupleInvalid("__lt__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35783   __pyx_L3_error:;
35784   __Pyx_AddTraceback("mpi4py.MPI.Exception.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35785   __Pyx_RefNannyFinishContext();
35786   return NULL;
35787   __pyx_L4_argument_unpacking_done:;
35788 
35789   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":20
35790  *         return <bint> (ierr != error)
35791  *     def __lt__(self, int error):
35792  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
35793  *         return <bint> (ierr < error)
35794  *     def __le__(self, int error):
35795  */
35796   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35797   __Pyx_GOTREF(__pyx_t_1);
35798   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35799   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35800   __pyx_v_ierr = __pyx_t_2;
35801 
35802   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":21
35803  *     def __lt__(self, int error):
35804  *         cdef int ierr = self.ob_mpi
35805  *         return <bint> (ierr < error)             # <<<<<<<<<<<<<<
35806  *     def __le__(self, int error):
35807  *         cdef int ierr = self.ob_mpi
35808  */
35809   __Pyx_XDECREF(__pyx_r);
35810   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr < __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35811   __Pyx_GOTREF(__pyx_t_1);
35812   __pyx_r = __pyx_t_1;
35813   __pyx_t_1 = 0;
35814   goto __pyx_L0;
35815 
35816   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35817   goto __pyx_L0;
35818   __pyx_L1_error:;
35819   __Pyx_XDECREF(__pyx_t_1);
35820   __Pyx_AddTraceback("mpi4py.MPI.Exception.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35821   __pyx_r = NULL;
35822   __pyx_L0:;
35823   __Pyx_XGIVEREF(__pyx_r);
35824   __Pyx_RefNannyFinishContext();
35825   return __pyx_r;
35826 }
35827 
35828 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":22
35829  *         cdef int ierr = self.ob_mpi
35830  *         return <bint> (ierr < error)
35831  *     def __le__(self, int error):             # <<<<<<<<<<<<<<
35832  *         cdef int ierr = self.ob_mpi
35833  *         return <bint> (ierr <= error)
35834  */
35835 
35836 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_4__le__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35837 static char __pyx_doc_6mpi4py_3MPI_9Exception_4__le__[] = "Exception.__le__(self, int error)";
35838 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_4__le__ = {__Pyx_NAMESTR("__le__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_4__le__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_4__le__)};
__pyx_pf_6mpi4py_3MPI_9Exception_4__le__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35839 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_4__le__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35840   PyObject *__pyx_v_self = 0;
35841   int __pyx_v_error;
35842   int __pyx_v_ierr;
35843   PyObject *__pyx_r = NULL;
35844   __Pyx_RefNannyDeclarations
35845   PyObject *__pyx_t_1 = NULL;
35846   int __pyx_t_2;
35847   int __pyx_lineno = 0;
35848   const char *__pyx_filename = NULL;
35849   int __pyx_clineno = 0;
35850   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
35851   __Pyx_RefNannySetupContext("__le__");
35852   __pyx_self = __pyx_self;
35853   {
35854     PyObject* values[2] = {0,0};
35855     if (unlikely(__pyx_kwds)) {
35856       Py_ssize_t kw_args;
35857       switch (PyTuple_GET_SIZE(__pyx_args)) {
35858         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35859         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35860         case  0: break;
35861         default: goto __pyx_L5_argtuple_error;
35862       }
35863       kw_args = PyDict_Size(__pyx_kwds);
35864       switch (PyTuple_GET_SIZE(__pyx_args)) {
35865         case  0:
35866         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35867         if (likely(values[0])) kw_args--;
35868         else goto __pyx_L5_argtuple_error;
35869         case  1:
35870         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
35871         if (likely(values[1])) kw_args--;
35872         else {
35873           __Pyx_RaiseArgtupleInvalid("__le__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35874         }
35875       }
35876       if (unlikely(kw_args > 0)) {
35877         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__le__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35878       }
35879     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35880       goto __pyx_L5_argtuple_error;
35881     } else {
35882       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35883       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35884     }
35885     __pyx_v_self = values[0];
35886     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35887   }
35888   goto __pyx_L4_argument_unpacking_done;
35889   __pyx_L5_argtuple_error:;
35890   __Pyx_RaiseArgtupleInvalid("__le__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35891   __pyx_L3_error:;
35892   __Pyx_AddTraceback("mpi4py.MPI.Exception.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35893   __Pyx_RefNannyFinishContext();
35894   return NULL;
35895   __pyx_L4_argument_unpacking_done:;
35896 
35897   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":23
35898  *         return <bint> (ierr < error)
35899  *     def __le__(self, int error):
35900  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
35901  *         return <bint> (ierr <= error)
35902  *     def __gt__(self, int error):
35903  */
35904   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35905   __Pyx_GOTREF(__pyx_t_1);
35906   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35907   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35908   __pyx_v_ierr = __pyx_t_2;
35909 
35910   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":24
35911  *     def __le__(self, int error):
35912  *         cdef int ierr = self.ob_mpi
35913  *         return <bint> (ierr <= error)             # <<<<<<<<<<<<<<
35914  *     def __gt__(self, int error):
35915  *         cdef int ierr = self.ob_mpi
35916  */
35917   __Pyx_XDECREF(__pyx_r);
35918   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr <= __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
35919   __Pyx_GOTREF(__pyx_t_1);
35920   __pyx_r = __pyx_t_1;
35921   __pyx_t_1 = 0;
35922   goto __pyx_L0;
35923 
35924   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35925   goto __pyx_L0;
35926   __pyx_L1_error:;
35927   __Pyx_XDECREF(__pyx_t_1);
35928   __Pyx_AddTraceback("mpi4py.MPI.Exception.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35929   __pyx_r = NULL;
35930   __pyx_L0:;
35931   __Pyx_XGIVEREF(__pyx_r);
35932   __Pyx_RefNannyFinishContext();
35933   return __pyx_r;
35934 }
35935 
35936 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":25
35937  *         cdef int ierr = self.ob_mpi
35938  *         return <bint> (ierr <= error)
35939  *     def __gt__(self, int error):             # <<<<<<<<<<<<<<
35940  *         cdef int ierr = self.ob_mpi
35941  *         return <bint> (ierr > error)
35942  */
35943 
35944 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_5__gt__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35945 static char __pyx_doc_6mpi4py_3MPI_9Exception_5__gt__[] = "Exception.__gt__(self, int error)";
35946 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_5__gt__ = {__Pyx_NAMESTR("__gt__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_5__gt__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_5__gt__)};
__pyx_pf_6mpi4py_3MPI_9Exception_5__gt__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)35947 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_5__gt__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35948   PyObject *__pyx_v_self = 0;
35949   int __pyx_v_error;
35950   int __pyx_v_ierr;
35951   PyObject *__pyx_r = NULL;
35952   __Pyx_RefNannyDeclarations
35953   PyObject *__pyx_t_1 = NULL;
35954   int __pyx_t_2;
35955   int __pyx_lineno = 0;
35956   const char *__pyx_filename = NULL;
35957   int __pyx_clineno = 0;
35958   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
35959   __Pyx_RefNannySetupContext("__gt__");
35960   __pyx_self = __pyx_self;
35961   {
35962     PyObject* values[2] = {0,0};
35963     if (unlikely(__pyx_kwds)) {
35964       Py_ssize_t kw_args;
35965       switch (PyTuple_GET_SIZE(__pyx_args)) {
35966         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35967         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35968         case  0: break;
35969         default: goto __pyx_L5_argtuple_error;
35970       }
35971       kw_args = PyDict_Size(__pyx_kwds);
35972       switch (PyTuple_GET_SIZE(__pyx_args)) {
35973         case  0:
35974         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
35975         if (likely(values[0])) kw_args--;
35976         else goto __pyx_L5_argtuple_error;
35977         case  1:
35978         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
35979         if (likely(values[1])) kw_args--;
35980         else {
35981           __Pyx_RaiseArgtupleInvalid("__gt__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35982         }
35983       }
35984       if (unlikely(kw_args > 0)) {
35985         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__gt__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35986       }
35987     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35988       goto __pyx_L5_argtuple_error;
35989     } else {
35990       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35991       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35992     }
35993     __pyx_v_self = values[0];
35994     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35995   }
35996   goto __pyx_L4_argument_unpacking_done;
35997   __pyx_L5_argtuple_error:;
35998   __Pyx_RaiseArgtupleInvalid("__gt__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
35999   __pyx_L3_error:;
36000   __Pyx_AddTraceback("mpi4py.MPI.Exception.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36001   __Pyx_RefNannyFinishContext();
36002   return NULL;
36003   __pyx_L4_argument_unpacking_done:;
36004 
36005   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":26
36006  *         return <bint> (ierr <= error)
36007  *     def __gt__(self, int error):
36008  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
36009  *         return <bint> (ierr > error)
36010  *     def __ge__(self, int error):
36011  */
36012   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36013   __Pyx_GOTREF(__pyx_t_1);
36014   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36015   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36016   __pyx_v_ierr = __pyx_t_2;
36017 
36018   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":27
36019  *     def __gt__(self, int error):
36020  *         cdef int ierr = self.ob_mpi
36021  *         return <bint> (ierr > error)             # <<<<<<<<<<<<<<
36022  *     def __ge__(self, int error):
36023  *         cdef int ierr = self.ob_mpi
36024  */
36025   __Pyx_XDECREF(__pyx_r);
36026   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr > __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36027   __Pyx_GOTREF(__pyx_t_1);
36028   __pyx_r = __pyx_t_1;
36029   __pyx_t_1 = 0;
36030   goto __pyx_L0;
36031 
36032   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36033   goto __pyx_L0;
36034   __pyx_L1_error:;
36035   __Pyx_XDECREF(__pyx_t_1);
36036   __Pyx_AddTraceback("mpi4py.MPI.Exception.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36037   __pyx_r = NULL;
36038   __pyx_L0:;
36039   __Pyx_XGIVEREF(__pyx_r);
36040   __Pyx_RefNannyFinishContext();
36041   return __pyx_r;
36042 }
36043 
36044 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":28
36045  *         cdef int ierr = self.ob_mpi
36046  *         return <bint> (ierr > error)
36047  *     def __ge__(self, int error):             # <<<<<<<<<<<<<<
36048  *         cdef int ierr = self.ob_mpi
36049  *         return <bint> (ierr >= error)
36050  */
36051 
36052 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_6__ge__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36053 static char __pyx_doc_6mpi4py_3MPI_9Exception_6__ge__[] = "Exception.__ge__(self, int error)";
36054 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_6__ge__ = {__Pyx_NAMESTR("__ge__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_6__ge__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_6__ge__)};
__pyx_pf_6mpi4py_3MPI_9Exception_6__ge__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36055 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_6__ge__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36056   PyObject *__pyx_v_self = 0;
36057   int __pyx_v_error;
36058   int __pyx_v_ierr;
36059   PyObject *__pyx_r = NULL;
36060   __Pyx_RefNannyDeclarations
36061   PyObject *__pyx_t_1 = NULL;
36062   int __pyx_t_2;
36063   int __pyx_lineno = 0;
36064   const char *__pyx_filename = NULL;
36065   int __pyx_clineno = 0;
36066   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__error,0};
36067   __Pyx_RefNannySetupContext("__ge__");
36068   __pyx_self = __pyx_self;
36069   {
36070     PyObject* values[2] = {0,0};
36071     if (unlikely(__pyx_kwds)) {
36072       Py_ssize_t kw_args;
36073       switch (PyTuple_GET_SIZE(__pyx_args)) {
36074         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36075         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36076         case  0: break;
36077         default: goto __pyx_L5_argtuple_error;
36078       }
36079       kw_args = PyDict_Size(__pyx_kwds);
36080       switch (PyTuple_GET_SIZE(__pyx_args)) {
36081         case  0:
36082         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36083         if (likely(values[0])) kw_args--;
36084         else goto __pyx_L5_argtuple_error;
36085         case  1:
36086         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
36087         if (likely(values[1])) kw_args--;
36088         else {
36089           __Pyx_RaiseArgtupleInvalid("__ge__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36090         }
36091       }
36092       if (unlikely(kw_args > 0)) {
36093         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__ge__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36094       }
36095     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
36096       goto __pyx_L5_argtuple_error;
36097     } else {
36098       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36099       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36100     }
36101     __pyx_v_self = values[0];
36102     __pyx_v_error = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36103   }
36104   goto __pyx_L4_argument_unpacking_done;
36105   __pyx_L5_argtuple_error:;
36106   __Pyx_RaiseArgtupleInvalid("__ge__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36107   __pyx_L3_error:;
36108   __Pyx_AddTraceback("mpi4py.MPI.Exception.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36109   __Pyx_RefNannyFinishContext();
36110   return NULL;
36111   __pyx_L4_argument_unpacking_done:;
36112 
36113   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":29
36114  *         return <bint> (ierr > error)
36115  *     def __ge__(self, int error):
36116  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
36117  *         return <bint> (ierr >= error)
36118  *
36119  */
36120   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36121   __Pyx_GOTREF(__pyx_t_1);
36122   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36123   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36124   __pyx_v_ierr = __pyx_t_2;
36125 
36126   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":30
36127  *     def __ge__(self, int error):
36128  *         cdef int ierr = self.ob_mpi
36129  *         return <bint> (ierr >= error)             # <<<<<<<<<<<<<<
36130  *
36131  *     def __bool__(self):
36132  */
36133   __Pyx_XDECREF(__pyx_r);
36134   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)(__pyx_v_ierr >= __pyx_v_error))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36135   __Pyx_GOTREF(__pyx_t_1);
36136   __pyx_r = __pyx_t_1;
36137   __pyx_t_1 = 0;
36138   goto __pyx_L0;
36139 
36140   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36141   goto __pyx_L0;
36142   __pyx_L1_error:;
36143   __Pyx_XDECREF(__pyx_t_1);
36144   __Pyx_AddTraceback("mpi4py.MPI.Exception.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36145   __pyx_r = NULL;
36146   __pyx_L0:;
36147   __Pyx_XGIVEREF(__pyx_r);
36148   __Pyx_RefNannyFinishContext();
36149   return __pyx_r;
36150 }
36151 
36152 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":32
36153  *         return <bint> (ierr >= error)
36154  *
36155  *     def __bool__(self):             # <<<<<<<<<<<<<<
36156  *         cdef int ierr = self.ob_mpi
36157  *         return ierr != MPI_SUCCESS
36158  */
36159 
36160 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_7__bool__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36161 static char __pyx_doc_6mpi4py_3MPI_9Exception_7__bool__[] = "Exception.__bool__(self)";
36162 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_7__bool__ = {__Pyx_NAMESTR("__bool__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_7__bool__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_7__bool__)};
__pyx_pf_6mpi4py_3MPI_9Exception_7__bool__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36163 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_7__bool__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36164   PyObject *__pyx_v_self = 0;
36165   int __pyx_v_ierr;
36166   PyObject *__pyx_r = NULL;
36167   __Pyx_RefNannyDeclarations
36168   PyObject *__pyx_t_1 = NULL;
36169   int __pyx_t_2;
36170   int __pyx_lineno = 0;
36171   const char *__pyx_filename = NULL;
36172   int __pyx_clineno = 0;
36173   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36174   __Pyx_RefNannySetupContext("__bool__");
36175   __pyx_self = __pyx_self;
36176   {
36177     PyObject* values[1] = {0};
36178     if (unlikely(__pyx_kwds)) {
36179       Py_ssize_t kw_args;
36180       switch (PyTuple_GET_SIZE(__pyx_args)) {
36181         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36182         case  0: break;
36183         default: goto __pyx_L5_argtuple_error;
36184       }
36185       kw_args = PyDict_Size(__pyx_kwds);
36186       switch (PyTuple_GET_SIZE(__pyx_args)) {
36187         case  0:
36188         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36189         if (likely(values[0])) kw_args--;
36190         else goto __pyx_L5_argtuple_error;
36191       }
36192       if (unlikely(kw_args > 0)) {
36193         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__bool__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36194       }
36195     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36196       goto __pyx_L5_argtuple_error;
36197     } else {
36198       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36199     }
36200     __pyx_v_self = values[0];
36201   }
36202   goto __pyx_L4_argument_unpacking_done;
36203   __pyx_L5_argtuple_error:;
36204   __Pyx_RaiseArgtupleInvalid("__bool__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36205   __pyx_L3_error:;
36206   __Pyx_AddTraceback("mpi4py.MPI.Exception.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36207   __Pyx_RefNannyFinishContext();
36208   return NULL;
36209   __pyx_L4_argument_unpacking_done:;
36210 
36211   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":33
36212  *
36213  *     def __bool__(self):
36214  *         cdef int ierr = self.ob_mpi             # <<<<<<<<<<<<<<
36215  *         return ierr != MPI_SUCCESS
36216  *
36217  */
36218   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36219   __Pyx_GOTREF(__pyx_t_1);
36220   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36221   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36222   __pyx_v_ierr = __pyx_t_2;
36223 
36224   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":34
36225  *     def __bool__(self):
36226  *         cdef int ierr = self.ob_mpi
36227  *         return ierr != MPI_SUCCESS             # <<<<<<<<<<<<<<
36228  *
36229  *     def __int__(self):
36230  */
36231   __Pyx_XDECREF(__pyx_r);
36232   __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_ierr != MPI_SUCCESS)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36233   __Pyx_GOTREF(__pyx_t_1);
36234   __pyx_r = __pyx_t_1;
36235   __pyx_t_1 = 0;
36236   goto __pyx_L0;
36237 
36238   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36239   goto __pyx_L0;
36240   __pyx_L1_error:;
36241   __Pyx_XDECREF(__pyx_t_1);
36242   __Pyx_AddTraceback("mpi4py.MPI.Exception.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36243   __pyx_r = NULL;
36244   __pyx_L0:;
36245   __Pyx_XGIVEREF(__pyx_r);
36246   __Pyx_RefNannyFinishContext();
36247   return __pyx_r;
36248 }
36249 
36250 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":36
36251  *         return ierr != MPI_SUCCESS
36252  *
36253  *     def __int__(self):             # <<<<<<<<<<<<<<
36254  *         if not mpi_active():
36255  *             return self.ob_mpi
36256  */
36257 
36258 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_8__int__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36259 static char __pyx_doc_6mpi4py_3MPI_9Exception_8__int__[] = "Exception.__int__(self)";
36260 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_8__int__ = {__Pyx_NAMESTR("__int__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_8__int__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_8__int__)};
__pyx_pf_6mpi4py_3MPI_9Exception_8__int__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36261 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_8__int__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36262   PyObject *__pyx_v_self = 0;
36263   PyObject *__pyx_r = NULL;
36264   __Pyx_RefNannyDeclarations
36265   int __pyx_t_1;
36266   PyObject *__pyx_t_2 = NULL;
36267   PyObject *__pyx_t_3 = NULL;
36268   int __pyx_lineno = 0;
36269   const char *__pyx_filename = NULL;
36270   int __pyx_clineno = 0;
36271   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36272   __Pyx_RefNannySetupContext("__int__");
36273   __pyx_self = __pyx_self;
36274   {
36275     PyObject* values[1] = {0};
36276     if (unlikely(__pyx_kwds)) {
36277       Py_ssize_t kw_args;
36278       switch (PyTuple_GET_SIZE(__pyx_args)) {
36279         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36280         case  0: break;
36281         default: goto __pyx_L5_argtuple_error;
36282       }
36283       kw_args = PyDict_Size(__pyx_kwds);
36284       switch (PyTuple_GET_SIZE(__pyx_args)) {
36285         case  0:
36286         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36287         if (likely(values[0])) kw_args--;
36288         else goto __pyx_L5_argtuple_error;
36289       }
36290       if (unlikely(kw_args > 0)) {
36291         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__int__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36292       }
36293     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36294       goto __pyx_L5_argtuple_error;
36295     } else {
36296       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36297     }
36298     __pyx_v_self = values[0];
36299   }
36300   goto __pyx_L4_argument_unpacking_done;
36301   __pyx_L5_argtuple_error:;
36302   __Pyx_RaiseArgtupleInvalid("__int__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36303   __pyx_L3_error:;
36304   __Pyx_AddTraceback("mpi4py.MPI.Exception.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36305   __Pyx_RefNannyFinishContext();
36306   return NULL;
36307   __pyx_L4_argument_unpacking_done:;
36308 
36309   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":37
36310  *
36311  *     def __int__(self):
36312  *         if not mpi_active():             # <<<<<<<<<<<<<<
36313  *             return self.ob_mpi
36314  *         return self.Get_error_code()
36315  */
36316   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
36317   if (__pyx_t_1) {
36318 
36319     /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":38
36320  *     def __int__(self):
36321  *         if not mpi_active():
36322  *             return self.ob_mpi             # <<<<<<<<<<<<<<
36323  *         return self.Get_error_code()
36324  *
36325  */
36326     __Pyx_XDECREF(__pyx_r);
36327     __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36328     __Pyx_GOTREF(__pyx_t_2);
36329     __pyx_r = __pyx_t_2;
36330     __pyx_t_2 = 0;
36331     goto __pyx_L0;
36332     goto __pyx_L6;
36333   }
36334   __pyx_L6:;
36335 
36336   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":39
36337  *         if not mpi_active():
36338  *             return self.ob_mpi
36339  *         return self.Get_error_code()             # <<<<<<<<<<<<<<
36340  *
36341  *     def __repr__(self):
36342  */
36343   __Pyx_XDECREF(__pyx_r);
36344   __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36345   __Pyx_GOTREF(__pyx_t_2);
36346   __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36347   __Pyx_GOTREF(__pyx_t_3);
36348   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36349   __pyx_r = __pyx_t_3;
36350   __pyx_t_3 = 0;
36351   goto __pyx_L0;
36352 
36353   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36354   goto __pyx_L0;
36355   __pyx_L1_error:;
36356   __Pyx_XDECREF(__pyx_t_2);
36357   __Pyx_XDECREF(__pyx_t_3);
36358   __Pyx_AddTraceback("mpi4py.MPI.Exception.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36359   __pyx_r = NULL;
36360   __pyx_L0:;
36361   __Pyx_XGIVEREF(__pyx_r);
36362   __Pyx_RefNannyFinishContext();
36363   return __pyx_r;
36364 }
36365 
36366 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":41
36367  *         return self.Get_error_code()
36368  *
36369  *     def __repr__(self):             # <<<<<<<<<<<<<<
36370  *         return "MPI.Exception(%d)" % self.ob_mpi
36371  *
36372  */
36373 
36374 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_9__repr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36375 static char __pyx_doc_6mpi4py_3MPI_9Exception_9__repr__[] = "Exception.__repr__(self)";
36376 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_9__repr__ = {__Pyx_NAMESTR("__repr__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_9__repr__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_9__repr__)};
__pyx_pf_6mpi4py_3MPI_9Exception_9__repr__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36377 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_9__repr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36378   PyObject *__pyx_v_self = 0;
36379   PyObject *__pyx_r = NULL;
36380   __Pyx_RefNannyDeclarations
36381   PyObject *__pyx_t_1 = NULL;
36382   PyObject *__pyx_t_2 = NULL;
36383   int __pyx_lineno = 0;
36384   const char *__pyx_filename = NULL;
36385   int __pyx_clineno = 0;
36386   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36387   __Pyx_RefNannySetupContext("__repr__");
36388   __pyx_self = __pyx_self;
36389   {
36390     PyObject* values[1] = {0};
36391     if (unlikely(__pyx_kwds)) {
36392       Py_ssize_t kw_args;
36393       switch (PyTuple_GET_SIZE(__pyx_args)) {
36394         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36395         case  0: break;
36396         default: goto __pyx_L5_argtuple_error;
36397       }
36398       kw_args = PyDict_Size(__pyx_kwds);
36399       switch (PyTuple_GET_SIZE(__pyx_args)) {
36400         case  0:
36401         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36402         if (likely(values[0])) kw_args--;
36403         else goto __pyx_L5_argtuple_error;
36404       }
36405       if (unlikely(kw_args > 0)) {
36406         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__repr__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36407       }
36408     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36409       goto __pyx_L5_argtuple_error;
36410     } else {
36411       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36412     }
36413     __pyx_v_self = values[0];
36414   }
36415   goto __pyx_L4_argument_unpacking_done;
36416   __pyx_L5_argtuple_error:;
36417   __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36418   __pyx_L3_error:;
36419   __Pyx_AddTraceback("mpi4py.MPI.Exception.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36420   __Pyx_RefNannyFinishContext();
36421   return NULL;
36422   __pyx_L4_argument_unpacking_done:;
36423 
36424   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":42
36425  *
36426  *     def __repr__(self):
36427  *         return "MPI.Exception(%d)" % self.ob_mpi             # <<<<<<<<<<<<<<
36428  *
36429  *     def __str__(self):
36430  */
36431   __Pyx_XDECREF(__pyx_r);
36432   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36433   __Pyx_GOTREF(__pyx_t_1);
36434   __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_53), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36435   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
36436   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36437   __pyx_r = ((PyObject *)__pyx_t_2);
36438   __pyx_t_2 = 0;
36439   goto __pyx_L0;
36440 
36441   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36442   goto __pyx_L0;
36443   __pyx_L1_error:;
36444   __Pyx_XDECREF(__pyx_t_1);
36445   __Pyx_XDECREF(__pyx_t_2);
36446   __Pyx_AddTraceback("mpi4py.MPI.Exception.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36447   __pyx_r = NULL;
36448   __pyx_L0:;
36449   __Pyx_XGIVEREF(__pyx_r);
36450   __Pyx_RefNannyFinishContext();
36451   return __pyx_r;
36452 }
36453 
36454 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":44
36455  *         return "MPI.Exception(%d)" % self.ob_mpi
36456  *
36457  *     def __str__(self):             # <<<<<<<<<<<<<<
36458  *         if not mpi_active():
36459  *             return "error code: %d" % self.ob_mpi
36460  */
36461 
36462 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_10__str__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36463 static char __pyx_doc_6mpi4py_3MPI_9Exception_10__str__[] = "Exception.__str__(self)";
36464 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_10__str__ = {__Pyx_NAMESTR("__str__"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_10__str__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_10__str__)};
__pyx_pf_6mpi4py_3MPI_9Exception_10__str__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36465 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_10__str__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36466   PyObject *__pyx_v_self = 0;
36467   PyObject *__pyx_r = NULL;
36468   __Pyx_RefNannyDeclarations
36469   int __pyx_t_1;
36470   PyObject *__pyx_t_2 = NULL;
36471   PyObject *__pyx_t_3 = NULL;
36472   int __pyx_lineno = 0;
36473   const char *__pyx_filename = NULL;
36474   int __pyx_clineno = 0;
36475   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36476   __Pyx_RefNannySetupContext("__str__");
36477   __pyx_self = __pyx_self;
36478   {
36479     PyObject* values[1] = {0};
36480     if (unlikely(__pyx_kwds)) {
36481       Py_ssize_t kw_args;
36482       switch (PyTuple_GET_SIZE(__pyx_args)) {
36483         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36484         case  0: break;
36485         default: goto __pyx_L5_argtuple_error;
36486       }
36487       kw_args = PyDict_Size(__pyx_kwds);
36488       switch (PyTuple_GET_SIZE(__pyx_args)) {
36489         case  0:
36490         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36491         if (likely(values[0])) kw_args--;
36492         else goto __pyx_L5_argtuple_error;
36493       }
36494       if (unlikely(kw_args > 0)) {
36495         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__str__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36496       }
36497     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36498       goto __pyx_L5_argtuple_error;
36499     } else {
36500       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36501     }
36502     __pyx_v_self = values[0];
36503   }
36504   goto __pyx_L4_argument_unpacking_done;
36505   __pyx_L5_argtuple_error:;
36506   __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36507   __pyx_L3_error:;
36508   __Pyx_AddTraceback("mpi4py.MPI.Exception.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36509   __Pyx_RefNannyFinishContext();
36510   return NULL;
36511   __pyx_L4_argument_unpacking_done:;
36512 
36513   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":45
36514  *
36515  *     def __str__(self):
36516  *         if not mpi_active():             # <<<<<<<<<<<<<<
36517  *             return "error code: %d" % self.ob_mpi
36518  *         return self.Get_error_string()
36519  */
36520   __pyx_t_1 = (!__pyx_f_6mpi4py_3MPI_mpi_active());
36521   if (__pyx_t_1) {
36522 
36523     /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":46
36524  *     def __str__(self):
36525  *         if not mpi_active():
36526  *             return "error code: %d" % self.ob_mpi             # <<<<<<<<<<<<<<
36527  *         return self.Get_error_string()
36528  *
36529  */
36530     __Pyx_XDECREF(__pyx_r);
36531     __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36532     __Pyx_GOTREF(__pyx_t_2);
36533     __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_54), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36534     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
36535     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36536     __pyx_r = ((PyObject *)__pyx_t_3);
36537     __pyx_t_3 = 0;
36538     goto __pyx_L0;
36539     goto __pyx_L6;
36540   }
36541   __pyx_L6:;
36542 
36543   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":47
36544  *         if not mpi_active():
36545  *             return "error code: %d" % self.ob_mpi
36546  *         return self.Get_error_string()             # <<<<<<<<<<<<<<
36547  *
36548  *     def Get_error_code(self):
36549  */
36550   __Pyx_XDECREF(__pyx_r);
36551   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_error_string); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36552   __Pyx_GOTREF(__pyx_t_3);
36553   __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36554   __Pyx_GOTREF(__pyx_t_2);
36555   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36556   __pyx_r = __pyx_t_2;
36557   __pyx_t_2 = 0;
36558   goto __pyx_L0;
36559 
36560   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36561   goto __pyx_L0;
36562   __pyx_L1_error:;
36563   __Pyx_XDECREF(__pyx_t_2);
36564   __Pyx_XDECREF(__pyx_t_3);
36565   __Pyx_AddTraceback("mpi4py.MPI.Exception.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36566   __pyx_r = NULL;
36567   __pyx_L0:;
36568   __Pyx_XGIVEREF(__pyx_r);
36569   __Pyx_RefNannyFinishContext();
36570   return __pyx_r;
36571 }
36572 
36573 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":49
36574  *         return self.Get_error_string()
36575  *
36576  *     def Get_error_code(self):             # <<<<<<<<<<<<<<
36577  *         """
36578  *         Error code
36579  */
36580 
36581 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_11Get_error_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36582 static char __pyx_doc_6mpi4py_3MPI_9Exception_11Get_error_code[] = "Exception.Get_error_code(self)\n\n        Error code\n        ";
36583 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_11Get_error_code = {__Pyx_NAMESTR("Get_error_code"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_11Get_error_code, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_11Get_error_code)};
__pyx_pf_6mpi4py_3MPI_9Exception_11Get_error_code(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36584 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_11Get_error_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36585   PyObject *__pyx_v_self = 0;
36586   int __pyx_v_errorcode;
36587   PyObject *__pyx_r = NULL;
36588   __Pyx_RefNannyDeclarations
36589   PyObject *__pyx_t_1 = NULL;
36590   int __pyx_t_2;
36591   int __pyx_lineno = 0;
36592   const char *__pyx_filename = NULL;
36593   int __pyx_clineno = 0;
36594   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36595   __Pyx_RefNannySetupContext("Get_error_code");
36596   __pyx_self = __pyx_self;
36597   {
36598     PyObject* values[1] = {0};
36599     if (unlikely(__pyx_kwds)) {
36600       Py_ssize_t kw_args;
36601       switch (PyTuple_GET_SIZE(__pyx_args)) {
36602         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36603         case  0: break;
36604         default: goto __pyx_L5_argtuple_error;
36605       }
36606       kw_args = PyDict_Size(__pyx_kwds);
36607       switch (PyTuple_GET_SIZE(__pyx_args)) {
36608         case  0:
36609         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36610         if (likely(values[0])) kw_args--;
36611         else goto __pyx_L5_argtuple_error;
36612       }
36613       if (unlikely(kw_args > 0)) {
36614         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_error_code") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36615       }
36616     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36617       goto __pyx_L5_argtuple_error;
36618     } else {
36619       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36620     }
36621     __pyx_v_self = values[0];
36622   }
36623   goto __pyx_L4_argument_unpacking_done;
36624   __pyx_L5_argtuple_error:;
36625   __Pyx_RaiseArgtupleInvalid("Get_error_code", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36626   __pyx_L3_error:;
36627   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
36628   __Pyx_RefNannyFinishContext();
36629   return NULL;
36630   __pyx_L4_argument_unpacking_done:;
36631 
36632   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":53
36633  *         Error code
36634  *         """
36635  *         cdef int errorcode = MPI_SUCCESS             # <<<<<<<<<<<<<<
36636  *         errorcode = self.ob_mpi
36637  *         return errorcode
36638  */
36639   __pyx_v_errorcode = MPI_SUCCESS;
36640 
36641   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":54
36642  *         """
36643  *         cdef int errorcode = MPI_SUCCESS
36644  *         errorcode = self.ob_mpi             # <<<<<<<<<<<<<<
36645  *         return errorcode
36646  *
36647  */
36648   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36649   __Pyx_GOTREF(__pyx_t_1);
36650   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36651   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36652   __pyx_v_errorcode = __pyx_t_2;
36653 
36654   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":55
36655  *         cdef int errorcode = MPI_SUCCESS
36656  *         errorcode = self.ob_mpi
36657  *         return errorcode             # <<<<<<<<<<<<<<
36658  *
36659  *     error_code = property(Get_error_code, doc="error code")
36660  */
36661   __Pyx_XDECREF(__pyx_r);
36662   __pyx_t_1 = PyInt_FromLong(__pyx_v_errorcode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36663   __Pyx_GOTREF(__pyx_t_1);
36664   __pyx_r = __pyx_t_1;
36665   __pyx_t_1 = 0;
36666   goto __pyx_L0;
36667 
36668   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36669   goto __pyx_L0;
36670   __pyx_L1_error:;
36671   __Pyx_XDECREF(__pyx_t_1);
36672   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
36673   __pyx_r = NULL;
36674   __pyx_L0:;
36675   __Pyx_XGIVEREF(__pyx_r);
36676   __Pyx_RefNannyFinishContext();
36677   return __pyx_r;
36678 }
36679 
36680 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":59
36681  *     error_code = property(Get_error_code, doc="error code")
36682  *
36683  *     def Get_error_class(self):             # <<<<<<<<<<<<<<
36684  *         """
36685  *         Error class
36686  */
36687 
36688 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_12Get_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36689 static char __pyx_doc_6mpi4py_3MPI_9Exception_12Get_error_class[] = "Exception.Get_error_class(self)\n\n        Error class\n        ";
36690 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_12Get_error_class = {__Pyx_NAMESTR("Get_error_class"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_12Get_error_class, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_12Get_error_class)};
__pyx_pf_6mpi4py_3MPI_9Exception_12Get_error_class(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36691 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_12Get_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36692   PyObject *__pyx_v_self = 0;
36693   int __pyx_v_errorclass;
36694   PyObject *__pyx_r = NULL;
36695   __Pyx_RefNannyDeclarations
36696   PyObject *__pyx_t_1 = NULL;
36697   int __pyx_t_2;
36698   int __pyx_t_3;
36699   int __pyx_lineno = 0;
36700   const char *__pyx_filename = NULL;
36701   int __pyx_clineno = 0;
36702   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36703   __Pyx_RefNannySetupContext("Get_error_class");
36704   __pyx_self = __pyx_self;
36705   {
36706     PyObject* values[1] = {0};
36707     if (unlikely(__pyx_kwds)) {
36708       Py_ssize_t kw_args;
36709       switch (PyTuple_GET_SIZE(__pyx_args)) {
36710         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36711         case  0: break;
36712         default: goto __pyx_L5_argtuple_error;
36713       }
36714       kw_args = PyDict_Size(__pyx_kwds);
36715       switch (PyTuple_GET_SIZE(__pyx_args)) {
36716         case  0:
36717         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36718         if (likely(values[0])) kw_args--;
36719         else goto __pyx_L5_argtuple_error;
36720       }
36721       if (unlikely(kw_args > 0)) {
36722         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_error_class") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36723       }
36724     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36725       goto __pyx_L5_argtuple_error;
36726     } else {
36727       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36728     }
36729     __pyx_v_self = values[0];
36730   }
36731   goto __pyx_L4_argument_unpacking_done;
36732   __pyx_L5_argtuple_error:;
36733   __Pyx_RaiseArgtupleInvalid("Get_error_class", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36734   __pyx_L3_error:;
36735   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
36736   __Pyx_RefNannyFinishContext();
36737   return NULL;
36738   __pyx_L4_argument_unpacking_done:;
36739 
36740   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":63
36741  *         Error class
36742  *         """
36743  *         cdef int errorclass = MPI_SUCCESS             # <<<<<<<<<<<<<<
36744  *         CHKERR( MPI_Error_class(self.ob_mpi, &errorclass) )
36745  *         return errorclass
36746  */
36747   __pyx_v_errorclass = MPI_SUCCESS;
36748 
36749   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":64
36750  *         """
36751  *         cdef int errorclass = MPI_SUCCESS
36752  *         CHKERR( MPI_Error_class(self.ob_mpi, &errorclass) )             # <<<<<<<<<<<<<<
36753  *         return errorclass
36754  *
36755  */
36756   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36757   __Pyx_GOTREF(__pyx_t_1);
36758   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36759   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36760   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Error_class(__pyx_t_2, (&__pyx_v_errorclass))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36761 
36762   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":65
36763  *         cdef int errorclass = MPI_SUCCESS
36764  *         CHKERR( MPI_Error_class(self.ob_mpi, &errorclass) )
36765  *         return errorclass             # <<<<<<<<<<<<<<
36766  *
36767  *     error_class = property(Get_error_class, doc="error class")
36768  */
36769   __Pyx_XDECREF(__pyx_r);
36770   __pyx_t_1 = PyInt_FromLong(__pyx_v_errorclass); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36771   __Pyx_GOTREF(__pyx_t_1);
36772   __pyx_r = __pyx_t_1;
36773   __pyx_t_1 = 0;
36774   goto __pyx_L0;
36775 
36776   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36777   goto __pyx_L0;
36778   __pyx_L1_error:;
36779   __Pyx_XDECREF(__pyx_t_1);
36780   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
36781   __pyx_r = NULL;
36782   __pyx_L0:;
36783   __Pyx_XGIVEREF(__pyx_r);
36784   __Pyx_RefNannyFinishContext();
36785   return __pyx_r;
36786 }
36787 
36788 /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":69
36789  *     error_class = property(Get_error_class, doc="error class")
36790  *
36791  *     def Get_error_string(self):             # <<<<<<<<<<<<<<
36792  *         """
36793  *         Error string
36794  */
36795 
36796 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_13Get_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36797 static char __pyx_doc_6mpi4py_3MPI_9Exception_13Get_error_string[] = "Exception.Get_error_string(self)\n\n        Error string\n        ";
36798 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Exception_13Get_error_string = {__Pyx_NAMESTR("Get_error_string"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Exception_13Get_error_string, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Exception_13Get_error_string)};
__pyx_pf_6mpi4py_3MPI_9Exception_13Get_error_string(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36799 static PyObject *__pyx_pf_6mpi4py_3MPI_9Exception_13Get_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36800   PyObject *__pyx_v_self = 0;
36801   char __pyx_v_string[(MPI_MAX_ERROR_STRING + 1)];
36802   int __pyx_v_resultlen;
36803   PyObject *__pyx_r = NULL;
36804   __Pyx_RefNannyDeclarations
36805   PyObject *__pyx_t_1 = NULL;
36806   int __pyx_t_2;
36807   int __pyx_t_3;
36808   int __pyx_lineno = 0;
36809   const char *__pyx_filename = NULL;
36810   int __pyx_clineno = 0;
36811   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
36812   __Pyx_RefNannySetupContext("Get_error_string");
36813   __pyx_self = __pyx_self;
36814   {
36815     PyObject* values[1] = {0};
36816     if (unlikely(__pyx_kwds)) {
36817       Py_ssize_t kw_args;
36818       switch (PyTuple_GET_SIZE(__pyx_args)) {
36819         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36820         case  0: break;
36821         default: goto __pyx_L5_argtuple_error;
36822       }
36823       kw_args = PyDict_Size(__pyx_kwds);
36824       switch (PyTuple_GET_SIZE(__pyx_args)) {
36825         case  0:
36826         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
36827         if (likely(values[0])) kw_args--;
36828         else goto __pyx_L5_argtuple_error;
36829       }
36830       if (unlikely(kw_args > 0)) {
36831         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_error_string") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36832       }
36833     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36834       goto __pyx_L5_argtuple_error;
36835     } else {
36836       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36837     }
36838     __pyx_v_self = values[0];
36839   }
36840   goto __pyx_L4_argument_unpacking_done;
36841   __pyx_L5_argtuple_error:;
36842   __Pyx_RaiseArgtupleInvalid("Get_error_string", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36843   __pyx_L3_error:;
36844   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
36845   __Pyx_RefNannyFinishContext();
36846   return NULL;
36847   __pyx_L4_argument_unpacking_done:;
36848 
36849   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":74
36850  *         """
36851  *         cdef char string[MPI_MAX_ERROR_STRING+1]
36852  *         cdef int resultlen = 0             # <<<<<<<<<<<<<<
36853  *         CHKERR( MPI_Error_string(self.ob_mpi, string, &resultlen) )
36854  *         return tompistr(string, resultlen)
36855  */
36856   __pyx_v_resultlen = 0;
36857 
36858   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":75
36859  *         cdef char string[MPI_MAX_ERROR_STRING+1]
36860  *         cdef int resultlen = 0
36861  *         CHKERR( MPI_Error_string(self.ob_mpi, string, &resultlen) )             # <<<<<<<<<<<<<<
36862  *         return tompistr(string, resultlen)
36863  *
36864  */
36865   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ob_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36866   __Pyx_GOTREF(__pyx_t_1);
36867   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36868   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36869   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Error_string(__pyx_t_2, __pyx_v_string, (&__pyx_v_resultlen))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36870 
36871   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":76
36872  *         cdef int resultlen = 0
36873  *         CHKERR( MPI_Error_string(self.ob_mpi, string, &resultlen) )
36874  *         return tompistr(string, resultlen)             # <<<<<<<<<<<<<<
36875  *
36876  *     error_string = property(Get_error_string, doc="error string")
36877  */
36878   __Pyx_XDECREF(__pyx_r);
36879   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_string, __pyx_v_resultlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36880   __Pyx_GOTREF(__pyx_t_1);
36881   __pyx_r = __pyx_t_1;
36882   __pyx_t_1 = 0;
36883   goto __pyx_L0;
36884 
36885   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36886   goto __pyx_L0;
36887   __pyx_L1_error:;
36888   __Pyx_XDECREF(__pyx_t_1);
36889   __Pyx_AddTraceback("mpi4py.MPI.Exception.Get_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
36890   __pyx_r = NULL;
36891   __pyx_L0:;
36892   __Pyx_XGIVEREF(__pyx_r);
36893   __Pyx_RefNannyFinishContext();
36894   return __pyx_r;
36895 }
36896 
36897 /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":82
36898  *
36899  *
36900  * def Get_error_class(int errorcode):             # <<<<<<<<<<<<<<
36901  *     """
36902  *     Convert an *error code* into an *error class*
36903  */
36904 
36905 static PyObject *__pyx_pf_6mpi4py_3MPI_Get_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36906 static char __pyx_doc_6mpi4py_3MPI_Get_error_class[] = "Get_error_class(int errorcode)\n\n    Convert an *error code* into an *error class*\n    ";
36907 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_Get_error_class = {__Pyx_NAMESTR("Get_error_class"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_Get_error_class, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_Get_error_class)};
__pyx_pf_6mpi4py_3MPI_Get_error_class(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)36908 static PyObject *__pyx_pf_6mpi4py_3MPI_Get_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36909   int __pyx_v_errorcode;
36910   int __pyx_v_errorclass;
36911   PyObject *__pyx_r = NULL;
36912   __Pyx_RefNannyDeclarations
36913   int __pyx_t_1;
36914   PyObject *__pyx_t_2 = NULL;
36915   int __pyx_lineno = 0;
36916   const char *__pyx_filename = NULL;
36917   int __pyx_clineno = 0;
36918   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
36919   __Pyx_RefNannySetupContext("Get_error_class");
36920   __pyx_self = __pyx_self;
36921   {
36922     PyObject* values[1] = {0};
36923     if (unlikely(__pyx_kwds)) {
36924       Py_ssize_t kw_args;
36925       switch (PyTuple_GET_SIZE(__pyx_args)) {
36926         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36927         case  0: break;
36928         default: goto __pyx_L5_argtuple_error;
36929       }
36930       kw_args = PyDict_Size(__pyx_kwds);
36931       switch (PyTuple_GET_SIZE(__pyx_args)) {
36932         case  0:
36933         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
36934         if (likely(values[0])) kw_args--;
36935         else goto __pyx_L5_argtuple_error;
36936       }
36937       if (unlikely(kw_args > 0)) {
36938         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_error_class") < 0)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36939       }
36940     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
36941       goto __pyx_L5_argtuple_error;
36942     } else {
36943       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36944     }
36945     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36946   }
36947   goto __pyx_L4_argument_unpacking_done;
36948   __pyx_L5_argtuple_error:;
36949   __Pyx_RaiseArgtupleInvalid("Get_error_class", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[17]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
36950   __pyx_L3_error:;
36951   __Pyx_AddTraceback("mpi4py.MPI.Get_error_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
36952   __Pyx_RefNannyFinishContext();
36953   return NULL;
36954   __pyx_L4_argument_unpacking_done:;
36955 
36956   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":86
36957  *     Convert an *error code* into an *error class*
36958  *     """
36959  *     cdef int errorclass = MPI_SUCCESS             # <<<<<<<<<<<<<<
36960  *     CHKERR( MPI_Error_class(errorcode, &errorclass) )
36961  *     return errorclass
36962  */
36963   __pyx_v_errorclass = MPI_SUCCESS;
36964 
36965   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":87
36966  *     """
36967  *     cdef int errorclass = MPI_SUCCESS
36968  *     CHKERR( MPI_Error_class(errorcode, &errorclass) )             # <<<<<<<<<<<<<<
36969  *     return errorclass
36970  *
36971  */
36972   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Error_class(__pyx_v_errorcode, (&__pyx_v_errorclass))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36973 
36974   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":88
36975  *     cdef int errorclass = MPI_SUCCESS
36976  *     CHKERR( MPI_Error_class(errorcode, &errorclass) )
36977  *     return errorclass             # <<<<<<<<<<<<<<
36978  *
36979  * def Get_error_string(int errorcode):
36980  */
36981   __Pyx_XDECREF(__pyx_r);
36982   __pyx_t_2 = PyInt_FromLong(__pyx_v_errorclass); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
36983   __Pyx_GOTREF(__pyx_t_2);
36984   __pyx_r = __pyx_t_2;
36985   __pyx_t_2 = 0;
36986   goto __pyx_L0;
36987 
36988   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36989   goto __pyx_L0;
36990   __pyx_L1_error:;
36991   __Pyx_XDECREF(__pyx_t_2);
36992   __Pyx_AddTraceback("mpi4py.MPI.Get_error_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
36993   __pyx_r = NULL;
36994   __pyx_L0:;
36995   __Pyx_XGIVEREF(__pyx_r);
36996   __Pyx_RefNannyFinishContext();
36997   return __pyx_r;
36998 }
36999 
37000 /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":90
37001  *     return errorclass
37002  *
37003  * def Get_error_string(int errorcode):             # <<<<<<<<<<<<<<
37004  *     """
37005  *     Return the *error string* for a given
37006  */
37007 
37008 static PyObject *__pyx_pf_6mpi4py_3MPI_1Get_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37009 static char __pyx_doc_6mpi4py_3MPI_1Get_error_string[] = "Get_error_string(int errorcode)\n\n    Return the *error string* for a given\n    *error class* or *error code*\n    ";
37010 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_1Get_error_string = {__Pyx_NAMESTR("Get_error_string"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_1Get_error_string, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_1Get_error_string)};
__pyx_pf_6mpi4py_3MPI_1Get_error_string(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37011 static PyObject *__pyx_pf_6mpi4py_3MPI_1Get_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37012   int __pyx_v_errorcode;
37013   char __pyx_v_string[(MPI_MAX_ERROR_STRING + 1)];
37014   int __pyx_v_resultlen;
37015   PyObject *__pyx_r = NULL;
37016   __Pyx_RefNannyDeclarations
37017   int __pyx_t_1;
37018   PyObject *__pyx_t_2 = NULL;
37019   int __pyx_lineno = 0;
37020   const char *__pyx_filename = NULL;
37021   int __pyx_clineno = 0;
37022   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
37023   __Pyx_RefNannySetupContext("Get_error_string");
37024   __pyx_self = __pyx_self;
37025   {
37026     PyObject* values[1] = {0};
37027     if (unlikely(__pyx_kwds)) {
37028       Py_ssize_t kw_args;
37029       switch (PyTuple_GET_SIZE(__pyx_args)) {
37030         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37031         case  0: break;
37032         default: goto __pyx_L5_argtuple_error;
37033       }
37034       kw_args = PyDict_Size(__pyx_kwds);
37035       switch (PyTuple_GET_SIZE(__pyx_args)) {
37036         case  0:
37037         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
37038         if (likely(values[0])) kw_args--;
37039         else goto __pyx_L5_argtuple_error;
37040       }
37041       if (unlikely(kw_args > 0)) {
37042         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_error_string") < 0)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37043       }
37044     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
37045       goto __pyx_L5_argtuple_error;
37046     } else {
37047       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37048     }
37049     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37050   }
37051   goto __pyx_L4_argument_unpacking_done;
37052   __pyx_L5_argtuple_error:;
37053   __Pyx_RaiseArgtupleInvalid("Get_error_string", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[17]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37054   __pyx_L3_error:;
37055   __Pyx_AddTraceback("mpi4py.MPI.Get_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
37056   __Pyx_RefNannyFinishContext();
37057   return NULL;
37058   __pyx_L4_argument_unpacking_done:;
37059 
37060   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":96
37061  *     """
37062  *     cdef char string[MPI_MAX_ERROR_STRING+1]
37063  *     cdef int resultlen = 0             # <<<<<<<<<<<<<<
37064  *     CHKERR( MPI_Error_string(errorcode, string, &resultlen) )
37065  *     return tompistr(string, resultlen)
37066  */
37067   __pyx_v_resultlen = 0;
37068 
37069   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":97
37070  *     cdef char string[MPI_MAX_ERROR_STRING+1]
37071  *     cdef int resultlen = 0
37072  *     CHKERR( MPI_Error_string(errorcode, string, &resultlen) )             # <<<<<<<<<<<<<<
37073  *     return tompistr(string, resultlen)
37074  *
37075  */
37076   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Error_string(__pyx_v_errorcode, __pyx_v_string, (&__pyx_v_resultlen))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37077 
37078   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":98
37079  *     cdef int resultlen = 0
37080  *     CHKERR( MPI_Error_string(errorcode, string, &resultlen) )
37081  *     return tompistr(string, resultlen)             # <<<<<<<<<<<<<<
37082  *
37083  *
37084  */
37085   __Pyx_XDECREF(__pyx_r);
37086   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_string, __pyx_v_resultlen); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37087   __Pyx_GOTREF(__pyx_t_2);
37088   __pyx_r = __pyx_t_2;
37089   __pyx_t_2 = 0;
37090   goto __pyx_L0;
37091 
37092   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37093   goto __pyx_L0;
37094   __pyx_L1_error:;
37095   __Pyx_XDECREF(__pyx_t_2);
37096   __Pyx_AddTraceback("mpi4py.MPI.Get_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
37097   __pyx_r = NULL;
37098   __pyx_L0:;
37099   __Pyx_XGIVEREF(__pyx_r);
37100   __Pyx_RefNannyFinishContext();
37101   return __pyx_r;
37102 }
37103 
37104 /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":101
37105  *
37106  *
37107  * def Add_error_class():             # <<<<<<<<<<<<<<
37108  *     """
37109  *     Add an *error class* to the known error classes
37110  */
37111 
37112 static PyObject *__pyx_pf_6mpi4py_3MPI_2Add_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37113 static char __pyx_doc_6mpi4py_3MPI_2Add_error_class[] = "Add_error_class()\n\n    Add an *error class* to the known error classes\n    ";
37114 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_2Add_error_class = {__Pyx_NAMESTR("Add_error_class"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Add_error_class, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Add_error_class)};
__pyx_pf_6mpi4py_3MPI_2Add_error_class(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37115 static PyObject *__pyx_pf_6mpi4py_3MPI_2Add_error_class(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37116   int __pyx_v_errorclass;
37117   PyObject *__pyx_r = NULL;
37118   __Pyx_RefNannyDeclarations
37119   int __pyx_t_1;
37120   PyObject *__pyx_t_2 = NULL;
37121   int __pyx_lineno = 0;
37122   const char *__pyx_filename = NULL;
37123   int __pyx_clineno = 0;
37124   __Pyx_RefNannySetupContext("Add_error_class");
37125   __pyx_self = __pyx_self;
37126   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
37127     __Pyx_RaiseArgtupleInvalid("Add_error_class", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
37128   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Add_error_class", 0))) return NULL;
37129 
37130   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":105
37131  *     Add an *error class* to the known error classes
37132  *     """
37133  *     cdef int errorclass = MPI_SUCCESS             # <<<<<<<<<<<<<<
37134  *     CHKERR( MPI_Add_error_class(&errorclass) )
37135  *     return errorclass
37136  */
37137   __pyx_v_errorclass = MPI_SUCCESS;
37138 
37139   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":106
37140  *     """
37141  *     cdef int errorclass = MPI_SUCCESS
37142  *     CHKERR( MPI_Add_error_class(&errorclass) )             # <<<<<<<<<<<<<<
37143  *     return errorclass
37144  *
37145  */
37146   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Add_error_class((&__pyx_v_errorclass))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37147 
37148   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":107
37149  *     cdef int errorclass = MPI_SUCCESS
37150  *     CHKERR( MPI_Add_error_class(&errorclass) )
37151  *     return errorclass             # <<<<<<<<<<<<<<
37152  *
37153  * def Add_error_code(int errorclass):
37154  */
37155   __Pyx_XDECREF(__pyx_r);
37156   __pyx_t_2 = PyInt_FromLong(__pyx_v_errorclass); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37157   __Pyx_GOTREF(__pyx_t_2);
37158   __pyx_r = __pyx_t_2;
37159   __pyx_t_2 = 0;
37160   goto __pyx_L0;
37161 
37162   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37163   goto __pyx_L0;
37164   __pyx_L1_error:;
37165   __Pyx_XDECREF(__pyx_t_2);
37166   __Pyx_AddTraceback("mpi4py.MPI.Add_error_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
37167   __pyx_r = NULL;
37168   __pyx_L0:;
37169   __Pyx_XGIVEREF(__pyx_r);
37170   __Pyx_RefNannyFinishContext();
37171   return __pyx_r;
37172 }
37173 
37174 /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":109
37175  *     return errorclass
37176  *
37177  * def Add_error_code(int errorclass):             # <<<<<<<<<<<<<<
37178  *     """
37179  *     Add an *error code* to an *error class*
37180  */
37181 
37182 static PyObject *__pyx_pf_6mpi4py_3MPI_3Add_error_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37183 static char __pyx_doc_6mpi4py_3MPI_3Add_error_code[] = "Add_error_code(int errorclass)\n\n    Add an *error code* to an *error class*\n    ";
37184 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_3Add_error_code = {__Pyx_NAMESTR("Add_error_code"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Add_error_code, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Add_error_code)};
__pyx_pf_6mpi4py_3MPI_3Add_error_code(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37185 static PyObject *__pyx_pf_6mpi4py_3MPI_3Add_error_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37186   int __pyx_v_errorclass;
37187   int __pyx_v_errorcode;
37188   PyObject *__pyx_r = NULL;
37189   __Pyx_RefNannyDeclarations
37190   int __pyx_t_1;
37191   PyObject *__pyx_t_2 = NULL;
37192   int __pyx_lineno = 0;
37193   const char *__pyx_filename = NULL;
37194   int __pyx_clineno = 0;
37195   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorclass,0};
37196   __Pyx_RefNannySetupContext("Add_error_code");
37197   __pyx_self = __pyx_self;
37198   {
37199     PyObject* values[1] = {0};
37200     if (unlikely(__pyx_kwds)) {
37201       Py_ssize_t kw_args;
37202       switch (PyTuple_GET_SIZE(__pyx_args)) {
37203         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37204         case  0: break;
37205         default: goto __pyx_L5_argtuple_error;
37206       }
37207       kw_args = PyDict_Size(__pyx_kwds);
37208       switch (PyTuple_GET_SIZE(__pyx_args)) {
37209         case  0:
37210         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorclass);
37211         if (likely(values[0])) kw_args--;
37212         else goto __pyx_L5_argtuple_error;
37213       }
37214       if (unlikely(kw_args > 0)) {
37215         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Add_error_code") < 0)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37216       }
37217     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
37218       goto __pyx_L5_argtuple_error;
37219     } else {
37220       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37221     }
37222     __pyx_v_errorclass = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorclass == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37223   }
37224   goto __pyx_L4_argument_unpacking_done;
37225   __pyx_L5_argtuple_error:;
37226   __Pyx_RaiseArgtupleInvalid("Add_error_code", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[17]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37227   __pyx_L3_error:;
37228   __Pyx_AddTraceback("mpi4py.MPI.Add_error_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
37229   __Pyx_RefNannyFinishContext();
37230   return NULL;
37231   __pyx_L4_argument_unpacking_done:;
37232 
37233   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":113
37234  *     Add an *error code* to an *error class*
37235  *     """
37236  *     cdef int errorcode = MPI_SUCCESS             # <<<<<<<<<<<<<<
37237  *     CHKERR( MPI_Add_error_code(errorclass, &errorcode) )
37238  *     return errorcode
37239  */
37240   __pyx_v_errorcode = MPI_SUCCESS;
37241 
37242   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":114
37243  *     """
37244  *     cdef int errorcode = MPI_SUCCESS
37245  *     CHKERR( MPI_Add_error_code(errorclass, &errorcode) )             # <<<<<<<<<<<<<<
37246  *     return errorcode
37247  *
37248  */
37249   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Add_error_code(__pyx_v_errorclass, (&__pyx_v_errorcode))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37250 
37251   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":115
37252  *     cdef int errorcode = MPI_SUCCESS
37253  *     CHKERR( MPI_Add_error_code(errorclass, &errorcode) )
37254  *     return errorcode             # <<<<<<<<<<<<<<
37255  *
37256  * def Add_error_string(int errorcode, string):
37257  */
37258   __Pyx_XDECREF(__pyx_r);
37259   __pyx_t_2 = PyInt_FromLong(__pyx_v_errorcode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37260   __Pyx_GOTREF(__pyx_t_2);
37261   __pyx_r = __pyx_t_2;
37262   __pyx_t_2 = 0;
37263   goto __pyx_L0;
37264 
37265   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37266   goto __pyx_L0;
37267   __pyx_L1_error:;
37268   __Pyx_XDECREF(__pyx_t_2);
37269   __Pyx_AddTraceback("mpi4py.MPI.Add_error_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
37270   __pyx_r = NULL;
37271   __pyx_L0:;
37272   __Pyx_XGIVEREF(__pyx_r);
37273   __Pyx_RefNannyFinishContext();
37274   return __pyx_r;
37275 }
37276 
37277 /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":117
37278  *     return errorcode
37279  *
37280  * def Add_error_string(int errorcode, string):             # <<<<<<<<<<<<<<
37281  *     """
37282  *     Associate an *error string* with an
37283  */
37284 
37285 static PyObject *__pyx_pf_6mpi4py_3MPI_4Add_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37286 static char __pyx_doc_6mpi4py_3MPI_4Add_error_string[] = "Add_error_string(int errorcode, string)\n\n    Associate an *error string* with an\n    *error class* or *errorcode*\n    ";
37287 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_4Add_error_string = {__Pyx_NAMESTR("Add_error_string"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Add_error_string, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Add_error_string)};
__pyx_pf_6mpi4py_3MPI_4Add_error_string(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37288 static PyObject *__pyx_pf_6mpi4py_3MPI_4Add_error_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37289   int __pyx_v_errorcode;
37290   PyObject *__pyx_v_string = 0;
37291   char *__pyx_v_cstring;
37292   PyObject *__pyx_r = NULL;
37293   __Pyx_RefNannyDeclarations
37294   PyObject *__pyx_t_1 = NULL;
37295   int __pyx_t_2;
37296   int __pyx_lineno = 0;
37297   const char *__pyx_filename = NULL;
37298   int __pyx_clineno = 0;
37299   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,&__pyx_n_s__string,0};
37300   __Pyx_RefNannySetupContext("Add_error_string");
37301   __pyx_self = __pyx_self;
37302   {
37303     PyObject* values[2] = {0,0};
37304     if (unlikely(__pyx_kwds)) {
37305       Py_ssize_t kw_args;
37306       switch (PyTuple_GET_SIZE(__pyx_args)) {
37307         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37308         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37309         case  0: break;
37310         default: goto __pyx_L5_argtuple_error;
37311       }
37312       kw_args = PyDict_Size(__pyx_kwds);
37313       switch (PyTuple_GET_SIZE(__pyx_args)) {
37314         case  0:
37315         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
37316         if (likely(values[0])) kw_args--;
37317         else goto __pyx_L5_argtuple_error;
37318         case  1:
37319         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__string);
37320         if (likely(values[1])) kw_args--;
37321         else {
37322           __Pyx_RaiseArgtupleInvalid("Add_error_string", 1, 2, 2, 1); {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37323         }
37324       }
37325       if (unlikely(kw_args > 0)) {
37326         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Add_error_string") < 0)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37327       }
37328     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
37329       goto __pyx_L5_argtuple_error;
37330     } else {
37331       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37332       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37333     }
37334     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37335     __pyx_v_string = values[1];
37336   }
37337   goto __pyx_L4_argument_unpacking_done;
37338   __pyx_L5_argtuple_error:;
37339   __Pyx_RaiseArgtupleInvalid("Add_error_string", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37340   __pyx_L3_error:;
37341   __Pyx_AddTraceback("mpi4py.MPI.Add_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
37342   __Pyx_RefNannyFinishContext();
37343   return NULL;
37344   __pyx_L4_argument_unpacking_done:;
37345   __Pyx_INCREF(__pyx_v_string);
37346 
37347   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":122
37348  *     *error class* or *errorcode*
37349  *     """
37350  *     cdef char *cstring = NULL             # <<<<<<<<<<<<<<
37351  *     string = asmpistr(string, &cstring, NULL)
37352  *     CHKERR( MPI_Add_error_string(errorcode, cstring) )
37353  */
37354   __pyx_v_cstring = NULL;
37355 
37356   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":123
37357  *     """
37358  *     cdef char *cstring = NULL
37359  *     string = asmpistr(string, &cstring, NULL)             # <<<<<<<<<<<<<<
37360  *     CHKERR( MPI_Add_error_string(errorcode, cstring) )
37361  */
37362   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_string, (&__pyx_v_cstring), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37363   __Pyx_GOTREF(__pyx_t_1);
37364   __Pyx_DECREF(__pyx_v_string);
37365   __pyx_v_string = __pyx_t_1;
37366   __pyx_t_1 = 0;
37367 
37368   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":124
37369  *     cdef char *cstring = NULL
37370  *     string = asmpistr(string, &cstring, NULL)
37371  *     CHKERR( MPI_Add_error_string(errorcode, cstring) )             # <<<<<<<<<<<<<<
37372  */
37373   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Add_error_string(__pyx_v_errorcode, __pyx_v_cstring)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37374 
37375   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37376   goto __pyx_L0;
37377   __pyx_L1_error:;
37378   __Pyx_XDECREF(__pyx_t_1);
37379   __Pyx_AddTraceback("mpi4py.MPI.Add_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
37380   __pyx_r = NULL;
37381   __pyx_L0:;
37382   __Pyx_XDECREF(__pyx_v_string);
37383   __Pyx_XGIVEREF(__pyx_r);
37384   __Pyx_RefNannyFinishContext();
37385   return __pyx_r;
37386 }
37387 
37388 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":7
37389  *     """
37390  *
37391  *     def __cinit__(self):             # <<<<<<<<<<<<<<
37392  *         self.ob_mpi = MPI_ERRHANDLER_NULL
37393  *
37394  */
37395 
37396 static int __pyx_pf_6mpi4py_3MPI_10Errhandler___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_10Errhandler___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37397 static int __pyx_pf_6mpi4py_3MPI_10Errhandler___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37398   int __pyx_r;
37399   __Pyx_RefNannyDeclarations
37400   __Pyx_RefNannySetupContext("__cinit__");
37401   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
37402     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
37403   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
37404 
37405   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":8
37406  *
37407  *     def __cinit__(self):
37408  *         self.ob_mpi = MPI_ERRHANDLER_NULL             # <<<<<<<<<<<<<<
37409  *
37410  *     def __dealloc__(self):
37411  */
37412   ((struct PyMPIErrhandlerObject *)__pyx_v_self)->ob_mpi = MPI_ERRHANDLER_NULL;
37413 
37414   __pyx_r = 0;
37415   __Pyx_RefNannyFinishContext();
37416   return __pyx_r;
37417 }
37418 
37419 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":10
37420  *         self.ob_mpi = MPI_ERRHANDLER_NULL
37421  *
37422  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
37423  *         if not (self.flags & PyMPI_OWNED): return
37424  *         CHKERR( del_Errhandler(&self.ob_mpi) )
37425  */
37426 
37427 static void __pyx_pf_6mpi4py_3MPI_10Errhandler_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_10Errhandler_1__dealloc__(PyObject * __pyx_v_self)37428 static void __pyx_pf_6mpi4py_3MPI_10Errhandler_1__dealloc__(PyObject *__pyx_v_self) {
37429   __Pyx_RefNannyDeclarations
37430   int __pyx_t_1;
37431   int __pyx_t_2;
37432   int __pyx_lineno = 0;
37433   const char *__pyx_filename = NULL;
37434   int __pyx_clineno = 0;
37435   __Pyx_RefNannySetupContext("__dealloc__");
37436 
37437   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":11
37438  *
37439  *     def __dealloc__(self):
37440  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
37441  *         CHKERR( del_Errhandler(&self.ob_mpi) )
37442  *
37443  */
37444   __pyx_t_1 = (!(((struct PyMPIErrhandlerObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
37445   if (__pyx_t_1) {
37446     goto __pyx_L0;
37447     goto __pyx_L5;
37448   }
37449   __pyx_L5:;
37450 
37451   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":12
37452  *     def __dealloc__(self):
37453  *         if not (self.flags & PyMPI_OWNED): return
37454  *         CHKERR( del_Errhandler(&self.ob_mpi) )             # <<<<<<<<<<<<<<
37455  *
37456  *     def __richcmp__(self, other, int op):
37457  */
37458   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Errhandler((&((struct PyMPIErrhandlerObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37459 
37460   goto __pyx_L0;
37461   __pyx_L1_error:;
37462   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37463   __pyx_L0:;
37464   __Pyx_RefNannyFinishContext();
37465 }
37466 
37467 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":14
37468  *         CHKERR( del_Errhandler(&self.ob_mpi) )
37469  *
37470  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
37471  *         if not isinstance(self,  Errhandler): return NotImplemented
37472  *         if not isinstance(other, Errhandler): return NotImplemented
37473  */
37474 
37475 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_10Errhandler_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)37476 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
37477   struct PyMPIErrhandlerObject *__pyx_v_s = 0;
37478   struct PyMPIErrhandlerObject *__pyx_v_o = 0;
37479   PyObject *__pyx_r = NULL;
37480   __Pyx_RefNannyDeclarations
37481   PyObject *__pyx_t_1 = NULL;
37482   int __pyx_t_2;
37483   int __pyx_t_3;
37484   int __pyx_lineno = 0;
37485   const char *__pyx_filename = NULL;
37486   int __pyx_clineno = 0;
37487   __Pyx_RefNannySetupContext("__richcmp__");
37488 
37489   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":15
37490  *
37491  *     def __richcmp__(self, other, int op):
37492  *         if not isinstance(self,  Errhandler): return NotImplemented             # <<<<<<<<<<<<<<
37493  *         if not isinstance(other, Errhandler): return NotImplemented
37494  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other
37495  */
37496   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler));
37497   __Pyx_INCREF(__pyx_t_1);
37498   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
37499   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37500   __pyx_t_3 = (!__pyx_t_2);
37501   if (__pyx_t_3) {
37502     __Pyx_XDECREF(__pyx_r);
37503     __Pyx_INCREF(__pyx_builtin_NotImplemented);
37504     __pyx_r = __pyx_builtin_NotImplemented;
37505     goto __pyx_L0;
37506     goto __pyx_L5;
37507   }
37508   __pyx_L5:;
37509 
37510   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":16
37511  *     def __richcmp__(self, other, int op):
37512  *         if not isinstance(self,  Errhandler): return NotImplemented
37513  *         if not isinstance(other, Errhandler): return NotImplemented             # <<<<<<<<<<<<<<
37514  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other
37515  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37516  */
37517   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler));
37518   __Pyx_INCREF(__pyx_t_1);
37519   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
37520   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37521   __pyx_t_2 = (!__pyx_t_3);
37522   if (__pyx_t_2) {
37523     __Pyx_XDECREF(__pyx_r);
37524     __Pyx_INCREF(__pyx_builtin_NotImplemented);
37525     __pyx_r = __pyx_builtin_NotImplemented;
37526     goto __pyx_L0;
37527     goto __pyx_L6;
37528   }
37529   __pyx_L6:;
37530 
37531   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":17
37532  *         if not isinstance(self,  Errhandler): return NotImplemented
37533  *         if not isinstance(other, Errhandler): return NotImplemented
37534  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other             # <<<<<<<<<<<<<<
37535  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37536  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
37537  */
37538   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_v_self)));
37539   __pyx_v_s = ((struct PyMPIErrhandlerObject *)__pyx_v_self);
37540   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_v_other)));
37541   __pyx_v_o = ((struct PyMPIErrhandlerObject *)__pyx_v_other);
37542 
37543   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":19
37544  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other
37545  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37546  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
37547  *         else: raise TypeError("only '==' and '!='")
37548  *
37549  */
37550   switch (__pyx_v_op) {
37551 
37552     /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":18
37553  *         if not isinstance(other, Errhandler): return NotImplemented
37554  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other
37555  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
37556  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
37557  *         else: raise TypeError("only '==' and '!='")
37558  */
37559     case Py_EQ:
37560     __Pyx_XDECREF(__pyx_r);
37561     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37562     __Pyx_GOTREF(__pyx_t_1);
37563     __pyx_r = __pyx_t_1;
37564     __pyx_t_1 = 0;
37565     goto __pyx_L0;
37566     break;
37567 
37568     /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":19
37569  *         cdef Errhandler s = <Errhandler>self, o = <Errhandler>other
37570  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37571  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
37572  *         else: raise TypeError("only '==' and '!='")
37573  *
37574  */
37575     case Py_NE:
37576     __Pyx_XDECREF(__pyx_r);
37577     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37578     __Pyx_GOTREF(__pyx_t_1);
37579     __pyx_r = __pyx_t_1;
37580     __pyx_t_1 = 0;
37581     goto __pyx_L0;
37582     break;
37583     default:
37584 
37585     /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":20
37586  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37587  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
37588  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
37589  *
37590  *     def __bool__(self):
37591  */
37592     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_56), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37593     __Pyx_GOTREF(__pyx_t_1);
37594     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
37595     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37596     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37597     break;
37598   }
37599 
37600   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37601   goto __pyx_L0;
37602   __pyx_L1_error:;
37603   __Pyx_XDECREF(__pyx_t_1);
37604   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37605   __pyx_r = NULL;
37606   __pyx_L0:;
37607   __Pyx_XDECREF((PyObject *)__pyx_v_s);
37608   __Pyx_XDECREF((PyObject *)__pyx_v_o);
37609   __Pyx_XGIVEREF(__pyx_r);
37610   __Pyx_RefNannyFinishContext();
37611   return __pyx_r;
37612 }
37613 
37614 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":22
37615  *         else: raise TypeError("only '==' and '!='")
37616  *
37617  *     def __bool__(self):             # <<<<<<<<<<<<<<
37618  *         return self.ob_mpi != MPI_ERRHANDLER_NULL
37619  *
37620  */
37621 
37622 static int __pyx_pf_6mpi4py_3MPI_10Errhandler_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_10Errhandler_3__bool__(PyObject * __pyx_v_self)37623 static int __pyx_pf_6mpi4py_3MPI_10Errhandler_3__bool__(PyObject *__pyx_v_self) {
37624   int __pyx_r;
37625   __Pyx_RefNannyDeclarations
37626   __Pyx_RefNannySetupContext("__bool__");
37627 
37628   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":23
37629  *
37630  *     def __bool__(self):
37631  *         return self.ob_mpi != MPI_ERRHANDLER_NULL             # <<<<<<<<<<<<<<
37632  *
37633  *     def Free(self):
37634  */
37635   __pyx_r = (((struct PyMPIErrhandlerObject *)__pyx_v_self)->ob_mpi != MPI_ERRHANDLER_NULL);
37636   goto __pyx_L0;
37637 
37638   __pyx_r = 0;
37639   __pyx_L0:;
37640   __Pyx_RefNannyFinishContext();
37641   return __pyx_r;
37642 }
37643 
37644 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":25
37645  *         return self.ob_mpi != MPI_ERRHANDLER_NULL
37646  *
37647  *     def Free(self):             # <<<<<<<<<<<<<<
37648  *         """
37649  *         Free an error handler
37650  */
37651 
37652 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_4Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37653 static char __pyx_doc_6mpi4py_3MPI_10Errhandler_4Free[] = "Errhandler.Free(self)\n\n        Free an error handler\n        ";
__pyx_pf_6mpi4py_3MPI_10Errhandler_4Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37654 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_4Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37655   PyObject *__pyx_r = NULL;
37656   __Pyx_RefNannyDeclarations
37657   int __pyx_t_1;
37658   int __pyx_lineno = 0;
37659   const char *__pyx_filename = NULL;
37660   int __pyx_clineno = 0;
37661   __Pyx_RefNannySetupContext("Free");
37662   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
37663     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
37664   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
37665 
37666   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":29
37667  *         Free an error handler
37668  *         """
37669  *         CHKERR( MPI_Errhandler_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
37670  *
37671  *     # Fortran Handle
37672  */
37673   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Errhandler_free((&((struct PyMPIErrhandlerObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37674 
37675   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37676   goto __pyx_L0;
37677   __pyx_L1_error:;
37678   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
37679   __pyx_r = NULL;
37680   __pyx_L0:;
37681   __Pyx_XGIVEREF(__pyx_r);
37682   __Pyx_RefNannyFinishContext();
37683   return __pyx_r;
37684 }
37685 
37686 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":34
37687  *     # --------------
37688  *
37689  *     def py2f(self):             # <<<<<<<<<<<<<<
37690  *         """
37691  *         """
37692  */
37693 
37694 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_5py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37695 static char __pyx_doc_6mpi4py_3MPI_10Errhandler_5py2f[] = "Errhandler.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_10Errhandler_5py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37696 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_5py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37697   PyObject *__pyx_r = NULL;
37698   __Pyx_RefNannyDeclarations
37699   PyObject *__pyx_t_1 = NULL;
37700   int __pyx_lineno = 0;
37701   const char *__pyx_filename = NULL;
37702   int __pyx_clineno = 0;
37703   __Pyx_RefNannySetupContext("py2f");
37704   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
37705     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
37706   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
37707 
37708   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":37
37709  *         """
37710  *         """
37711  *         return MPI_Errhandler_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
37712  *
37713  *     @classmethod
37714  */
37715   __Pyx_XDECREF(__pyx_r);
37716   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Errhandler_c2f(((struct PyMPIErrhandlerObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37717   __Pyx_GOTREF(__pyx_t_1);
37718   __pyx_r = __pyx_t_1;
37719   __pyx_t_1 = 0;
37720   goto __pyx_L0;
37721 
37722   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37723   goto __pyx_L0;
37724   __pyx_L1_error:;
37725   __Pyx_XDECREF(__pyx_t_1);
37726   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
37727   __pyx_r = NULL;
37728   __pyx_L0:;
37729   __Pyx_XGIVEREF(__pyx_r);
37730   __Pyx_RefNannyFinishContext();
37731   return __pyx_r;
37732 }
37733 
37734 /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":40
37735  *
37736  *     @classmethod
37737  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
37738  *         """
37739  *         """
37740  */
37741 
37742 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_6f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37743 static char __pyx_doc_6mpi4py_3MPI_10Errhandler_6f2py[] = "Errhandler.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_10Errhandler_6f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)37744 static PyObject *__pyx_pf_6mpi4py_3MPI_10Errhandler_6f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37745   PyObject *__pyx_v_arg = 0;
37746   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
37747   PyObject *__pyx_r = NULL;
37748   __Pyx_RefNannyDeclarations
37749   PyObject *__pyx_t_1 = NULL;
37750   MPI_Fint __pyx_t_2;
37751   int __pyx_lineno = 0;
37752   const char *__pyx_filename = NULL;
37753   int __pyx_clineno = 0;
37754   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
37755   __Pyx_RefNannySetupContext("f2py");
37756   {
37757     PyObject* values[1] = {0};
37758     if (unlikely(__pyx_kwds)) {
37759       Py_ssize_t kw_args;
37760       switch (PyTuple_GET_SIZE(__pyx_args)) {
37761         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37762         case  0: break;
37763         default: goto __pyx_L5_argtuple_error;
37764       }
37765       kw_args = PyDict_Size(__pyx_kwds);
37766       switch (PyTuple_GET_SIZE(__pyx_args)) {
37767         case  0:
37768         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
37769         if (likely(values[0])) kw_args--;
37770         else goto __pyx_L5_argtuple_error;
37771       }
37772       if (unlikely(kw_args > 0)) {
37773         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37774       }
37775     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
37776       goto __pyx_L5_argtuple_error;
37777     } else {
37778       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37779     }
37780     __pyx_v_arg = values[0];
37781   }
37782   goto __pyx_L4_argument_unpacking_done;
37783   __pyx_L5_argtuple_error:;
37784   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
37785   __pyx_L3_error:;
37786   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
37787   __Pyx_RefNannyFinishContext();
37788   return NULL;
37789   __pyx_L4_argument_unpacking_done:;
37790 
37791   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":43
37792  *         """
37793  *         """
37794  *         cdef Errhandler errhandler = <Errhandler>cls()             # <<<<<<<<<<<<<<
37795  *         errhandler.ob_mpi = MPI_Errhandler_f2c(arg)
37796  *         return errhandler
37797  */
37798   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37799   __Pyx_GOTREF(__pyx_t_1);
37800   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
37801   __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
37802   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37803 
37804   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":44
37805  *         """
37806  *         cdef Errhandler errhandler = <Errhandler>cls()
37807  *         errhandler.ob_mpi = MPI_Errhandler_f2c(arg)             # <<<<<<<<<<<<<<
37808  *         return errhandler
37809  *
37810  */
37811   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37812   __pyx_v_errhandler->ob_mpi = MPI_Errhandler_f2c(__pyx_t_2);
37813 
37814   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":45
37815  *         cdef Errhandler errhandler = <Errhandler>cls()
37816  *         errhandler.ob_mpi = MPI_Errhandler_f2c(arg)
37817  *         return errhandler             # <<<<<<<<<<<<<<
37818  *
37819  *
37820  */
37821   __Pyx_XDECREF(__pyx_r);
37822   __Pyx_INCREF(((PyObject *)__pyx_v_errhandler));
37823   __pyx_r = ((PyObject *)__pyx_v_errhandler);
37824   goto __pyx_L0;
37825 
37826   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37827   goto __pyx_L0;
37828   __pyx_L1_error:;
37829   __Pyx_XDECREF(__pyx_t_1);
37830   __Pyx_AddTraceback("mpi4py.MPI.Errhandler.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
37831   __pyx_r = NULL;
37832   __pyx_L0:;
37833   __Pyx_XDECREF((PyObject *)__pyx_v_errhandler);
37834   __Pyx_XGIVEREF(__pyx_r);
37835   __Pyx_RefNannyFinishContext();
37836   return __pyx_r;
37837 }
37838 
37839 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":53
37840  *     """
37841  *
37842  *     def __cinit__(self):             # <<<<<<<<<<<<<<
37843  *         self.ob_mpi = MPI_DATATYPE_NULL
37844  *
37845  */
37846 
37847 static int __pyx_pf_6mpi4py_3MPI_8Datatype___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)37848 static int __pyx_pf_6mpi4py_3MPI_8Datatype___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37849   int __pyx_r;
37850   __Pyx_RefNannyDeclarations
37851   __Pyx_RefNannySetupContext("__cinit__");
37852   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
37853     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
37854   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
37855 
37856   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":54
37857  *
37858  *     def __cinit__(self):
37859  *         self.ob_mpi = MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
37860  *
37861  *     def __dealloc__(self):
37862  */
37863   ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi = MPI_DATATYPE_NULL;
37864 
37865   __pyx_r = 0;
37866   __Pyx_RefNannyFinishContext();
37867   return __pyx_r;
37868 }
37869 
37870 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":56
37871  *         self.ob_mpi = MPI_DATATYPE_NULL
37872  *
37873  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
37874  *         if not (self.flags & PyMPI_OWNED): return
37875  *         CHKERR( del_Datatype(&self.ob_mpi) )
37876  */
37877 
37878 static void __pyx_pf_6mpi4py_3MPI_8Datatype_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_1__dealloc__(PyObject * __pyx_v_self)37879 static void __pyx_pf_6mpi4py_3MPI_8Datatype_1__dealloc__(PyObject *__pyx_v_self) {
37880   __Pyx_RefNannyDeclarations
37881   int __pyx_t_1;
37882   int __pyx_t_2;
37883   int __pyx_lineno = 0;
37884   const char *__pyx_filename = NULL;
37885   int __pyx_clineno = 0;
37886   __Pyx_RefNannySetupContext("__dealloc__");
37887 
37888   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":57
37889  *
37890  *     def __dealloc__(self):
37891  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
37892  *         CHKERR( del_Datatype(&self.ob_mpi) )
37893  *
37894  */
37895   __pyx_t_1 = (!(((struct PyMPIDatatypeObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
37896   if (__pyx_t_1) {
37897     goto __pyx_L0;
37898     goto __pyx_L5;
37899   }
37900   __pyx_L5:;
37901 
37902   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":58
37903  *     def __dealloc__(self):
37904  *         if not (self.flags & PyMPI_OWNED): return
37905  *         CHKERR( del_Datatype(&self.ob_mpi) )             # <<<<<<<<<<<<<<
37906  *
37907  *     def __richcmp__(self, other, int op):
37908  */
37909   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Datatype((&((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
37910 
37911   goto __pyx_L0;
37912   __pyx_L1_error:;
37913   __Pyx_AddTraceback("mpi4py.MPI.Datatype.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37914   __pyx_L0:;
37915   __Pyx_RefNannyFinishContext();
37916 }
37917 
37918 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":60
37919  *         CHKERR( del_Datatype(&self.ob_mpi) )
37920  *
37921  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
37922  *         if not isinstance(self,  Datatype): return NotImplemented
37923  *         if not isinstance(other, Datatype): return NotImplemented
37924  */
37925 
37926 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)37927 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
37928   struct PyMPIDatatypeObject *__pyx_v_s = 0;
37929   struct PyMPIDatatypeObject *__pyx_v_o = 0;
37930   PyObject *__pyx_r = NULL;
37931   __Pyx_RefNannyDeclarations
37932   PyObject *__pyx_t_1 = NULL;
37933   int __pyx_t_2;
37934   int __pyx_t_3;
37935   int __pyx_lineno = 0;
37936   const char *__pyx_filename = NULL;
37937   int __pyx_clineno = 0;
37938   __Pyx_RefNannySetupContext("__richcmp__");
37939 
37940   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":61
37941  *
37942  *     def __richcmp__(self, other, int op):
37943  *         if not isinstance(self,  Datatype): return NotImplemented             # <<<<<<<<<<<<<<
37944  *         if not isinstance(other, Datatype): return NotImplemented
37945  *         cdef Datatype s = <Datatype>self, o = <Datatype>other
37946  */
37947   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
37948   __Pyx_INCREF(__pyx_t_1);
37949   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
37950   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37951   __pyx_t_3 = (!__pyx_t_2);
37952   if (__pyx_t_3) {
37953     __Pyx_XDECREF(__pyx_r);
37954     __Pyx_INCREF(__pyx_builtin_NotImplemented);
37955     __pyx_r = __pyx_builtin_NotImplemented;
37956     goto __pyx_L0;
37957     goto __pyx_L5;
37958   }
37959   __pyx_L5:;
37960 
37961   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":62
37962  *     def __richcmp__(self, other, int op):
37963  *         if not isinstance(self,  Datatype): return NotImplemented
37964  *         if not isinstance(other, Datatype): return NotImplemented             # <<<<<<<<<<<<<<
37965  *         cdef Datatype s = <Datatype>self, o = <Datatype>other
37966  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37967  */
37968   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype));
37969   __Pyx_INCREF(__pyx_t_1);
37970   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
37971   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37972   __pyx_t_2 = (!__pyx_t_3);
37973   if (__pyx_t_2) {
37974     __Pyx_XDECREF(__pyx_r);
37975     __Pyx_INCREF(__pyx_builtin_NotImplemented);
37976     __pyx_r = __pyx_builtin_NotImplemented;
37977     goto __pyx_L0;
37978     goto __pyx_L6;
37979   }
37980   __pyx_L6:;
37981 
37982   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":63
37983  *         if not isinstance(self,  Datatype): return NotImplemented
37984  *         if not isinstance(other, Datatype): return NotImplemented
37985  *         cdef Datatype s = <Datatype>self, o = <Datatype>other             # <<<<<<<<<<<<<<
37986  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37987  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
37988  */
37989   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_v_self)));
37990   __pyx_v_s = ((struct PyMPIDatatypeObject *)__pyx_v_self);
37991   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_v_other)));
37992   __pyx_v_o = ((struct PyMPIDatatypeObject *)__pyx_v_other);
37993 
37994   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":65
37995  *         cdef Datatype s = <Datatype>self, o = <Datatype>other
37996  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
37997  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
37998  *         else: raise TypeError("only '==' and '!='")
37999  *
38000  */
38001   switch (__pyx_v_op) {
38002 
38003     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":64
38004  *         if not isinstance(other, Datatype): return NotImplemented
38005  *         cdef Datatype s = <Datatype>self, o = <Datatype>other
38006  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
38007  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
38008  *         else: raise TypeError("only '==' and '!='")
38009  */
38010     case Py_EQ:
38011     __Pyx_XDECREF(__pyx_r);
38012     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38013     __Pyx_GOTREF(__pyx_t_1);
38014     __pyx_r = __pyx_t_1;
38015     __pyx_t_1 = 0;
38016     goto __pyx_L0;
38017     break;
38018 
38019     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":65
38020  *         cdef Datatype s = <Datatype>self, o = <Datatype>other
38021  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
38022  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
38023  *         else: raise TypeError("only '==' and '!='")
38024  *
38025  */
38026     case Py_NE:
38027     __Pyx_XDECREF(__pyx_r);
38028     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38029     __Pyx_GOTREF(__pyx_t_1);
38030     __pyx_r = __pyx_t_1;
38031     __pyx_t_1 = 0;
38032     goto __pyx_L0;
38033     break;
38034     default:
38035 
38036     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":66
38037  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
38038  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
38039  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
38040  *
38041  *     def __bool__(self):
38042  */
38043     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_57), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38044     __Pyx_GOTREF(__pyx_t_1);
38045     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
38046     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38047     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38048     break;
38049   }
38050 
38051   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38052   goto __pyx_L0;
38053   __pyx_L1_error:;
38054   __Pyx_XDECREF(__pyx_t_1);
38055   __Pyx_AddTraceback("mpi4py.MPI.Datatype.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38056   __pyx_r = NULL;
38057   __pyx_L0:;
38058   __Pyx_XDECREF((PyObject *)__pyx_v_s);
38059   __Pyx_XDECREF((PyObject *)__pyx_v_o);
38060   __Pyx_XGIVEREF(__pyx_r);
38061   __Pyx_RefNannyFinishContext();
38062   return __pyx_r;
38063 }
38064 
38065 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":68
38066  *         else: raise TypeError("only '==' and '!='")
38067  *
38068  *     def __bool__(self):             # <<<<<<<<<<<<<<
38069  *         return self.ob_mpi != MPI_DATATYPE_NULL
38070  *
38071  */
38072 
38073 static int __pyx_pf_6mpi4py_3MPI_8Datatype_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_3__bool__(PyObject * __pyx_v_self)38074 static int __pyx_pf_6mpi4py_3MPI_8Datatype_3__bool__(PyObject *__pyx_v_self) {
38075   int __pyx_r;
38076   __Pyx_RefNannyDeclarations
38077   __Pyx_RefNannySetupContext("__bool__");
38078 
38079   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":69
38080  *
38081  *     def __bool__(self):
38082  *         return self.ob_mpi != MPI_DATATYPE_NULL             # <<<<<<<<<<<<<<
38083  *
38084  *     # Datatype Accessors
38085  */
38086   __pyx_r = (((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi != MPI_DATATYPE_NULL);
38087   goto __pyx_L0;
38088 
38089   __pyx_r = 0;
38090   __pyx_L0:;
38091   __Pyx_RefNannyFinishContext();
38092   return __pyx_r;
38093 }
38094 
38095 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":74
38096  *     # ------------------
38097  *
38098  *     def Get_extent(self):             # <<<<<<<<<<<<<<
38099  *         """
38100  *         Return lower bound and extent of datatype
38101  */
38102 
38103 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4Get_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38104 static char __pyx_doc_6mpi4py_3MPI_8Datatype_4Get_extent[] = "Datatype.Get_extent(self)\n\n        Return lower bound and extent of datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_4Get_extent(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38105 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4Get_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38106   MPI_Aint __pyx_v_lb;
38107   MPI_Aint __pyx_v_extent;
38108   PyObject *__pyx_r = NULL;
38109   __Pyx_RefNannyDeclarations
38110   int __pyx_t_1;
38111   PyObject *__pyx_t_2 = NULL;
38112   PyObject *__pyx_t_3 = NULL;
38113   PyObject *__pyx_t_4 = NULL;
38114   int __pyx_lineno = 0;
38115   const char *__pyx_filename = NULL;
38116   int __pyx_clineno = 0;
38117   __Pyx_RefNannySetupContext("Get_extent");
38118   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
38119     __Pyx_RaiseArgtupleInvalid("Get_extent", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
38120   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_extent", 0))) return NULL;
38121 
38122   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":78
38123  *         Return lower bound and extent of datatype
38124  *         """
38125  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
38126  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38127  *         return (lb, extent)
38128  */
38129   __pyx_v_lb = 0;
38130   __pyx_v_extent = 0;
38131 
38132   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":79
38133  *         """
38134  *         cdef MPI_Aint lb = 0, extent = 0
38135  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
38136  *         return (lb, extent)
38137  *
38138  */
38139   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38140 
38141   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":80
38142  *         cdef MPI_Aint lb = 0, extent = 0
38143  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38144  *         return (lb, extent)             # <<<<<<<<<<<<<<
38145  *
38146  *     property extent:
38147  */
38148   __Pyx_XDECREF(__pyx_r);
38149   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38150   __Pyx_GOTREF(__pyx_t_2);
38151   __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38152   __Pyx_GOTREF(__pyx_t_3);
38153   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38154   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
38155   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
38156   __Pyx_GIVEREF(__pyx_t_2);
38157   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
38158   __Pyx_GIVEREF(__pyx_t_3);
38159   __pyx_t_2 = 0;
38160   __pyx_t_3 = 0;
38161   __pyx_r = ((PyObject *)__pyx_t_4);
38162   __pyx_t_4 = 0;
38163   goto __pyx_L0;
38164 
38165   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38166   goto __pyx_L0;
38167   __pyx_L1_error:;
38168   __Pyx_XDECREF(__pyx_t_2);
38169   __Pyx_XDECREF(__pyx_t_3);
38170   __Pyx_XDECREF(__pyx_t_4);
38171   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_extent", __pyx_clineno, __pyx_lineno, __pyx_filename);
38172   __pyx_r = NULL;
38173   __pyx_L0:;
38174   __Pyx_XGIVEREF(__pyx_r);
38175   __Pyx_RefNannyFinishContext();
38176   return __pyx_r;
38177 }
38178 
38179 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":84
38180  *     property extent:
38181  *         """extent"""
38182  *         def __get__(self):             # <<<<<<<<<<<<<<
38183  *             cdef MPI_Aint lb = 0, extent = 0
38184  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38185  */
38186 
38187 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_6extent___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_6extent___get__(PyObject * __pyx_v_self)38188 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_6extent___get__(PyObject *__pyx_v_self) {
38189   MPI_Aint __pyx_v_lb;
38190   MPI_Aint __pyx_v_extent;
38191   PyObject *__pyx_r = NULL;
38192   __Pyx_RefNannyDeclarations
38193   int __pyx_t_1;
38194   PyObject *__pyx_t_2 = NULL;
38195   int __pyx_lineno = 0;
38196   const char *__pyx_filename = NULL;
38197   int __pyx_clineno = 0;
38198   __Pyx_RefNannySetupContext("__get__");
38199 
38200   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":85
38201  *         """extent"""
38202  *         def __get__(self):
38203  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
38204  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38205  *             return extent
38206  */
38207   __pyx_v_lb = 0;
38208   __pyx_v_extent = 0;
38209 
38210   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":86
38211  *         def __get__(self):
38212  *             cdef MPI_Aint lb = 0, extent = 0
38213  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
38214  *             return extent
38215  *
38216  */
38217   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38218 
38219   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":87
38220  *             cdef MPI_Aint lb = 0, extent = 0
38221  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38222  *             return extent             # <<<<<<<<<<<<<<
38223  *
38224  *     property lb:
38225  */
38226   __Pyx_XDECREF(__pyx_r);
38227   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38228   __Pyx_GOTREF(__pyx_t_2);
38229   __pyx_r = __pyx_t_2;
38230   __pyx_t_2 = 0;
38231   goto __pyx_L0;
38232 
38233   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38234   goto __pyx_L0;
38235   __pyx_L1_error:;
38236   __Pyx_XDECREF(__pyx_t_2);
38237   __Pyx_AddTraceback("mpi4py.MPI.Datatype.extent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38238   __pyx_r = NULL;
38239   __pyx_L0:;
38240   __Pyx_XGIVEREF(__pyx_r);
38241   __Pyx_RefNannyFinishContext();
38242   return __pyx_r;
38243 }
38244 
38245 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":91
38246  *     property lb:
38247  *         """lower bound"""
38248  *         def __get__(self):             # <<<<<<<<<<<<<<
38249  *             cdef MPI_Aint lb = 0, extent = 0
38250  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38251  */
38252 
38253 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2lb___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_2lb___get__(PyObject * __pyx_v_self)38254 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2lb___get__(PyObject *__pyx_v_self) {
38255   MPI_Aint __pyx_v_lb;
38256   MPI_Aint __pyx_v_extent;
38257   PyObject *__pyx_r = NULL;
38258   __Pyx_RefNannyDeclarations
38259   int __pyx_t_1;
38260   PyObject *__pyx_t_2 = NULL;
38261   int __pyx_lineno = 0;
38262   const char *__pyx_filename = NULL;
38263   int __pyx_clineno = 0;
38264   __Pyx_RefNannySetupContext("__get__");
38265 
38266   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":92
38267  *         """lower bound"""
38268  *         def __get__(self):
38269  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
38270  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38271  *             return lb
38272  */
38273   __pyx_v_lb = 0;
38274   __pyx_v_extent = 0;
38275 
38276   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":93
38277  *         def __get__(self):
38278  *             cdef MPI_Aint lb = 0, extent = 0
38279  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
38280  *             return lb
38281  *
38282  */
38283   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38284 
38285   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":94
38286  *             cdef MPI_Aint lb = 0, extent = 0
38287  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38288  *             return lb             # <<<<<<<<<<<<<<
38289  *
38290  *     property ub:
38291  */
38292   __Pyx_XDECREF(__pyx_r);
38293   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38294   __Pyx_GOTREF(__pyx_t_2);
38295   __pyx_r = __pyx_t_2;
38296   __pyx_t_2 = 0;
38297   goto __pyx_L0;
38298 
38299   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38300   goto __pyx_L0;
38301   __pyx_L1_error:;
38302   __Pyx_XDECREF(__pyx_t_2);
38303   __Pyx_AddTraceback("mpi4py.MPI.Datatype.lb.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38304   __pyx_r = NULL;
38305   __pyx_L0:;
38306   __Pyx_XGIVEREF(__pyx_r);
38307   __Pyx_RefNannyFinishContext();
38308   return __pyx_r;
38309 }
38310 
38311 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":98
38312  *     property ub:
38313  *         """upper bound"""
38314  *         def __get__(self):             # <<<<<<<<<<<<<<
38315  *             cdef MPI_Aint lb = 0, extent = 0
38316  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38317  */
38318 
38319 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2ub___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_2ub___get__(PyObject * __pyx_v_self)38320 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_2ub___get__(PyObject *__pyx_v_self) {
38321   MPI_Aint __pyx_v_lb;
38322   MPI_Aint __pyx_v_extent;
38323   PyObject *__pyx_r = NULL;
38324   __Pyx_RefNannyDeclarations
38325   int __pyx_t_1;
38326   PyObject *__pyx_t_2 = NULL;
38327   int __pyx_lineno = 0;
38328   const char *__pyx_filename = NULL;
38329   int __pyx_clineno = 0;
38330   __Pyx_RefNannySetupContext("__get__");
38331 
38332   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":99
38333  *         """upper bound"""
38334  *         def __get__(self):
38335  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
38336  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38337  *             return lb + extent
38338  */
38339   __pyx_v_lb = 0;
38340   __pyx_v_extent = 0;
38341 
38342   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":100
38343  *         def __get__(self):
38344  *             cdef MPI_Aint lb = 0, extent = 0
38345  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
38346  *             return lb + extent
38347  *
38348  */
38349   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38350 
38351   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":101
38352  *             cdef MPI_Aint lb = 0, extent = 0
38353  *             CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
38354  *             return lb + extent             # <<<<<<<<<<<<<<
38355  *
38356  *     def Get_size(self):
38357  */
38358   __Pyx_XDECREF(__pyx_r);
38359   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38360   __Pyx_GOTREF(__pyx_t_2);
38361   __pyx_r = __pyx_t_2;
38362   __pyx_t_2 = 0;
38363   goto __pyx_L0;
38364 
38365   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38366   goto __pyx_L0;
38367   __pyx_L1_error:;
38368   __Pyx_XDECREF(__pyx_t_2);
38369   __Pyx_AddTraceback("mpi4py.MPI.Datatype.ub.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38370   __pyx_r = NULL;
38371   __pyx_L0:;
38372   __Pyx_XGIVEREF(__pyx_r);
38373   __Pyx_RefNannyFinishContext();
38374   return __pyx_r;
38375 }
38376 
38377 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":103
38378  *             return lb + extent
38379  *
38380  *     def Get_size(self):             # <<<<<<<<<<<<<<
38381  *         """
38382  *         Return the number of bytes occupied
38383  */
38384 
38385 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_5Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38386 static char __pyx_doc_6mpi4py_3MPI_8Datatype_5Get_size[] = "Datatype.Get_size(self)\n\n        Return the number of bytes occupied\n        by entries in the datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_5Get_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38387 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_5Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38388   int __pyx_v_size;
38389   PyObject *__pyx_r = NULL;
38390   __Pyx_RefNannyDeclarations
38391   int __pyx_t_1;
38392   PyObject *__pyx_t_2 = NULL;
38393   int __pyx_lineno = 0;
38394   const char *__pyx_filename = NULL;
38395   int __pyx_clineno = 0;
38396   __Pyx_RefNannySetupContext("Get_size");
38397   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
38398     __Pyx_RaiseArgtupleInvalid("Get_size", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
38399   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_size", 0))) return NULL;
38400 
38401   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":108
38402  *         by entries in the datatype
38403  *         """
38404  *         cdef int size = 0             # <<<<<<<<<<<<<<
38405  *         CHKERR( MPI_Type_size(self.ob_mpi, &size) )
38406  *         return size
38407  */
38408   __pyx_v_size = 0;
38409 
38410   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":109
38411  *         """
38412  *         cdef int size = 0
38413  *         CHKERR( MPI_Type_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
38414  *         return size
38415  *
38416  */
38417   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_size(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38418 
38419   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":110
38420  *         cdef int size = 0
38421  *         CHKERR( MPI_Type_size(self.ob_mpi, &size) )
38422  *         return size             # <<<<<<<<<<<<<<
38423  *
38424  *     property size:
38425  */
38426   __Pyx_XDECREF(__pyx_r);
38427   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38428   __Pyx_GOTREF(__pyx_t_2);
38429   __pyx_r = __pyx_t_2;
38430   __pyx_t_2 = 0;
38431   goto __pyx_L0;
38432 
38433   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38434   goto __pyx_L0;
38435   __pyx_L1_error:;
38436   __Pyx_XDECREF(__pyx_t_2);
38437   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
38438   __pyx_r = NULL;
38439   __pyx_L0:;
38440   __Pyx_XGIVEREF(__pyx_r);
38441   __Pyx_RefNannyFinishContext();
38442   return __pyx_r;
38443 }
38444 
38445 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":114
38446  *     property size:
38447  *         """size (in bytes)"""
38448  *         def __get__(self):             # <<<<<<<<<<<<<<
38449  *             cdef int size = 0
38450  *             CHKERR( MPI_Type_size(self.ob_mpi, &size) )
38451  */
38452 
38453 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4size___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_4size___get__(PyObject * __pyx_v_self)38454 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4size___get__(PyObject *__pyx_v_self) {
38455   int __pyx_v_size;
38456   PyObject *__pyx_r = NULL;
38457   __Pyx_RefNannyDeclarations
38458   int __pyx_t_1;
38459   PyObject *__pyx_t_2 = NULL;
38460   int __pyx_lineno = 0;
38461   const char *__pyx_filename = NULL;
38462   int __pyx_clineno = 0;
38463   __Pyx_RefNannySetupContext("__get__");
38464 
38465   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":115
38466  *         """size (in bytes)"""
38467  *         def __get__(self):
38468  *             cdef int size = 0             # <<<<<<<<<<<<<<
38469  *             CHKERR( MPI_Type_size(self.ob_mpi, &size) )
38470  *             return size
38471  */
38472   __pyx_v_size = 0;
38473 
38474   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":116
38475  *         def __get__(self):
38476  *             cdef int size = 0
38477  *             CHKERR( MPI_Type_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
38478  *             return size
38479  *
38480  */
38481   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_size(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38482 
38483   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":117
38484  *             cdef int size = 0
38485  *             CHKERR( MPI_Type_size(self.ob_mpi, &size) )
38486  *             return size             # <<<<<<<<<<<<<<
38487  *
38488  *     # Datatype Constructors
38489  */
38490   __Pyx_XDECREF(__pyx_r);
38491   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38492   __Pyx_GOTREF(__pyx_t_2);
38493   __pyx_r = __pyx_t_2;
38494   __pyx_t_2 = 0;
38495   goto __pyx_L0;
38496 
38497   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38498   goto __pyx_L0;
38499   __pyx_L1_error:;
38500   __Pyx_XDECREF(__pyx_t_2);
38501   __Pyx_AddTraceback("mpi4py.MPI.Datatype.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38502   __pyx_r = NULL;
38503   __pyx_L0:;
38504   __Pyx_XGIVEREF(__pyx_r);
38505   __Pyx_RefNannyFinishContext();
38506   return __pyx_r;
38507 }
38508 
38509 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":122
38510  *     # ---------------------
38511  *
38512  *     def Dup(self):             # <<<<<<<<<<<<<<
38513  *         """
38514  *         Duplicate a datatype
38515  */
38516 
38517 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_6Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38518 static char __pyx_doc_6mpi4py_3MPI_8Datatype_6Dup[] = "Datatype.Dup(self)\n\n        Duplicate a datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_6Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38519 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_6Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38520   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
38521   PyObject *__pyx_r = NULL;
38522   __Pyx_RefNannyDeclarations
38523   PyObject *__pyx_t_1 = NULL;
38524   int __pyx_t_2;
38525   int __pyx_lineno = 0;
38526   const char *__pyx_filename = NULL;
38527   int __pyx_clineno = 0;
38528   __Pyx_RefNannySetupContext("Dup");
38529   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
38530     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
38531   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
38532 
38533   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":126
38534  *         Duplicate a datatype
38535  *         """
38536  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
38537  *         CHKERR( MPI_Type_dup(self.ob_mpi, &datatype.ob_mpi) )
38538  *         return datatype
38539  */
38540   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38541   __Pyx_GOTREF(__pyx_t_1);
38542   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
38543   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
38544   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38545 
38546   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":127
38547  *         """
38548  *         cdef Datatype datatype = <Datatype>type(self)()
38549  *         CHKERR( MPI_Type_dup(self.ob_mpi, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
38550  *         return datatype
38551  *
38552  */
38553   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_dup(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38554 
38555   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":128
38556  *         cdef Datatype datatype = <Datatype>type(self)()
38557  *         CHKERR( MPI_Type_dup(self.ob_mpi, &datatype.ob_mpi) )
38558  *         return datatype             # <<<<<<<<<<<<<<
38559  *
38560  *     Create_dup = Dup #: convenience alias
38561  */
38562   __Pyx_XDECREF(__pyx_r);
38563   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
38564   __pyx_r = ((PyObject *)__pyx_v_datatype);
38565   goto __pyx_L0;
38566 
38567   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38568   goto __pyx_L0;
38569   __pyx_L1_error:;
38570   __Pyx_XDECREF(__pyx_t_1);
38571   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
38572   __pyx_r = NULL;
38573   __pyx_L0:;
38574   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
38575   __Pyx_XGIVEREF(__pyx_r);
38576   __Pyx_RefNannyFinishContext();
38577   return __pyx_r;
38578 }
38579 
38580 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":132
38581  *     Create_dup = Dup #: convenience alias
38582  *
38583  *     def Create_contiguous(self, int count):             # <<<<<<<<<<<<<<
38584  *         """
38585  *         Create a contiguous datatype
38586  */
38587 
38588 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7Create_contiguous(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38589 static char __pyx_doc_6mpi4py_3MPI_8Datatype_7Create_contiguous[] = "Datatype.Create_contiguous(self, int count)\n\n        Create a contiguous datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_7Create_contiguous(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38590 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7Create_contiguous(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38591   int __pyx_v_count;
38592   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
38593   PyObject *__pyx_r = NULL;
38594   __Pyx_RefNannyDeclarations
38595   PyObject *__pyx_t_1 = NULL;
38596   int __pyx_t_2;
38597   int __pyx_lineno = 0;
38598   const char *__pyx_filename = NULL;
38599   int __pyx_clineno = 0;
38600   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__count,0};
38601   __Pyx_RefNannySetupContext("Create_contiguous");
38602   {
38603     PyObject* values[1] = {0};
38604     if (unlikely(__pyx_kwds)) {
38605       Py_ssize_t kw_args;
38606       switch (PyTuple_GET_SIZE(__pyx_args)) {
38607         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38608         case  0: break;
38609         default: goto __pyx_L5_argtuple_error;
38610       }
38611       kw_args = PyDict_Size(__pyx_kwds);
38612       switch (PyTuple_GET_SIZE(__pyx_args)) {
38613         case  0:
38614         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
38615         if (likely(values[0])) kw_args--;
38616         else goto __pyx_L5_argtuple_error;
38617       }
38618       if (unlikely(kw_args > 0)) {
38619         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_contiguous") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38620       }
38621     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
38622       goto __pyx_L5_argtuple_error;
38623     } else {
38624       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38625     }
38626     __pyx_v_count = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38627   }
38628   goto __pyx_L4_argument_unpacking_done;
38629   __pyx_L5_argtuple_error:;
38630   __Pyx_RaiseArgtupleInvalid("Create_contiguous", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38631   __pyx_L3_error:;
38632   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_contiguous", __pyx_clineno, __pyx_lineno, __pyx_filename);
38633   __Pyx_RefNannyFinishContext();
38634   return NULL;
38635   __pyx_L4_argument_unpacking_done:;
38636 
38637   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":136
38638  *         Create a contiguous datatype
38639  *         """
38640  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
38641  *         CHKERR( MPI_Type_contiguous(count, self.ob_mpi,
38642  *                                     &datatype.ob_mpi) )
38643  */
38644   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38645   __Pyx_GOTREF(__pyx_t_1);
38646   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
38647   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
38648   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38649 
38650   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":138
38651  *         cdef Datatype datatype = <Datatype>type(self)()
38652  *         CHKERR( MPI_Type_contiguous(count, self.ob_mpi,
38653  *                                     &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
38654  *         return datatype
38655  *
38656  */
38657   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_contiguous(__pyx_v_count, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38658 
38659   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":139
38660  *         CHKERR( MPI_Type_contiguous(count, self.ob_mpi,
38661  *                                     &datatype.ob_mpi) )
38662  *         return datatype             # <<<<<<<<<<<<<<
38663  *
38664  *     def Create_vector(self, int count, int blocklength, int stride):
38665  */
38666   __Pyx_XDECREF(__pyx_r);
38667   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
38668   __pyx_r = ((PyObject *)__pyx_v_datatype);
38669   goto __pyx_L0;
38670 
38671   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38672   goto __pyx_L0;
38673   __pyx_L1_error:;
38674   __Pyx_XDECREF(__pyx_t_1);
38675   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_contiguous", __pyx_clineno, __pyx_lineno, __pyx_filename);
38676   __pyx_r = NULL;
38677   __pyx_L0:;
38678   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
38679   __Pyx_XGIVEREF(__pyx_r);
38680   __Pyx_RefNannyFinishContext();
38681   return __pyx_r;
38682 }
38683 
38684 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":141
38685  *         return datatype
38686  *
38687  *     def Create_vector(self, int count, int blocklength, int stride):             # <<<<<<<<<<<<<<
38688  *         """
38689  *         Create a vector (strided) datatype
38690  */
38691 
38692 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_8Create_vector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38693 static char __pyx_doc_6mpi4py_3MPI_8Datatype_8Create_vector[] = "Datatype.Create_vector(self, int count, int blocklength, int stride)\n\n        Create a vector (strided) datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_8Create_vector(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38694 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_8Create_vector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38695   int __pyx_v_count;
38696   int __pyx_v_blocklength;
38697   int __pyx_v_stride;
38698   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
38699   PyObject *__pyx_r = NULL;
38700   __Pyx_RefNannyDeclarations
38701   PyObject *__pyx_t_1 = NULL;
38702   int __pyx_t_2;
38703   int __pyx_lineno = 0;
38704   const char *__pyx_filename = NULL;
38705   int __pyx_clineno = 0;
38706   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__count,&__pyx_n_s__blocklength,&__pyx_n_s__stride,0};
38707   __Pyx_RefNannySetupContext("Create_vector");
38708   {
38709     PyObject* values[3] = {0,0,0};
38710     if (unlikely(__pyx_kwds)) {
38711       Py_ssize_t kw_args;
38712       switch (PyTuple_GET_SIZE(__pyx_args)) {
38713         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
38714         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38715         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38716         case  0: break;
38717         default: goto __pyx_L5_argtuple_error;
38718       }
38719       kw_args = PyDict_Size(__pyx_kwds);
38720       switch (PyTuple_GET_SIZE(__pyx_args)) {
38721         case  0:
38722         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
38723         if (likely(values[0])) kw_args--;
38724         else goto __pyx_L5_argtuple_error;
38725         case  1:
38726         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklength);
38727         if (likely(values[1])) kw_args--;
38728         else {
38729           __Pyx_RaiseArgtupleInvalid("Create_vector", 1, 3, 3, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38730         }
38731         case  2:
38732         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stride);
38733         if (likely(values[2])) kw_args--;
38734         else {
38735           __Pyx_RaiseArgtupleInvalid("Create_vector", 1, 3, 3, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38736         }
38737       }
38738       if (unlikely(kw_args > 0)) {
38739         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_vector") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38740       }
38741     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
38742       goto __pyx_L5_argtuple_error;
38743     } else {
38744       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38745       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38746       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
38747     }
38748     __pyx_v_count = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38749     __pyx_v_blocklength = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_blocklength == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38750     __pyx_v_stride = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_stride == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38751   }
38752   goto __pyx_L4_argument_unpacking_done;
38753   __pyx_L5_argtuple_error:;
38754   __Pyx_RaiseArgtupleInvalid("Create_vector", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38755   __pyx_L3_error:;
38756   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_vector", __pyx_clineno, __pyx_lineno, __pyx_filename);
38757   __Pyx_RefNannyFinishContext();
38758   return NULL;
38759   __pyx_L4_argument_unpacking_done:;
38760 
38761   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":145
38762  *         Create a vector (strided) datatype
38763  *         """
38764  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
38765  *         CHKERR( MPI_Type_vector(count, blocklength, stride,
38766  *                                 self.ob_mpi, &datatype.ob_mpi) )
38767  */
38768   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38769   __Pyx_GOTREF(__pyx_t_1);
38770   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
38771   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
38772   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38773 
38774   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":147
38775  *         cdef Datatype datatype = <Datatype>type(self)()
38776  *         CHKERR( MPI_Type_vector(count, blocklength, stride,
38777  *                                 self.ob_mpi, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
38778  *         return datatype
38779  *
38780  */
38781   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_vector(__pyx_v_count, __pyx_v_blocklength, __pyx_v_stride, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38782 
38783   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":148
38784  *         CHKERR( MPI_Type_vector(count, blocklength, stride,
38785  *                                 self.ob_mpi, &datatype.ob_mpi) )
38786  *         return datatype             # <<<<<<<<<<<<<<
38787  *
38788  *     def Create_hvector(self, int count, int blocklength, Aint stride):
38789  */
38790   __Pyx_XDECREF(__pyx_r);
38791   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
38792   __pyx_r = ((PyObject *)__pyx_v_datatype);
38793   goto __pyx_L0;
38794 
38795   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38796   goto __pyx_L0;
38797   __pyx_L1_error:;
38798   __Pyx_XDECREF(__pyx_t_1);
38799   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_vector", __pyx_clineno, __pyx_lineno, __pyx_filename);
38800   __pyx_r = NULL;
38801   __pyx_L0:;
38802   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
38803   __Pyx_XGIVEREF(__pyx_r);
38804   __Pyx_RefNannyFinishContext();
38805   return __pyx_r;
38806 }
38807 
38808 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":150
38809  *         return datatype
38810  *
38811  *     def Create_hvector(self, int count, int blocklength, Aint stride):             # <<<<<<<<<<<<<<
38812  *         """
38813  *         Create a vector (strided) datatype
38814  */
38815 
38816 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_9Create_hvector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38817 static char __pyx_doc_6mpi4py_3MPI_8Datatype_9Create_hvector[] = "Datatype.Create_hvector(self, int count, int blocklength, Aint stride)\n\n        Create a vector (strided) datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_9Create_hvector(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38818 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_9Create_hvector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38819   int __pyx_v_count;
38820   int __pyx_v_blocklength;
38821   MPI_Aint __pyx_v_stride;
38822   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
38823   PyObject *__pyx_r = NULL;
38824   __Pyx_RefNannyDeclarations
38825   PyObject *__pyx_t_1 = NULL;
38826   int __pyx_t_2;
38827   int __pyx_lineno = 0;
38828   const char *__pyx_filename = NULL;
38829   int __pyx_clineno = 0;
38830   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__count,&__pyx_n_s__blocklength,&__pyx_n_s__stride,0};
38831   __Pyx_RefNannySetupContext("Create_hvector");
38832   {
38833     PyObject* values[3] = {0,0,0};
38834     if (unlikely(__pyx_kwds)) {
38835       Py_ssize_t kw_args;
38836       switch (PyTuple_GET_SIZE(__pyx_args)) {
38837         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
38838         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38839         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38840         case  0: break;
38841         default: goto __pyx_L5_argtuple_error;
38842       }
38843       kw_args = PyDict_Size(__pyx_kwds);
38844       switch (PyTuple_GET_SIZE(__pyx_args)) {
38845         case  0:
38846         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
38847         if (likely(values[0])) kw_args--;
38848         else goto __pyx_L5_argtuple_error;
38849         case  1:
38850         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklength);
38851         if (likely(values[1])) kw_args--;
38852         else {
38853           __Pyx_RaiseArgtupleInvalid("Create_hvector", 1, 3, 3, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38854         }
38855         case  2:
38856         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stride);
38857         if (likely(values[2])) kw_args--;
38858         else {
38859           __Pyx_RaiseArgtupleInvalid("Create_hvector", 1, 3, 3, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38860         }
38861       }
38862       if (unlikely(kw_args > 0)) {
38863         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_hvector") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38864       }
38865     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
38866       goto __pyx_L5_argtuple_error;
38867     } else {
38868       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38869       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38870       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
38871     }
38872     __pyx_v_count = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38873     __pyx_v_blocklength = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_blocklength == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38874     __pyx_v_stride = __Pyx_PyInt_from_py_MPI_Aint(values[2]); if (unlikely((__pyx_v_stride == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38875   }
38876   goto __pyx_L4_argument_unpacking_done;
38877   __pyx_L5_argtuple_error:;
38878   __Pyx_RaiseArgtupleInvalid("Create_hvector", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38879   __pyx_L3_error:;
38880   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_hvector", __pyx_clineno, __pyx_lineno, __pyx_filename);
38881   __Pyx_RefNannyFinishContext();
38882   return NULL;
38883   __pyx_L4_argument_unpacking_done:;
38884 
38885   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":154
38886  *         Create a vector (strided) datatype
38887  *         """
38888  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
38889  *         CHKERR( MPI_Type_create_hvector(count, blocklength, stride,
38890  *                                         self.ob_mpi,
38891  */
38892   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38893   __Pyx_GOTREF(__pyx_t_1);
38894   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
38895   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
38896   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38897 
38898   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":157
38899  *         CHKERR( MPI_Type_create_hvector(count, blocklength, stride,
38900  *                                         self.ob_mpi,
38901  *                                         &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
38902  *         return datatype
38903  *
38904  */
38905   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_hvector(__pyx_v_count, __pyx_v_blocklength, __pyx_v_stride, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
38906 
38907   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":158
38908  *                                         self.ob_mpi,
38909  *                                         &datatype.ob_mpi) )
38910  *         return datatype             # <<<<<<<<<<<<<<
38911  *
38912  *     def Create_indexed(self, blocklengths, displacements):
38913  */
38914   __Pyx_XDECREF(__pyx_r);
38915   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
38916   __pyx_r = ((PyObject *)__pyx_v_datatype);
38917   goto __pyx_L0;
38918 
38919   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
38920   goto __pyx_L0;
38921   __pyx_L1_error:;
38922   __Pyx_XDECREF(__pyx_t_1);
38923   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_hvector", __pyx_clineno, __pyx_lineno, __pyx_filename);
38924   __pyx_r = NULL;
38925   __pyx_L0:;
38926   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
38927   __Pyx_XGIVEREF(__pyx_r);
38928   __Pyx_RefNannyFinishContext();
38929   return __pyx_r;
38930 }
38931 
38932 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":160
38933  *         return datatype
38934  *
38935  *     def Create_indexed(self, blocklengths, displacements):             # <<<<<<<<<<<<<<
38936  *         """
38937  *         Create an indexed datatype
38938  */
38939 
38940 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_10Create_indexed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38941 static char __pyx_doc_6mpi4py_3MPI_8Datatype_10Create_indexed[] = "Datatype.Create_indexed(self, blocklengths, displacements)\n\n        Create an indexed datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_10Create_indexed(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)38942 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_10Create_indexed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38943   PyObject *__pyx_v_blocklengths = 0;
38944   PyObject *__pyx_v_displacements = 0;
38945   int __pyx_v_count;
38946   int *__pyx_v_iblen;
38947   int *__pyx_v_idisp;
38948   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
38949   PyObject *__pyx_r = NULL;
38950   __Pyx_RefNannyDeclarations
38951   PyObject *__pyx_t_1 = NULL;
38952   int __pyx_t_2;
38953   int __pyx_lineno = 0;
38954   const char *__pyx_filename = NULL;
38955   int __pyx_clineno = 0;
38956   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__blocklengths,&__pyx_n_s__displacements,0};
38957   __Pyx_RefNannySetupContext("Create_indexed");
38958   {
38959     PyObject* values[2] = {0,0};
38960     if (unlikely(__pyx_kwds)) {
38961       Py_ssize_t kw_args;
38962       switch (PyTuple_GET_SIZE(__pyx_args)) {
38963         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38964         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38965         case  0: break;
38966         default: goto __pyx_L5_argtuple_error;
38967       }
38968       kw_args = PyDict_Size(__pyx_kwds);
38969       switch (PyTuple_GET_SIZE(__pyx_args)) {
38970         case  0:
38971         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklengths);
38972         if (likely(values[0])) kw_args--;
38973         else goto __pyx_L5_argtuple_error;
38974         case  1:
38975         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__displacements);
38976         if (likely(values[1])) kw_args--;
38977         else {
38978           __Pyx_RaiseArgtupleInvalid("Create_indexed", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38979         }
38980       }
38981       if (unlikely(kw_args > 0)) {
38982         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_indexed") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38983       }
38984     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
38985       goto __pyx_L5_argtuple_error;
38986     } else {
38987       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
38988       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
38989     }
38990     __pyx_v_blocklengths = values[0];
38991     __pyx_v_displacements = values[1];
38992   }
38993   goto __pyx_L4_argument_unpacking_done;
38994   __pyx_L5_argtuple_error:;
38995   __Pyx_RaiseArgtupleInvalid("Create_indexed", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
38996   __pyx_L3_error:;
38997   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
38998   __Pyx_RefNannyFinishContext();
38999   return NULL;
39000   __pyx_L4_argument_unpacking_done:;
39001   __Pyx_INCREF(__pyx_v_blocklengths);
39002   __Pyx_INCREF(__pyx_v_displacements);
39003 
39004   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":164
39005  *         Create an indexed datatype
39006  *         """
39007  *         cdef int count = 0, *iblen = NULL, *idisp = NULL             # <<<<<<<<<<<<<<
39008  *         blocklengths  = getarray_int(blocklengths,  &count, &iblen)
39009  *         displacements = chkarray_int(displacements,  count, &idisp)
39010  */
39011   __pyx_v_count = 0;
39012   __pyx_v_iblen = NULL;
39013   __pyx_v_idisp = NULL;
39014 
39015   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":165
39016  *         """
39017  *         cdef int count = 0, *iblen = NULL, *idisp = NULL
39018  *         blocklengths  = getarray_int(blocklengths,  &count, &iblen)             # <<<<<<<<<<<<<<
39019  *         displacements = chkarray_int(displacements,  count, &idisp)
39020  *         #
39021  */
39022   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_blocklengths, (&__pyx_v_count), (&__pyx_v_iblen)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39023   __Pyx_GOTREF(__pyx_t_1);
39024   __Pyx_DECREF(__pyx_v_blocklengths);
39025   __pyx_v_blocklengths = __pyx_t_1;
39026   __pyx_t_1 = 0;
39027 
39028   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":166
39029  *         cdef int count = 0, *iblen = NULL, *idisp = NULL
39030  *         blocklengths  = getarray_int(blocklengths,  &count, &iblen)
39031  *         displacements = chkarray_int(displacements,  count, &idisp)             # <<<<<<<<<<<<<<
39032  *         #
39033  *         cdef Datatype datatype = <Datatype>type(self)()
39034  */
39035   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_displacements, __pyx_v_count, (&__pyx_v_idisp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39036   __Pyx_GOTREF(__pyx_t_1);
39037   __Pyx_DECREF(__pyx_v_displacements);
39038   __pyx_v_displacements = __pyx_t_1;
39039   __pyx_t_1 = 0;
39040 
39041   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":168
39042  *         displacements = chkarray_int(displacements,  count, &idisp)
39043  *         #
39044  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
39045  *         CHKERR( MPI_Type_indexed(count, iblen, idisp,
39046  *                                  self.ob_mpi, &datatype.ob_mpi) )
39047  */
39048   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39049   __Pyx_GOTREF(__pyx_t_1);
39050   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
39051   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
39052   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39053 
39054   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":170
39055  *         cdef Datatype datatype = <Datatype>type(self)()
39056  *         CHKERR( MPI_Type_indexed(count, iblen, idisp,
39057  *                                  self.ob_mpi, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
39058  *         return datatype
39059  *
39060  */
39061   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_indexed(__pyx_v_count, __pyx_v_iblen, __pyx_v_idisp, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39062 
39063   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":171
39064  *         CHKERR( MPI_Type_indexed(count, iblen, idisp,
39065  *                                  self.ob_mpi, &datatype.ob_mpi) )
39066  *         return datatype             # <<<<<<<<<<<<<<
39067  *
39068  *     def Create_indexed_block(self, int blocklength, displacements):
39069  */
39070   __Pyx_XDECREF(__pyx_r);
39071   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
39072   __pyx_r = ((PyObject *)__pyx_v_datatype);
39073   goto __pyx_L0;
39074 
39075   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39076   goto __pyx_L0;
39077   __pyx_L1_error:;
39078   __Pyx_XDECREF(__pyx_t_1);
39079   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
39080   __pyx_r = NULL;
39081   __pyx_L0:;
39082   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
39083   __Pyx_XDECREF(__pyx_v_blocklengths);
39084   __Pyx_XDECREF(__pyx_v_displacements);
39085   __Pyx_XGIVEREF(__pyx_r);
39086   __Pyx_RefNannyFinishContext();
39087   return __pyx_r;
39088 }
39089 
39090 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":173
39091  *         return datatype
39092  *
39093  *     def Create_indexed_block(self, int blocklength, displacements):             # <<<<<<<<<<<<<<
39094  *         """
39095  *         Create an indexed datatype
39096  */
39097 
39098 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_11Create_indexed_block(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39099 static char __pyx_doc_6mpi4py_3MPI_8Datatype_11Create_indexed_block[] = "Datatype.Create_indexed_block(self, int blocklength, displacements)\n\n        Create an indexed datatype\n        with constant-sized blocks\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_11Create_indexed_block(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)39100 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_11Create_indexed_block(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39101   int __pyx_v_blocklength;
39102   PyObject *__pyx_v_displacements = 0;
39103   int __pyx_v_count;
39104   int *__pyx_v_idisp;
39105   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
39106   PyObject *__pyx_r = NULL;
39107   __Pyx_RefNannyDeclarations
39108   PyObject *__pyx_t_1 = NULL;
39109   int __pyx_t_2;
39110   int __pyx_lineno = 0;
39111   const char *__pyx_filename = NULL;
39112   int __pyx_clineno = 0;
39113   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__blocklength,&__pyx_n_s__displacements,0};
39114   __Pyx_RefNannySetupContext("Create_indexed_block");
39115   {
39116     PyObject* values[2] = {0,0};
39117     if (unlikely(__pyx_kwds)) {
39118       Py_ssize_t kw_args;
39119       switch (PyTuple_GET_SIZE(__pyx_args)) {
39120         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39121         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39122         case  0: break;
39123         default: goto __pyx_L5_argtuple_error;
39124       }
39125       kw_args = PyDict_Size(__pyx_kwds);
39126       switch (PyTuple_GET_SIZE(__pyx_args)) {
39127         case  0:
39128         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklength);
39129         if (likely(values[0])) kw_args--;
39130         else goto __pyx_L5_argtuple_error;
39131         case  1:
39132         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__displacements);
39133         if (likely(values[1])) kw_args--;
39134         else {
39135           __Pyx_RaiseArgtupleInvalid("Create_indexed_block", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39136         }
39137       }
39138       if (unlikely(kw_args > 0)) {
39139         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_indexed_block") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39140       }
39141     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
39142       goto __pyx_L5_argtuple_error;
39143     } else {
39144       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39145       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39146     }
39147     __pyx_v_blocklength = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_blocklength == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39148     __pyx_v_displacements = values[1];
39149   }
39150   goto __pyx_L4_argument_unpacking_done;
39151   __pyx_L5_argtuple_error:;
39152   __Pyx_RaiseArgtupleInvalid("Create_indexed_block", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39153   __pyx_L3_error:;
39154   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_indexed_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
39155   __Pyx_RefNannyFinishContext();
39156   return NULL;
39157   __pyx_L4_argument_unpacking_done:;
39158   __Pyx_INCREF(__pyx_v_displacements);
39159 
39160   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":178
39161  *         with constant-sized blocks
39162  *         """
39163  *         cdef int count = 0, *idisp = NULL             # <<<<<<<<<<<<<<
39164  *         displacements = getarray_int(displacements, &count, &idisp)
39165  *         #
39166  */
39167   __pyx_v_count = 0;
39168   __pyx_v_idisp = NULL;
39169 
39170   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":179
39171  *         """
39172  *         cdef int count = 0, *idisp = NULL
39173  *         displacements = getarray_int(displacements, &count, &idisp)             # <<<<<<<<<<<<<<
39174  *         #
39175  *         cdef Datatype datatype = <Datatype>type(self)()
39176  */
39177   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_displacements, (&__pyx_v_count), (&__pyx_v_idisp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39178   __Pyx_GOTREF(__pyx_t_1);
39179   __Pyx_DECREF(__pyx_v_displacements);
39180   __pyx_v_displacements = __pyx_t_1;
39181   __pyx_t_1 = 0;
39182 
39183   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":181
39184  *         displacements = getarray_int(displacements, &count, &idisp)
39185  *         #
39186  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
39187  *         CHKERR( MPI_Type_create_indexed_block(count, blocklength,
39188  *                                               idisp, self.ob_mpi,
39189  */
39190   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39191   __Pyx_GOTREF(__pyx_t_1);
39192   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
39193   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
39194   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39195 
39196   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":184
39197  *         CHKERR( MPI_Type_create_indexed_block(count, blocklength,
39198  *                                               idisp, self.ob_mpi,
39199  *                                               &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
39200  *         return datatype
39201  *
39202  */
39203   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_indexed_block(__pyx_v_count, __pyx_v_blocklength, __pyx_v_idisp, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39204 
39205   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":185
39206  *                                               idisp, self.ob_mpi,
39207  *                                               &datatype.ob_mpi) )
39208  *         return datatype             # <<<<<<<<<<<<<<
39209  *
39210  *     def Create_hindexed(self, blocklengths, displacements):
39211  */
39212   __Pyx_XDECREF(__pyx_r);
39213   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
39214   __pyx_r = ((PyObject *)__pyx_v_datatype);
39215   goto __pyx_L0;
39216 
39217   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39218   goto __pyx_L0;
39219   __pyx_L1_error:;
39220   __Pyx_XDECREF(__pyx_t_1);
39221   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_indexed_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
39222   __pyx_r = NULL;
39223   __pyx_L0:;
39224   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
39225   __Pyx_XDECREF(__pyx_v_displacements);
39226   __Pyx_XGIVEREF(__pyx_r);
39227   __Pyx_RefNannyFinishContext();
39228   return __pyx_r;
39229 }
39230 
39231 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":187
39232  *         return datatype
39233  *
39234  *     def Create_hindexed(self, blocklengths, displacements):             # <<<<<<<<<<<<<<
39235  *         """
39236  *         Create an indexed datatype
39237  */
39238 
39239 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_12Create_hindexed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39240 static char __pyx_doc_6mpi4py_3MPI_8Datatype_12Create_hindexed[] = "Datatype.Create_hindexed(self, blocklengths, displacements)\n\n        Create an indexed datatype\n        with displacements in bytes\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_12Create_hindexed(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)39241 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_12Create_hindexed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39242   PyObject *__pyx_v_blocklengths = 0;
39243   PyObject *__pyx_v_displacements = 0;
39244   int __pyx_v_count;
39245   int *__pyx_v_iblen;
39246   MPI_Aint *__pyx_v_idisp;
39247   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
39248   PyObject *__pyx_r = NULL;
39249   __Pyx_RefNannyDeclarations
39250   PyObject *__pyx_t_1 = NULL;
39251   int __pyx_t_2;
39252   int __pyx_lineno = 0;
39253   const char *__pyx_filename = NULL;
39254   int __pyx_clineno = 0;
39255   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__blocklengths,&__pyx_n_s__displacements,0};
39256   __Pyx_RefNannySetupContext("Create_hindexed");
39257   {
39258     PyObject* values[2] = {0,0};
39259     if (unlikely(__pyx_kwds)) {
39260       Py_ssize_t kw_args;
39261       switch (PyTuple_GET_SIZE(__pyx_args)) {
39262         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39263         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39264         case  0: break;
39265         default: goto __pyx_L5_argtuple_error;
39266       }
39267       kw_args = PyDict_Size(__pyx_kwds);
39268       switch (PyTuple_GET_SIZE(__pyx_args)) {
39269         case  0:
39270         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklengths);
39271         if (likely(values[0])) kw_args--;
39272         else goto __pyx_L5_argtuple_error;
39273         case  1:
39274         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__displacements);
39275         if (likely(values[1])) kw_args--;
39276         else {
39277           __Pyx_RaiseArgtupleInvalid("Create_hindexed", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39278         }
39279       }
39280       if (unlikely(kw_args > 0)) {
39281         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_hindexed") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39282       }
39283     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
39284       goto __pyx_L5_argtuple_error;
39285     } else {
39286       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39287       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39288     }
39289     __pyx_v_blocklengths = values[0];
39290     __pyx_v_displacements = values[1];
39291   }
39292   goto __pyx_L4_argument_unpacking_done;
39293   __pyx_L5_argtuple_error:;
39294   __Pyx_RaiseArgtupleInvalid("Create_hindexed", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39295   __pyx_L3_error:;
39296   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_hindexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
39297   __Pyx_RefNannyFinishContext();
39298   return NULL;
39299   __pyx_L4_argument_unpacking_done:;
39300   __Pyx_INCREF(__pyx_v_blocklengths);
39301   __Pyx_INCREF(__pyx_v_displacements);
39302 
39303   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":192
39304  *         with displacements in bytes
39305  *         """
39306  *         cdef int count = 0, *iblen = NULL             # <<<<<<<<<<<<<<
39307  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
39308  *         cdef MPI_Aint *idisp = NULL
39309  */
39310   __pyx_v_count = 0;
39311   __pyx_v_iblen = NULL;
39312 
39313   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":193
39314  *         """
39315  *         cdef int count = 0, *iblen = NULL
39316  *         blocklengths = getarray_int(blocklengths, &count, &iblen)             # <<<<<<<<<<<<<<
39317  *         cdef MPI_Aint *idisp = NULL
39318  *         displacements = asarray_Aint(displacements, count, &idisp)
39319  */
39320   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_blocklengths, (&__pyx_v_count), (&__pyx_v_iblen)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39321   __Pyx_GOTREF(__pyx_t_1);
39322   __Pyx_DECREF(__pyx_v_blocklengths);
39323   __pyx_v_blocklengths = __pyx_t_1;
39324   __pyx_t_1 = 0;
39325 
39326   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":194
39327  *         cdef int count = 0, *iblen = NULL
39328  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
39329  *         cdef MPI_Aint *idisp = NULL             # <<<<<<<<<<<<<<
39330  *         displacements = asarray_Aint(displacements, count, &idisp)
39331  *         #
39332  */
39333   __pyx_v_idisp = NULL;
39334 
39335   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":195
39336  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
39337  *         cdef MPI_Aint *idisp = NULL
39338  *         displacements = asarray_Aint(displacements, count, &idisp)             # <<<<<<<<<<<<<<
39339  *         #
39340  *         cdef Datatype datatype = <Datatype>type(self)()
39341  */
39342   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asarray_Aint(__pyx_v_displacements, __pyx_v_count, (&__pyx_v_idisp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39343   __Pyx_GOTREF(__pyx_t_1);
39344   __Pyx_DECREF(__pyx_v_displacements);
39345   __pyx_v_displacements = __pyx_t_1;
39346   __pyx_t_1 = 0;
39347 
39348   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":197
39349  *         displacements = asarray_Aint(displacements, count, &idisp)
39350  *         #
39351  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
39352  *         CHKERR( MPI_Type_create_hindexed(count, iblen, idisp,
39353  *                                          self.ob_mpi,
39354  */
39355   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39356   __Pyx_GOTREF(__pyx_t_1);
39357   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
39358   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
39359   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39360 
39361   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":200
39362  *         CHKERR( MPI_Type_create_hindexed(count, iblen, idisp,
39363  *                                          self.ob_mpi,
39364  *                                          &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
39365  *         return datatype
39366  *
39367  */
39368   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_hindexed(__pyx_v_count, __pyx_v_iblen, __pyx_v_idisp, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39369 
39370   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":201
39371  *                                          self.ob_mpi,
39372  *                                          &datatype.ob_mpi) )
39373  *         return datatype             # <<<<<<<<<<<<<<
39374  *
39375  *     def Create_subarray(self, sizes, subsizes, starts,
39376  */
39377   __Pyx_XDECREF(__pyx_r);
39378   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
39379   __pyx_r = ((PyObject *)__pyx_v_datatype);
39380   goto __pyx_L0;
39381 
39382   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39383   goto __pyx_L0;
39384   __pyx_L1_error:;
39385   __Pyx_XDECREF(__pyx_t_1);
39386   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_hindexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
39387   __pyx_r = NULL;
39388   __pyx_L0:;
39389   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
39390   __Pyx_XDECREF(__pyx_v_blocklengths);
39391   __Pyx_XDECREF(__pyx_v_displacements);
39392   __Pyx_XGIVEREF(__pyx_r);
39393   __Pyx_RefNannyFinishContext();
39394   return __pyx_r;
39395 }
39396 
39397 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":203
39398  *         return datatype
39399  *
39400  *     def Create_subarray(self, sizes, subsizes, starts,             # <<<<<<<<<<<<<<
39401  *                         int order=ORDER_C):
39402  *         """
39403  */
39404 
39405 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_13Create_subarray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39406 static char __pyx_doc_6mpi4py_3MPI_8Datatype_13Create_subarray[] = "Datatype.Create_subarray(self, sizes, subsizes, starts, int order=ORDER_C)\n\n        Create a datatype for a subarray of\n        a regular, multidimensional array\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_13Create_subarray(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)39407 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_13Create_subarray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39408   PyObject *__pyx_v_sizes = 0;
39409   PyObject *__pyx_v_subsizes = 0;
39410   PyObject *__pyx_v_starts = 0;
39411   int __pyx_v_order;
39412   int __pyx_v_ndims;
39413   int *__pyx_v_isizes;
39414   int *__pyx_v_isubsizes;
39415   int *__pyx_v_istarts;
39416   int __pyx_v_iorder;
39417   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
39418   PyObject *__pyx_r = NULL;
39419   __Pyx_RefNannyDeclarations
39420   PyObject *__pyx_t_1 = NULL;
39421   int __pyx_t_2;
39422   int __pyx_t_3;
39423   int __pyx_lineno = 0;
39424   const char *__pyx_filename = NULL;
39425   int __pyx_clineno = 0;
39426   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sizes,&__pyx_n_s__subsizes,&__pyx_n_s__starts,&__pyx_n_s__order,0};
39427   __Pyx_RefNannySetupContext("Create_subarray");
39428   {
39429     PyObject* values[4] = {0,0,0,0};
39430     if (unlikely(__pyx_kwds)) {
39431       Py_ssize_t kw_args;
39432       switch (PyTuple_GET_SIZE(__pyx_args)) {
39433         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39434         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39435         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39436         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39437         case  0: break;
39438         default: goto __pyx_L5_argtuple_error;
39439       }
39440       kw_args = PyDict_Size(__pyx_kwds);
39441       switch (PyTuple_GET_SIZE(__pyx_args)) {
39442         case  0:
39443         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sizes);
39444         if (likely(values[0])) kw_args--;
39445         else goto __pyx_L5_argtuple_error;
39446         case  1:
39447         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subsizes);
39448         if (likely(values[1])) kw_args--;
39449         else {
39450           __Pyx_RaiseArgtupleInvalid("Create_subarray", 0, 3, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39451         }
39452         case  2:
39453         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__starts);
39454         if (likely(values[2])) kw_args--;
39455         else {
39456           __Pyx_RaiseArgtupleInvalid("Create_subarray", 0, 3, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39457         }
39458         case  3:
39459         if (kw_args > 0) {
39460           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__order);
39461           if (value) { values[3] = value; kw_args--; }
39462         }
39463       }
39464       if (unlikely(kw_args > 0)) {
39465         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_subarray") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39466       }
39467     } else {
39468       switch (PyTuple_GET_SIZE(__pyx_args)) {
39469         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39470         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39471         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39472         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39473         break;
39474         default: goto __pyx_L5_argtuple_error;
39475       }
39476     }
39477     __pyx_v_sizes = values[0];
39478     __pyx_v_subsizes = values[1];
39479     __pyx_v_starts = values[2];
39480     if (values[3]) {
39481       __pyx_v_order = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_order == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39482     } else {
39483       __pyx_v_order = __pyx_k_58;
39484     }
39485   }
39486   goto __pyx_L4_argument_unpacking_done;
39487   __pyx_L5_argtuple_error:;
39488   __Pyx_RaiseArgtupleInvalid("Create_subarray", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39489   __pyx_L3_error:;
39490   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_subarray", __pyx_clineno, __pyx_lineno, __pyx_filename);
39491   __Pyx_RefNannyFinishContext();
39492   return NULL;
39493   __pyx_L4_argument_unpacking_done:;
39494   __Pyx_INCREF(__pyx_v_sizes);
39495   __Pyx_INCREF(__pyx_v_subsizes);
39496   __Pyx_INCREF(__pyx_v_starts);
39497 
39498   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":209
39499  *         a regular, multidimensional array
39500  *         """
39501  *         cdef int ndims = 0, *isizes = NULL             # <<<<<<<<<<<<<<
39502  *         cdef int *isubsizes = NULL, *istarts = NULL
39503  *         sizes    = getarray_int(sizes,    &ndims, &isizes   )
39504  */
39505   __pyx_v_ndims = 0;
39506   __pyx_v_isizes = NULL;
39507 
39508   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":210
39509  *         """
39510  *         cdef int ndims = 0, *isizes = NULL
39511  *         cdef int *isubsizes = NULL, *istarts = NULL             # <<<<<<<<<<<<<<
39512  *         sizes    = getarray_int(sizes,    &ndims, &isizes   )
39513  *         subsizes = chkarray_int(subsizes,  ndims, &isubsizes)
39514  */
39515   __pyx_v_isubsizes = NULL;
39516   __pyx_v_istarts = NULL;
39517 
39518   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":211
39519  *         cdef int ndims = 0, *isizes = NULL
39520  *         cdef int *isubsizes = NULL, *istarts = NULL
39521  *         sizes    = getarray_int(sizes,    &ndims, &isizes   )             # <<<<<<<<<<<<<<
39522  *         subsizes = chkarray_int(subsizes,  ndims, &isubsizes)
39523  *         starts   = chkarray_int(starts,    ndims, &istarts  )
39524  */
39525   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_sizes, (&__pyx_v_ndims), (&__pyx_v_isizes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39526   __Pyx_GOTREF(__pyx_t_1);
39527   __Pyx_DECREF(__pyx_v_sizes);
39528   __pyx_v_sizes = __pyx_t_1;
39529   __pyx_t_1 = 0;
39530 
39531   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":212
39532  *         cdef int *isubsizes = NULL, *istarts = NULL
39533  *         sizes    = getarray_int(sizes,    &ndims, &isizes   )
39534  *         subsizes = chkarray_int(subsizes,  ndims, &isubsizes)             # <<<<<<<<<<<<<<
39535  *         starts   = chkarray_int(starts,    ndims, &istarts  )
39536  *         cdef int iorder = MPI_ORDER_C
39537  */
39538   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_subsizes, __pyx_v_ndims, (&__pyx_v_isubsizes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39539   __Pyx_GOTREF(__pyx_t_1);
39540   __Pyx_DECREF(__pyx_v_subsizes);
39541   __pyx_v_subsizes = __pyx_t_1;
39542   __pyx_t_1 = 0;
39543 
39544   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":213
39545  *         sizes    = getarray_int(sizes,    &ndims, &isizes   )
39546  *         subsizes = chkarray_int(subsizes,  ndims, &isubsizes)
39547  *         starts   = chkarray_int(starts,    ndims, &istarts  )             # <<<<<<<<<<<<<<
39548  *         cdef int iorder = MPI_ORDER_C
39549  *         if order is not None: iorder = order
39550  */
39551   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_starts, __pyx_v_ndims, (&__pyx_v_istarts)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39552   __Pyx_GOTREF(__pyx_t_1);
39553   __Pyx_DECREF(__pyx_v_starts);
39554   __pyx_v_starts = __pyx_t_1;
39555   __pyx_t_1 = 0;
39556 
39557   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":214
39558  *         subsizes = chkarray_int(subsizes,  ndims, &isubsizes)
39559  *         starts   = chkarray_int(starts,    ndims, &istarts  )
39560  *         cdef int iorder = MPI_ORDER_C             # <<<<<<<<<<<<<<
39561  *         if order is not None: iorder = order
39562  *         #
39563  */
39564   __pyx_v_iorder = MPI_ORDER_C;
39565 
39566   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":215
39567  *         starts   = chkarray_int(starts,    ndims, &istarts  )
39568  *         cdef int iorder = MPI_ORDER_C
39569  *         if order is not None: iorder = order             # <<<<<<<<<<<<<<
39570  *         #
39571  *         cdef Datatype datatype = <Datatype>type(self)()
39572  */
39573   __pyx_t_1 = PyInt_FromLong(__pyx_v_order); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39574   __Pyx_GOTREF(__pyx_t_1);
39575   __pyx_t_2 = (__pyx_t_1 != Py_None);
39576   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39577   if (__pyx_t_2) {
39578     __pyx_v_iorder = __pyx_v_order;
39579     goto __pyx_L6;
39580   }
39581   __pyx_L6:;
39582 
39583   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":217
39584  *         if order is not None: iorder = order
39585  *         #
39586  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
39587  *         CHKERR( MPI_Type_create_subarray(ndims, isizes,
39588  *                                          isubsizes, istarts,
39589  */
39590   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39591   __Pyx_GOTREF(__pyx_t_1);
39592   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
39593   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
39594   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39595 
39596   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":221
39597  *                                          isubsizes, istarts,
39598  *                                          iorder, self.ob_mpi,
39599  *                                          &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
39600  *         return datatype
39601  *
39602  */
39603   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_subarray(__pyx_v_ndims, __pyx_v_isizes, __pyx_v_isubsizes, __pyx_v_istarts, __pyx_v_iorder, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39604 
39605   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":222
39606  *                                          iorder, self.ob_mpi,
39607  *                                          &datatype.ob_mpi) )
39608  *         return datatype             # <<<<<<<<<<<<<<
39609  *
39610  *     def Create_darray(self, int size, int rank,
39611  */
39612   __Pyx_XDECREF(__pyx_r);
39613   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
39614   __pyx_r = ((PyObject *)__pyx_v_datatype);
39615   goto __pyx_L0;
39616 
39617   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39618   goto __pyx_L0;
39619   __pyx_L1_error:;
39620   __Pyx_XDECREF(__pyx_t_1);
39621   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_subarray", __pyx_clineno, __pyx_lineno, __pyx_filename);
39622   __pyx_r = NULL;
39623   __pyx_L0:;
39624   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
39625   __Pyx_XDECREF(__pyx_v_sizes);
39626   __Pyx_XDECREF(__pyx_v_subsizes);
39627   __Pyx_XDECREF(__pyx_v_starts);
39628   __Pyx_XGIVEREF(__pyx_r);
39629   __Pyx_RefNannyFinishContext();
39630   return __pyx_r;
39631 }
39632 
39633 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":224
39634  *         return datatype
39635  *
39636  *     def Create_darray(self, int size, int rank,             # <<<<<<<<<<<<<<
39637  *                       gsizes, distribs, dargs, psizes,
39638  *                       int order=ORDER_C):
39639  */
39640 
39641 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_14Create_darray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39642 static char __pyx_doc_6mpi4py_3MPI_8Datatype_14Create_darray[] = "Datatype.Create_darray(self, int size, int rank, gsizes, distribs, dargs, psizes, int order=ORDER_C)\n\n        Create a datatype representing an HPF-like\n        distributed array on Cartesian process grids\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_14Create_darray(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)39643 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_14Create_darray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39644   int __pyx_v_size;
39645   int __pyx_v_rank;
39646   PyObject *__pyx_v_gsizes = 0;
39647   PyObject *__pyx_v_distribs = 0;
39648   PyObject *__pyx_v_dargs = 0;
39649   PyObject *__pyx_v_psizes = 0;
39650   int __pyx_v_order;
39651   int __pyx_v_ndims;
39652   int *__pyx_v_igsizes;
39653   int *__pyx_v_idistribs;
39654   int *__pyx_v_idargs;
39655   int *__pyx_v_ipsizes;
39656   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
39657   PyObject *__pyx_r = NULL;
39658   __Pyx_RefNannyDeclarations
39659   PyObject *__pyx_t_1 = NULL;
39660   int __pyx_t_2;
39661   int __pyx_lineno = 0;
39662   const char *__pyx_filename = NULL;
39663   int __pyx_clineno = 0;
39664   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__rank,&__pyx_n_s__gsizes,&__pyx_n_s__distribs,&__pyx_n_s__dargs,&__pyx_n_s__psizes,&__pyx_n_s__order,0};
39665   __Pyx_RefNannySetupContext("Create_darray");
39666   {
39667     PyObject* values[7] = {0,0,0,0,0,0,0};
39668     if (unlikely(__pyx_kwds)) {
39669       Py_ssize_t kw_args;
39670       switch (PyTuple_GET_SIZE(__pyx_args)) {
39671         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
39672         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
39673         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
39674         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39675         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39676         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39677         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39678         case  0: break;
39679         default: goto __pyx_L5_argtuple_error;
39680       }
39681       kw_args = PyDict_Size(__pyx_kwds);
39682       switch (PyTuple_GET_SIZE(__pyx_args)) {
39683         case  0:
39684         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
39685         if (likely(values[0])) kw_args--;
39686         else goto __pyx_L5_argtuple_error;
39687         case  1:
39688         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
39689         if (likely(values[1])) kw_args--;
39690         else {
39691           __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39692         }
39693         case  2:
39694         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__gsizes);
39695         if (likely(values[2])) kw_args--;
39696         else {
39697           __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39698         }
39699         case  3:
39700         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__distribs);
39701         if (likely(values[3])) kw_args--;
39702         else {
39703           __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39704         }
39705         case  4:
39706         values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dargs);
39707         if (likely(values[4])) kw_args--;
39708         else {
39709           __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, 4); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39710         }
39711         case  5:
39712         values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__psizes);
39713         if (likely(values[5])) kw_args--;
39714         else {
39715           __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, 5); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39716         }
39717         case  6:
39718         if (kw_args > 0) {
39719           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__order);
39720           if (value) { values[6] = value; kw_args--; }
39721         }
39722       }
39723       if (unlikely(kw_args > 0)) {
39724         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_darray") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39725       }
39726     } else {
39727       switch (PyTuple_GET_SIZE(__pyx_args)) {
39728         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
39729         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
39730         values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
39731         values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
39732         values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39733         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39734         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39735         break;
39736         default: goto __pyx_L5_argtuple_error;
39737       }
39738     }
39739     __pyx_v_size = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39740     __pyx_v_rank = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39741     __pyx_v_gsizes = values[2];
39742     __pyx_v_distribs = values[3];
39743     __pyx_v_dargs = values[4];
39744     __pyx_v_psizes = values[5];
39745     if (values[6]) {
39746       __pyx_v_order = __Pyx_PyInt_AsInt(values[6]); if (unlikely((__pyx_v_order == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39747     } else {
39748       __pyx_v_order = __pyx_k_59;
39749     }
39750   }
39751   goto __pyx_L4_argument_unpacking_done;
39752   __pyx_L5_argtuple_error:;
39753   __Pyx_RaiseArgtupleInvalid("Create_darray", 0, 6, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39754   __pyx_L3_error:;
39755   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_darray", __pyx_clineno, __pyx_lineno, __pyx_filename);
39756   __Pyx_RefNannyFinishContext();
39757   return NULL;
39758   __pyx_L4_argument_unpacking_done:;
39759   __Pyx_INCREF(__pyx_v_gsizes);
39760   __Pyx_INCREF(__pyx_v_distribs);
39761   __Pyx_INCREF(__pyx_v_dargs);
39762   __Pyx_INCREF(__pyx_v_psizes);
39763 
39764   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":231
39765  *         distributed array on Cartesian process grids
39766  *         """
39767  *         cdef int ndims = 0, *igsizes = NULL             # <<<<<<<<<<<<<<
39768  *         cdef int *idistribs = NULL, *idargs = NULL, *ipsizes = NULL
39769  *         gsizes   = getarray_int(gsizes,  &ndims, &igsizes   )
39770  */
39771   __pyx_v_ndims = 0;
39772   __pyx_v_igsizes = NULL;
39773 
39774   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":232
39775  *         """
39776  *         cdef int ndims = 0, *igsizes = NULL
39777  *         cdef int *idistribs = NULL, *idargs = NULL, *ipsizes = NULL             # <<<<<<<<<<<<<<
39778  *         gsizes   = getarray_int(gsizes,  &ndims, &igsizes   )
39779  *         distribs = chkarray_int(distribs, ndims, &idistribs )
39780  */
39781   __pyx_v_idistribs = NULL;
39782   __pyx_v_idargs = NULL;
39783   __pyx_v_ipsizes = NULL;
39784 
39785   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":233
39786  *         cdef int ndims = 0, *igsizes = NULL
39787  *         cdef int *idistribs = NULL, *idargs = NULL, *ipsizes = NULL
39788  *         gsizes   = getarray_int(gsizes,  &ndims, &igsizes   )             # <<<<<<<<<<<<<<
39789  *         distribs = chkarray_int(distribs, ndims, &idistribs )
39790  *         dargs    = chkarray_int(dargs,    ndims, &idargs    )
39791  */
39792   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_gsizes, (&__pyx_v_ndims), (&__pyx_v_igsizes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39793   __Pyx_GOTREF(__pyx_t_1);
39794   __Pyx_DECREF(__pyx_v_gsizes);
39795   __pyx_v_gsizes = __pyx_t_1;
39796   __pyx_t_1 = 0;
39797 
39798   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":234
39799  *         cdef int *idistribs = NULL, *idargs = NULL, *ipsizes = NULL
39800  *         gsizes   = getarray_int(gsizes,  &ndims, &igsizes   )
39801  *         distribs = chkarray_int(distribs, ndims, &idistribs )             # <<<<<<<<<<<<<<
39802  *         dargs    = chkarray_int(dargs,    ndims, &idargs    )
39803  *         psizes   = chkarray_int(psizes,   ndims, &ipsizes   )
39804  */
39805   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_distribs, __pyx_v_ndims, (&__pyx_v_idistribs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39806   __Pyx_GOTREF(__pyx_t_1);
39807   __Pyx_DECREF(__pyx_v_distribs);
39808   __pyx_v_distribs = __pyx_t_1;
39809   __pyx_t_1 = 0;
39810 
39811   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":235
39812  *         gsizes   = getarray_int(gsizes,  &ndims, &igsizes   )
39813  *         distribs = chkarray_int(distribs, ndims, &idistribs )
39814  *         dargs    = chkarray_int(dargs,    ndims, &idargs    )             # <<<<<<<<<<<<<<
39815  *         psizes   = chkarray_int(psizes,   ndims, &ipsizes   )
39816  *         #
39817  */
39818   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_dargs, __pyx_v_ndims, (&__pyx_v_idargs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39819   __Pyx_GOTREF(__pyx_t_1);
39820   __Pyx_DECREF(__pyx_v_dargs);
39821   __pyx_v_dargs = __pyx_t_1;
39822   __pyx_t_1 = 0;
39823 
39824   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":236
39825  *         distribs = chkarray_int(distribs, ndims, &idistribs )
39826  *         dargs    = chkarray_int(dargs,    ndims, &idargs    )
39827  *         psizes   = chkarray_int(psizes,   ndims, &ipsizes   )             # <<<<<<<<<<<<<<
39828  *         #
39829  *         cdef Datatype datatype = <Datatype>type(self)()
39830  */
39831   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_psizes, __pyx_v_ndims, (&__pyx_v_ipsizes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39832   __Pyx_GOTREF(__pyx_t_1);
39833   __Pyx_DECREF(__pyx_v_psizes);
39834   __pyx_v_psizes = __pyx_t_1;
39835   __pyx_t_1 = 0;
39836 
39837   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":238
39838  *         psizes   = chkarray_int(psizes,   ndims, &ipsizes   )
39839  *         #
39840  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
39841  *         CHKERR( MPI_Type_create_darray(size, rank, ndims, igsizes,
39842  *                                        idistribs, idargs, ipsizes,
39843  */
39844   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39845   __Pyx_GOTREF(__pyx_t_1);
39846   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
39847   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
39848   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39849 
39850   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":242
39851  *                                        idistribs, idargs, ipsizes,
39852  *                                        order, self.ob_mpi,
39853  *                                        &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
39854  *         return datatype
39855  *
39856  */
39857   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_darray(__pyx_v_size, __pyx_v_rank, __pyx_v_ndims, __pyx_v_igsizes, __pyx_v_idistribs, __pyx_v_idargs, __pyx_v_ipsizes, __pyx_v_order, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39858 
39859   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":243
39860  *                                        order, self.ob_mpi,
39861  *                                        &datatype.ob_mpi) )
39862  *         return datatype             # <<<<<<<<<<<<<<
39863  *
39864  *     @classmethod
39865  */
39866   __Pyx_XDECREF(__pyx_r);
39867   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
39868   __pyx_r = ((PyObject *)__pyx_v_datatype);
39869   goto __pyx_L0;
39870 
39871   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39872   goto __pyx_L0;
39873   __pyx_L1_error:;
39874   __Pyx_XDECREF(__pyx_t_1);
39875   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_darray", __pyx_clineno, __pyx_lineno, __pyx_filename);
39876   __pyx_r = NULL;
39877   __pyx_L0:;
39878   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
39879   __Pyx_XDECREF(__pyx_v_gsizes);
39880   __Pyx_XDECREF(__pyx_v_distribs);
39881   __Pyx_XDECREF(__pyx_v_dargs);
39882   __Pyx_XDECREF(__pyx_v_psizes);
39883   __Pyx_XGIVEREF(__pyx_r);
39884   __Pyx_RefNannyFinishContext();
39885   return __pyx_r;
39886 }
39887 
39888 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":246
39889  *
39890  *     @classmethod
39891  *     def Create_struct(cls, blocklengths, displacements, datatypes):             # <<<<<<<<<<<<<<
39892  *         """
39893  *         Create an datatype from a general set of
39894  */
39895 
39896 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_15Create_struct(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39897 static char __pyx_doc_6mpi4py_3MPI_8Datatype_15Create_struct[] = "Datatype.Create_struct(type cls, blocklengths, displacements, datatypes)\n\n        Create an datatype from a general set of\n        block sizes, displacements and datatypes\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_15Create_struct(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)39898 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_15Create_struct(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39899   PyObject *__pyx_v_blocklengths = 0;
39900   PyObject *__pyx_v_displacements = 0;
39901   PyObject *__pyx_v_datatypes = 0;
39902   int __pyx_v_count;
39903   int *__pyx_v_iblen;
39904   MPI_Aint *__pyx_v_idisp;
39905   MPI_Datatype *__pyx_v_ptype;
39906   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
39907   PyObject *__pyx_r = NULL;
39908   __Pyx_RefNannyDeclarations
39909   PyObject *__pyx_t_1 = NULL;
39910   int __pyx_t_2;
39911   int __pyx_lineno = 0;
39912   const char *__pyx_filename = NULL;
39913   int __pyx_clineno = 0;
39914   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__blocklengths,&__pyx_n_s__displacements,&__pyx_n_s__datatypes,0};
39915   __Pyx_RefNannySetupContext("Create_struct");
39916   {
39917     PyObject* values[3] = {0,0,0};
39918     if (unlikely(__pyx_kwds)) {
39919       Py_ssize_t kw_args;
39920       switch (PyTuple_GET_SIZE(__pyx_args)) {
39921         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39922         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39923         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39924         case  0: break;
39925         default: goto __pyx_L5_argtuple_error;
39926       }
39927       kw_args = PyDict_Size(__pyx_kwds);
39928       switch (PyTuple_GET_SIZE(__pyx_args)) {
39929         case  0:
39930         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blocklengths);
39931         if (likely(values[0])) kw_args--;
39932         else goto __pyx_L5_argtuple_error;
39933         case  1:
39934         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__displacements);
39935         if (likely(values[1])) kw_args--;
39936         else {
39937           __Pyx_RaiseArgtupleInvalid("Create_struct", 1, 3, 3, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39938         }
39939         case  2:
39940         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datatypes);
39941         if (likely(values[2])) kw_args--;
39942         else {
39943           __Pyx_RaiseArgtupleInvalid("Create_struct", 1, 3, 3, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39944         }
39945       }
39946       if (unlikely(kw_args > 0)) {
39947         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_struct") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39948       }
39949     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
39950       goto __pyx_L5_argtuple_error;
39951     } else {
39952       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39953       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39954       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39955     }
39956     __pyx_v_blocklengths = values[0];
39957     __pyx_v_displacements = values[1];
39958     __pyx_v_datatypes = values[2];
39959   }
39960   goto __pyx_L4_argument_unpacking_done;
39961   __pyx_L5_argtuple_error:;
39962   __Pyx_RaiseArgtupleInvalid("Create_struct", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
39963   __pyx_L3_error:;
39964   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_struct", __pyx_clineno, __pyx_lineno, __pyx_filename);
39965   __Pyx_RefNannyFinishContext();
39966   return NULL;
39967   __pyx_L4_argument_unpacking_done:;
39968   __Pyx_INCREF(__pyx_v_blocklengths);
39969   __Pyx_INCREF(__pyx_v_displacements);
39970   __Pyx_INCREF(__pyx_v_datatypes);
39971 
39972   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":251
39973  *         block sizes, displacements and datatypes
39974  *         """
39975  *         cdef int count = 0, *iblen = NULL             # <<<<<<<<<<<<<<
39976  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
39977  *         cdef MPI_Aint *idisp = NULL
39978  */
39979   __pyx_v_count = 0;
39980   __pyx_v_iblen = NULL;
39981 
39982   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":252
39983  *         """
39984  *         cdef int count = 0, *iblen = NULL
39985  *         blocklengths = getarray_int(blocklengths, &count, &iblen)             # <<<<<<<<<<<<<<
39986  *         cdef MPI_Aint *idisp = NULL
39987  *         displacements = asarray_Aint(displacements, count, &idisp)
39988  */
39989   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_blocklengths, (&__pyx_v_count), (&__pyx_v_iblen)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
39990   __Pyx_GOTREF(__pyx_t_1);
39991   __Pyx_DECREF(__pyx_v_blocklengths);
39992   __pyx_v_blocklengths = __pyx_t_1;
39993   __pyx_t_1 = 0;
39994 
39995   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":253
39996  *         cdef int count = 0, *iblen = NULL
39997  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
39998  *         cdef MPI_Aint *idisp = NULL             # <<<<<<<<<<<<<<
39999  *         displacements = asarray_Aint(displacements, count, &idisp)
40000  *         cdef MPI_Datatype *ptype = NULL
40001  */
40002   __pyx_v_idisp = NULL;
40003 
40004   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":254
40005  *         blocklengths = getarray_int(blocklengths, &count, &iblen)
40006  *         cdef MPI_Aint *idisp = NULL
40007  *         displacements = asarray_Aint(displacements, count, &idisp)             # <<<<<<<<<<<<<<
40008  *         cdef MPI_Datatype *ptype = NULL
40009  *         datatypes = asarray_Datatype(datatypes, count, &ptype)
40010  */
40011   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asarray_Aint(__pyx_v_displacements, __pyx_v_count, (&__pyx_v_idisp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40012   __Pyx_GOTREF(__pyx_t_1);
40013   __Pyx_DECREF(__pyx_v_displacements);
40014   __pyx_v_displacements = __pyx_t_1;
40015   __pyx_t_1 = 0;
40016 
40017   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":255
40018  *         cdef MPI_Aint *idisp = NULL
40019  *         displacements = asarray_Aint(displacements, count, &idisp)
40020  *         cdef MPI_Datatype *ptype = NULL             # <<<<<<<<<<<<<<
40021  *         datatypes = asarray_Datatype(datatypes, count, &ptype)
40022  *         #
40023  */
40024   __pyx_v_ptype = NULL;
40025 
40026   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":256
40027  *         displacements = asarray_Aint(displacements, count, &idisp)
40028  *         cdef MPI_Datatype *ptype = NULL
40029  *         datatypes = asarray_Datatype(datatypes, count, &ptype)             # <<<<<<<<<<<<<<
40030  *         #
40031  *         cdef Datatype datatype = <Datatype>cls()
40032  */
40033   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asarray_Datatype(__pyx_v_datatypes, __pyx_v_count, (&__pyx_v_ptype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40034   __Pyx_GOTREF(__pyx_t_1);
40035   __Pyx_DECREF(__pyx_v_datatypes);
40036   __pyx_v_datatypes = __pyx_t_1;
40037   __pyx_t_1 = 0;
40038 
40039   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":258
40040  *         datatypes = asarray_Datatype(datatypes, count, &ptype)
40041  *         #
40042  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
40043  *         CHKERR( MPI_Type_create_struct(count, iblen, idisp, ptype,
40044  *                                        &datatype.ob_mpi) )
40045  */
40046   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40047   __Pyx_GOTREF(__pyx_t_1);
40048   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40049   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40050   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40051 
40052   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":260
40053  *         cdef Datatype datatype = <Datatype>cls()
40054  *         CHKERR( MPI_Type_create_struct(count, iblen, idisp, ptype,
40055  *                                        &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40056  *         return datatype
40057  *
40058  */
40059   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_struct(__pyx_v_count, __pyx_v_iblen, __pyx_v_idisp, __pyx_v_ptype, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40060 
40061   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":261
40062  *         CHKERR( MPI_Type_create_struct(count, iblen, idisp, ptype,
40063  *                                        &datatype.ob_mpi) )
40064  *         return datatype             # <<<<<<<<<<<<<<
40065  *
40066  *     # Parametrized and size-specific Fortran Datatypes
40067  */
40068   __Pyx_XDECREF(__pyx_r);
40069   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40070   __pyx_r = ((PyObject *)__pyx_v_datatype);
40071   goto __pyx_L0;
40072 
40073   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40074   goto __pyx_L0;
40075   __pyx_L1_error:;
40076   __Pyx_XDECREF(__pyx_t_1);
40077   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_struct", __pyx_clineno, __pyx_lineno, __pyx_filename);
40078   __pyx_r = NULL;
40079   __pyx_L0:;
40080   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40081   __Pyx_XDECREF(__pyx_v_blocklengths);
40082   __Pyx_XDECREF(__pyx_v_displacements);
40083   __Pyx_XDECREF(__pyx_v_datatypes);
40084   __Pyx_XGIVEREF(__pyx_r);
40085   __Pyx_RefNannyFinishContext();
40086   return __pyx_r;
40087 }
40088 
40089 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":267
40090  *
40091  *     @classmethod
40092  *     def Create_f90_integer(cls, int r):             # <<<<<<<<<<<<<<
40093  *         """
40094  *         Return a bounded integer datatype
40095  */
40096 
40097 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_16Create_f90_integer(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40098 static char __pyx_doc_6mpi4py_3MPI_8Datatype_16Create_f90_integer[] = "Datatype.Create_f90_integer(type cls, int r)\n\n        Return a bounded integer datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_16Create_f90_integer(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)40099 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_16Create_f90_integer(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40100   int __pyx_v_r;
40101   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
40102   PyObject *__pyx_r = NULL;
40103   __Pyx_RefNannyDeclarations
40104   PyObject *__pyx_t_1 = NULL;
40105   int __pyx_t_2;
40106   int __pyx_lineno = 0;
40107   const char *__pyx_filename = NULL;
40108   int __pyx_clineno = 0;
40109   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__r,0};
40110   __Pyx_RefNannySetupContext("Create_f90_integer");
40111   {
40112     PyObject* values[1] = {0};
40113     if (unlikely(__pyx_kwds)) {
40114       Py_ssize_t kw_args;
40115       switch (PyTuple_GET_SIZE(__pyx_args)) {
40116         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40117         case  0: break;
40118         default: goto __pyx_L5_argtuple_error;
40119       }
40120       kw_args = PyDict_Size(__pyx_kwds);
40121       switch (PyTuple_GET_SIZE(__pyx_args)) {
40122         case  0:
40123         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__r);
40124         if (likely(values[0])) kw_args--;
40125         else goto __pyx_L5_argtuple_error;
40126       }
40127       if (unlikely(kw_args > 0)) {
40128         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_f90_integer") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40129       }
40130     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
40131       goto __pyx_L5_argtuple_error;
40132     } else {
40133       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40134     }
40135     __pyx_v_r = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_r == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40136   }
40137   goto __pyx_L4_argument_unpacking_done;
40138   __pyx_L5_argtuple_error:;
40139   __Pyx_RaiseArgtupleInvalid("Create_f90_integer", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40140   __pyx_L3_error:;
40141   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
40142   __Pyx_RefNannyFinishContext();
40143   return NULL;
40144   __pyx_L4_argument_unpacking_done:;
40145 
40146   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":271
40147  *         Return a bounded integer datatype
40148  *         """
40149  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
40150  *         CHKERR( MPI_Type_create_f90_integer(r, &datatype.ob_mpi) )
40151  *         return datatype
40152  */
40153   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40154   __Pyx_GOTREF(__pyx_t_1);
40155   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40156   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40157   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40158 
40159   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":272
40160  *         """
40161  *         cdef Datatype datatype = <Datatype>cls()
40162  *         CHKERR( MPI_Type_create_f90_integer(r, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40163  *         return datatype
40164  *
40165  */
40166   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_f90_integer(__pyx_v_r, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40167 
40168   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":273
40169  *         cdef Datatype datatype = <Datatype>cls()
40170  *         CHKERR( MPI_Type_create_f90_integer(r, &datatype.ob_mpi) )
40171  *         return datatype             # <<<<<<<<<<<<<<
40172  *
40173  *     @classmethod
40174  */
40175   __Pyx_XDECREF(__pyx_r);
40176   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40177   __pyx_r = ((PyObject *)__pyx_v_datatype);
40178   goto __pyx_L0;
40179 
40180   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40181   goto __pyx_L0;
40182   __pyx_L1_error:;
40183   __Pyx_XDECREF(__pyx_t_1);
40184   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
40185   __pyx_r = NULL;
40186   __pyx_L0:;
40187   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40188   __Pyx_XGIVEREF(__pyx_r);
40189   __Pyx_RefNannyFinishContext();
40190   return __pyx_r;
40191 }
40192 
40193 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":276
40194  *
40195  *     @classmethod
40196  *     def Create_f90_real(cls, int p, int r):             # <<<<<<<<<<<<<<
40197  *         """
40198  *         Return a bounded real datatype
40199  */
40200 
40201 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_17Create_f90_real(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40202 static char __pyx_doc_6mpi4py_3MPI_8Datatype_17Create_f90_real[] = "Datatype.Create_f90_real(type cls, int p, int r)\n\n        Return a bounded real datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_17Create_f90_real(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)40203 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_17Create_f90_real(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40204   int __pyx_v_p;
40205   int __pyx_v_r;
40206   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
40207   PyObject *__pyx_r = NULL;
40208   __Pyx_RefNannyDeclarations
40209   PyObject *__pyx_t_1 = NULL;
40210   int __pyx_t_2;
40211   int __pyx_lineno = 0;
40212   const char *__pyx_filename = NULL;
40213   int __pyx_clineno = 0;
40214   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__r,0};
40215   __Pyx_RefNannySetupContext("Create_f90_real");
40216   {
40217     PyObject* values[2] = {0,0};
40218     if (unlikely(__pyx_kwds)) {
40219       Py_ssize_t kw_args;
40220       switch (PyTuple_GET_SIZE(__pyx_args)) {
40221         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40222         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40223         case  0: break;
40224         default: goto __pyx_L5_argtuple_error;
40225       }
40226       kw_args = PyDict_Size(__pyx_kwds);
40227       switch (PyTuple_GET_SIZE(__pyx_args)) {
40228         case  0:
40229         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p);
40230         if (likely(values[0])) kw_args--;
40231         else goto __pyx_L5_argtuple_error;
40232         case  1:
40233         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__r);
40234         if (likely(values[1])) kw_args--;
40235         else {
40236           __Pyx_RaiseArgtupleInvalid("Create_f90_real", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40237         }
40238       }
40239       if (unlikely(kw_args > 0)) {
40240         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_f90_real") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40241       }
40242     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
40243       goto __pyx_L5_argtuple_error;
40244     } else {
40245       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40246       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40247     }
40248     __pyx_v_p = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_p == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40249     __pyx_v_r = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_r == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40250   }
40251   goto __pyx_L4_argument_unpacking_done;
40252   __pyx_L5_argtuple_error:;
40253   __Pyx_RaiseArgtupleInvalid("Create_f90_real", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40254   __pyx_L3_error:;
40255   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_real", __pyx_clineno, __pyx_lineno, __pyx_filename);
40256   __Pyx_RefNannyFinishContext();
40257   return NULL;
40258   __pyx_L4_argument_unpacking_done:;
40259 
40260   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":280
40261  *         Return a bounded real datatype
40262  *         """
40263  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
40264  *         CHKERR( MPI_Type_create_f90_real(p, r, &datatype.ob_mpi) )
40265  *         return datatype
40266  */
40267   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40268   __Pyx_GOTREF(__pyx_t_1);
40269   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40270   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40271   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40272 
40273   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":281
40274  *         """
40275  *         cdef Datatype datatype = <Datatype>cls()
40276  *         CHKERR( MPI_Type_create_f90_real(p, r, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40277  *         return datatype
40278  *
40279  */
40280   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_f90_real(__pyx_v_p, __pyx_v_r, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40281 
40282   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":282
40283  *         cdef Datatype datatype = <Datatype>cls()
40284  *         CHKERR( MPI_Type_create_f90_real(p, r, &datatype.ob_mpi) )
40285  *         return datatype             # <<<<<<<<<<<<<<
40286  *
40287  *     @classmethod
40288  */
40289   __Pyx_XDECREF(__pyx_r);
40290   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40291   __pyx_r = ((PyObject *)__pyx_v_datatype);
40292   goto __pyx_L0;
40293 
40294   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40295   goto __pyx_L0;
40296   __pyx_L1_error:;
40297   __Pyx_XDECREF(__pyx_t_1);
40298   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_real", __pyx_clineno, __pyx_lineno, __pyx_filename);
40299   __pyx_r = NULL;
40300   __pyx_L0:;
40301   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40302   __Pyx_XGIVEREF(__pyx_r);
40303   __Pyx_RefNannyFinishContext();
40304   return __pyx_r;
40305 }
40306 
40307 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":285
40308  *
40309  *     @classmethod
40310  *     def Create_f90_complex(cls, int p, int r):             # <<<<<<<<<<<<<<
40311  *         """
40312  *         Return a bounded complex datatype
40313  */
40314 
40315 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_18Create_f90_complex(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40316 static char __pyx_doc_6mpi4py_3MPI_8Datatype_18Create_f90_complex[] = "Datatype.Create_f90_complex(type cls, int p, int r)\n\n        Return a bounded complex datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_18Create_f90_complex(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)40317 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_18Create_f90_complex(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40318   int __pyx_v_p;
40319   int __pyx_v_r;
40320   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
40321   PyObject *__pyx_r = NULL;
40322   __Pyx_RefNannyDeclarations
40323   PyObject *__pyx_t_1 = NULL;
40324   int __pyx_t_2;
40325   int __pyx_lineno = 0;
40326   const char *__pyx_filename = NULL;
40327   int __pyx_clineno = 0;
40328   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__r,0};
40329   __Pyx_RefNannySetupContext("Create_f90_complex");
40330   {
40331     PyObject* values[2] = {0,0};
40332     if (unlikely(__pyx_kwds)) {
40333       Py_ssize_t kw_args;
40334       switch (PyTuple_GET_SIZE(__pyx_args)) {
40335         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40336         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40337         case  0: break;
40338         default: goto __pyx_L5_argtuple_error;
40339       }
40340       kw_args = PyDict_Size(__pyx_kwds);
40341       switch (PyTuple_GET_SIZE(__pyx_args)) {
40342         case  0:
40343         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p);
40344         if (likely(values[0])) kw_args--;
40345         else goto __pyx_L5_argtuple_error;
40346         case  1:
40347         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__r);
40348         if (likely(values[1])) kw_args--;
40349         else {
40350           __Pyx_RaiseArgtupleInvalid("Create_f90_complex", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40351         }
40352       }
40353       if (unlikely(kw_args > 0)) {
40354         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_f90_complex") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40355       }
40356     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
40357       goto __pyx_L5_argtuple_error;
40358     } else {
40359       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40360       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40361     }
40362     __pyx_v_p = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_p == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40363     __pyx_v_r = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_r == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40364   }
40365   goto __pyx_L4_argument_unpacking_done;
40366   __pyx_L5_argtuple_error:;
40367   __Pyx_RaiseArgtupleInvalid("Create_f90_complex", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40368   __pyx_L3_error:;
40369   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_complex", __pyx_clineno, __pyx_lineno, __pyx_filename);
40370   __Pyx_RefNannyFinishContext();
40371   return NULL;
40372   __pyx_L4_argument_unpacking_done:;
40373 
40374   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":289
40375  *         Return a bounded complex datatype
40376  *         """
40377  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
40378  *         CHKERR( MPI_Type_create_f90_complex(p, r, &datatype.ob_mpi) )
40379  *         return datatype
40380  */
40381   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40382   __Pyx_GOTREF(__pyx_t_1);
40383   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40384   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40385   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40386 
40387   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":290
40388  *         """
40389  *         cdef Datatype datatype = <Datatype>cls()
40390  *         CHKERR( MPI_Type_create_f90_complex(p, r, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40391  *         return datatype
40392  *
40393  */
40394   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_f90_complex(__pyx_v_p, __pyx_v_r, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40395 
40396   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":291
40397  *         cdef Datatype datatype = <Datatype>cls()
40398  *         CHKERR( MPI_Type_create_f90_complex(p, r, &datatype.ob_mpi) )
40399  *         return datatype             # <<<<<<<<<<<<<<
40400  *
40401  *     @classmethod
40402  */
40403   __Pyx_XDECREF(__pyx_r);
40404   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40405   __pyx_r = ((PyObject *)__pyx_v_datatype);
40406   goto __pyx_L0;
40407 
40408   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40409   goto __pyx_L0;
40410   __pyx_L1_error:;
40411   __Pyx_XDECREF(__pyx_t_1);
40412   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_f90_complex", __pyx_clineno, __pyx_lineno, __pyx_filename);
40413   __pyx_r = NULL;
40414   __pyx_L0:;
40415   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40416   __Pyx_XGIVEREF(__pyx_r);
40417   __Pyx_RefNannyFinishContext();
40418   return __pyx_r;
40419 }
40420 
40421 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":294
40422  *
40423  *     @classmethod
40424  *     def Match_size(cls, int typeclass, int size):             # <<<<<<<<<<<<<<
40425  *         """
40426  *         Find a datatype matching a specified size in bytes
40427  */
40428 
40429 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_19Match_size(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40430 static char __pyx_doc_6mpi4py_3MPI_8Datatype_19Match_size[] = "Datatype.Match_size(type cls, int typeclass, int size)\n\n        Find a datatype matching a specified size in bytes\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_19Match_size(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)40431 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_19Match_size(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40432   int __pyx_v_typeclass;
40433   int __pyx_v_size;
40434   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
40435   PyObject *__pyx_r = NULL;
40436   __Pyx_RefNannyDeclarations
40437   PyObject *__pyx_t_1 = NULL;
40438   int __pyx_t_2;
40439   int __pyx_lineno = 0;
40440   const char *__pyx_filename = NULL;
40441   int __pyx_clineno = 0;
40442   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__typeclass,&__pyx_n_s__size,0};
40443   __Pyx_RefNannySetupContext("Match_size");
40444   {
40445     PyObject* values[2] = {0,0};
40446     if (unlikely(__pyx_kwds)) {
40447       Py_ssize_t kw_args;
40448       switch (PyTuple_GET_SIZE(__pyx_args)) {
40449         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40450         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40451         case  0: break;
40452         default: goto __pyx_L5_argtuple_error;
40453       }
40454       kw_args = PyDict_Size(__pyx_kwds);
40455       switch (PyTuple_GET_SIZE(__pyx_args)) {
40456         case  0:
40457         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__typeclass);
40458         if (likely(values[0])) kw_args--;
40459         else goto __pyx_L5_argtuple_error;
40460         case  1:
40461         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
40462         if (likely(values[1])) kw_args--;
40463         else {
40464           __Pyx_RaiseArgtupleInvalid("Match_size", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40465         }
40466       }
40467       if (unlikely(kw_args > 0)) {
40468         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Match_size") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40469       }
40470     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
40471       goto __pyx_L5_argtuple_error;
40472     } else {
40473       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40474       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40475     }
40476     __pyx_v_typeclass = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_typeclass == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40477     __pyx_v_size = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40478   }
40479   goto __pyx_L4_argument_unpacking_done;
40480   __pyx_L5_argtuple_error:;
40481   __Pyx_RaiseArgtupleInvalid("Match_size", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40482   __pyx_L3_error:;
40483   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Match_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
40484   __Pyx_RefNannyFinishContext();
40485   return NULL;
40486   __pyx_L4_argument_unpacking_done:;
40487 
40488   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":298
40489  *         Find a datatype matching a specified size in bytes
40490  *         """
40491  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
40492  *         CHKERR( MPI_Type_match_size(typeclass, size, &datatype.ob_mpi) )
40493  *         return datatype
40494  */
40495   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40496   __Pyx_GOTREF(__pyx_t_1);
40497   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40498   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40499   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40500 
40501   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":299
40502  *         """
40503  *         cdef Datatype datatype = <Datatype>cls()
40504  *         CHKERR( MPI_Type_match_size(typeclass, size, &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40505  *         return datatype
40506  *
40507  */
40508   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_match_size(__pyx_v_typeclass, __pyx_v_size, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40509 
40510   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":300
40511  *         cdef Datatype datatype = <Datatype>cls()
40512  *         CHKERR( MPI_Type_match_size(typeclass, size, &datatype.ob_mpi) )
40513  *         return datatype             # <<<<<<<<<<<<<<
40514  *
40515  *     # Use of Derived Datatypes
40516  */
40517   __Pyx_XDECREF(__pyx_r);
40518   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40519   __pyx_r = ((PyObject *)__pyx_v_datatype);
40520   goto __pyx_L0;
40521 
40522   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40523   goto __pyx_L0;
40524   __pyx_L1_error:;
40525   __Pyx_XDECREF(__pyx_t_1);
40526   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Match_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
40527   __pyx_r = NULL;
40528   __pyx_L0:;
40529   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40530   __Pyx_XGIVEREF(__pyx_r);
40531   __Pyx_RefNannyFinishContext();
40532   return __pyx_r;
40533 }
40534 
40535 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":305
40536  *     # ------------------------
40537  *
40538  *     def Commit(self):             # <<<<<<<<<<<<<<
40539  *         """
40540  *         Commit the datatype
40541  */
40542 
40543 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_20Commit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40544 static char __pyx_doc_6mpi4py_3MPI_8Datatype_20Commit[] = "Datatype.Commit(self)\n\n        Commit the datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_20Commit(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)40545 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_20Commit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40546   PyObject *__pyx_r = NULL;
40547   __Pyx_RefNannyDeclarations
40548   int __pyx_t_1;
40549   int __pyx_lineno = 0;
40550   const char *__pyx_filename = NULL;
40551   int __pyx_clineno = 0;
40552   __Pyx_RefNannySetupContext("Commit");
40553   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
40554     __Pyx_RaiseArgtupleInvalid("Commit", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
40555   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Commit", 0))) return NULL;
40556 
40557   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":309
40558  *         Commit the datatype
40559  *         """
40560  *         CHKERR( MPI_Type_commit(&self.ob_mpi) )             # <<<<<<<<<<<<<<
40561  *         return self
40562  *
40563  */
40564   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_commit((&((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40565 
40566   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":310
40567  *         """
40568  *         CHKERR( MPI_Type_commit(&self.ob_mpi) )
40569  *         return self             # <<<<<<<<<<<<<<
40570  *
40571  *     def Free(self):
40572  */
40573   __Pyx_XDECREF(__pyx_r);
40574   __Pyx_INCREF(__pyx_v_self);
40575   __pyx_r = __pyx_v_self;
40576   goto __pyx_L0;
40577 
40578   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40579   goto __pyx_L0;
40580   __pyx_L1_error:;
40581   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Commit", __pyx_clineno, __pyx_lineno, __pyx_filename);
40582   __pyx_r = NULL;
40583   __pyx_L0:;
40584   __Pyx_XGIVEREF(__pyx_r);
40585   __Pyx_RefNannyFinishContext();
40586   return __pyx_r;
40587 }
40588 
40589 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":312
40590  *         return self
40591  *
40592  *     def Free(self):             # <<<<<<<<<<<<<<
40593  *         """
40594  *         Free the datatype
40595  */
40596 
40597 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_21Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40598 static char __pyx_doc_6mpi4py_3MPI_8Datatype_21Free[] = "Datatype.Free(self)\n\n        Free the datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_21Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)40599 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_21Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40600   PyObject *__pyx_r = NULL;
40601   __Pyx_RefNannyDeclarations
40602   int __pyx_t_1;
40603   int __pyx_lineno = 0;
40604   const char *__pyx_filename = NULL;
40605   int __pyx_clineno = 0;
40606   __Pyx_RefNannySetupContext("Free");
40607   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
40608     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
40609   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
40610 
40611   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":316
40612  *         Free the datatype
40613  *         """
40614  *         CHKERR( MPI_Type_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
40615  *
40616  *     # Datatype Resizing
40617  */
40618   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_free((&((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40619 
40620   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40621   goto __pyx_L0;
40622   __pyx_L1_error:;
40623   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
40624   __pyx_r = NULL;
40625   __pyx_L0:;
40626   __Pyx_XGIVEREF(__pyx_r);
40627   __Pyx_RefNannyFinishContext();
40628   return __pyx_r;
40629 }
40630 
40631 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":321
40632  *     # -----------------
40633  *
40634  *     def Create_resized(self, Aint lb, Aint extent):             # <<<<<<<<<<<<<<
40635  *         """
40636  *         Create a datatype with a new lower bound and extent
40637  */
40638 
40639 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_22Create_resized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40640 static char __pyx_doc_6mpi4py_3MPI_8Datatype_22Create_resized[] = "Datatype.Create_resized(self, Aint lb, Aint extent)\n\n        Create a datatype with a new lower bound and extent\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_22Create_resized(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)40641 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_22Create_resized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40642   MPI_Aint __pyx_v_lb;
40643   MPI_Aint __pyx_v_extent;
40644   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
40645   PyObject *__pyx_r = NULL;
40646   __Pyx_RefNannyDeclarations
40647   PyObject *__pyx_t_1 = NULL;
40648   int __pyx_t_2;
40649   int __pyx_lineno = 0;
40650   const char *__pyx_filename = NULL;
40651   int __pyx_clineno = 0;
40652   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lb,&__pyx_n_s__extent,0};
40653   __Pyx_RefNannySetupContext("Create_resized");
40654   {
40655     PyObject* values[2] = {0,0};
40656     if (unlikely(__pyx_kwds)) {
40657       Py_ssize_t kw_args;
40658       switch (PyTuple_GET_SIZE(__pyx_args)) {
40659         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40660         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40661         case  0: break;
40662         default: goto __pyx_L5_argtuple_error;
40663       }
40664       kw_args = PyDict_Size(__pyx_kwds);
40665       switch (PyTuple_GET_SIZE(__pyx_args)) {
40666         case  0:
40667         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lb);
40668         if (likely(values[0])) kw_args--;
40669         else goto __pyx_L5_argtuple_error;
40670         case  1:
40671         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__extent);
40672         if (likely(values[1])) kw_args--;
40673         else {
40674           __Pyx_RaiseArgtupleInvalid("Create_resized", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40675         }
40676       }
40677       if (unlikely(kw_args > 0)) {
40678         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_resized") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40679       }
40680     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
40681       goto __pyx_L5_argtuple_error;
40682     } else {
40683       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
40684       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
40685     }
40686     __pyx_v_lb = __Pyx_PyInt_from_py_MPI_Aint(values[0]); if (unlikely((__pyx_v_lb == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40687     __pyx_v_extent = __Pyx_PyInt_from_py_MPI_Aint(values[1]); if (unlikely((__pyx_v_extent == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40688   }
40689   goto __pyx_L4_argument_unpacking_done;
40690   __pyx_L5_argtuple_error:;
40691   __Pyx_RaiseArgtupleInvalid("Create_resized", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
40692   __pyx_L3_error:;
40693   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_resized", __pyx_clineno, __pyx_lineno, __pyx_filename);
40694   __Pyx_RefNannyFinishContext();
40695   return NULL;
40696   __pyx_L4_argument_unpacking_done:;
40697 
40698   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":325
40699  *         Create a datatype with a new lower bound and extent
40700  *         """
40701  *         cdef Datatype datatype = <Datatype>type(self)()             # <<<<<<<<<<<<<<
40702  *         CHKERR( MPI_Type_create_resized(self.ob_mpi,
40703  *                                         lb, extent,
40704  */
40705   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40706   __Pyx_GOTREF(__pyx_t_1);
40707   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
40708   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
40709   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40710 
40711   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":328
40712  *         CHKERR( MPI_Type_create_resized(self.ob_mpi,
40713  *                                         lb, extent,
40714  *                                         &datatype.ob_mpi) )             # <<<<<<<<<<<<<<
40715  *         return datatype
40716  *
40717  */
40718   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_resized(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_lb, __pyx_v_extent, (&__pyx_v_datatype->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40719 
40720   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":329
40721  *                                         lb, extent,
40722  *                                         &datatype.ob_mpi) )
40723  *         return datatype             # <<<<<<<<<<<<<<
40724  *
40725  *     Resized = Create_resized #: compatibility alias
40726  */
40727   __Pyx_XDECREF(__pyx_r);
40728   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
40729   __pyx_r = ((PyObject *)__pyx_v_datatype);
40730   goto __pyx_L0;
40731 
40732   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40733   goto __pyx_L0;
40734   __pyx_L1_error:;
40735   __Pyx_XDECREF(__pyx_t_1);
40736   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_resized", __pyx_clineno, __pyx_lineno, __pyx_filename);
40737   __pyx_r = NULL;
40738   __pyx_L0:;
40739   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
40740   __Pyx_XGIVEREF(__pyx_r);
40741   __Pyx_RefNannyFinishContext();
40742   return __pyx_r;
40743 }
40744 
40745 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":333
40746  *     Resized = Create_resized #: compatibility alias
40747  *
40748  *     def Get_true_extent(self):             # <<<<<<<<<<<<<<
40749  *         """
40750  *         Return the true lower bound and extent of a datatype
40751  */
40752 
40753 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_23Get_true_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40754 static char __pyx_doc_6mpi4py_3MPI_8Datatype_23Get_true_extent[] = "Datatype.Get_true_extent(self)\n\n        Return the true lower bound and extent of a datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_23Get_true_extent(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)40755 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_23Get_true_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40756   MPI_Aint __pyx_v_lb;
40757   MPI_Aint __pyx_v_extent;
40758   PyObject *__pyx_r = NULL;
40759   __Pyx_RefNannyDeclarations
40760   int __pyx_t_1;
40761   PyObject *__pyx_t_2 = NULL;
40762   PyObject *__pyx_t_3 = NULL;
40763   PyObject *__pyx_t_4 = NULL;
40764   int __pyx_lineno = 0;
40765   const char *__pyx_filename = NULL;
40766   int __pyx_clineno = 0;
40767   __Pyx_RefNannySetupContext("Get_true_extent");
40768   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
40769     __Pyx_RaiseArgtupleInvalid("Get_true_extent", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
40770   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_true_extent", 0))) return NULL;
40771 
40772   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":337
40773  *         Return the true lower bound and extent of a datatype
40774  *         """
40775  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
40776  *         CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40777  *                                          &lb, &extent) )
40778  */
40779   __pyx_v_lb = 0;
40780   __pyx_v_extent = 0;
40781 
40782   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":339
40783  *         cdef MPI_Aint lb = 0, extent = 0
40784  *         CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40785  *                                          &lb, &extent) )             # <<<<<<<<<<<<<<
40786  *         return (lb, extent)
40787  *
40788  */
40789   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_true_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40790 
40791   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":340
40792  *         CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40793  *                                          &lb, &extent) )
40794  *         return (lb, extent)             # <<<<<<<<<<<<<<
40795  *
40796  *     property true_extent:
40797  */
40798   __Pyx_XDECREF(__pyx_r);
40799   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40800   __Pyx_GOTREF(__pyx_t_2);
40801   __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40802   __Pyx_GOTREF(__pyx_t_3);
40803   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40804   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
40805   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
40806   __Pyx_GIVEREF(__pyx_t_2);
40807   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
40808   __Pyx_GIVEREF(__pyx_t_3);
40809   __pyx_t_2 = 0;
40810   __pyx_t_3 = 0;
40811   __pyx_r = ((PyObject *)__pyx_t_4);
40812   __pyx_t_4 = 0;
40813   goto __pyx_L0;
40814 
40815   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40816   goto __pyx_L0;
40817   __pyx_L1_error:;
40818   __Pyx_XDECREF(__pyx_t_2);
40819   __Pyx_XDECREF(__pyx_t_3);
40820   __Pyx_XDECREF(__pyx_t_4);
40821   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_true_extent", __pyx_clineno, __pyx_lineno, __pyx_filename);
40822   __pyx_r = NULL;
40823   __pyx_L0:;
40824   __Pyx_XGIVEREF(__pyx_r);
40825   __Pyx_RefNannyFinishContext();
40826   return __pyx_r;
40827 }
40828 
40829 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":344
40830  *     property true_extent:
40831  *         """true extent"""
40832  *         def __get__(self):             # <<<<<<<<<<<<<<
40833  *             cdef MPI_Aint lb = 0, extent = 0
40834  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40835  */
40836 
40837 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_11true_extent___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_11true_extent___get__(PyObject * __pyx_v_self)40838 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_11true_extent___get__(PyObject *__pyx_v_self) {
40839   MPI_Aint __pyx_v_lb;
40840   MPI_Aint __pyx_v_extent;
40841   PyObject *__pyx_r = NULL;
40842   __Pyx_RefNannyDeclarations
40843   int __pyx_t_1;
40844   PyObject *__pyx_t_2 = NULL;
40845   int __pyx_lineno = 0;
40846   const char *__pyx_filename = NULL;
40847   int __pyx_clineno = 0;
40848   __Pyx_RefNannySetupContext("__get__");
40849 
40850   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":345
40851  *         """true extent"""
40852  *         def __get__(self):
40853  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
40854  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40855  *                                              &lb, &extent) )
40856  */
40857   __pyx_v_lb = 0;
40858   __pyx_v_extent = 0;
40859 
40860   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":347
40861  *             cdef MPI_Aint lb = 0, extent = 0
40862  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40863  *                                              &lb, &extent) )             # <<<<<<<<<<<<<<
40864  *             return extent
40865  *
40866  */
40867   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_true_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40868 
40869   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":348
40870  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40871  *                                              &lb, &extent) )
40872  *             return extent             # <<<<<<<<<<<<<<
40873  *
40874  *     property true_lb:
40875  */
40876   __Pyx_XDECREF(__pyx_r);
40877   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40878   __Pyx_GOTREF(__pyx_t_2);
40879   __pyx_r = __pyx_t_2;
40880   __pyx_t_2 = 0;
40881   goto __pyx_L0;
40882 
40883   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40884   goto __pyx_L0;
40885   __pyx_L1_error:;
40886   __Pyx_XDECREF(__pyx_t_2);
40887   __Pyx_AddTraceback("mpi4py.MPI.Datatype.true_extent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
40888   __pyx_r = NULL;
40889   __pyx_L0:;
40890   __Pyx_XGIVEREF(__pyx_r);
40891   __Pyx_RefNannyFinishContext();
40892   return __pyx_r;
40893 }
40894 
40895 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":352
40896  *     property true_lb:
40897  *         """true lower bound"""
40898  *         def __get__(self):             # <<<<<<<<<<<<<<
40899  *             cdef MPI_Aint lb = 0, extent = 0
40900  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40901  */
40902 
40903 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7true_lb___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_7true_lb___get__(PyObject * __pyx_v_self)40904 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7true_lb___get__(PyObject *__pyx_v_self) {
40905   MPI_Aint __pyx_v_lb;
40906   MPI_Aint __pyx_v_extent;
40907   PyObject *__pyx_r = NULL;
40908   __Pyx_RefNannyDeclarations
40909   int __pyx_t_1;
40910   PyObject *__pyx_t_2 = NULL;
40911   int __pyx_lineno = 0;
40912   const char *__pyx_filename = NULL;
40913   int __pyx_clineno = 0;
40914   __Pyx_RefNannySetupContext("__get__");
40915 
40916   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":353
40917  *         """true lower bound"""
40918  *         def __get__(self):
40919  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
40920  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40921  *                                              &lb, &extent) )
40922  */
40923   __pyx_v_lb = 0;
40924   __pyx_v_extent = 0;
40925 
40926   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":355
40927  *             cdef MPI_Aint lb = 0, extent = 0
40928  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40929  *                                              &lb, &extent) )             # <<<<<<<<<<<<<<
40930  *             return lb
40931  *
40932  */
40933   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_true_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40934 
40935   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":356
40936  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi,
40937  *                                              &lb, &extent) )
40938  *             return lb             # <<<<<<<<<<<<<<
40939  *
40940  *     property true_ub:
40941  */
40942   __Pyx_XDECREF(__pyx_r);
40943   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_lb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
40944   __Pyx_GOTREF(__pyx_t_2);
40945   __pyx_r = __pyx_t_2;
40946   __pyx_t_2 = 0;
40947   goto __pyx_L0;
40948 
40949   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40950   goto __pyx_L0;
40951   __pyx_L1_error:;
40952   __Pyx_XDECREF(__pyx_t_2);
40953   __Pyx_AddTraceback("mpi4py.MPI.Datatype.true_lb.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
40954   __pyx_r = NULL;
40955   __pyx_L0:;
40956   __Pyx_XGIVEREF(__pyx_r);
40957   __Pyx_RefNannyFinishContext();
40958   return __pyx_r;
40959 }
40960 
40961 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":360
40962  *     property true_ub:
40963  *         """true upper bound"""
40964  *         def __get__(self):             # <<<<<<<<<<<<<<
40965  *             cdef MPI_Aint lb = 0, extent = 0
40966  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi, &lb,
40967  */
40968 
40969 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7true_ub___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_7true_ub___get__(PyObject * __pyx_v_self)40970 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_7true_ub___get__(PyObject *__pyx_v_self) {
40971   MPI_Aint __pyx_v_lb;
40972   MPI_Aint __pyx_v_extent;
40973   PyObject *__pyx_r = NULL;
40974   __Pyx_RefNannyDeclarations
40975   int __pyx_t_1;
40976   PyObject *__pyx_t_2 = NULL;
40977   int __pyx_lineno = 0;
40978   const char *__pyx_filename = NULL;
40979   int __pyx_clineno = 0;
40980   __Pyx_RefNannySetupContext("__get__");
40981 
40982   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":361
40983  *         """true upper bound"""
40984  *         def __get__(self):
40985  *             cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
40986  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi, &lb,
40987  *                                              &extent) )
40988  */
40989   __pyx_v_lb = 0;
40990   __pyx_v_extent = 0;
40991 
40992   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":363
40993  *             cdef MPI_Aint lb = 0, extent = 0
40994  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi, &lb,
40995  *                                              &extent) )             # <<<<<<<<<<<<<<
40996  *             return lb + extent
40997  *
40998  */
40999   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_true_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41000 
41001   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":364
41002  *             CHKERR( MPI_Type_get_true_extent(self.ob_mpi, &lb,
41003  *                                              &extent) )
41004  *             return lb + extent             # <<<<<<<<<<<<<<
41005  *
41006  *     # Decoding a Datatype
41007  */
41008   __Pyx_XDECREF(__pyx_r);
41009   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_lb + __pyx_v_extent)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41010   __Pyx_GOTREF(__pyx_t_2);
41011   __pyx_r = __pyx_t_2;
41012   __pyx_t_2 = 0;
41013   goto __pyx_L0;
41014 
41015   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
41016   goto __pyx_L0;
41017   __pyx_L1_error:;
41018   __Pyx_XDECREF(__pyx_t_2);
41019   __Pyx_AddTraceback("mpi4py.MPI.Datatype.true_ub.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
41020   __pyx_r = NULL;
41021   __pyx_L0:;
41022   __Pyx_XGIVEREF(__pyx_r);
41023   __Pyx_RefNannyFinishContext();
41024   return __pyx_r;
41025 }
41026 
41027 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":369
41028  *     # -------------------
41029  *
41030  *     def Get_envelope(self):             # <<<<<<<<<<<<<<
41031  *         """
41032  *         Return information on the number and type of input arguments
41033  */
41034 
41035 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_24Get_envelope(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41036 static char __pyx_doc_6mpi4py_3MPI_8Datatype_24Get_envelope[] = "Datatype.Get_envelope(self)\n\n        Return information on the number and type of input arguments\n        used in the call that created a datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_24Get_envelope(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)41037 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_24Get_envelope(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41038   int __pyx_v_ni;
41039   int __pyx_v_na;
41040   int __pyx_v_nd;
41041   int __pyx_v_combiner;
41042   PyObject *__pyx_r = NULL;
41043   __Pyx_RefNannyDeclarations
41044   int __pyx_t_1;
41045   PyObject *__pyx_t_2 = NULL;
41046   PyObject *__pyx_t_3 = NULL;
41047   PyObject *__pyx_t_4 = NULL;
41048   PyObject *__pyx_t_5 = NULL;
41049   PyObject *__pyx_t_6 = NULL;
41050   int __pyx_lineno = 0;
41051   const char *__pyx_filename = NULL;
41052   int __pyx_clineno = 0;
41053   __Pyx_RefNannySetupContext("Get_envelope");
41054   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
41055     __Pyx_RaiseArgtupleInvalid("Get_envelope", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
41056   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_envelope", 0))) return NULL;
41057 
41058   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":374
41059  *         used in the call that created a datatype
41060  *         """
41061  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED             # <<<<<<<<<<<<<<
41062  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41063  *         return (ni, na, nd, combiner)
41064  */
41065   __pyx_v_ni = 0;
41066   __pyx_v_na = 0;
41067   __pyx_v_nd = 0;
41068   __pyx_v_combiner = MPI_UNDEFINED;
41069 
41070   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":375
41071  *         """
41072  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED
41073  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )             # <<<<<<<<<<<<<<
41074  *         return (ni, na, nd, combiner)
41075  *
41076  */
41077   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_envelope(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_ni), (&__pyx_v_na), (&__pyx_v_nd), (&__pyx_v_combiner))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41078 
41079   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":376
41080  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED
41081  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41082  *         return (ni, na, nd, combiner)             # <<<<<<<<<<<<<<
41083  *
41084  *     def Get_contents(self):
41085  */
41086   __Pyx_XDECREF(__pyx_r);
41087   __pyx_t_2 = PyInt_FromLong(__pyx_v_ni); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41088   __Pyx_GOTREF(__pyx_t_2);
41089   __pyx_t_3 = PyInt_FromLong(__pyx_v_na); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41090   __Pyx_GOTREF(__pyx_t_3);
41091   __pyx_t_4 = PyInt_FromLong(__pyx_v_nd); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41092   __Pyx_GOTREF(__pyx_t_4);
41093   __pyx_t_5 = PyInt_FromLong(__pyx_v_combiner); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41094   __Pyx_GOTREF(__pyx_t_5);
41095   __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41096   __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41097   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
41098   __Pyx_GIVEREF(__pyx_t_2);
41099   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
41100   __Pyx_GIVEREF(__pyx_t_3);
41101   PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4);
41102   __Pyx_GIVEREF(__pyx_t_4);
41103   PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5);
41104   __Pyx_GIVEREF(__pyx_t_5);
41105   __pyx_t_2 = 0;
41106   __pyx_t_3 = 0;
41107   __pyx_t_4 = 0;
41108   __pyx_t_5 = 0;
41109   __pyx_r = ((PyObject *)__pyx_t_6);
41110   __pyx_t_6 = 0;
41111   goto __pyx_L0;
41112 
41113   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
41114   goto __pyx_L0;
41115   __pyx_L1_error:;
41116   __Pyx_XDECREF(__pyx_t_2);
41117   __Pyx_XDECREF(__pyx_t_3);
41118   __Pyx_XDECREF(__pyx_t_4);
41119   __Pyx_XDECREF(__pyx_t_5);
41120   __Pyx_XDECREF(__pyx_t_6);
41121   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_envelope", __pyx_clineno, __pyx_lineno, __pyx_filename);
41122   __pyx_r = NULL;
41123   __pyx_L0:;
41124   __Pyx_XGIVEREF(__pyx_r);
41125   __Pyx_RefNannyFinishContext();
41126   return __pyx_r;
41127 }
41128 
41129 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":378
41130  *         return (ni, na, nd, combiner)
41131  *
41132  *     def Get_contents(self):             # <<<<<<<<<<<<<<
41133  *         """
41134  *         Retrieve the actual arguments used in the call that created a
41135  */
41136 
41137 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_25Get_contents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41138 static char __pyx_doc_6mpi4py_3MPI_8Datatype_25Get_contents[] = "Datatype.Get_contents(self)\n\n        Retrieve the actual arguments used in the call that created a\n        datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_25Get_contents(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)41139 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_25Get_contents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41140   int __pyx_v_ni;
41141   int __pyx_v_na;
41142   int __pyx_v_nd;
41143   int __pyx_v_combiner;
41144   int *__pyx_v_i;
41145   MPI_Aint *__pyx_v_a;
41146   MPI_Datatype *__pyx_v_d;
41147   PyObject *__pyx_v_tmp1 = 0;
41148   PyObject *__pyx_v_tmp2 = 0;
41149   PyObject *__pyx_v_tmp3 = 0;
41150   int __pyx_v_k;
41151   PyObject *__pyx_v_integers = 0;
41152   PyObject *__pyx_v_addresses = 0;
41153   PyObject *__pyx_v_datatypes = 0;
41154   PyObject *__pyx_r = NULL;
41155   __Pyx_RefNannyDeclarations
41156   int __pyx_t_1;
41157   PyObject *__pyx_t_2 = NULL;
41158   PyObject *__pyx_t_3 = NULL;
41159   int __pyx_lineno = 0;
41160   const char *__pyx_filename = NULL;
41161   int __pyx_clineno = 0;
41162   __Pyx_RefNannySetupContext("Get_contents");
41163   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
41164     __Pyx_RaiseArgtupleInvalid("Get_contents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
41165   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_contents", 0))) return NULL;
41166 
41167   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":383
41168  *         datatype
41169  *         """
41170  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED             # <<<<<<<<<<<<<<
41171  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41172  *         cdef int *i = NULL
41173  */
41174   __pyx_v_ni = 0;
41175   __pyx_v_na = 0;
41176   __pyx_v_nd = 0;
41177   __pyx_v_combiner = MPI_UNDEFINED;
41178 
41179   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":384
41180  *         """
41181  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED
41182  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )             # <<<<<<<<<<<<<<
41183  *         cdef int *i = NULL
41184  *         cdef MPI_Aint *a = NULL
41185  */
41186   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_envelope(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_ni), (&__pyx_v_na), (&__pyx_v_nd), (&__pyx_v_combiner))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41187 
41188   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":385
41189  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED
41190  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41191  *         cdef int *i = NULL             # <<<<<<<<<<<<<<
41192  *         cdef MPI_Aint *a = NULL
41193  *         cdef MPI_Datatype *d = NULL
41194  */
41195   __pyx_v_i = NULL;
41196 
41197   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":386
41198  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41199  *         cdef int *i = NULL
41200  *         cdef MPI_Aint *a = NULL             # <<<<<<<<<<<<<<
41201  *         cdef MPI_Datatype *d = NULL
41202  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41203  */
41204   __pyx_v_a = NULL;
41205 
41206   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":387
41207  *         cdef int *i = NULL
41208  *         cdef MPI_Aint *a = NULL
41209  *         cdef MPI_Datatype *d = NULL             # <<<<<<<<<<<<<<
41210  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41211  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41212  */
41213   __pyx_v_d = NULL;
41214 
41215   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":388
41216  *         cdef MPI_Aint *a = NULL
41217  *         cdef MPI_Datatype *d = NULL
41218  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)             # <<<<<<<<<<<<<<
41219  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41220  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41221  */
41222   __pyx_t_2 = PyMPI_Allocate(__pyx_v_ni, (sizeof(int)), ((void **)(&__pyx_v_i))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41223   __Pyx_GOTREF(__pyx_t_2);
41224   __pyx_v_tmp1 = __pyx_t_2;
41225   __pyx_t_2 = 0;
41226 
41227   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":389
41228  *         cdef MPI_Datatype *d = NULL
41229  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41230  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)             # <<<<<<<<<<<<<<
41231  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41232  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41233  */
41234   __pyx_t_2 = PyMPI_Allocate(__pyx_v_na, (sizeof(MPI_Aint)), ((void **)(&__pyx_v_a))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41235   __Pyx_GOTREF(__pyx_t_2);
41236   __pyx_v_tmp2 = __pyx_t_2;
41237   __pyx_t_2 = 0;
41238 
41239   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":390
41240  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41241  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41242  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)             # <<<<<<<<<<<<<<
41243  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41244  *         cdef int k = 0
41245  */
41246   __pyx_t_2 = PyMPI_Allocate(__pyx_v_nd, (sizeof(MPI_Datatype)), ((void **)(&__pyx_v_d))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41247   __Pyx_GOTREF(__pyx_t_2);
41248   __pyx_v_tmp3 = __pyx_t_2;
41249   __pyx_t_2 = 0;
41250 
41251   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":391
41252  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41253  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41254  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )             # <<<<<<<<<<<<<<
41255  *         cdef int k = 0
41256  *         cdef object integers  = [i[k] for k from 0 <= k < ni]
41257  */
41258   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_contents(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_ni, __pyx_v_na, __pyx_v_nd, __pyx_v_i, __pyx_v_a, __pyx_v_d)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41259 
41260   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":392
41261  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41262  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41263  *         cdef int k = 0             # <<<<<<<<<<<<<<
41264  *         cdef object integers  = [i[k] for k from 0 <= k < ni]
41265  *         cdef object addresses = [a[k] for k from 0 <= k < na]
41266  */
41267   __pyx_v_k = 0;
41268 
41269   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":393
41270  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41271  *         cdef int k = 0
41272  *         cdef object integers  = [i[k] for k from 0 <= k < ni]             # <<<<<<<<<<<<<<
41273  *         cdef object addresses = [a[k] for k from 0 <= k < na]
41274  *         cdef object datatypes = [new_Datatype(d[k]) for k from 0 <= k < nd]
41275  */
41276   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41277   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
41278   __pyx_t_1 = __pyx_v_ni;
41279   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_1; __pyx_v_k++) {
41280     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41281     __Pyx_GOTREF(__pyx_t_3);
41282     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41283     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41284   }
41285   __Pyx_INCREF(((PyObject *)__pyx_t_2));
41286   __pyx_v_integers = ((PyObject *)__pyx_t_2);
41287   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
41288 
41289   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":394
41290  *         cdef int k = 0
41291  *         cdef object integers  = [i[k] for k from 0 <= k < ni]
41292  *         cdef object addresses = [a[k] for k from 0 <= k < na]             # <<<<<<<<<<<<<<
41293  *         cdef object datatypes = [new_Datatype(d[k]) for k from 0 <= k < nd]
41294  *         return (integers, addresses, datatypes)
41295  */
41296   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41297   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
41298   __pyx_t_1 = __pyx_v_na;
41299   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_1; __pyx_v_k++) {
41300     __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[__pyx_v_k])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41301     __Pyx_GOTREF(__pyx_t_3);
41302     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41303     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41304   }
41305   __Pyx_INCREF(((PyObject *)__pyx_t_2));
41306   __pyx_v_addresses = ((PyObject *)__pyx_t_2);
41307   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
41308 
41309   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":395
41310  *         cdef object integers  = [i[k] for k from 0 <= k < ni]
41311  *         cdef object addresses = [a[k] for k from 0 <= k < na]
41312  *         cdef object datatypes = [new_Datatype(d[k]) for k from 0 <= k < nd]             # <<<<<<<<<<<<<<
41313  *         return (integers, addresses, datatypes)
41314  *
41315  */
41316   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41317   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
41318   __pyx_t_1 = __pyx_v_nd;
41319   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_1; __pyx_v_k++) {
41320     __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype((__pyx_v_d[__pyx_v_k]))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41321     __Pyx_GOTREF(__pyx_t_3);
41322     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41323     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41324   }
41325   __Pyx_INCREF(((PyObject *)__pyx_t_2));
41326   __pyx_v_datatypes = ((PyObject *)__pyx_t_2);
41327   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
41328 
41329   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":396
41330  *         cdef object addresses = [a[k] for k from 0 <= k < na]
41331  *         cdef object datatypes = [new_Datatype(d[k]) for k from 0 <= k < nd]
41332  *         return (integers, addresses, datatypes)             # <<<<<<<<<<<<<<
41333  *
41334  *     def decode(self):
41335  */
41336   __Pyx_XDECREF(__pyx_r);
41337   __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41338   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
41339   __Pyx_INCREF(__pyx_v_integers);
41340   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_integers);
41341   __Pyx_GIVEREF(__pyx_v_integers);
41342   __Pyx_INCREF(__pyx_v_addresses);
41343   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_addresses);
41344   __Pyx_GIVEREF(__pyx_v_addresses);
41345   __Pyx_INCREF(__pyx_v_datatypes);
41346   PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_datatypes);
41347   __Pyx_GIVEREF(__pyx_v_datatypes);
41348   __pyx_r = ((PyObject *)__pyx_t_2);
41349   __pyx_t_2 = 0;
41350   goto __pyx_L0;
41351 
41352   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
41353   goto __pyx_L0;
41354   __pyx_L1_error:;
41355   __Pyx_XDECREF(__pyx_t_2);
41356   __Pyx_XDECREF(__pyx_t_3);
41357   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
41358   __pyx_r = NULL;
41359   __pyx_L0:;
41360   __Pyx_XDECREF(__pyx_v_tmp1);
41361   __Pyx_XDECREF(__pyx_v_tmp2);
41362   __Pyx_XDECREF(__pyx_v_tmp3);
41363   __Pyx_XDECREF(__pyx_v_integers);
41364   __Pyx_XDECREF(__pyx_v_addresses);
41365   __Pyx_XDECREF(__pyx_v_datatypes);
41366   __Pyx_XGIVEREF(__pyx_r);
41367   __Pyx_RefNannyFinishContext();
41368   return __pyx_r;
41369 }
41370 
41371 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":398
41372  *         return (integers, addresses, datatypes)
41373  *
41374  *     def decode(self):             # <<<<<<<<<<<<<<
41375  *         """
41376  *         Convenience method for decoding a datatype
41377  */
41378 
41379 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_26decode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41380 static char __pyx_doc_6mpi4py_3MPI_8Datatype_26decode[] = "Datatype.decode(self)\n\n        Convenience method for decoding a datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_26decode(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)41381 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_26decode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41382   int __pyx_v_ni;
41383   int __pyx_v_na;
41384   int __pyx_v_nd;
41385   int __pyx_v_combiner;
41386   int *__pyx_v_i;
41387   MPI_Aint *__pyx_v_a;
41388   MPI_Datatype *__pyx_v_d;
41389   PyObject *__pyx_v_tmp1 = 0;
41390   PyObject *__pyx_v_tmp2 = 0;
41391   PyObject *__pyx_v_tmp3 = 0;
41392   int __pyx_v_k;
41393   int __pyx_v_s1;
41394   int __pyx_v_e1;
41395   int __pyx_v_s2;
41396   int __pyx_v_e2;
41397   int __pyx_v_s3;
41398   int __pyx_v_e3;
41399   int __pyx_v_s4;
41400   int __pyx_v_e4;
41401   PyObject *__pyx_v_oldtype = 0;
41402   PyObject *__pyx_r = NULL;
41403   __Pyx_RefNannyDeclarations
41404   int __pyx_t_1;
41405   int __pyx_t_2;
41406   PyObject *__pyx_t_3 = NULL;
41407   int __pyx_t_4;
41408   int __pyx_t_5;
41409   PyObject *__pyx_t_6 = NULL;
41410   int __pyx_t_7;
41411   PyObject *__pyx_t_8 = NULL;
41412   int __pyx_lineno = 0;
41413   const char *__pyx_filename = NULL;
41414   int __pyx_clineno = 0;
41415   __Pyx_RefNannySetupContext("decode");
41416   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
41417     __Pyx_RaiseArgtupleInvalid("decode", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
41418   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "decode", 0))) return NULL;
41419 
41420   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":403
41421  *         """
41422  *         # get the datatype envelope
41423  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED             # <<<<<<<<<<<<<<
41424  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41425  *         # return self immediatly for named datatypes
41426  */
41427   __pyx_v_ni = 0;
41428   __pyx_v_na = 0;
41429   __pyx_v_nd = 0;
41430   __pyx_v_combiner = MPI_UNDEFINED;
41431 
41432   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":404
41433  *         # get the datatype envelope
41434  *         cdef int ni = 0, na = 0, nd = 0, combiner = MPI_UNDEFINED
41435  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )             # <<<<<<<<<<<<<<
41436  *         # return self immediatly for named datatypes
41437  *         if combiner == MPI_COMBINER_NAMED: return self
41438  */
41439   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_envelope(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_ni), (&__pyx_v_na), (&__pyx_v_nd), (&__pyx_v_combiner))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41440 
41441   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":406
41442  *         CHKERR( MPI_Type_get_envelope(self.ob_mpi, &ni, &na, &nd, &combiner) )
41443  *         # return self immediatly for named datatypes
41444  *         if combiner == MPI_COMBINER_NAMED: return self             # <<<<<<<<<<<<<<
41445  *         # get the datatype contents
41446  *         cdef int *i = NULL
41447  */
41448   __pyx_t_2 = (__pyx_v_combiner == MPI_COMBINER_NAMED);
41449   if (__pyx_t_2) {
41450     __Pyx_XDECREF(__pyx_r);
41451     __Pyx_INCREF(__pyx_v_self);
41452     __pyx_r = __pyx_v_self;
41453     goto __pyx_L0;
41454     goto __pyx_L5;
41455   }
41456   __pyx_L5:;
41457 
41458   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":408
41459  *         if combiner == MPI_COMBINER_NAMED: return self
41460  *         # get the datatype contents
41461  *         cdef int *i = NULL             # <<<<<<<<<<<<<<
41462  *         cdef MPI_Aint *a = NULL
41463  *         cdef MPI_Datatype *d = NULL
41464  */
41465   __pyx_v_i = NULL;
41466 
41467   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":409
41468  *         # get the datatype contents
41469  *         cdef int *i = NULL
41470  *         cdef MPI_Aint *a = NULL             # <<<<<<<<<<<<<<
41471  *         cdef MPI_Datatype *d = NULL
41472  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41473  */
41474   __pyx_v_a = NULL;
41475 
41476   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":410
41477  *         cdef int *i = NULL
41478  *         cdef MPI_Aint *a = NULL
41479  *         cdef MPI_Datatype *d = NULL             # <<<<<<<<<<<<<<
41480  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41481  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41482  */
41483   __pyx_v_d = NULL;
41484 
41485   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":411
41486  *         cdef MPI_Aint *a = NULL
41487  *         cdef MPI_Datatype *d = NULL
41488  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)             # <<<<<<<<<<<<<<
41489  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41490  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41491  */
41492   __pyx_t_3 = PyMPI_Allocate(__pyx_v_ni, (sizeof(int)), ((void **)(&__pyx_v_i))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41493   __Pyx_GOTREF(__pyx_t_3);
41494   __pyx_v_tmp1 = __pyx_t_3;
41495   __pyx_t_3 = 0;
41496 
41497   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":412
41498  *         cdef MPI_Datatype *d = NULL
41499  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41500  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)             # <<<<<<<<<<<<<<
41501  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41502  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41503  */
41504   __pyx_t_3 = PyMPI_Allocate(__pyx_v_na, (sizeof(MPI_Aint)), ((void **)(&__pyx_v_a))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41505   __Pyx_GOTREF(__pyx_t_3);
41506   __pyx_v_tmp2 = __pyx_t_3;
41507   __pyx_t_3 = 0;
41508 
41509   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":413
41510  *         cdef tmp1 = allocate(ni, sizeof(int), <void**>&i)
41511  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41512  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)             # <<<<<<<<<<<<<<
41513  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41514  *         # manage in advance the contained datatypes
41515  */
41516   __pyx_t_3 = PyMPI_Allocate(__pyx_v_nd, (sizeof(MPI_Datatype)), ((void **)(&__pyx_v_d))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41517   __Pyx_GOTREF(__pyx_t_3);
41518   __pyx_v_tmp3 = __pyx_t_3;
41519   __pyx_t_3 = 0;
41520 
41521   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":414
41522  *         cdef tmp2 = allocate(na, sizeof(MPI_Aint), <void**>&a)
41523  *         cdef tmp3 = allocate(nd, sizeof(MPI_Datatype), <void**>&d)
41524  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )             # <<<<<<<<<<<<<<
41525  *         # manage in advance the contained datatypes
41526  *         cdef int k = 0, s1, e1, s2, e2, s3, e3, s4, e4
41527  */
41528   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_contents(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_ni, __pyx_v_na, __pyx_v_nd, __pyx_v_i, __pyx_v_a, __pyx_v_d)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41529 
41530   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":416
41531  *         CHKERR( MPI_Type_get_contents(self.ob_mpi, ni, na, nd, i, a, d) )
41532  *         # manage in advance the contained datatypes
41533  *         cdef int k = 0, s1, e1, s2, e2, s3, e3, s4, e4             # <<<<<<<<<<<<<<
41534  *         cdef object oldtype = None
41535  *         if (combiner == <int>MPI_COMBINER_STRUCT or
41536  */
41537   __pyx_v_k = 0;
41538 
41539   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":417
41540  *         # manage in advance the contained datatypes
41541  *         cdef int k = 0, s1, e1, s2, e2, s3, e3, s4, e4
41542  *         cdef object oldtype = None             # <<<<<<<<<<<<<<
41543  *         if (combiner == <int>MPI_COMBINER_STRUCT or
41544  *             combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
41545  */
41546   __Pyx_INCREF(Py_None);
41547   __pyx_v_oldtype = Py_None;
41548 
41549   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":418
41550  *         cdef int k = 0, s1, e1, s2, e2, s3, e3, s4, e4
41551  *         cdef object oldtype = None
41552  *         if (combiner == <int>MPI_COMBINER_STRUCT or             # <<<<<<<<<<<<<<
41553  *             combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
41554  *             oldtype = [new_Datatype(d[k]) for k from 0 <= k < nd]
41555  */
41556   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_STRUCT));
41557   if (!__pyx_t_2) {
41558 
41559     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":419
41560  *         cdef object oldtype = None
41561  *         if (combiner == <int>MPI_COMBINER_STRUCT or
41562  *             combiner == <int>MPI_COMBINER_STRUCT_INTEGER):             # <<<<<<<<<<<<<<
41563  *             oldtype = [new_Datatype(d[k]) for k from 0 <= k < nd]
41564  *         elif (combiner != <int>MPI_COMBINER_F90_INTEGER and
41565  */
41566     __pyx_t_4 = (__pyx_v_combiner == ((int)MPI_COMBINER_STRUCT_INTEGER));
41567     __pyx_t_5 = __pyx_t_4;
41568   } else {
41569     __pyx_t_5 = __pyx_t_2;
41570   }
41571   if (__pyx_t_5) {
41572 
41573     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":420
41574  *         if (combiner == <int>MPI_COMBINER_STRUCT or
41575  *             combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
41576  *             oldtype = [new_Datatype(d[k]) for k from 0 <= k < nd]             # <<<<<<<<<<<<<<
41577  *         elif (combiner != <int>MPI_COMBINER_F90_INTEGER and
41578  *               combiner != <int>MPI_COMBINER_F90_REAL and
41579  */
41580     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41581     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41582     __pyx_t_1 = __pyx_v_nd;
41583     for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_1; __pyx_v_k++) {
41584       __pyx_t_6 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype((__pyx_v_d[__pyx_v_k]))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41585       __Pyx_GOTREF(__pyx_t_6);
41586       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_6))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41587       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
41588     }
41589     __Pyx_INCREF(((PyObject *)__pyx_t_3));
41590     __Pyx_DECREF(__pyx_v_oldtype);
41591     __pyx_v_oldtype = ((PyObject *)__pyx_t_3);
41592     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
41593     goto __pyx_L6;
41594   }
41595 
41596   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":421
41597  *             combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
41598  *             oldtype = [new_Datatype(d[k]) for k from 0 <= k < nd]
41599  *         elif (combiner != <int>MPI_COMBINER_F90_INTEGER and             # <<<<<<<<<<<<<<
41600  *               combiner != <int>MPI_COMBINER_F90_REAL and
41601  *               combiner != <int>MPI_COMBINER_F90_COMPLEX):
41602  */
41603   __pyx_t_5 = (__pyx_v_combiner != ((int)MPI_COMBINER_F90_INTEGER));
41604   if (__pyx_t_5) {
41605 
41606     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":422
41607  *             oldtype = [new_Datatype(d[k]) for k from 0 <= k < nd]
41608  *         elif (combiner != <int>MPI_COMBINER_F90_INTEGER and
41609  *               combiner != <int>MPI_COMBINER_F90_REAL and             # <<<<<<<<<<<<<<
41610  *               combiner != <int>MPI_COMBINER_F90_COMPLEX):
41611  *             oldtype = new_Datatype(d[0])
41612  */
41613     __pyx_t_2 = (__pyx_v_combiner != ((int)MPI_COMBINER_F90_REAL));
41614     if (__pyx_t_2) {
41615 
41616       /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":423
41617  *         elif (combiner != <int>MPI_COMBINER_F90_INTEGER and
41618  *               combiner != <int>MPI_COMBINER_F90_REAL and
41619  *               combiner != <int>MPI_COMBINER_F90_COMPLEX):             # <<<<<<<<<<<<<<
41620  *             oldtype = new_Datatype(d[0])
41621  *         # dispatch depending on the combiner value
41622  */
41623       __pyx_t_4 = (__pyx_v_combiner != ((int)MPI_COMBINER_F90_COMPLEX));
41624       __pyx_t_7 = __pyx_t_4;
41625     } else {
41626       __pyx_t_7 = __pyx_t_2;
41627     }
41628     __pyx_t_2 = __pyx_t_7;
41629   } else {
41630     __pyx_t_2 = __pyx_t_5;
41631   }
41632   if (__pyx_t_2) {
41633 
41634     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":424
41635  *               combiner != <int>MPI_COMBINER_F90_REAL and
41636  *               combiner != <int>MPI_COMBINER_F90_COMPLEX):
41637  *             oldtype = new_Datatype(d[0])             # <<<<<<<<<<<<<<
41638  *         # dispatch depending on the combiner value
41639  *         if combiner == <int>MPI_COMBINER_DUP:
41640  */
41641     __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype((__pyx_v_d[0]))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41642     __Pyx_GOTREF(__pyx_t_3);
41643     __Pyx_DECREF(__pyx_v_oldtype);
41644     __pyx_v_oldtype = __pyx_t_3;
41645     __pyx_t_3 = 0;
41646     goto __pyx_L6;
41647   }
41648   __pyx_L6:;
41649 
41650   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":426
41651  *             oldtype = new_Datatype(d[0])
41652  *         # dispatch depending on the combiner value
41653  *         if combiner == <int>MPI_COMBINER_DUP:             # <<<<<<<<<<<<<<
41654  *             return (oldtype, ('DUP'), {})
41655  *         elif combiner == <int>MPI_COMBINER_CONTIGUOUS:
41656  */
41657   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_DUP));
41658   if (__pyx_t_2) {
41659 
41660     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":427
41661  *         # dispatch depending on the combiner value
41662  *         if combiner == <int>MPI_COMBINER_DUP:
41663  *             return (oldtype, ('DUP'), {})             # <<<<<<<<<<<<<<
41664  *         elif combiner == <int>MPI_COMBINER_CONTIGUOUS:
41665  *             return (oldtype, ('CONTIGUOUS'),
41666  */
41667     __Pyx_XDECREF(__pyx_r);
41668     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41669     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41670     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41671     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41672     __Pyx_INCREF(__pyx_v_oldtype);
41673     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
41674     __Pyx_GIVEREF(__pyx_v_oldtype);
41675     __Pyx_INCREF(((PyObject *)__pyx_n_s__DUP));
41676     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__DUP));
41677     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__DUP));
41678     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
41679     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
41680     __pyx_t_3 = 0;
41681     __pyx_r = ((PyObject *)__pyx_t_6);
41682     __pyx_t_6 = 0;
41683     goto __pyx_L0;
41684     goto __pyx_L9;
41685   }
41686 
41687   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":428
41688  *         if combiner == <int>MPI_COMBINER_DUP:
41689  *             return (oldtype, ('DUP'), {})
41690  *         elif combiner == <int>MPI_COMBINER_CONTIGUOUS:             # <<<<<<<<<<<<<<
41691  *             return (oldtype, ('CONTIGUOUS'),
41692  *                     {('count') : i[0]})
41693  */
41694   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_CONTIGUOUS));
41695   if (__pyx_t_2) {
41696 
41697     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":429
41698  *             return (oldtype, ('DUP'), {})
41699  *         elif combiner == <int>MPI_COMBINER_CONTIGUOUS:
41700  *             return (oldtype, ('CONTIGUOUS'),             # <<<<<<<<<<<<<<
41701  *                     {('count') : i[0]})
41702  *         elif combiner == <int>MPI_COMBINER_VECTOR:
41703  */
41704     __Pyx_XDECREF(__pyx_r);
41705 
41706     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":430
41707  *         elif combiner == <int>MPI_COMBINER_CONTIGUOUS:
41708  *             return (oldtype, ('CONTIGUOUS'),
41709  *                     {('count') : i[0]})             # <<<<<<<<<<<<<<
41710  *         elif combiner == <int>MPI_COMBINER_VECTOR:
41711  *             return (oldtype, ('VECTOR'),
41712  */
41713     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41714     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41715     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41716     __Pyx_GOTREF(__pyx_t_3);
41717     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__count), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41718     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41719     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41720     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41721     __Pyx_INCREF(__pyx_v_oldtype);
41722     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_oldtype);
41723     __Pyx_GIVEREF(__pyx_v_oldtype);
41724     __Pyx_INCREF(((PyObject *)__pyx_n_s__CONTIGUOUS));
41725     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__CONTIGUOUS));
41726     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CONTIGUOUS));
41727     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
41728     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
41729     __pyx_t_6 = 0;
41730     __pyx_r = ((PyObject *)__pyx_t_3);
41731     __pyx_t_3 = 0;
41732     goto __pyx_L0;
41733     goto __pyx_L9;
41734   }
41735 
41736   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":431
41737  *             return (oldtype, ('CONTIGUOUS'),
41738  *                     {('count') : i[0]})
41739  *         elif combiner == <int>MPI_COMBINER_VECTOR:             # <<<<<<<<<<<<<<
41740  *             return (oldtype, ('VECTOR'),
41741  *                     {('count')       : i[0],
41742  */
41743   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_VECTOR));
41744   if (__pyx_t_2) {
41745 
41746     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":432
41747  *                     {('count') : i[0]})
41748  *         elif combiner == <int>MPI_COMBINER_VECTOR:
41749  *             return (oldtype, ('VECTOR'),             # <<<<<<<<<<<<<<
41750  *                     {('count')       : i[0],
41751  *                      ('blocklength') : i[1],
41752  */
41753     __Pyx_XDECREF(__pyx_r);
41754 
41755     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":433
41756  *         elif combiner == <int>MPI_COMBINER_VECTOR:
41757  *             return (oldtype, ('VECTOR'),
41758  *                     {('count')       : i[0],             # <<<<<<<<<<<<<<
41759  *                      ('blocklength') : i[1],
41760  *                      ('stride')      : i[2]})
41761  */
41762     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41763     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41764     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41765     __Pyx_GOTREF(__pyx_t_6);
41766     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__count), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41767     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
41768 
41769     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":434
41770  *             return (oldtype, ('VECTOR'),
41771  *                     {('count')       : i[0],
41772  *                      ('blocklength') : i[1],             # <<<<<<<<<<<<<<
41773  *                      ('stride')      : i[2]})
41774  *         elif (combiner == <int>MPI_COMBINER_HVECTOR or
41775  */
41776     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41777     __Pyx_GOTREF(__pyx_t_6);
41778     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__blocklength), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41779     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
41780 
41781     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":435
41782  *                     {('count')       : i[0],
41783  *                      ('blocklength') : i[1],
41784  *                      ('stride')      : i[2]})             # <<<<<<<<<<<<<<
41785  *         elif (combiner == <int>MPI_COMBINER_HVECTOR or
41786  *               combiner == <int>MPI_COMBINER_HVECTOR_INTEGER):
41787  */
41788     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[2])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41789     __Pyx_GOTREF(__pyx_t_6);
41790     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__stride), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41791     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
41792     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41793     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41794     __Pyx_INCREF(__pyx_v_oldtype);
41795     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
41796     __Pyx_GIVEREF(__pyx_v_oldtype);
41797     __Pyx_INCREF(((PyObject *)__pyx_n_s__VECTOR));
41798     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__VECTOR));
41799     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__VECTOR));
41800     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
41801     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
41802     __pyx_t_3 = 0;
41803     __pyx_r = ((PyObject *)__pyx_t_6);
41804     __pyx_t_6 = 0;
41805     goto __pyx_L0;
41806     goto __pyx_L9;
41807   }
41808 
41809   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":436
41810  *                      ('blocklength') : i[1],
41811  *                      ('stride')      : i[2]})
41812  *         elif (combiner == <int>MPI_COMBINER_HVECTOR or             # <<<<<<<<<<<<<<
41813  *               combiner == <int>MPI_COMBINER_HVECTOR_INTEGER):
41814  *             return (oldtype, ('HVECTOR'),
41815  */
41816   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_HVECTOR));
41817   if (!__pyx_t_2) {
41818 
41819     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":437
41820  *                      ('stride')      : i[2]})
41821  *         elif (combiner == <int>MPI_COMBINER_HVECTOR or
41822  *               combiner == <int>MPI_COMBINER_HVECTOR_INTEGER):             # <<<<<<<<<<<<<<
41823  *             return (oldtype, ('HVECTOR'),
41824  *                     {('count')       : i[0],
41825  */
41826     __pyx_t_5 = (__pyx_v_combiner == ((int)MPI_COMBINER_HVECTOR_INTEGER));
41827     __pyx_t_7 = __pyx_t_5;
41828   } else {
41829     __pyx_t_7 = __pyx_t_2;
41830   }
41831   if (__pyx_t_7) {
41832 
41833     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":438
41834  *         elif (combiner == <int>MPI_COMBINER_HVECTOR or
41835  *               combiner == <int>MPI_COMBINER_HVECTOR_INTEGER):
41836  *             return (oldtype, ('HVECTOR'),             # <<<<<<<<<<<<<<
41837  *                     {('count')       : i[0],
41838  *                      ('blocklength') : i[1],
41839  */
41840     __Pyx_XDECREF(__pyx_r);
41841 
41842     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":439
41843  *               combiner == <int>MPI_COMBINER_HVECTOR_INTEGER):
41844  *             return (oldtype, ('HVECTOR'),
41845  *                     {('count')       : i[0],             # <<<<<<<<<<<<<<
41846  *                      ('blocklength') : i[1],
41847  *                      ('stride')      : a[0]})
41848  */
41849     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41850     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41851     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41852     __Pyx_GOTREF(__pyx_t_3);
41853     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__count), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41854     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41855 
41856     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":440
41857  *             return (oldtype, ('HVECTOR'),
41858  *                     {('count')       : i[0],
41859  *                      ('blocklength') : i[1],             # <<<<<<<<<<<<<<
41860  *                      ('stride')      : a[0]})
41861  *         elif combiner == <int>MPI_COMBINER_INDEXED:
41862  */
41863     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41864     __Pyx_GOTREF(__pyx_t_3);
41865     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__blocklength), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41866     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41867 
41868     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":441
41869  *                     {('count')       : i[0],
41870  *                      ('blocklength') : i[1],
41871  *                      ('stride')      : a[0]})             # <<<<<<<<<<<<<<
41872  *         elif combiner == <int>MPI_COMBINER_INDEXED:
41873  *             s1 =      1; e1 =   i[0]
41874  */
41875     __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41876     __Pyx_GOTREF(__pyx_t_3);
41877     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__stride), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41878     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
41879     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41880     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41881     __Pyx_INCREF(__pyx_v_oldtype);
41882     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_oldtype);
41883     __Pyx_GIVEREF(__pyx_v_oldtype);
41884     __Pyx_INCREF(((PyObject *)__pyx_n_s__HVECTOR));
41885     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__HVECTOR));
41886     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HVECTOR));
41887     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
41888     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
41889     __pyx_t_6 = 0;
41890     __pyx_r = ((PyObject *)__pyx_t_3);
41891     __pyx_t_3 = 0;
41892     goto __pyx_L0;
41893     goto __pyx_L9;
41894   }
41895 
41896   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":442
41897  *                      ('blocklength') : i[1],
41898  *                      ('stride')      : a[0]})
41899  *         elif combiner == <int>MPI_COMBINER_INDEXED:             # <<<<<<<<<<<<<<
41900  *             s1 =      1; e1 =   i[0]
41901  *             s2 = i[0]+1; e2 = 2*i[0]
41902  */
41903   __pyx_t_7 = (__pyx_v_combiner == ((int)MPI_COMBINER_INDEXED));
41904   if (__pyx_t_7) {
41905 
41906     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":443
41907  *                      ('stride')      : a[0]})
41908  *         elif combiner == <int>MPI_COMBINER_INDEXED:
41909  *             s1 =      1; e1 =   i[0]             # <<<<<<<<<<<<<<
41910  *             s2 = i[0]+1; e2 = 2*i[0]
41911  *             return (oldtype, ('INDEXED'),
41912  */
41913     __pyx_v_s1 = 1;
41914     __pyx_v_e1 = (__pyx_v_i[0]);
41915 
41916     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":444
41917  *         elif combiner == <int>MPI_COMBINER_INDEXED:
41918  *             s1 =      1; e1 =   i[0]
41919  *             s2 = i[0]+1; e2 = 2*i[0]             # <<<<<<<<<<<<<<
41920  *             return (oldtype, ('INDEXED'),
41921  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
41922  */
41923     __pyx_v_s2 = ((__pyx_v_i[0]) + 1);
41924     __pyx_v_e2 = (2 * (__pyx_v_i[0]));
41925 
41926     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":445
41927  *             s1 =      1; e1 =   i[0]
41928  *             s2 = i[0]+1; e2 = 2*i[0]
41929  *             return (oldtype, ('INDEXED'),             # <<<<<<<<<<<<<<
41930  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
41931  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
41932  */
41933     __Pyx_XDECREF(__pyx_r);
41934 
41935     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":446
41936  *             s2 = i[0]+1; e2 = 2*i[0]
41937  *             return (oldtype, ('INDEXED'),
41938  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],             # <<<<<<<<<<<<<<
41939  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
41940  *         elif (combiner == <int>MPI_COMBINER_HINDEXED or
41941  */
41942     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41943     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
41944     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41945     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41946     __pyx_t_1 = __pyx_v_e1;
41947     for (__pyx_v_k = __pyx_v_s1; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
41948       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41949       __Pyx_GOTREF(__pyx_t_8);
41950       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41951       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
41952     }
41953     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__blocklengths), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41954     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
41955 
41956     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":447
41957  *             return (oldtype, ('INDEXED'),
41958  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
41959  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})             # <<<<<<<<<<<<<<
41960  *         elif (combiner == <int>MPI_COMBINER_HINDEXED or
41961  *               combiner == <int>MPI_COMBINER_HINDEXED_INTEGER):
41962  */
41963     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41964     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41965     __pyx_t_1 = __pyx_v_e2;
41966     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
41967       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41968       __Pyx_GOTREF(__pyx_t_8);
41969       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41970       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
41971     }
41972     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__displacements), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41973     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
41974     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
41975     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
41976     __Pyx_INCREF(__pyx_v_oldtype);
41977     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
41978     __Pyx_GIVEREF(__pyx_v_oldtype);
41979     __Pyx_INCREF(((PyObject *)__pyx_n_s__INDEXED));
41980     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__INDEXED));
41981     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__INDEXED));
41982     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
41983     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
41984     __pyx_t_3 = 0;
41985     __pyx_r = ((PyObject *)__pyx_t_6);
41986     __pyx_t_6 = 0;
41987     goto __pyx_L0;
41988     goto __pyx_L9;
41989   }
41990 
41991   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":448
41992  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
41993  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
41994  *         elif (combiner == <int>MPI_COMBINER_HINDEXED or             # <<<<<<<<<<<<<<
41995  *               combiner == <int>MPI_COMBINER_HINDEXED_INTEGER):
41996  *             s1 = 1; e1 = i[0]
41997  */
41998   __pyx_t_7 = (__pyx_v_combiner == ((int)MPI_COMBINER_HINDEXED));
41999   if (!__pyx_t_7) {
42000 
42001     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":449
42002  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
42003  *         elif (combiner == <int>MPI_COMBINER_HINDEXED or
42004  *               combiner == <int>MPI_COMBINER_HINDEXED_INTEGER):             # <<<<<<<<<<<<<<
42005  *             s1 = 1; e1 = i[0]
42006  *             s2 = 0; e2 = i[0]-1
42007  */
42008     __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_HINDEXED_INTEGER));
42009     __pyx_t_5 = __pyx_t_2;
42010   } else {
42011     __pyx_t_5 = __pyx_t_7;
42012   }
42013   if (__pyx_t_5) {
42014 
42015     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":450
42016  *         elif (combiner == <int>MPI_COMBINER_HINDEXED or
42017  *               combiner == <int>MPI_COMBINER_HINDEXED_INTEGER):
42018  *             s1 = 1; e1 = i[0]             # <<<<<<<<<<<<<<
42019  *             s2 = 0; e2 = i[0]-1
42020  *             return (oldtype, ('HINDEXED'),
42021  */
42022     __pyx_v_s1 = 1;
42023     __pyx_v_e1 = (__pyx_v_i[0]);
42024 
42025     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":451
42026  *               combiner == <int>MPI_COMBINER_HINDEXED_INTEGER):
42027  *             s1 = 1; e1 = i[0]
42028  *             s2 = 0; e2 = i[0]-1             # <<<<<<<<<<<<<<
42029  *             return (oldtype, ('HINDEXED'),
42030  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42031  */
42032     __pyx_v_s2 = 0;
42033     __pyx_v_e2 = ((__pyx_v_i[0]) - 1);
42034 
42035     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":452
42036  *             s1 = 1; e1 = i[0]
42037  *             s2 = 0; e2 = i[0]-1
42038  *             return (oldtype, ('HINDEXED'),             # <<<<<<<<<<<<<<
42039  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42040  *                      ('displacements') : [a[k] for k from s2 <= k <= e2]})
42041  */
42042     __Pyx_XDECREF(__pyx_r);
42043 
42044     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":453
42045  *             s2 = 0; e2 = i[0]-1
42046  *             return (oldtype, ('HINDEXED'),
42047  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],             # <<<<<<<<<<<<<<
42048  *                      ('displacements') : [a[k] for k from s2 <= k <= e2]})
42049  *         elif combiner == <int>MPI_COMBINER_INDEXED_BLOCK:
42050  */
42051     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42052     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42053     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42054     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42055     __pyx_t_1 = __pyx_v_e1;
42056     for (__pyx_v_k = __pyx_v_s1; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42057       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42058       __Pyx_GOTREF(__pyx_t_8);
42059       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42060       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42061     }
42062     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__blocklengths), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42063     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42064 
42065     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":454
42066  *             return (oldtype, ('HINDEXED'),
42067  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42068  *                      ('displacements') : [a[k] for k from s2 <= k <= e2]})             # <<<<<<<<<<<<<<
42069  *         elif combiner == <int>MPI_COMBINER_INDEXED_BLOCK:
42070  *             s2 = 2; e2 = i[0]+1
42071  */
42072     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42073     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42074     __pyx_t_1 = __pyx_v_e2;
42075     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42076       __pyx_t_8 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42077       __Pyx_GOTREF(__pyx_t_8);
42078       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42079       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42080     }
42081     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__displacements), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42082     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42083     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42084     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42085     __Pyx_INCREF(__pyx_v_oldtype);
42086     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_oldtype);
42087     __Pyx_GIVEREF(__pyx_v_oldtype);
42088     __Pyx_INCREF(((PyObject *)__pyx_n_s__HINDEXED));
42089     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__HINDEXED));
42090     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HINDEXED));
42091     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
42092     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
42093     __pyx_t_6 = 0;
42094     __pyx_r = ((PyObject *)__pyx_t_3);
42095     __pyx_t_3 = 0;
42096     goto __pyx_L0;
42097     goto __pyx_L9;
42098   }
42099 
42100   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":455
42101  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42102  *                      ('displacements') : [a[k] for k from s2 <= k <= e2]})
42103  *         elif combiner == <int>MPI_COMBINER_INDEXED_BLOCK:             # <<<<<<<<<<<<<<
42104  *             s2 = 2; e2 = i[0]+1
42105  *             return (oldtype, ('INDEXED_BLOCK'),
42106  */
42107   __pyx_t_5 = (__pyx_v_combiner == ((int)MPI_COMBINER_INDEXED_BLOCK));
42108   if (__pyx_t_5) {
42109 
42110     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":456
42111  *                      ('displacements') : [a[k] for k from s2 <= k <= e2]})
42112  *         elif combiner == <int>MPI_COMBINER_INDEXED_BLOCK:
42113  *             s2 = 2; e2 = i[0]+1             # <<<<<<<<<<<<<<
42114  *             return (oldtype, ('INDEXED_BLOCK'),
42115  *                     {('blocklength')   : i[1],
42116  */
42117     __pyx_v_s2 = 2;
42118     __pyx_v_e2 = ((__pyx_v_i[0]) + 1);
42119 
42120     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":457
42121  *         elif combiner == <int>MPI_COMBINER_INDEXED_BLOCK:
42122  *             s2 = 2; e2 = i[0]+1
42123  *             return (oldtype, ('INDEXED_BLOCK'),             # <<<<<<<<<<<<<<
42124  *                     {('blocklength')   : i[1],
42125  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
42126  */
42127     __Pyx_XDECREF(__pyx_r);
42128 
42129     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":458
42130  *             s2 = 2; e2 = i[0]+1
42131  *             return (oldtype, ('INDEXED_BLOCK'),
42132  *                     {('blocklength')   : i[1],             # <<<<<<<<<<<<<<
42133  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
42134  *         elif (combiner == <int>MPI_COMBINER_STRUCT or
42135  */
42136     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42137     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42138     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42139     __Pyx_GOTREF(__pyx_t_6);
42140     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__blocklength), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42141     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42142 
42143     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":459
42144  *             return (oldtype, ('INDEXED_BLOCK'),
42145  *                     {('blocklength')   : i[1],
42146  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})             # <<<<<<<<<<<<<<
42147  *         elif (combiner == <int>MPI_COMBINER_STRUCT or
42148  *               combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
42149  */
42150     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42151     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42152     __pyx_t_1 = __pyx_v_e2;
42153     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42154       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42155       __Pyx_GOTREF(__pyx_t_8);
42156       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42157       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42158     }
42159     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__displacements), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42160     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
42161     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42162     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42163     __Pyx_INCREF(__pyx_v_oldtype);
42164     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
42165     __Pyx_GIVEREF(__pyx_v_oldtype);
42166     __Pyx_INCREF(((PyObject *)__pyx_n_s__INDEXED_BLOCK));
42167     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__INDEXED_BLOCK));
42168     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__INDEXED_BLOCK));
42169     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
42170     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
42171     __pyx_t_3 = 0;
42172     __pyx_r = ((PyObject *)__pyx_t_6);
42173     __pyx_t_6 = 0;
42174     goto __pyx_L0;
42175     goto __pyx_L9;
42176   }
42177 
42178   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":460
42179  *                     {('blocklength')   : i[1],
42180  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
42181  *         elif (combiner == <int>MPI_COMBINER_STRUCT or             # <<<<<<<<<<<<<<
42182  *               combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
42183  *             s1 = 1; e1 = i[0]
42184  */
42185   __pyx_t_5 = (__pyx_v_combiner == ((int)MPI_COMBINER_STRUCT));
42186   if (!__pyx_t_5) {
42187 
42188     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":461
42189  *                      ('displacements') : [i[k] for k from s2 <= k <= e2]})
42190  *         elif (combiner == <int>MPI_COMBINER_STRUCT or
42191  *               combiner == <int>MPI_COMBINER_STRUCT_INTEGER):             # <<<<<<<<<<<<<<
42192  *             s1 = 1; e1 = i[0]
42193  *             s2 = 0; e2 = i[0]-1
42194  */
42195     __pyx_t_7 = (__pyx_v_combiner == ((int)MPI_COMBINER_STRUCT_INTEGER));
42196     __pyx_t_2 = __pyx_t_7;
42197   } else {
42198     __pyx_t_2 = __pyx_t_5;
42199   }
42200   if (__pyx_t_2) {
42201 
42202     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":462
42203  *         elif (combiner == <int>MPI_COMBINER_STRUCT or
42204  *               combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
42205  *             s1 = 1; e1 = i[0]             # <<<<<<<<<<<<<<
42206  *             s2 = 0; e2 = i[0]-1
42207  *             return (Datatype, ('STRUCT'),
42208  */
42209     __pyx_v_s1 = 1;
42210     __pyx_v_e1 = (__pyx_v_i[0]);
42211 
42212     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":463
42213  *               combiner == <int>MPI_COMBINER_STRUCT_INTEGER):
42214  *             s1 = 1; e1 = i[0]
42215  *             s2 = 0; e2 = i[0]-1             # <<<<<<<<<<<<<<
42216  *             return (Datatype, ('STRUCT'),
42217  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42218  */
42219     __pyx_v_s2 = 0;
42220     __pyx_v_e2 = ((__pyx_v_i[0]) - 1);
42221 
42222     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":464
42223  *             s1 = 1; e1 = i[0]
42224  *             s2 = 0; e2 = i[0]-1
42225  *             return (Datatype, ('STRUCT'),             # <<<<<<<<<<<<<<
42226  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42227  *                      ('displacements') : [a[k] for k from s2 <= k <= e2],
42228  */
42229     __Pyx_XDECREF(__pyx_r);
42230 
42231     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":465
42232  *             s2 = 0; e2 = i[0]-1
42233  *             return (Datatype, ('STRUCT'),
42234  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],             # <<<<<<<<<<<<<<
42235  *                      ('displacements') : [a[k] for k from s2 <= k <= e2],
42236  *                      ('datatypes')     : oldtype})
42237  */
42238     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42239     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42240     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42241     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42242     __pyx_t_1 = __pyx_v_e1;
42243     for (__pyx_v_k = __pyx_v_s1; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42244       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42245       __Pyx_GOTREF(__pyx_t_8);
42246       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42247       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42248     }
42249     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__blocklengths), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42250     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42251 
42252     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":466
42253  *             return (Datatype, ('STRUCT'),
42254  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42255  *                      ('displacements') : [a[k] for k from s2 <= k <= e2],             # <<<<<<<<<<<<<<
42256  *                      ('datatypes')     : oldtype})
42257  *         elif combiner == <int>MPI_COMBINER_SUBARRAY:
42258  */
42259     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42260     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42261     __pyx_t_1 = __pyx_v_e2;
42262     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42263       __pyx_t_8 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42264       __Pyx_GOTREF(__pyx_t_8);
42265       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42266       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42267     }
42268     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__displacements), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42269     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42270 
42271     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":467
42272  *                     {('blocklengths')  : [i[k] for k from s1 <= k <= e1],
42273  *                      ('displacements') : [a[k] for k from s2 <= k <= e2],
42274  *                      ('datatypes')     : oldtype})             # <<<<<<<<<<<<<<
42275  *         elif combiner == <int>MPI_COMBINER_SUBARRAY:
42276  *             s1 =        1; e1 =   i[0]
42277  */
42278     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__datatypes), __pyx_v_oldtype) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42279     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42280     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42281     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42282     PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42283     __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42284     __Pyx_INCREF(((PyObject *)__pyx_n_s__STRUCT));
42285     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__STRUCT));
42286     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__STRUCT));
42287     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
42288     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
42289     __pyx_t_6 = 0;
42290     __pyx_r = ((PyObject *)__pyx_t_3);
42291     __pyx_t_3 = 0;
42292     goto __pyx_L0;
42293     goto __pyx_L9;
42294   }
42295 
42296   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":468
42297  *                      ('displacements') : [a[k] for k from s2 <= k <= e2],
42298  *                      ('datatypes')     : oldtype})
42299  *         elif combiner == <int>MPI_COMBINER_SUBARRAY:             # <<<<<<<<<<<<<<
42300  *             s1 =        1; e1 =   i[0]
42301  *             s2 =   i[0]+1; e2 = 2*i[0]
42302  */
42303   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_SUBARRAY));
42304   if (__pyx_t_2) {
42305 
42306     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":469
42307  *                      ('datatypes')     : oldtype})
42308  *         elif combiner == <int>MPI_COMBINER_SUBARRAY:
42309  *             s1 =        1; e1 =   i[0]             # <<<<<<<<<<<<<<
42310  *             s2 =   i[0]+1; e2 = 2*i[0]
42311  *             s3 = 2*i[0]+1; e3 = 3*i[0]
42312  */
42313     __pyx_v_s1 = 1;
42314     __pyx_v_e1 = (__pyx_v_i[0]);
42315 
42316     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":470
42317  *         elif combiner == <int>MPI_COMBINER_SUBARRAY:
42318  *             s1 =        1; e1 =   i[0]
42319  *             s2 =   i[0]+1; e2 = 2*i[0]             # <<<<<<<<<<<<<<
42320  *             s3 = 2*i[0]+1; e3 = 3*i[0]
42321  *             return (oldtype, ('SUBARRAY'),
42322  */
42323     __pyx_v_s2 = ((__pyx_v_i[0]) + 1);
42324     __pyx_v_e2 = (2 * (__pyx_v_i[0]));
42325 
42326     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":471
42327  *             s1 =        1; e1 =   i[0]
42328  *             s2 =   i[0]+1; e2 = 2*i[0]
42329  *             s3 = 2*i[0]+1; e3 = 3*i[0]             # <<<<<<<<<<<<<<
42330  *             return (oldtype, ('SUBARRAY'),
42331  *                     {('sizes')    : [i[k] for k from s1 <= k <= e1],
42332  */
42333     __pyx_v_s3 = ((2 * (__pyx_v_i[0])) + 1);
42334     __pyx_v_e3 = (3 * (__pyx_v_i[0]));
42335 
42336     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":472
42337  *             s2 =   i[0]+1; e2 = 2*i[0]
42338  *             s3 = 2*i[0]+1; e3 = 3*i[0]
42339  *             return (oldtype, ('SUBARRAY'),             # <<<<<<<<<<<<<<
42340  *                     {('sizes')    : [i[k] for k from s1 <= k <= e1],
42341  *                      ('subsizes') : [i[k] for k from s2 <= k <= e2],
42342  */
42343     __Pyx_XDECREF(__pyx_r);
42344 
42345     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":473
42346  *             s3 = 2*i[0]+1; e3 = 3*i[0]
42347  *             return (oldtype, ('SUBARRAY'),
42348  *                     {('sizes')    : [i[k] for k from s1 <= k <= e1],             # <<<<<<<<<<<<<<
42349  *                      ('subsizes') : [i[k] for k from s2 <= k <= e2],
42350  *                      ('starts')   : [i[k] for k from s3 <= k <= e3],
42351  */
42352     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42353     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42354     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42355     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42356     __pyx_t_1 = __pyx_v_e1;
42357     for (__pyx_v_k = __pyx_v_s1; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42358       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42359       __Pyx_GOTREF(__pyx_t_8);
42360       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42361       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42362     }
42363     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__sizes), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42364     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
42365 
42366     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":474
42367  *             return (oldtype, ('SUBARRAY'),
42368  *                     {('sizes')    : [i[k] for k from s1 <= k <= e1],
42369  *                      ('subsizes') : [i[k] for k from s2 <= k <= e2],             # <<<<<<<<<<<<<<
42370  *                      ('starts')   : [i[k] for k from s3 <= k <= e3],
42371  *                      ('order')    : i[3*i[0]+1]})
42372  */
42373     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42374     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42375     __pyx_t_1 = __pyx_v_e2;
42376     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42377       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42378       __Pyx_GOTREF(__pyx_t_8);
42379       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42380       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42381     }
42382     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__subsizes), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42383     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
42384 
42385     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":475
42386  *                     {('sizes')    : [i[k] for k from s1 <= k <= e1],
42387  *                      ('subsizes') : [i[k] for k from s2 <= k <= e2],
42388  *                      ('starts')   : [i[k] for k from s3 <= k <= e3],             # <<<<<<<<<<<<<<
42389  *                      ('order')    : i[3*i[0]+1]})
42390  *         elif combiner == <int>MPI_COMBINER_DARRAY:
42391  */
42392     __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42393     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42394     __pyx_t_1 = __pyx_v_e3;
42395     for (__pyx_v_k = __pyx_v_s3; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42396       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42397       __Pyx_GOTREF(__pyx_t_8);
42398       if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42399       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42400     }
42401     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__starts), ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42402     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
42403 
42404     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":476
42405  *                      ('subsizes') : [i[k] for k from s2 <= k <= e2],
42406  *                      ('starts')   : [i[k] for k from s3 <= k <= e3],
42407  *                      ('order')    : i[3*i[0]+1]})             # <<<<<<<<<<<<<<
42408  *         elif combiner == <int>MPI_COMBINER_DARRAY:
42409  *             s1 =        3; e1 =   i[2]+2
42410  */
42411     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[((3 * (__pyx_v_i[0])) + 1)])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42412     __Pyx_GOTREF(__pyx_t_6);
42413     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__order), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42414     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42415     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42416     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42417     __Pyx_INCREF(__pyx_v_oldtype);
42418     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
42419     __Pyx_GIVEREF(__pyx_v_oldtype);
42420     __Pyx_INCREF(((PyObject *)__pyx_n_s__SUBARRAY));
42421     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__SUBARRAY));
42422     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SUBARRAY));
42423     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
42424     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
42425     __pyx_t_3 = 0;
42426     __pyx_r = ((PyObject *)__pyx_t_6);
42427     __pyx_t_6 = 0;
42428     goto __pyx_L0;
42429     goto __pyx_L9;
42430   }
42431 
42432   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":477
42433  *                      ('starts')   : [i[k] for k from s3 <= k <= e3],
42434  *                      ('order')    : i[3*i[0]+1]})
42435  *         elif combiner == <int>MPI_COMBINER_DARRAY:             # <<<<<<<<<<<<<<
42436  *             s1 =        3; e1 =   i[2]+2
42437  *             s2 =   i[2]+3; e2 = 2*i[2]+2
42438  */
42439   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_DARRAY));
42440   if (__pyx_t_2) {
42441 
42442     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":478
42443  *                      ('order')    : i[3*i[0]+1]})
42444  *         elif combiner == <int>MPI_COMBINER_DARRAY:
42445  *             s1 =        3; e1 =   i[2]+2             # <<<<<<<<<<<<<<
42446  *             s2 =   i[2]+3; e2 = 2*i[2]+2
42447  *             s3 = 2*i[2]+3; e3 = 3*i[2]+2
42448  */
42449     __pyx_v_s1 = 3;
42450     __pyx_v_e1 = ((__pyx_v_i[2]) + 2);
42451 
42452     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":479
42453  *         elif combiner == <int>MPI_COMBINER_DARRAY:
42454  *             s1 =        3; e1 =   i[2]+2
42455  *             s2 =   i[2]+3; e2 = 2*i[2]+2             # <<<<<<<<<<<<<<
42456  *             s3 = 2*i[2]+3; e3 = 3*i[2]+2
42457  *             s4 = 3*i[2]+3; e4 = 4*i[2]+2
42458  */
42459     __pyx_v_s2 = ((__pyx_v_i[2]) + 3);
42460     __pyx_v_e2 = ((2 * (__pyx_v_i[2])) + 2);
42461 
42462     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":480
42463  *             s1 =        3; e1 =   i[2]+2
42464  *             s2 =   i[2]+3; e2 = 2*i[2]+2
42465  *             s3 = 2*i[2]+3; e3 = 3*i[2]+2             # <<<<<<<<<<<<<<
42466  *             s4 = 3*i[2]+3; e4 = 4*i[2]+2
42467  *             return (oldtype, ('DARRAY'),
42468  */
42469     __pyx_v_s3 = ((2 * (__pyx_v_i[2])) + 3);
42470     __pyx_v_e3 = ((3 * (__pyx_v_i[2])) + 2);
42471 
42472     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":481
42473  *             s2 =   i[2]+3; e2 = 2*i[2]+2
42474  *             s3 = 2*i[2]+3; e3 = 3*i[2]+2
42475  *             s4 = 3*i[2]+3; e4 = 4*i[2]+2             # <<<<<<<<<<<<<<
42476  *             return (oldtype, ('DARRAY'),
42477  *                     {('size')     : i[0],
42478  */
42479     __pyx_v_s4 = ((3 * (__pyx_v_i[2])) + 3);
42480     __pyx_v_e4 = ((4 * (__pyx_v_i[2])) + 2);
42481 
42482     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":482
42483  *             s3 = 2*i[2]+3; e3 = 3*i[2]+2
42484  *             s4 = 3*i[2]+3; e4 = 4*i[2]+2
42485  *             return (oldtype, ('DARRAY'),             # <<<<<<<<<<<<<<
42486  *                     {('size')     : i[0],
42487  *                      ('rank')     : i[1],
42488  */
42489     __Pyx_XDECREF(__pyx_r);
42490 
42491     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":483
42492  *             s4 = 3*i[2]+3; e4 = 4*i[2]+2
42493  *             return (oldtype, ('DARRAY'),
42494  *                     {('size')     : i[0],             # <<<<<<<<<<<<<<
42495  *                      ('rank')     : i[1],
42496  *                      ('gsizes')   : [i[k] for k from s1 <= k <= e1],
42497  */
42498     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42499     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42500     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42501     __Pyx_GOTREF(__pyx_t_3);
42502     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__size), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42503     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42504 
42505     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":484
42506  *             return (oldtype, ('DARRAY'),
42507  *                     {('size')     : i[0],
42508  *                      ('rank')     : i[1],             # <<<<<<<<<<<<<<
42509  *                      ('gsizes')   : [i[k] for k from s1 <= k <= e1],
42510  *                      ('distribs') : [i[k] for k from s2 <= k <= e2],
42511  */
42512     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42513     __Pyx_GOTREF(__pyx_t_3);
42514     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__rank), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42515     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42516 
42517     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":485
42518  *                     {('size')     : i[0],
42519  *                      ('rank')     : i[1],
42520  *                      ('gsizes')   : [i[k] for k from s1 <= k <= e1],             # <<<<<<<<<<<<<<
42521  *                      ('distribs') : [i[k] for k from s2 <= k <= e2],
42522  *                      ('dargs')    : [i[k] for k from s3 <= k <= e3],
42523  */
42524     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42525     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42526     __pyx_t_1 = __pyx_v_e1;
42527     for (__pyx_v_k = __pyx_v_s1; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42528       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42529       __Pyx_GOTREF(__pyx_t_8);
42530       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42531       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42532     }
42533     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__gsizes), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42534     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42535 
42536     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":486
42537  *                      ('rank')     : i[1],
42538  *                      ('gsizes')   : [i[k] for k from s1 <= k <= e1],
42539  *                      ('distribs') : [i[k] for k from s2 <= k <= e2],             # <<<<<<<<<<<<<<
42540  *                      ('dargs')    : [i[k] for k from s3 <= k <= e3],
42541  *                      ('psizes')   : [i[k] for k from s4 <= k <= e4],
42542  */
42543     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42544     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42545     __pyx_t_1 = __pyx_v_e2;
42546     for (__pyx_v_k = __pyx_v_s2; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42547       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42548       __Pyx_GOTREF(__pyx_t_8);
42549       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42550       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42551     }
42552     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__distribs), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42553     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42554 
42555     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":487
42556  *                      ('gsizes')   : [i[k] for k from s1 <= k <= e1],
42557  *                      ('distribs') : [i[k] for k from s2 <= k <= e2],
42558  *                      ('dargs')    : [i[k] for k from s3 <= k <= e3],             # <<<<<<<<<<<<<<
42559  *                      ('psizes')   : [i[k] for k from s4 <= k <= e4],
42560  *                      ('order')    : i[4*i[2]+3]})
42561  */
42562     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42563     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42564     __pyx_t_1 = __pyx_v_e3;
42565     for (__pyx_v_k = __pyx_v_s3; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42566       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42567       __Pyx_GOTREF(__pyx_t_8);
42568       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42569       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42570     }
42571     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__dargs), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42572     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42573 
42574     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":488
42575  *                      ('distribs') : [i[k] for k from s2 <= k <= e2],
42576  *                      ('dargs')    : [i[k] for k from s3 <= k <= e3],
42577  *                      ('psizes')   : [i[k] for k from s4 <= k <= e4],             # <<<<<<<<<<<<<<
42578  *                      ('order')    : i[4*i[2]+3]})
42579  *         elif combiner == <int>MPI_COMBINER_RESIZED:
42580  */
42581     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42582     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42583     __pyx_t_1 = __pyx_v_e4;
42584     for (__pyx_v_k = __pyx_v_s4; __pyx_v_k <= __pyx_t_1; __pyx_v_k++) {
42585       __pyx_t_8 = PyInt_FromLong((__pyx_v_i[__pyx_v_k])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42586       __Pyx_GOTREF(__pyx_t_8);
42587       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42588       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
42589     }
42590     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__psizes), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42591     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
42592 
42593     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":489
42594  *                      ('dargs')    : [i[k] for k from s3 <= k <= e3],
42595  *                      ('psizes')   : [i[k] for k from s4 <= k <= e4],
42596  *                      ('order')    : i[4*i[2]+3]})             # <<<<<<<<<<<<<<
42597  *         elif combiner == <int>MPI_COMBINER_RESIZED:
42598  *             return (oldtype, ('RESIZED'),
42599  */
42600     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[((4 * (__pyx_v_i[2])) + 3)])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42601     __Pyx_GOTREF(__pyx_t_3);
42602     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__order), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42603     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42604     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42605     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42606     __Pyx_INCREF(__pyx_v_oldtype);
42607     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_oldtype);
42608     __Pyx_GIVEREF(__pyx_v_oldtype);
42609     __Pyx_INCREF(((PyObject *)__pyx_n_s__DARRAY));
42610     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__DARRAY));
42611     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__DARRAY));
42612     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
42613     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
42614     __pyx_t_6 = 0;
42615     __pyx_r = ((PyObject *)__pyx_t_3);
42616     __pyx_t_3 = 0;
42617     goto __pyx_L0;
42618     goto __pyx_L9;
42619   }
42620 
42621   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":490
42622  *                      ('psizes')   : [i[k] for k from s4 <= k <= e4],
42623  *                      ('order')    : i[4*i[2]+3]})
42624  *         elif combiner == <int>MPI_COMBINER_RESIZED:             # <<<<<<<<<<<<<<
42625  *             return (oldtype, ('RESIZED'),
42626  *                     {('lb')     : a[0],
42627  */
42628   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_RESIZED));
42629   if (__pyx_t_2) {
42630 
42631     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":491
42632  *                      ('order')    : i[4*i[2]+3]})
42633  *         elif combiner == <int>MPI_COMBINER_RESIZED:
42634  *             return (oldtype, ('RESIZED'),             # <<<<<<<<<<<<<<
42635  *                     {('lb')     : a[0],
42636  *                      ('extent') : a[1]})
42637  */
42638     __Pyx_XDECREF(__pyx_r);
42639 
42640     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":492
42641  *         elif combiner == <int>MPI_COMBINER_RESIZED:
42642  *             return (oldtype, ('RESIZED'),
42643  *                     {('lb')     : a[0],             # <<<<<<<<<<<<<<
42644  *                      ('extent') : a[1]})
42645  *         elif combiner == <int>MPI_COMBINER_F90_INTEGER:
42646  */
42647     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42648     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42649     __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42650     __Pyx_GOTREF(__pyx_t_6);
42651     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__lb), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42652     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42653 
42654     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":493
42655  *             return (oldtype, ('RESIZED'),
42656  *                     {('lb')     : a[0],
42657  *                      ('extent') : a[1]})             # <<<<<<<<<<<<<<
42658  *         elif combiner == <int>MPI_COMBINER_F90_INTEGER:
42659  *             return (Datatype, ('F90_INTEGER'),
42660  */
42661     __pyx_t_6 = __Pyx_PyInt_to_py_MPI_Aint((__pyx_v_a[1])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42662     __Pyx_GOTREF(__pyx_t_6);
42663     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__extent), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42664     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42665     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42666     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42667     __Pyx_INCREF(__pyx_v_oldtype);
42668     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_oldtype);
42669     __Pyx_GIVEREF(__pyx_v_oldtype);
42670     __Pyx_INCREF(((PyObject *)__pyx_n_s__RESIZED));
42671     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__RESIZED));
42672     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__RESIZED));
42673     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
42674     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
42675     __pyx_t_3 = 0;
42676     __pyx_r = ((PyObject *)__pyx_t_6);
42677     __pyx_t_6 = 0;
42678     goto __pyx_L0;
42679     goto __pyx_L9;
42680   }
42681 
42682   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":494
42683  *                     {('lb')     : a[0],
42684  *                      ('extent') : a[1]})
42685  *         elif combiner == <int>MPI_COMBINER_F90_INTEGER:             # <<<<<<<<<<<<<<
42686  *             return (Datatype, ('F90_INTEGER'),
42687  *                     {('r') : i[0]})
42688  */
42689   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_F90_INTEGER));
42690   if (__pyx_t_2) {
42691 
42692     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":495
42693  *                      ('extent') : a[1]})
42694  *         elif combiner == <int>MPI_COMBINER_F90_INTEGER:
42695  *             return (Datatype, ('F90_INTEGER'),             # <<<<<<<<<<<<<<
42696  *                     {('r') : i[0]})
42697  *         elif combiner == <int>MPI_COMBINER_F90_REAL:
42698  */
42699     __Pyx_XDECREF(__pyx_r);
42700 
42701     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":496
42702  *         elif combiner == <int>MPI_COMBINER_F90_INTEGER:
42703  *             return (Datatype, ('F90_INTEGER'),
42704  *                     {('r') : i[0]})             # <<<<<<<<<<<<<<
42705  *         elif combiner == <int>MPI_COMBINER_F90_REAL:
42706  *             return (Datatype, ('F90_REAL'),
42707  */
42708     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42709     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42710     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42711     __Pyx_GOTREF(__pyx_t_3);
42712     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__r), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42713     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42714     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42715     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42716     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42717     PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42718     __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42719     __Pyx_INCREF(((PyObject *)__pyx_n_s__F90_INTEGER));
42720     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__F90_INTEGER));
42721     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__F90_INTEGER));
42722     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
42723     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
42724     __pyx_t_6 = 0;
42725     __pyx_r = ((PyObject *)__pyx_t_3);
42726     __pyx_t_3 = 0;
42727     goto __pyx_L0;
42728     goto __pyx_L9;
42729   }
42730 
42731   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":497
42732  *             return (Datatype, ('F90_INTEGER'),
42733  *                     {('r') : i[0]})
42734  *         elif combiner == <int>MPI_COMBINER_F90_REAL:             # <<<<<<<<<<<<<<
42735  *             return (Datatype, ('F90_REAL'),
42736  *                     {('p') : i[0],
42737  */
42738   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_F90_REAL));
42739   if (__pyx_t_2) {
42740 
42741     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":498
42742  *                     {('r') : i[0]})
42743  *         elif combiner == <int>MPI_COMBINER_F90_REAL:
42744  *             return (Datatype, ('F90_REAL'),             # <<<<<<<<<<<<<<
42745  *                     {('p') : i[0],
42746  *                      ('r') : i[1]})
42747  */
42748     __Pyx_XDECREF(__pyx_r);
42749 
42750     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":499
42751  *         elif combiner == <int>MPI_COMBINER_F90_REAL:
42752  *             return (Datatype, ('F90_REAL'),
42753  *                     {('p') : i[0],             # <<<<<<<<<<<<<<
42754  *                      ('r') : i[1]})
42755  *         elif combiner == <int>MPI_COMBINER_F90_COMPLEX:
42756  */
42757     __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42758     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42759     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42760     __Pyx_GOTREF(__pyx_t_6);
42761     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__p), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42762     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42763 
42764     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":500
42765  *             return (Datatype, ('F90_REAL'),
42766  *                     {('p') : i[0],
42767  *                      ('r') : i[1]})             # <<<<<<<<<<<<<<
42768  *         elif combiner == <int>MPI_COMBINER_F90_COMPLEX:
42769  *             return (Datatype, ('F90_COMPLEX'),
42770  */
42771     __pyx_t_6 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42772     __Pyx_GOTREF(__pyx_t_6);
42773     if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__r), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42774     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
42775     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42776     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42777     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42778     PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42779     __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42780     __Pyx_INCREF(((PyObject *)__pyx_n_s__F90_REAL));
42781     PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__F90_REAL));
42782     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__F90_REAL));
42783     PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_t_3));
42784     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
42785     __pyx_t_3 = 0;
42786     __pyx_r = ((PyObject *)__pyx_t_6);
42787     __pyx_t_6 = 0;
42788     goto __pyx_L0;
42789     goto __pyx_L9;
42790   }
42791 
42792   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":501
42793  *                     {('p') : i[0],
42794  *                      ('r') : i[1]})
42795  *         elif combiner == <int>MPI_COMBINER_F90_COMPLEX:             # <<<<<<<<<<<<<<
42796  *             return (Datatype, ('F90_COMPLEX'),
42797  *                     {('p') : i[0],
42798  */
42799   __pyx_t_2 = (__pyx_v_combiner == ((int)MPI_COMBINER_F90_COMPLEX));
42800   if (__pyx_t_2) {
42801 
42802     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":502
42803  *                      ('r') : i[1]})
42804  *         elif combiner == <int>MPI_COMBINER_F90_COMPLEX:
42805  *             return (Datatype, ('F90_COMPLEX'),             # <<<<<<<<<<<<<<
42806  *                     {('p') : i[0],
42807  *                      ('r') : i[1]})
42808  */
42809     __Pyx_XDECREF(__pyx_r);
42810 
42811     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":503
42812  *         elif combiner == <int>MPI_COMBINER_F90_COMPLEX:
42813  *             return (Datatype, ('F90_COMPLEX'),
42814  *                     {('p') : i[0],             # <<<<<<<<<<<<<<
42815  *                      ('r') : i[1]})
42816  *
42817  */
42818     __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42819     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
42820     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42821     __Pyx_GOTREF(__pyx_t_3);
42822     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__p), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42823     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42824 
42825     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":504
42826  *             return (Datatype, ('F90_COMPLEX'),
42827  *                     {('p') : i[0],
42828  *                      ('r') : i[1]})             # <<<<<<<<<<<<<<
42829  *
42830  *
42831  */
42832     __pyx_t_3 = PyInt_FromLong((__pyx_v_i[1])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42833     __Pyx_GOTREF(__pyx_t_3);
42834     if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__r), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42835     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
42836     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42837     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
42838     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42839     PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42840     __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)));
42841     __Pyx_INCREF(((PyObject *)__pyx_n_s__F90_COMPLEX));
42842     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__F90_COMPLEX));
42843     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__F90_COMPLEX));
42844     PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_6));
42845     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
42846     __pyx_t_6 = 0;
42847     __pyx_r = ((PyObject *)__pyx_t_3);
42848     __pyx_t_3 = 0;
42849     goto __pyx_L0;
42850     goto __pyx_L9;
42851   }
42852   __pyx_L9:;
42853 
42854   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
42855   goto __pyx_L0;
42856   __pyx_L1_error:;
42857   __Pyx_XDECREF(__pyx_t_3);
42858   __Pyx_XDECREF(__pyx_t_6);
42859   __Pyx_XDECREF(__pyx_t_8);
42860   __Pyx_AddTraceback("mpi4py.MPI.Datatype.decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
42861   __pyx_r = NULL;
42862   __pyx_L0:;
42863   __Pyx_XDECREF(__pyx_v_tmp1);
42864   __Pyx_XDECREF(__pyx_v_tmp2);
42865   __Pyx_XDECREF(__pyx_v_tmp3);
42866   __Pyx_XDECREF(__pyx_v_oldtype);
42867   __Pyx_XGIVEREF(__pyx_r);
42868   __Pyx_RefNannyFinishContext();
42869   return __pyx_r;
42870 }
42871 
42872 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":510
42873  *     # ---------------
42874  *
42875  *     def Pack(self, inbuf, outbuf, int position, Comm comm not None):             # <<<<<<<<<<<<<<
42876  *         """
42877  *         Pack into contiguous memory according to datatype.
42878  */
42879 
42880 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_27Pack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
42881 static char __pyx_doc_6mpi4py_3MPI_8Datatype_27Pack[] = "Datatype.Pack(self, inbuf, outbuf, int position, Comm comm)\n\n        Pack into contiguous memory according to datatype.\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_27Pack(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)42882 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_27Pack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
42883   PyObject *__pyx_v_inbuf = 0;
42884   PyObject *__pyx_v_outbuf = 0;
42885   int __pyx_v_position;
42886   struct PyMPICommObject *__pyx_v_comm = 0;
42887   MPI_Aint __pyx_v_lb;
42888   MPI_Aint __pyx_v_extent;
42889   void *__pyx_v_ibptr;
42890   void *__pyx_v_obptr;
42891   MPI_Aint __pyx_v_iblen;
42892   MPI_Aint __pyx_v_oblen;
42893   PyObject *__pyx_v_ob1 = 0;
42894   PyObject *__pyx_v_ob2 = 0;
42895   int __pyx_v_icount;
42896   int __pyx_v_osize;
42897   PyObject *__pyx_r = NULL;
42898   __Pyx_RefNannyDeclarations
42899   int __pyx_t_1;
42900   PyObject *__pyx_t_2 = NULL;
42901   int __pyx_lineno = 0;
42902   const char *__pyx_filename = NULL;
42903   int __pyx_clineno = 0;
42904   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__inbuf,&__pyx_n_s__outbuf,&__pyx_n_s__position,&__pyx_n_s__comm,0};
42905   __Pyx_RefNannySetupContext("Pack");
42906   {
42907     PyObject* values[4] = {0,0,0,0};
42908     if (unlikely(__pyx_kwds)) {
42909       Py_ssize_t kw_args;
42910       switch (PyTuple_GET_SIZE(__pyx_args)) {
42911         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42912         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42913         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42914         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42915         case  0: break;
42916         default: goto __pyx_L5_argtuple_error;
42917       }
42918       kw_args = PyDict_Size(__pyx_kwds);
42919       switch (PyTuple_GET_SIZE(__pyx_args)) {
42920         case  0:
42921         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inbuf);
42922         if (likely(values[0])) kw_args--;
42923         else goto __pyx_L5_argtuple_error;
42924         case  1:
42925         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outbuf);
42926         if (likely(values[1])) kw_args--;
42927         else {
42928           __Pyx_RaiseArgtupleInvalid("Pack", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42929         }
42930         case  2:
42931         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__position);
42932         if (likely(values[2])) kw_args--;
42933         else {
42934           __Pyx_RaiseArgtupleInvalid("Pack", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42935         }
42936         case  3:
42937         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
42938         if (likely(values[3])) kw_args--;
42939         else {
42940           __Pyx_RaiseArgtupleInvalid("Pack", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42941         }
42942       }
42943       if (unlikely(kw_args > 0)) {
42944         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Pack") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42945       }
42946     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
42947       goto __pyx_L5_argtuple_error;
42948     } else {
42949       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
42950       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
42951       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
42952       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
42953     }
42954     __pyx_v_inbuf = values[0];
42955     __pyx_v_outbuf = values[1];
42956     __pyx_v_position = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_position == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42957     __pyx_v_comm = ((struct PyMPICommObject *)values[3]);
42958   }
42959   goto __pyx_L4_argument_unpacking_done;
42960   __pyx_L5_argtuple_error:;
42961   __Pyx_RaiseArgtupleInvalid("Pack", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
42962   __pyx_L3_error:;
42963   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack", __pyx_clineno, __pyx_lineno, __pyx_filename);
42964   __Pyx_RefNannyFinishContext();
42965   return NULL;
42966   __pyx_L4_argument_unpacking_done:;
42967   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 0, "comm", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42968 
42969   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":514
42970  *         Pack into contiguous memory according to datatype.
42971  *         """
42972  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
42973  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
42974  *         #
42975  */
42976   __pyx_v_lb = 0;
42977   __pyx_v_extent = 0;
42978 
42979   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":515
42980  *         """
42981  *         cdef MPI_Aint lb = 0, extent = 0
42982  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
42983  *         #
42984  *         cdef void *ibptr = NULL, *obptr = NULL
42985  */
42986   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
42987 
42988   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":517
42989  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
42990  *         #
42991  *         cdef void *ibptr = NULL, *obptr = NULL             # <<<<<<<<<<<<<<
42992  *         cdef MPI_Aint iblen = 0, oblen = 0
42993  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
42994  */
42995   __pyx_v_ibptr = NULL;
42996   __pyx_v_obptr = NULL;
42997 
42998   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":518
42999  *         #
43000  *         cdef void *ibptr = NULL, *obptr = NULL
43001  *         cdef MPI_Aint iblen = 0, oblen = 0             # <<<<<<<<<<<<<<
43002  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43003  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43004  */
43005   __pyx_v_iblen = 0;
43006   __pyx_v_oblen = 0;
43007 
43008   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":519
43009  *         cdef void *ibptr = NULL, *obptr = NULL
43010  *         cdef MPI_Aint iblen = 0, oblen = 0
43011  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)             # <<<<<<<<<<<<<<
43012  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43013  *         cdef int icount = <int>(iblen/extent), osize = <int>oblen
43014  */
43015   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_r(__pyx_v_inbuf, (&__pyx_v_ibptr), (&__pyx_v_iblen))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43016   __Pyx_GOTREF(__pyx_t_2);
43017   __pyx_v_ob1 = __pyx_t_2;
43018   __pyx_t_2 = 0;
43019 
43020   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":520
43021  *         cdef MPI_Aint iblen = 0, oblen = 0
43022  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43023  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)             # <<<<<<<<<<<<<<
43024  *         cdef int icount = <int>(iblen/extent), osize = <int>oblen
43025  *         #
43026  */
43027   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_outbuf, (&__pyx_v_obptr), (&__pyx_v_oblen))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43028   __Pyx_GOTREF(__pyx_t_2);
43029   __pyx_v_ob2 = __pyx_t_2;
43030   __pyx_t_2 = 0;
43031 
43032   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":521
43033  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43034  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43035  *         cdef int icount = <int>(iblen/extent), osize = <int>oblen             # <<<<<<<<<<<<<<
43036  *         #
43037  *         CHKERR( MPI_Pack(ibptr, icount, self.ob_mpi, obptr, osize,
43038  */
43039   __pyx_v_icount = ((int)(__pyx_v_iblen / __pyx_v_extent));
43040   __pyx_v_osize = ((int)__pyx_v_oblen);
43041 
43042   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":524
43043  *         #
43044  *         CHKERR( MPI_Pack(ibptr, icount, self.ob_mpi, obptr, osize,
43045  *                          &position, comm.ob_mpi) )             # <<<<<<<<<<<<<<
43046  *         return position
43047  *
43048  */
43049   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Pack(__pyx_v_ibptr, __pyx_v_icount, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_obptr, __pyx_v_osize, (&__pyx_v_position), __pyx_v_comm->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43050 
43051   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":525
43052  *         CHKERR( MPI_Pack(ibptr, icount, self.ob_mpi, obptr, osize,
43053  *                          &position, comm.ob_mpi) )
43054  *         return position             # <<<<<<<<<<<<<<
43055  *
43056  *     def Unpack(self, inbuf, int position, outbuf, Comm comm not None):
43057  */
43058   __Pyx_XDECREF(__pyx_r);
43059   __pyx_t_2 = PyInt_FromLong(__pyx_v_position); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43060   __Pyx_GOTREF(__pyx_t_2);
43061   __pyx_r = __pyx_t_2;
43062   __pyx_t_2 = 0;
43063   goto __pyx_L0;
43064 
43065   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
43066   goto __pyx_L0;
43067   __pyx_L1_error:;
43068   __Pyx_XDECREF(__pyx_t_2);
43069   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack", __pyx_clineno, __pyx_lineno, __pyx_filename);
43070   __pyx_r = NULL;
43071   __pyx_L0:;
43072   __Pyx_XDECREF(__pyx_v_ob1);
43073   __Pyx_XDECREF(__pyx_v_ob2);
43074   __Pyx_XGIVEREF(__pyx_r);
43075   __Pyx_RefNannyFinishContext();
43076   return __pyx_r;
43077 }
43078 
43079 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":527
43080  *         return position
43081  *
43082  *     def Unpack(self, inbuf, int position, outbuf, Comm comm not None):             # <<<<<<<<<<<<<<
43083  *         """
43084  *         Unpack from contiguous memory according to datatype.
43085  */
43086 
43087 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_28Unpack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43088 static char __pyx_doc_6mpi4py_3MPI_8Datatype_28Unpack[] = "Datatype.Unpack(self, inbuf, int position, outbuf, Comm comm)\n\n        Unpack from contiguous memory according to datatype.\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_28Unpack(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)43089 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_28Unpack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43090   PyObject *__pyx_v_inbuf = 0;
43091   int __pyx_v_position;
43092   PyObject *__pyx_v_outbuf = 0;
43093   struct PyMPICommObject *__pyx_v_comm = 0;
43094   MPI_Aint __pyx_v_lb;
43095   MPI_Aint __pyx_v_extent;
43096   void *__pyx_v_ibptr;
43097   void *__pyx_v_obptr;
43098   MPI_Aint __pyx_v_iblen;
43099   MPI_Aint __pyx_v_oblen;
43100   PyObject *__pyx_v_ob1 = 0;
43101   PyObject *__pyx_v_ob2 = 0;
43102   int __pyx_v_isize;
43103   int __pyx_v_ocount;
43104   PyObject *__pyx_r = NULL;
43105   __Pyx_RefNannyDeclarations
43106   int __pyx_t_1;
43107   PyObject *__pyx_t_2 = NULL;
43108   int __pyx_lineno = 0;
43109   const char *__pyx_filename = NULL;
43110   int __pyx_clineno = 0;
43111   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__inbuf,&__pyx_n_s__position,&__pyx_n_s__outbuf,&__pyx_n_s__comm,0};
43112   __Pyx_RefNannySetupContext("Unpack");
43113   {
43114     PyObject* values[4] = {0,0,0,0};
43115     if (unlikely(__pyx_kwds)) {
43116       Py_ssize_t kw_args;
43117       switch (PyTuple_GET_SIZE(__pyx_args)) {
43118         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43119         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43120         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43121         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43122         case  0: break;
43123         default: goto __pyx_L5_argtuple_error;
43124       }
43125       kw_args = PyDict_Size(__pyx_kwds);
43126       switch (PyTuple_GET_SIZE(__pyx_args)) {
43127         case  0:
43128         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inbuf);
43129         if (likely(values[0])) kw_args--;
43130         else goto __pyx_L5_argtuple_error;
43131         case  1:
43132         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__position);
43133         if (likely(values[1])) kw_args--;
43134         else {
43135           __Pyx_RaiseArgtupleInvalid("Unpack", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43136         }
43137         case  2:
43138         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outbuf);
43139         if (likely(values[2])) kw_args--;
43140         else {
43141           __Pyx_RaiseArgtupleInvalid("Unpack", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43142         }
43143         case  3:
43144         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
43145         if (likely(values[3])) kw_args--;
43146         else {
43147           __Pyx_RaiseArgtupleInvalid("Unpack", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43148         }
43149       }
43150       if (unlikely(kw_args > 0)) {
43151         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Unpack") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43152       }
43153     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
43154       goto __pyx_L5_argtuple_error;
43155     } else {
43156       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43157       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43158       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43159       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43160     }
43161     __pyx_v_inbuf = values[0];
43162     __pyx_v_position = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_position == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43163     __pyx_v_outbuf = values[2];
43164     __pyx_v_comm = ((struct PyMPICommObject *)values[3]);
43165   }
43166   goto __pyx_L4_argument_unpacking_done;
43167   __pyx_L5_argtuple_error:;
43168   __Pyx_RaiseArgtupleInvalid("Unpack", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43169   __pyx_L3_error:;
43170   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Unpack", __pyx_clineno, __pyx_lineno, __pyx_filename);
43171   __Pyx_RefNannyFinishContext();
43172   return NULL;
43173   __pyx_L4_argument_unpacking_done:;
43174   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 0, "comm", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43175 
43176   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":531
43177  *         Unpack from contiguous memory according to datatype.
43178  *         """
43179  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
43180  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43181  *         #
43182  */
43183   __pyx_v_lb = 0;
43184   __pyx_v_extent = 0;
43185 
43186   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":532
43187  *         """
43188  *         cdef MPI_Aint lb = 0, extent = 0
43189  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
43190  *         #
43191  *         cdef void *ibptr = NULL, *obptr = NULL
43192  */
43193   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43194 
43195   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":534
43196  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43197  *         #
43198  *         cdef void *ibptr = NULL, *obptr = NULL             # <<<<<<<<<<<<<<
43199  *         cdef MPI_Aint iblen = 0, oblen = 0
43200  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43201  */
43202   __pyx_v_ibptr = NULL;
43203   __pyx_v_obptr = NULL;
43204 
43205   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":535
43206  *         #
43207  *         cdef void *ibptr = NULL, *obptr = NULL
43208  *         cdef MPI_Aint iblen = 0, oblen = 0             # <<<<<<<<<<<<<<
43209  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43210  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43211  */
43212   __pyx_v_iblen = 0;
43213   __pyx_v_oblen = 0;
43214 
43215   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":536
43216  *         cdef void *ibptr = NULL, *obptr = NULL
43217  *         cdef MPI_Aint iblen = 0, oblen = 0
43218  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)             # <<<<<<<<<<<<<<
43219  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43220  *         cdef int isize = <int>iblen, ocount = <int>(oblen/extent)
43221  */
43222   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_r(__pyx_v_inbuf, (&__pyx_v_ibptr), (&__pyx_v_iblen))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43223   __Pyx_GOTREF(__pyx_t_2);
43224   __pyx_v_ob1 = __pyx_t_2;
43225   __pyx_t_2 = 0;
43226 
43227   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":537
43228  *         cdef MPI_Aint iblen = 0, oblen = 0
43229  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43230  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)             # <<<<<<<<<<<<<<
43231  *         cdef int isize = <int>iblen, ocount = <int>(oblen/extent)
43232  *         #
43233  */
43234   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_outbuf, (&__pyx_v_obptr), (&__pyx_v_oblen))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43235   __Pyx_GOTREF(__pyx_t_2);
43236   __pyx_v_ob2 = __pyx_t_2;
43237   __pyx_t_2 = 0;
43238 
43239   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":538
43240  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43241  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43242  *         cdef int isize = <int>iblen, ocount = <int>(oblen/extent)             # <<<<<<<<<<<<<<
43243  *         #
43244  *         CHKERR( MPI_Unpack(ibptr, isize, &position, obptr, ocount,
43245  */
43246   __pyx_v_isize = ((int)__pyx_v_iblen);
43247   __pyx_v_ocount = ((int)(__pyx_v_oblen / __pyx_v_extent));
43248 
43249   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":541
43250  *         #
43251  *         CHKERR( MPI_Unpack(ibptr, isize, &position, obptr, ocount,
43252  *                            self.ob_mpi, comm.ob_mpi) )             # <<<<<<<<<<<<<<
43253  *         return position
43254  *
43255  */
43256   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Unpack(__pyx_v_ibptr, __pyx_v_isize, (&__pyx_v_position), __pyx_v_obptr, __pyx_v_ocount, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_comm->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43257 
43258   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":542
43259  *         CHKERR( MPI_Unpack(ibptr, isize, &position, obptr, ocount,
43260  *                            self.ob_mpi, comm.ob_mpi) )
43261  *         return position             # <<<<<<<<<<<<<<
43262  *
43263  *     def Pack_size(self, int count, Comm comm not None):
43264  */
43265   __Pyx_XDECREF(__pyx_r);
43266   __pyx_t_2 = PyInt_FromLong(__pyx_v_position); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43267   __Pyx_GOTREF(__pyx_t_2);
43268   __pyx_r = __pyx_t_2;
43269   __pyx_t_2 = 0;
43270   goto __pyx_L0;
43271 
43272   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
43273   goto __pyx_L0;
43274   __pyx_L1_error:;
43275   __Pyx_XDECREF(__pyx_t_2);
43276   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Unpack", __pyx_clineno, __pyx_lineno, __pyx_filename);
43277   __pyx_r = NULL;
43278   __pyx_L0:;
43279   __Pyx_XDECREF(__pyx_v_ob1);
43280   __Pyx_XDECREF(__pyx_v_ob2);
43281   __Pyx_XGIVEREF(__pyx_r);
43282   __Pyx_RefNannyFinishContext();
43283   return __pyx_r;
43284 }
43285 
43286 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":544
43287  *         return position
43288  *
43289  *     def Pack_size(self, int count, Comm comm not None):             # <<<<<<<<<<<<<<
43290  *         """
43291  *         Returns the upper bound on the amount of space (in bytes)
43292  */
43293 
43294 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_29Pack_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43295 static char __pyx_doc_6mpi4py_3MPI_8Datatype_29Pack_size[] = "Datatype.Pack_size(self, int count, Comm comm)\n\n        Returns the upper bound on the amount of space (in bytes)\n        needed to pack a message according to datatype.\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_29Pack_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)43296 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_29Pack_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43297   int __pyx_v_count;
43298   struct PyMPICommObject *__pyx_v_comm = 0;
43299   int __pyx_v_size;
43300   PyObject *__pyx_r = NULL;
43301   __Pyx_RefNannyDeclarations
43302   int __pyx_t_1;
43303   PyObject *__pyx_t_2 = NULL;
43304   int __pyx_lineno = 0;
43305   const char *__pyx_filename = NULL;
43306   int __pyx_clineno = 0;
43307   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__count,&__pyx_n_s__comm,0};
43308   __Pyx_RefNannySetupContext("Pack_size");
43309   {
43310     PyObject* values[2] = {0,0};
43311     if (unlikely(__pyx_kwds)) {
43312       Py_ssize_t kw_args;
43313       switch (PyTuple_GET_SIZE(__pyx_args)) {
43314         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43315         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43316         case  0: break;
43317         default: goto __pyx_L5_argtuple_error;
43318       }
43319       kw_args = PyDict_Size(__pyx_kwds);
43320       switch (PyTuple_GET_SIZE(__pyx_args)) {
43321         case  0:
43322         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
43323         if (likely(values[0])) kw_args--;
43324         else goto __pyx_L5_argtuple_error;
43325         case  1:
43326         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
43327         if (likely(values[1])) kw_args--;
43328         else {
43329           __Pyx_RaiseArgtupleInvalid("Pack_size", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43330         }
43331       }
43332       if (unlikely(kw_args > 0)) {
43333         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Pack_size") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43334       }
43335     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
43336       goto __pyx_L5_argtuple_error;
43337     } else {
43338       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43339       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43340     }
43341     __pyx_v_count = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43342     __pyx_v_comm = ((struct PyMPICommObject *)values[1]);
43343   }
43344   goto __pyx_L4_argument_unpacking_done;
43345   __pyx_L5_argtuple_error:;
43346   __Pyx_RaiseArgtupleInvalid("Pack_size", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43347   __pyx_L3_error:;
43348   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
43349   __Pyx_RefNannyFinishContext();
43350   return NULL;
43351   __pyx_L4_argument_unpacking_done:;
43352   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 0, "comm", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43353 
43354   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":549
43355  *         needed to pack a message according to datatype.
43356  *         """
43357  *         cdef int size = 0             # <<<<<<<<<<<<<<
43358  *         CHKERR( MPI_Pack_size(count, self.ob_mpi,
43359  *                               comm.ob_mpi, &size) )
43360  */
43361   __pyx_v_size = 0;
43362 
43363   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":551
43364  *         cdef int size = 0
43365  *         CHKERR( MPI_Pack_size(count, self.ob_mpi,
43366  *                               comm.ob_mpi, &size) )             # <<<<<<<<<<<<<<
43367  *         return size
43368  *
43369  */
43370   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Pack_size(__pyx_v_count, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_comm->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43371 
43372   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":552
43373  *         CHKERR( MPI_Pack_size(count, self.ob_mpi,
43374  *                               comm.ob_mpi, &size) )
43375  *         return size             # <<<<<<<<<<<<<<
43376  *
43377  *     # Canonical Pack and Unpack
43378  */
43379   __Pyx_XDECREF(__pyx_r);
43380   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43381   __Pyx_GOTREF(__pyx_t_2);
43382   __pyx_r = __pyx_t_2;
43383   __pyx_t_2 = 0;
43384   goto __pyx_L0;
43385 
43386   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
43387   goto __pyx_L0;
43388   __pyx_L1_error:;
43389   __Pyx_XDECREF(__pyx_t_2);
43390   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
43391   __pyx_r = NULL;
43392   __pyx_L0:;
43393   __Pyx_XGIVEREF(__pyx_r);
43394   __Pyx_RefNannyFinishContext();
43395   return __pyx_r;
43396 }
43397 
43398 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":557
43399  *     # -------------------------
43400  *
43401  *     def Pack_external(self, datarep, inbuf, outbuf, Aint position):             # <<<<<<<<<<<<<<
43402  *         """
43403  *         Pack into contiguous memory according to datatype,
43404  */
43405 
43406 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_30Pack_external(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43407 static char __pyx_doc_6mpi4py_3MPI_8Datatype_30Pack_external[] = "Datatype.Pack_external(self, datarep, inbuf, outbuf, Aint position)\n\n        Pack into contiguous memory according to datatype,\n        using a portable data representation (**external32**).\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_30Pack_external(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)43408 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_30Pack_external(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43409   PyObject *__pyx_v_datarep = 0;
43410   PyObject *__pyx_v_inbuf = 0;
43411   PyObject *__pyx_v_outbuf = 0;
43412   MPI_Aint __pyx_v_position;
43413   char *__pyx_v_cdatarep;
43414   MPI_Aint __pyx_v_lb;
43415   MPI_Aint __pyx_v_extent;
43416   void *__pyx_v_ibptr;
43417   void *__pyx_v_obptr;
43418   MPI_Aint __pyx_v_iblen;
43419   MPI_Aint __pyx_v_oblen;
43420   PyObject *__pyx_v_ob1 = 0;
43421   PyObject *__pyx_v_ob2 = 0;
43422   int __pyx_v_icount;
43423   MPI_Aint __pyx_v_osize;
43424   PyObject *__pyx_r = NULL;
43425   __Pyx_RefNannyDeclarations
43426   PyObject *__pyx_t_1 = NULL;
43427   int __pyx_t_2;
43428   int __pyx_lineno = 0;
43429   const char *__pyx_filename = NULL;
43430   int __pyx_clineno = 0;
43431   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datarep,&__pyx_n_s__inbuf,&__pyx_n_s__outbuf,&__pyx_n_s__position,0};
43432   __Pyx_RefNannySetupContext("Pack_external");
43433   {
43434     PyObject* values[4] = {0,0,0,0};
43435     if (unlikely(__pyx_kwds)) {
43436       Py_ssize_t kw_args;
43437       switch (PyTuple_GET_SIZE(__pyx_args)) {
43438         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43439         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43440         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43441         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43442         case  0: break;
43443         default: goto __pyx_L5_argtuple_error;
43444       }
43445       kw_args = PyDict_Size(__pyx_kwds);
43446       switch (PyTuple_GET_SIZE(__pyx_args)) {
43447         case  0:
43448         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datarep);
43449         if (likely(values[0])) kw_args--;
43450         else goto __pyx_L5_argtuple_error;
43451         case  1:
43452         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inbuf);
43453         if (likely(values[1])) kw_args--;
43454         else {
43455           __Pyx_RaiseArgtupleInvalid("Pack_external", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43456         }
43457         case  2:
43458         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outbuf);
43459         if (likely(values[2])) kw_args--;
43460         else {
43461           __Pyx_RaiseArgtupleInvalid("Pack_external", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43462         }
43463         case  3:
43464         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__position);
43465         if (likely(values[3])) kw_args--;
43466         else {
43467           __Pyx_RaiseArgtupleInvalid("Pack_external", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43468         }
43469       }
43470       if (unlikely(kw_args > 0)) {
43471         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Pack_external") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43472       }
43473     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
43474       goto __pyx_L5_argtuple_error;
43475     } else {
43476       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43477       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43478       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43479       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43480     }
43481     __pyx_v_datarep = values[0];
43482     __pyx_v_inbuf = values[1];
43483     __pyx_v_outbuf = values[2];
43484     __pyx_v_position = __Pyx_PyInt_from_py_MPI_Aint(values[3]); if (unlikely((__pyx_v_position == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43485   }
43486   goto __pyx_L4_argument_unpacking_done;
43487   __pyx_L5_argtuple_error:;
43488   __Pyx_RaiseArgtupleInvalid("Pack_external", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43489   __pyx_L3_error:;
43490   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_external", __pyx_clineno, __pyx_lineno, __pyx_filename);
43491   __Pyx_RefNannyFinishContext();
43492   return NULL;
43493   __pyx_L4_argument_unpacking_done:;
43494   __Pyx_INCREF(__pyx_v_datarep);
43495 
43496   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":562
43497  *         using a portable data representation (**external32**).
43498  *         """
43499  *         cdef char *cdatarep = NULL             # <<<<<<<<<<<<<<
43500  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43501  *         cdef MPI_Aint lb = 0, extent = 0
43502  */
43503   __pyx_v_cdatarep = NULL;
43504 
43505   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":563
43506  *         """
43507  *         cdef char *cdatarep = NULL
43508  *         datarep = asmpistr(datarep, &cdatarep, NULL)             # <<<<<<<<<<<<<<
43509  *         cdef MPI_Aint lb = 0, extent = 0
43510  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43511  */
43512   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_datarep, (&__pyx_v_cdatarep), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43513   __Pyx_GOTREF(__pyx_t_1);
43514   __Pyx_DECREF(__pyx_v_datarep);
43515   __pyx_v_datarep = __pyx_t_1;
43516   __pyx_t_1 = 0;
43517 
43518   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":564
43519  *         cdef char *cdatarep = NULL
43520  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43521  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
43522  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43523  *         #
43524  */
43525   __pyx_v_lb = 0;
43526   __pyx_v_extent = 0;
43527 
43528   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":565
43529  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43530  *         cdef MPI_Aint lb = 0, extent = 0
43531  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
43532  *         #
43533  *         cdef void *ibptr = NULL, *obptr = NULL
43534  */
43535   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43536 
43537   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":567
43538  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43539  *         #
43540  *         cdef void *ibptr = NULL, *obptr = NULL             # <<<<<<<<<<<<<<
43541  *         cdef MPI_Aint iblen = 0, oblen = 0
43542  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43543  */
43544   __pyx_v_ibptr = NULL;
43545   __pyx_v_obptr = NULL;
43546 
43547   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":568
43548  *         #
43549  *         cdef void *ibptr = NULL, *obptr = NULL
43550  *         cdef MPI_Aint iblen = 0, oblen = 0             # <<<<<<<<<<<<<<
43551  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43552  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43553  */
43554   __pyx_v_iblen = 0;
43555   __pyx_v_oblen = 0;
43556 
43557   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":569
43558  *         cdef void *ibptr = NULL, *obptr = NULL
43559  *         cdef MPI_Aint iblen = 0, oblen = 0
43560  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)             # <<<<<<<<<<<<<<
43561  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43562  *         cdef int icount = <int>(iblen/extent) # XXX overflow?
43563  */
43564   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_r(__pyx_v_inbuf, (&__pyx_v_ibptr), (&__pyx_v_iblen))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43565   __Pyx_GOTREF(__pyx_t_1);
43566   __pyx_v_ob1 = __pyx_t_1;
43567   __pyx_t_1 = 0;
43568 
43569   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":570
43570  *         cdef MPI_Aint iblen = 0, oblen = 0
43571  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43572  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)             # <<<<<<<<<<<<<<
43573  *         cdef int icount = <int>(iblen/extent) # XXX overflow?
43574  *         cdef MPI_Aint osize = oblen
43575  */
43576   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_outbuf, (&__pyx_v_obptr), (&__pyx_v_oblen))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43577   __Pyx_GOTREF(__pyx_t_1);
43578   __pyx_v_ob2 = __pyx_t_1;
43579   __pyx_t_1 = 0;
43580 
43581   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":571
43582  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43583  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43584  *         cdef int icount = <int>(iblen/extent) # XXX overflow?             # <<<<<<<<<<<<<<
43585  *         cdef MPI_Aint osize = oblen
43586  *         #
43587  */
43588   __pyx_v_icount = ((int)(__pyx_v_iblen / __pyx_v_extent));
43589 
43590   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":572
43591  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43592  *         cdef int icount = <int>(iblen/extent) # XXX overflow?
43593  *         cdef MPI_Aint osize = oblen             # <<<<<<<<<<<<<<
43594  *         #
43595  *         CHKERR( MPI_Pack_external(cdatarep, ibptr, icount,
43596  */
43597   __pyx_v_osize = __pyx_v_oblen;
43598 
43599   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":576
43600  *         CHKERR( MPI_Pack_external(cdatarep, ibptr, icount,
43601  *                                   self.ob_mpi,
43602  *                                   obptr, osize, &position) )             # <<<<<<<<<<<<<<
43603  *         return position
43604  *
43605  */
43606   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Pack_external(__pyx_v_cdatarep, __pyx_v_ibptr, __pyx_v_icount, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_obptr, __pyx_v_osize, (&__pyx_v_position))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43607 
43608   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":577
43609  *                                   self.ob_mpi,
43610  *                                   obptr, osize, &position) )
43611  *         return position             # <<<<<<<<<<<<<<
43612  *
43613  *     def Unpack_external(self, datarep, inbuf, Aint position, outbuf):
43614  */
43615   __Pyx_XDECREF(__pyx_r);
43616   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_position); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43617   __Pyx_GOTREF(__pyx_t_1);
43618   __pyx_r = __pyx_t_1;
43619   __pyx_t_1 = 0;
43620   goto __pyx_L0;
43621 
43622   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
43623   goto __pyx_L0;
43624   __pyx_L1_error:;
43625   __Pyx_XDECREF(__pyx_t_1);
43626   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_external", __pyx_clineno, __pyx_lineno, __pyx_filename);
43627   __pyx_r = NULL;
43628   __pyx_L0:;
43629   __Pyx_XDECREF(__pyx_v_ob1);
43630   __Pyx_XDECREF(__pyx_v_ob2);
43631   __Pyx_XDECREF(__pyx_v_datarep);
43632   __Pyx_XGIVEREF(__pyx_r);
43633   __Pyx_RefNannyFinishContext();
43634   return __pyx_r;
43635 }
43636 
43637 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":579
43638  *         return position
43639  *
43640  *     def Unpack_external(self, datarep, inbuf, Aint position, outbuf):             # <<<<<<<<<<<<<<
43641  *         """
43642  *         Unpack from contiguous memory according to datatype,
43643  */
43644 
43645 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_31Unpack_external(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43646 static char __pyx_doc_6mpi4py_3MPI_8Datatype_31Unpack_external[] = "Datatype.Unpack_external(self, datarep, inbuf, Aint position, outbuf)\n\n        Unpack from contiguous memory according to datatype,\n        using a portable data representation (**external32**).\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_31Unpack_external(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)43647 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_31Unpack_external(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43648   PyObject *__pyx_v_datarep = 0;
43649   PyObject *__pyx_v_inbuf = 0;
43650   MPI_Aint __pyx_v_position;
43651   PyObject *__pyx_v_outbuf = 0;
43652   char *__pyx_v_cdatarep;
43653   MPI_Aint __pyx_v_lb;
43654   MPI_Aint __pyx_v_extent;
43655   void *__pyx_v_ibptr;
43656   void *__pyx_v_obptr;
43657   MPI_Aint __pyx_v_iblen;
43658   MPI_Aint __pyx_v_oblen;
43659   PyObject *__pyx_v_ob1 = 0;
43660   PyObject *__pyx_v_ob2 = 0;
43661   MPI_Aint __pyx_v_isize;
43662   int __pyx_v_ocount;
43663   PyObject *__pyx_r = NULL;
43664   __Pyx_RefNannyDeclarations
43665   PyObject *__pyx_t_1 = NULL;
43666   int __pyx_t_2;
43667   int __pyx_lineno = 0;
43668   const char *__pyx_filename = NULL;
43669   int __pyx_clineno = 0;
43670   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datarep,&__pyx_n_s__inbuf,&__pyx_n_s__position,&__pyx_n_s__outbuf,0};
43671   __Pyx_RefNannySetupContext("Unpack_external");
43672   {
43673     PyObject* values[4] = {0,0,0,0};
43674     if (unlikely(__pyx_kwds)) {
43675       Py_ssize_t kw_args;
43676       switch (PyTuple_GET_SIZE(__pyx_args)) {
43677         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43678         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43679         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43680         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43681         case  0: break;
43682         default: goto __pyx_L5_argtuple_error;
43683       }
43684       kw_args = PyDict_Size(__pyx_kwds);
43685       switch (PyTuple_GET_SIZE(__pyx_args)) {
43686         case  0:
43687         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datarep);
43688         if (likely(values[0])) kw_args--;
43689         else goto __pyx_L5_argtuple_error;
43690         case  1:
43691         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inbuf);
43692         if (likely(values[1])) kw_args--;
43693         else {
43694           __Pyx_RaiseArgtupleInvalid("Unpack_external", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43695         }
43696         case  2:
43697         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__position);
43698         if (likely(values[2])) kw_args--;
43699         else {
43700           __Pyx_RaiseArgtupleInvalid("Unpack_external", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43701         }
43702         case  3:
43703         values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outbuf);
43704         if (likely(values[3])) kw_args--;
43705         else {
43706           __Pyx_RaiseArgtupleInvalid("Unpack_external", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43707         }
43708       }
43709       if (unlikely(kw_args > 0)) {
43710         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Unpack_external") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43711       }
43712     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
43713       goto __pyx_L5_argtuple_error;
43714     } else {
43715       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43716       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43717       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
43718       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
43719     }
43720     __pyx_v_datarep = values[0];
43721     __pyx_v_inbuf = values[1];
43722     __pyx_v_position = __Pyx_PyInt_from_py_MPI_Aint(values[2]); if (unlikely((__pyx_v_position == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43723     __pyx_v_outbuf = values[3];
43724   }
43725   goto __pyx_L4_argument_unpacking_done;
43726   __pyx_L5_argtuple_error:;
43727   __Pyx_RaiseArgtupleInvalid("Unpack_external", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43728   __pyx_L3_error:;
43729   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Unpack_external", __pyx_clineno, __pyx_lineno, __pyx_filename);
43730   __Pyx_RefNannyFinishContext();
43731   return NULL;
43732   __pyx_L4_argument_unpacking_done:;
43733   __Pyx_INCREF(__pyx_v_datarep);
43734 
43735   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":584
43736  *         using a portable data representation (**external32**).
43737  *         """
43738  *         cdef char *cdatarep = NULL             # <<<<<<<<<<<<<<
43739  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43740  *         cdef MPI_Aint lb = 0, extent = 0
43741  */
43742   __pyx_v_cdatarep = NULL;
43743 
43744   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":585
43745  *         """
43746  *         cdef char *cdatarep = NULL
43747  *         datarep = asmpistr(datarep, &cdatarep, NULL)             # <<<<<<<<<<<<<<
43748  *         cdef MPI_Aint lb = 0, extent = 0
43749  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43750  */
43751   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_datarep, (&__pyx_v_cdatarep), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43752   __Pyx_GOTREF(__pyx_t_1);
43753   __Pyx_DECREF(__pyx_v_datarep);
43754   __pyx_v_datarep = __pyx_t_1;
43755   __pyx_t_1 = 0;
43756 
43757   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":586
43758  *         cdef char *cdatarep = NULL
43759  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43760  *         cdef MPI_Aint lb = 0, extent = 0             # <<<<<<<<<<<<<<
43761  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43762  *         #
43763  */
43764   __pyx_v_lb = 0;
43765   __pyx_v_extent = 0;
43766 
43767   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":587
43768  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43769  *         cdef MPI_Aint lb = 0, extent = 0
43770  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )             # <<<<<<<<<<<<<<
43771  *         #
43772  *         cdef void *ibptr = NULL, *obptr = NULL
43773  */
43774   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_extent(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_lb), (&__pyx_v_extent))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43775 
43776   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":589
43777  *         CHKERR( MPI_Type_get_extent(self.ob_mpi, &lb, &extent) )
43778  *         #
43779  *         cdef void *ibptr = NULL, *obptr = NULL             # <<<<<<<<<<<<<<
43780  *         cdef MPI_Aint iblen = 0, oblen = 0
43781  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43782  */
43783   __pyx_v_ibptr = NULL;
43784   __pyx_v_obptr = NULL;
43785 
43786   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":590
43787  *         #
43788  *         cdef void *ibptr = NULL, *obptr = NULL
43789  *         cdef MPI_Aint iblen = 0, oblen = 0             # <<<<<<<<<<<<<<
43790  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43791  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43792  */
43793   __pyx_v_iblen = 0;
43794   __pyx_v_oblen = 0;
43795 
43796   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":591
43797  *         cdef void *ibptr = NULL, *obptr = NULL
43798  *         cdef MPI_Aint iblen = 0, oblen = 0
43799  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)             # <<<<<<<<<<<<<<
43800  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43801  *         cdef MPI_Aint isize = iblen,
43802  */
43803   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_r(__pyx_v_inbuf, (&__pyx_v_ibptr), (&__pyx_v_iblen))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43804   __Pyx_GOTREF(__pyx_t_1);
43805   __pyx_v_ob1 = __pyx_t_1;
43806   __pyx_t_1 = 0;
43807 
43808   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":592
43809  *         cdef MPI_Aint iblen = 0, oblen = 0
43810  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43811  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)             # <<<<<<<<<<<<<<
43812  *         cdef MPI_Aint isize = iblen,
43813  *         cdef int ocount = <int>(oblen/extent) # XXX overflow?
43814  */
43815   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_outbuf, (&__pyx_v_obptr), (&__pyx_v_oblen))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43816   __Pyx_GOTREF(__pyx_t_1);
43817   __pyx_v_ob2 = __pyx_t_1;
43818   __pyx_t_1 = 0;
43819 
43820   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":593
43821  *         cdef ob1 = getbuffer_r(inbuf,  &ibptr, &iblen)
43822  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43823  *         cdef MPI_Aint isize = iblen,             # <<<<<<<<<<<<<<
43824  *         cdef int ocount = <int>(oblen/extent) # XXX overflow?
43825  *         #
43826  */
43827   __pyx_v_isize = __pyx_v_iblen;
43828 
43829   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":594
43830  *         cdef ob2 = getbuffer_w(outbuf, &obptr, &oblen)
43831  *         cdef MPI_Aint isize = iblen,
43832  *         cdef int ocount = <int>(oblen/extent) # XXX overflow?             # <<<<<<<<<<<<<<
43833  *         #
43834  *         CHKERR( MPI_Unpack_external(cdatarep, ibptr, isize, &position,
43835  */
43836   __pyx_v_ocount = ((int)(__pyx_v_oblen / __pyx_v_extent));
43837 
43838   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":597
43839  *         #
43840  *         CHKERR( MPI_Unpack_external(cdatarep, ibptr, isize, &position,
43841  *                                     obptr, ocount, self.ob_mpi) )             # <<<<<<<<<<<<<<
43842  *         return position
43843  *
43844  */
43845   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Unpack_external(__pyx_v_cdatarep, __pyx_v_ibptr, __pyx_v_isize, (&__pyx_v_position), __pyx_v_obptr, __pyx_v_ocount, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43846 
43847   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":598
43848  *         CHKERR( MPI_Unpack_external(cdatarep, ibptr, isize, &position,
43849  *                                     obptr, ocount, self.ob_mpi) )
43850  *         return position             # <<<<<<<<<<<<<<
43851  *
43852  *     def Pack_external_size(self, datarep, int count):
43853  */
43854   __Pyx_XDECREF(__pyx_r);
43855   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_position); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43856   __Pyx_GOTREF(__pyx_t_1);
43857   __pyx_r = __pyx_t_1;
43858   __pyx_t_1 = 0;
43859   goto __pyx_L0;
43860 
43861   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
43862   goto __pyx_L0;
43863   __pyx_L1_error:;
43864   __Pyx_XDECREF(__pyx_t_1);
43865   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Unpack_external", __pyx_clineno, __pyx_lineno, __pyx_filename);
43866   __pyx_r = NULL;
43867   __pyx_L0:;
43868   __Pyx_XDECREF(__pyx_v_ob1);
43869   __Pyx_XDECREF(__pyx_v_ob2);
43870   __Pyx_XDECREF(__pyx_v_datarep);
43871   __Pyx_XGIVEREF(__pyx_r);
43872   __Pyx_RefNannyFinishContext();
43873   return __pyx_r;
43874 }
43875 
43876 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":600
43877  *         return position
43878  *
43879  *     def Pack_external_size(self, datarep, int count):             # <<<<<<<<<<<<<<
43880  *         """
43881  *         Returns the upper bound on the amount of space (in bytes)
43882  */
43883 
43884 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_32Pack_external_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43885 static char __pyx_doc_6mpi4py_3MPI_8Datatype_32Pack_external_size[] = "Datatype.Pack_external_size(self, datarep, int count)\n\n        Returns the upper bound on the amount of space (in bytes)\n        needed to pack a message according to datatype,\n        using a portable data representation (**external32**).\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_32Pack_external_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)43886 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_32Pack_external_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43887   PyObject *__pyx_v_datarep = 0;
43888   int __pyx_v_count;
43889   char *__pyx_v_cdatarep;
43890   MPI_Aint __pyx_v_size;
43891   PyObject *__pyx_r = NULL;
43892   __Pyx_RefNannyDeclarations
43893   PyObject *__pyx_t_1 = NULL;
43894   int __pyx_t_2;
43895   int __pyx_lineno = 0;
43896   const char *__pyx_filename = NULL;
43897   int __pyx_clineno = 0;
43898   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datarep,&__pyx_n_s__count,0};
43899   __Pyx_RefNannySetupContext("Pack_external_size");
43900   {
43901     PyObject* values[2] = {0,0};
43902     if (unlikely(__pyx_kwds)) {
43903       Py_ssize_t kw_args;
43904       switch (PyTuple_GET_SIZE(__pyx_args)) {
43905         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43906         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43907         case  0: break;
43908         default: goto __pyx_L5_argtuple_error;
43909       }
43910       kw_args = PyDict_Size(__pyx_kwds);
43911       switch (PyTuple_GET_SIZE(__pyx_args)) {
43912         case  0:
43913         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datarep);
43914         if (likely(values[0])) kw_args--;
43915         else goto __pyx_L5_argtuple_error;
43916         case  1:
43917         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
43918         if (likely(values[1])) kw_args--;
43919         else {
43920           __Pyx_RaiseArgtupleInvalid("Pack_external_size", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43921         }
43922       }
43923       if (unlikely(kw_args > 0)) {
43924         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Pack_external_size") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43925       }
43926     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
43927       goto __pyx_L5_argtuple_error;
43928     } else {
43929       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
43930       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
43931     }
43932     __pyx_v_datarep = values[0];
43933     __pyx_v_count = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43934   }
43935   goto __pyx_L4_argument_unpacking_done;
43936   __pyx_L5_argtuple_error:;
43937   __Pyx_RaiseArgtupleInvalid("Pack_external_size", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
43938   __pyx_L3_error:;
43939   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_external_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
43940   __Pyx_RefNannyFinishContext();
43941   return NULL;
43942   __pyx_L4_argument_unpacking_done:;
43943   __Pyx_INCREF(__pyx_v_datarep);
43944 
43945   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":606
43946  *         using a portable data representation (**external32**).
43947  *         """
43948  *         cdef char *cdatarep = NULL             # <<<<<<<<<<<<<<
43949  *         cdef MPI_Aint size = 0
43950  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43951  */
43952   __pyx_v_cdatarep = NULL;
43953 
43954   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":607
43955  *         """
43956  *         cdef char *cdatarep = NULL
43957  *         cdef MPI_Aint size = 0             # <<<<<<<<<<<<<<
43958  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43959  *         CHKERR( MPI_Pack_external_size(cdatarep, count,
43960  */
43961   __pyx_v_size = 0;
43962 
43963   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":608
43964  *         cdef char *cdatarep = NULL
43965  *         cdef MPI_Aint size = 0
43966  *         datarep = asmpistr(datarep, &cdatarep, NULL)             # <<<<<<<<<<<<<<
43967  *         CHKERR( MPI_Pack_external_size(cdatarep, count,
43968  *                                        self.ob_mpi, &size) )
43969  */
43970   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_datarep, (&__pyx_v_cdatarep), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43971   __Pyx_GOTREF(__pyx_t_1);
43972   __Pyx_DECREF(__pyx_v_datarep);
43973   __pyx_v_datarep = __pyx_t_1;
43974   __pyx_t_1 = 0;
43975 
43976   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":610
43977  *         datarep = asmpistr(datarep, &cdatarep, NULL)
43978  *         CHKERR( MPI_Pack_external_size(cdatarep, count,
43979  *                                        self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
43980  *         return size
43981  *
43982  */
43983   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Pack_external_size(__pyx_v_cdatarep, __pyx_v_count, ((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43984 
43985   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":611
43986  *         CHKERR( MPI_Pack_external_size(cdatarep, count,
43987  *                                        self.ob_mpi, &size) )
43988  *         return size             # <<<<<<<<<<<<<<
43989  *
43990  *     # Attributes
43991  */
43992   __Pyx_XDECREF(__pyx_r);
43993   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
43994   __Pyx_GOTREF(__pyx_t_1);
43995   __pyx_r = __pyx_t_1;
43996   __pyx_t_1 = 0;
43997   goto __pyx_L0;
43998 
43999   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44000   goto __pyx_L0;
44001   __pyx_L1_error:;
44002   __Pyx_XDECREF(__pyx_t_1);
44003   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Pack_external_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
44004   __pyx_r = NULL;
44005   __pyx_L0:;
44006   __Pyx_XDECREF(__pyx_v_datarep);
44007   __Pyx_XGIVEREF(__pyx_r);
44008   __Pyx_RefNannyFinishContext();
44009   return __pyx_r;
44010 }
44011 
44012 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":616
44013  *     # ----------
44014  *
44015  *     def Get_attr(self, int keyval):             # <<<<<<<<<<<<<<
44016  *         """
44017  *         Retrieve attribute value by key
44018  */
44019 
44020 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_33Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44021 static char __pyx_doc_6mpi4py_3MPI_8Datatype_33Get_attr[] = "Datatype.Get_attr(self, int keyval)\n\n        Retrieve attribute value by key\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_33Get_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44022 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_33Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44023   int __pyx_v_keyval;
44024   void *__pyx_v_attrval;
44025   int __pyx_v_flag;
44026   PyObject *__pyx_r = NULL;
44027   __Pyx_RefNannyDeclarations
44028   int __pyx_t_1;
44029   int __pyx_t_2;
44030   PyObject *__pyx_t_3 = NULL;
44031   int __pyx_lineno = 0;
44032   const char *__pyx_filename = NULL;
44033   int __pyx_clineno = 0;
44034   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
44035   __Pyx_RefNannySetupContext("Get_attr");
44036   {
44037     PyObject* values[1] = {0};
44038     if (unlikely(__pyx_kwds)) {
44039       Py_ssize_t kw_args;
44040       switch (PyTuple_GET_SIZE(__pyx_args)) {
44041         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44042         case  0: break;
44043         default: goto __pyx_L5_argtuple_error;
44044       }
44045       kw_args = PyDict_Size(__pyx_kwds);
44046       switch (PyTuple_GET_SIZE(__pyx_args)) {
44047         case  0:
44048         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
44049         if (likely(values[0])) kw_args--;
44050         else goto __pyx_L5_argtuple_error;
44051       }
44052       if (unlikely(kw_args > 0)) {
44053         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_attr") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44054       }
44055     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
44056       goto __pyx_L5_argtuple_error;
44057     } else {
44058       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44059     }
44060     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44061   }
44062   goto __pyx_L4_argument_unpacking_done;
44063   __pyx_L5_argtuple_error:;
44064   __Pyx_RaiseArgtupleInvalid("Get_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44065   __pyx_L3_error:;
44066   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44067   __Pyx_RefNannyFinishContext();
44068   return NULL;
44069   __pyx_L4_argument_unpacking_done:;
44070 
44071   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":620
44072  *         Retrieve attribute value by key
44073  *         """
44074  *         cdef void *attrval = NULL             # <<<<<<<<<<<<<<
44075  *         cdef int flag = 0
44076  *         CHKERR( MPI_Type_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
44077  */
44078   __pyx_v_attrval = NULL;
44079 
44080   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":621
44081  *         """
44082  *         cdef void *attrval = NULL
44083  *         cdef int flag = 0             # <<<<<<<<<<<<<<
44084  *         CHKERR( MPI_Type_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
44085  *         if not flag: return None
44086  */
44087   __pyx_v_flag = 0;
44088 
44089   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":622
44090  *         cdef void *attrval = NULL
44091  *         cdef int flag = 0
44092  *         CHKERR( MPI_Type_get_attr(self.ob_mpi, keyval, &attrval, &flag) )             # <<<<<<<<<<<<<<
44093  *         if not flag: return None
44094  *         if not attrval: return 0
44095  */
44096   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_attr(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, (&__pyx_v_attrval), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44097 
44098   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":623
44099  *         cdef int flag = 0
44100  *         CHKERR( MPI_Type_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
44101  *         if not flag: return None             # <<<<<<<<<<<<<<
44102  *         if not attrval: return 0
44103  *         # handle predefined keyvals
44104  */
44105   __pyx_t_2 = (!__pyx_v_flag);
44106   if (__pyx_t_2) {
44107     __Pyx_XDECREF(__pyx_r);
44108     __Pyx_INCREF(Py_None);
44109     __pyx_r = Py_None;
44110     goto __pyx_L0;
44111     goto __pyx_L6;
44112   }
44113   __pyx_L6:;
44114 
44115   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":624
44116  *         CHKERR( MPI_Type_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
44117  *         if not flag: return None
44118  *         if not attrval: return 0             # <<<<<<<<<<<<<<
44119  *         # handle predefined keyvals
44120  *         if 0: pass
44121  */
44122   __pyx_t_2 = (!(__pyx_v_attrval != 0));
44123   if (__pyx_t_2) {
44124     __Pyx_XDECREF(__pyx_r);
44125     __Pyx_INCREF(__pyx_int_0);
44126     __pyx_r = __pyx_int_0;
44127     goto __pyx_L0;
44128     goto __pyx_L7;
44129   }
44130   __pyx_L7:;
44131 
44132   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":628
44133  *         if 0: pass
44134  *         # likely be a user-defined keyval
44135  *         elif keyval in type_keyval:             # <<<<<<<<<<<<<<
44136  *             return <object>attrval
44137  *         else:
44138  */
44139   __pyx_t_3 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44140   __Pyx_GOTREF(__pyx_t_3);
44141   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval) == Py_None)) {
44142     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44143   }
44144   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_t_3))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44145   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44146   if (__pyx_t_2) {
44147 
44148     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":629
44149  *         # likely be a user-defined keyval
44150  *         elif keyval in type_keyval:
44151  *             return <object>attrval             # <<<<<<<<<<<<<<
44152  *         else:
44153  *             return PyLong_FromVoidPtr(attrval)
44154  */
44155     __Pyx_XDECREF(__pyx_r);
44156     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
44157     __pyx_r = ((PyObject *)__pyx_v_attrval);
44158     goto __pyx_L0;
44159     goto __pyx_L8;
44160   }
44161   /*else*/ {
44162 
44163     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":631
44164  *             return <object>attrval
44165  *         else:
44166  *             return PyLong_FromVoidPtr(attrval)             # <<<<<<<<<<<<<<
44167  *
44168  *     def Set_attr(self, int keyval, object attrval):
44169  */
44170     __Pyx_XDECREF(__pyx_r);
44171     __pyx_t_3 = PyLong_FromVoidPtr(__pyx_v_attrval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44172     __Pyx_GOTREF(__pyx_t_3);
44173     __pyx_r = __pyx_t_3;
44174     __pyx_t_3 = 0;
44175     goto __pyx_L0;
44176   }
44177   __pyx_L8:;
44178 
44179   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44180   goto __pyx_L0;
44181   __pyx_L1_error:;
44182   __Pyx_XDECREF(__pyx_t_3);
44183   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44184   __pyx_r = NULL;
44185   __pyx_L0:;
44186   __Pyx_XGIVEREF(__pyx_r);
44187   __Pyx_RefNannyFinishContext();
44188   return __pyx_r;
44189 }
44190 
44191 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":633
44192  *             return PyLong_FromVoidPtr(attrval)
44193  *
44194  *     def Set_attr(self, int keyval, object attrval):             # <<<<<<<<<<<<<<
44195  *         """
44196  *         Store attribute value associated with a key
44197  */
44198 
44199 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_34Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44200 static char __pyx_doc_6mpi4py_3MPI_8Datatype_34Set_attr[] = "Datatype.Set_attr(self, int keyval, attrval)\n\n        Store attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_34Set_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44201 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_34Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44202   int __pyx_v_keyval;
44203   PyObject *__pyx_v_attrval = 0;
44204   void *__pyx_v_ptrval;
44205   int __pyx_v_incref;
44206   PyObject *__pyx_r = NULL;
44207   __Pyx_RefNannyDeclarations
44208   PyObject *__pyx_t_1 = NULL;
44209   int __pyx_t_2;
44210   int __pyx_t_3;
44211   int __pyx_lineno = 0;
44212   const char *__pyx_filename = NULL;
44213   int __pyx_clineno = 0;
44214   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,&__pyx_n_s__attrval,0};
44215   __Pyx_RefNannySetupContext("Set_attr");
44216   {
44217     PyObject* values[2] = {0,0};
44218     if (unlikely(__pyx_kwds)) {
44219       Py_ssize_t kw_args;
44220       switch (PyTuple_GET_SIZE(__pyx_args)) {
44221         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44222         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44223         case  0: break;
44224         default: goto __pyx_L5_argtuple_error;
44225       }
44226       kw_args = PyDict_Size(__pyx_kwds);
44227       switch (PyTuple_GET_SIZE(__pyx_args)) {
44228         case  0:
44229         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
44230         if (likely(values[0])) kw_args--;
44231         else goto __pyx_L5_argtuple_error;
44232         case  1:
44233         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrval);
44234         if (likely(values[1])) kw_args--;
44235         else {
44236           __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44237         }
44238       }
44239       if (unlikely(kw_args > 0)) {
44240         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_attr") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44241       }
44242     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
44243       goto __pyx_L5_argtuple_error;
44244     } else {
44245       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44246       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44247     }
44248     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44249     __pyx_v_attrval = values[1];
44250   }
44251   goto __pyx_L4_argument_unpacking_done;
44252   __pyx_L5_argtuple_error:;
44253   __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44254   __pyx_L3_error:;
44255   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44256   __Pyx_RefNannyFinishContext();
44257   return NULL;
44258   __pyx_L4_argument_unpacking_done:;
44259 
44260   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":637
44261  *         Store attribute value associated with a key
44262  *         """
44263  *         cdef void *ptrval = NULL             # <<<<<<<<<<<<<<
44264  *         cdef int incref = 0
44265  *         if keyval in type_keyval:
44266  */
44267   __pyx_v_ptrval = NULL;
44268 
44269   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":638
44270  *         """
44271  *         cdef void *ptrval = NULL
44272  *         cdef int incref = 0             # <<<<<<<<<<<<<<
44273  *         if keyval in type_keyval:
44274  *             ptrval = <void*>attrval
44275  */
44276   __pyx_v_incref = 0;
44277 
44278   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":639
44279  *         cdef void *ptrval = NULL
44280  *         cdef int incref = 0
44281  *         if keyval in type_keyval:             # <<<<<<<<<<<<<<
44282  *             ptrval = <void*>attrval
44283  *             incref = 1
44284  */
44285   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44286   __Pyx_GOTREF(__pyx_t_1);
44287   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval) == Py_None)) {
44288     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44289   }
44290   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval), __pyx_t_1))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44291   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44292   if (__pyx_t_2) {
44293 
44294     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":640
44295  *         cdef int incref = 0
44296  *         if keyval in type_keyval:
44297  *             ptrval = <void*>attrval             # <<<<<<<<<<<<<<
44298  *             incref = 1
44299  *         else:
44300  */
44301     __pyx_v_ptrval = ((void *)__pyx_v_attrval);
44302 
44303     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":641
44304  *         if keyval in type_keyval:
44305  *             ptrval = <void*>attrval
44306  *             incref = 1             # <<<<<<<<<<<<<<
44307  *         else:
44308  *             ptrval = PyLong_AsVoidPtr(attrval)
44309  */
44310     __pyx_v_incref = 1;
44311     goto __pyx_L6;
44312   }
44313   /*else*/ {
44314 
44315     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":643
44316  *             incref = 1
44317  *         else:
44318  *             ptrval = PyLong_AsVoidPtr(attrval)             # <<<<<<<<<<<<<<
44319  *             incref = 0
44320  *         CHKERR(MPI_Type_set_attr(self.ob_mpi, keyval, ptrval) )
44321  */
44322     __pyx_v_ptrval = PyLong_AsVoidPtr(__pyx_v_attrval);
44323 
44324     /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":644
44325  *         else:
44326  *             ptrval = PyLong_AsVoidPtr(attrval)
44327  *             incref = 0             # <<<<<<<<<<<<<<
44328  *         CHKERR(MPI_Type_set_attr(self.ob_mpi, keyval, ptrval) )
44329  *         if incref: Py_INCREF(attrval)
44330  */
44331     __pyx_v_incref = 0;
44332   }
44333   __pyx_L6:;
44334 
44335   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":645
44336  *             ptrval = PyLong_AsVoidPtr(attrval)
44337  *             incref = 0
44338  *         CHKERR(MPI_Type_set_attr(self.ob_mpi, keyval, ptrval) )             # <<<<<<<<<<<<<<
44339  *         if incref: Py_INCREF(attrval)
44340  *
44341  */
44342   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_set_attr(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, __pyx_v_ptrval)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44343 
44344   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":646
44345  *             incref = 0
44346  *         CHKERR(MPI_Type_set_attr(self.ob_mpi, keyval, ptrval) )
44347  *         if incref: Py_INCREF(attrval)             # <<<<<<<<<<<<<<
44348  *
44349  *     def Delete_attr(self, int keyval):
44350  */
44351   if (__pyx_v_incref) {
44352     Py_INCREF(__pyx_v_attrval);
44353     goto __pyx_L7;
44354   }
44355   __pyx_L7:;
44356 
44357   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44358   goto __pyx_L0;
44359   __pyx_L1_error:;
44360   __Pyx_XDECREF(__pyx_t_1);
44361   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44362   __pyx_r = NULL;
44363   __pyx_L0:;
44364   __Pyx_XGIVEREF(__pyx_r);
44365   __Pyx_RefNannyFinishContext();
44366   return __pyx_r;
44367 }
44368 
44369 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":648
44370  *         if incref: Py_INCREF(attrval)
44371  *
44372  *     def Delete_attr(self, int keyval):             # <<<<<<<<<<<<<<
44373  *         """
44374  *         Delete attribute value associated with a key
44375  */
44376 
44377 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_35Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44378 static char __pyx_doc_6mpi4py_3MPI_8Datatype_35Delete_attr[] = "Datatype.Delete_attr(self, int keyval)\n\n        Delete attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_35Delete_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44379 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_35Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44380   int __pyx_v_keyval;
44381   PyObject *__pyx_r = NULL;
44382   __Pyx_RefNannyDeclarations
44383   int __pyx_t_1;
44384   int __pyx_lineno = 0;
44385   const char *__pyx_filename = NULL;
44386   int __pyx_clineno = 0;
44387   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
44388   __Pyx_RefNannySetupContext("Delete_attr");
44389   {
44390     PyObject* values[1] = {0};
44391     if (unlikely(__pyx_kwds)) {
44392       Py_ssize_t kw_args;
44393       switch (PyTuple_GET_SIZE(__pyx_args)) {
44394         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44395         case  0: break;
44396         default: goto __pyx_L5_argtuple_error;
44397       }
44398       kw_args = PyDict_Size(__pyx_kwds);
44399       switch (PyTuple_GET_SIZE(__pyx_args)) {
44400         case  0:
44401         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
44402         if (likely(values[0])) kw_args--;
44403         else goto __pyx_L5_argtuple_error;
44404       }
44405       if (unlikely(kw_args > 0)) {
44406         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Delete_attr") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44407       }
44408     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
44409       goto __pyx_L5_argtuple_error;
44410     } else {
44411       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44412     }
44413     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44414   }
44415   goto __pyx_L4_argument_unpacking_done;
44416   __pyx_L5_argtuple_error:;
44417   __Pyx_RaiseArgtupleInvalid("Delete_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44418   __pyx_L3_error:;
44419   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44420   __Pyx_RefNannyFinishContext();
44421   return NULL;
44422   __pyx_L4_argument_unpacking_done:;
44423 
44424   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":652
44425  *         Delete attribute value associated with a key
44426  *         """
44427  *         CHKERR(MPI_Type_delete_attr(self.ob_mpi, keyval) )             # <<<<<<<<<<<<<<
44428  *
44429  *     @classmethod
44430  */
44431   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_delete_attr(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44432 
44433   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44434   goto __pyx_L0;
44435   __pyx_L1_error:;
44436   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
44437   __pyx_r = NULL;
44438   __pyx_L0:;
44439   __Pyx_XGIVEREF(__pyx_r);
44440   __Pyx_RefNannyFinishContext();
44441   return __pyx_r;
44442 }
44443 
44444 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":655
44445  *
44446  *     @classmethod
44447  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
44448  *         """
44449  *         Create a new attribute key for datatypes
44450  */
44451 
44452 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_36Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44453 static char __pyx_doc_6mpi4py_3MPI_8Datatype_36Create_keyval[] = "Datatype.Create_keyval(type cls, copy_fn=None, delete_fn=None)\n\n        Create a new attribute key for datatypes\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_36Create_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)44454 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_36Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44455   PyObject *__pyx_v_copy_fn = 0;
44456   PyObject *__pyx_v_delete_fn = 0;
44457   int __pyx_v_keyval;
44458   MPI_Type_copy_attr_function *__pyx_v__copy;
44459   MPI_Type_delete_attr_function *__pyx_v__del;
44460   void *__pyx_v_extra_state;
44461   PyObject *__pyx_r = NULL;
44462   __Pyx_RefNannyDeclarations
44463   int __pyx_t_1;
44464   PyObject *__pyx_t_2 = NULL;
44465   int __pyx_lineno = 0;
44466   const char *__pyx_filename = NULL;
44467   int __pyx_clineno = 0;
44468   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__copy_fn,&__pyx_n_s__delete_fn,0};
44469   __Pyx_RefNannySetupContext("Create_keyval");
44470   {
44471     PyObject* values[2] = {0,0};
44472     values[0] = ((PyObject *)Py_None);
44473     values[1] = ((PyObject *)Py_None);
44474     if (unlikely(__pyx_kwds)) {
44475       Py_ssize_t kw_args;
44476       switch (PyTuple_GET_SIZE(__pyx_args)) {
44477         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44478         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44479         case  0: break;
44480         default: goto __pyx_L5_argtuple_error;
44481       }
44482       kw_args = PyDict_Size(__pyx_kwds);
44483       switch (PyTuple_GET_SIZE(__pyx_args)) {
44484         case  0:
44485         if (kw_args > 0) {
44486           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__copy_fn);
44487           if (value) { values[0] = value; kw_args--; }
44488         }
44489         case  1:
44490         if (kw_args > 0) {
44491           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delete_fn);
44492           if (value) { values[1] = value; kw_args--; }
44493         }
44494       }
44495       if (unlikely(kw_args > 0)) {
44496         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_keyval") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44497       }
44498     } else {
44499       switch (PyTuple_GET_SIZE(__pyx_args)) {
44500         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
44501         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44502         case  0: break;
44503         default: goto __pyx_L5_argtuple_error;
44504       }
44505     }
44506     __pyx_v_copy_fn = values[0];
44507     __pyx_v_delete_fn = values[1];
44508   }
44509   goto __pyx_L4_argument_unpacking_done;
44510   __pyx_L5_argtuple_error:;
44511   __Pyx_RaiseArgtupleInvalid("Create_keyval", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44512   __pyx_L3_error:;
44513   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
44514   __Pyx_RefNannyFinishContext();
44515   return NULL;
44516   __pyx_L4_argument_unpacking_done:;
44517 
44518   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":659
44519  *         Create a new attribute key for datatypes
44520  *         """
44521  *         cdef int keyval = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
44522  *         cdef MPI_Type_copy_attr_function *_copy = type_attr_copy_fn
44523  *         cdef MPI_Type_delete_attr_function *_del = type_attr_delete_fn
44524  */
44525   __pyx_v_keyval = MPI_KEYVAL_INVALID;
44526 
44527   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":660
44528  *         """
44529  *         cdef int keyval = MPI_KEYVAL_INVALID
44530  *         cdef MPI_Type_copy_attr_function *_copy = type_attr_copy_fn             # <<<<<<<<<<<<<<
44531  *         cdef MPI_Type_delete_attr_function *_del = type_attr_delete_fn
44532  *         cdef void *extra_state = NULL
44533  */
44534   __pyx_v__copy = __pyx_f_6mpi4py_3MPI_type_attr_copy_fn;
44535 
44536   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":661
44537  *         cdef int keyval = MPI_KEYVAL_INVALID
44538  *         cdef MPI_Type_copy_attr_function *_copy = type_attr_copy_fn
44539  *         cdef MPI_Type_delete_attr_function *_del = type_attr_delete_fn             # <<<<<<<<<<<<<<
44540  *         cdef void *extra_state = NULL
44541  *         CHKERR( MPI_Type_create_keyval(_copy, _del, &keyval, extra_state) )
44542  */
44543   __pyx_v__del = __pyx_f_6mpi4py_3MPI_type_attr_delete_fn;
44544 
44545   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":662
44546  *         cdef MPI_Type_copy_attr_function *_copy = type_attr_copy_fn
44547  *         cdef MPI_Type_delete_attr_function *_del = type_attr_delete_fn
44548  *         cdef void *extra_state = NULL             # <<<<<<<<<<<<<<
44549  *         CHKERR( MPI_Type_create_keyval(_copy, _del, &keyval, extra_state) )
44550  *         type_keyval_new(keyval, copy_fn, delete_fn)
44551  */
44552   __pyx_v_extra_state = NULL;
44553 
44554   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":663
44555  *         cdef MPI_Type_delete_attr_function *_del = type_attr_delete_fn
44556  *         cdef void *extra_state = NULL
44557  *         CHKERR( MPI_Type_create_keyval(_copy, _del, &keyval, extra_state) )             # <<<<<<<<<<<<<<
44558  *         type_keyval_new(keyval, copy_fn, delete_fn)
44559  *         return keyval
44560  */
44561   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_create_keyval(__pyx_v__copy, __pyx_v__del, (&__pyx_v_keyval), __pyx_v_extra_state)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44562 
44563   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":664
44564  *         cdef void *extra_state = NULL
44565  *         CHKERR( MPI_Type_create_keyval(_copy, _del, &keyval, extra_state) )
44566  *         type_keyval_new(keyval, copy_fn, delete_fn)             # <<<<<<<<<<<<<<
44567  *         return keyval
44568  *
44569  */
44570   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_type_keyval_new(__pyx_v_keyval, __pyx_v_copy_fn, __pyx_v_delete_fn); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44571 
44572   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":665
44573  *         CHKERR( MPI_Type_create_keyval(_copy, _del, &keyval, extra_state) )
44574  *         type_keyval_new(keyval, copy_fn, delete_fn)
44575  *         return keyval             # <<<<<<<<<<<<<<
44576  *
44577  *     @classmethod
44578  */
44579   __Pyx_XDECREF(__pyx_r);
44580   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44581   __Pyx_GOTREF(__pyx_t_2);
44582   __pyx_r = __pyx_t_2;
44583   __pyx_t_2 = 0;
44584   goto __pyx_L0;
44585 
44586   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44587   goto __pyx_L0;
44588   __pyx_L1_error:;
44589   __Pyx_XDECREF(__pyx_t_2);
44590   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
44591   __pyx_r = NULL;
44592   __pyx_L0:;
44593   __Pyx_XGIVEREF(__pyx_r);
44594   __Pyx_RefNannyFinishContext();
44595   return __pyx_r;
44596 }
44597 
44598 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":668
44599  *
44600  *     @classmethod
44601  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
44602  *         """
44603  *         Free and attribute key for datatypes
44604  */
44605 
44606 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_37Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44607 static char __pyx_doc_6mpi4py_3MPI_8Datatype_37Free_keyval[] = "Datatype.Free_keyval(type cls, int keyval)\n\n        Free and attribute key for datatypes\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_37Free_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)44608 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_37Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44609   int __pyx_v_keyval;
44610   int __pyx_v_keyval_save;
44611   PyObject *__pyx_r = NULL;
44612   __Pyx_RefNannyDeclarations
44613   int __pyx_t_1;
44614   PyObject *__pyx_t_2 = NULL;
44615   int __pyx_lineno = 0;
44616   const char *__pyx_filename = NULL;
44617   int __pyx_clineno = 0;
44618   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
44619   __Pyx_RefNannySetupContext("Free_keyval");
44620   {
44621     PyObject* values[1] = {0};
44622     if (unlikely(__pyx_kwds)) {
44623       Py_ssize_t kw_args;
44624       switch (PyTuple_GET_SIZE(__pyx_args)) {
44625         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44626         case  0: break;
44627         default: goto __pyx_L5_argtuple_error;
44628       }
44629       kw_args = PyDict_Size(__pyx_kwds);
44630       switch (PyTuple_GET_SIZE(__pyx_args)) {
44631         case  0:
44632         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
44633         if (likely(values[0])) kw_args--;
44634         else goto __pyx_L5_argtuple_error;
44635       }
44636       if (unlikely(kw_args > 0)) {
44637         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Free_keyval") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44638       }
44639     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
44640       goto __pyx_L5_argtuple_error;
44641     } else {
44642       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44643     }
44644     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44645   }
44646   goto __pyx_L4_argument_unpacking_done;
44647   __pyx_L5_argtuple_error:;
44648   __Pyx_RaiseArgtupleInvalid("Free_keyval", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44649   __pyx_L3_error:;
44650   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
44651   __Pyx_RefNannyFinishContext();
44652   return NULL;
44653   __pyx_L4_argument_unpacking_done:;
44654 
44655   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":672
44656  *         Free and attribute key for datatypes
44657  *         """
44658  *         cdef int keyval_save = keyval             # <<<<<<<<<<<<<<
44659  *         CHKERR( MPI_Type_free_keyval (&keyval) )
44660  *         type_keyval_del(keyval_save)
44661  */
44662   __pyx_v_keyval_save = __pyx_v_keyval;
44663 
44664   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":673
44665  *         """
44666  *         cdef int keyval_save = keyval
44667  *         CHKERR( MPI_Type_free_keyval (&keyval) )             # <<<<<<<<<<<<<<
44668  *         type_keyval_del(keyval_save)
44669  *         return keyval
44670  */
44671   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_free_keyval((&__pyx_v_keyval))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44672 
44673   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":674
44674  *         cdef int keyval_save = keyval
44675  *         CHKERR( MPI_Type_free_keyval (&keyval) )
44676  *         type_keyval_del(keyval_save)             # <<<<<<<<<<<<<<
44677  *         return keyval
44678  *
44679  */
44680   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_type_keyval_del(__pyx_v_keyval_save); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44681 
44682   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":675
44683  *         CHKERR( MPI_Type_free_keyval (&keyval) )
44684  *         type_keyval_del(keyval_save)
44685  *         return keyval             # <<<<<<<<<<<<<<
44686  *
44687  *     # Naming Objects
44688  */
44689   __Pyx_XDECREF(__pyx_r);
44690   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44691   __Pyx_GOTREF(__pyx_t_2);
44692   __pyx_r = __pyx_t_2;
44693   __pyx_t_2 = 0;
44694   goto __pyx_L0;
44695 
44696   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44697   goto __pyx_L0;
44698   __pyx_L1_error:;
44699   __Pyx_XDECREF(__pyx_t_2);
44700   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
44701   __pyx_r = NULL;
44702   __pyx_L0:;
44703   __Pyx_XGIVEREF(__pyx_r);
44704   __Pyx_RefNannyFinishContext();
44705   return __pyx_r;
44706 }
44707 
44708 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":680
44709  *     # --------------
44710  *
44711  *     def Get_name(self):             # <<<<<<<<<<<<<<
44712  *         """
44713  *         Get the print name for this datatype
44714  */
44715 
44716 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_38Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44717 static char __pyx_doc_6mpi4py_3MPI_8Datatype_38Get_name[] = "Datatype.Get_name(self)\n\n        Get the print name for this datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_38Get_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44718 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_38Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44719   char __pyx_v_name[(MPI_MAX_OBJECT_NAME + 1)];
44720   int __pyx_v_nlen;
44721   PyObject *__pyx_r = NULL;
44722   __Pyx_RefNannyDeclarations
44723   int __pyx_t_1;
44724   PyObject *__pyx_t_2 = NULL;
44725   int __pyx_lineno = 0;
44726   const char *__pyx_filename = NULL;
44727   int __pyx_clineno = 0;
44728   __Pyx_RefNannySetupContext("Get_name");
44729   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
44730     __Pyx_RaiseArgtupleInvalid("Get_name", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
44731   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_name", 0))) return NULL;
44732 
44733   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":685
44734  *         """
44735  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
44736  *         cdef int nlen = 0             # <<<<<<<<<<<<<<
44737  *         CHKERR( MPI_Type_get_name(self.ob_mpi, name, &nlen) )
44738  *         return tompistr(name, nlen)
44739  */
44740   __pyx_v_nlen = 0;
44741 
44742   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":686
44743  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
44744  *         cdef int nlen = 0
44745  *         CHKERR( MPI_Type_get_name(self.ob_mpi, name, &nlen) )             # <<<<<<<<<<<<<<
44746  *         return tompistr(name, nlen)
44747  *
44748  */
44749   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_get_name(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_name, (&__pyx_v_nlen))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44750 
44751   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":687
44752  *         cdef int nlen = 0
44753  *         CHKERR( MPI_Type_get_name(self.ob_mpi, name, &nlen) )
44754  *         return tompistr(name, nlen)             # <<<<<<<<<<<<<<
44755  *
44756  *     def Set_name(self, name):
44757  */
44758   __Pyx_XDECREF(__pyx_r);
44759   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_name, __pyx_v_nlen); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44760   __Pyx_GOTREF(__pyx_t_2);
44761   __pyx_r = __pyx_t_2;
44762   __pyx_t_2 = 0;
44763   goto __pyx_L0;
44764 
44765   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44766   goto __pyx_L0;
44767   __pyx_L1_error:;
44768   __Pyx_XDECREF(__pyx_t_2);
44769   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Get_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
44770   __pyx_r = NULL;
44771   __pyx_L0:;
44772   __Pyx_XGIVEREF(__pyx_r);
44773   __Pyx_RefNannyFinishContext();
44774   return __pyx_r;
44775 }
44776 
44777 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":689
44778  *         return tompistr(name, nlen)
44779  *
44780  *     def Set_name(self, name):             # <<<<<<<<<<<<<<
44781  *         """
44782  *         Set the print name for this datatype
44783  */
44784 
44785 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_39Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44786 static char __pyx_doc_6mpi4py_3MPI_8Datatype_39Set_name[] = "Datatype.Set_name(self, name)\n\n        Set the print name for this datatype\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_39Set_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44787 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_39Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44788   PyObject *__pyx_v_name = 0;
44789   char *__pyx_v_cname;
44790   PyObject *__pyx_r = NULL;
44791   __Pyx_RefNannyDeclarations
44792   PyObject *__pyx_t_1 = NULL;
44793   int __pyx_t_2;
44794   int __pyx_lineno = 0;
44795   const char *__pyx_filename = NULL;
44796   int __pyx_clineno = 0;
44797   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,0};
44798   __Pyx_RefNannySetupContext("Set_name");
44799   {
44800     PyObject* values[1] = {0};
44801     if (unlikely(__pyx_kwds)) {
44802       Py_ssize_t kw_args;
44803       switch (PyTuple_GET_SIZE(__pyx_args)) {
44804         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44805         case  0: break;
44806         default: goto __pyx_L5_argtuple_error;
44807       }
44808       kw_args = PyDict_Size(__pyx_kwds);
44809       switch (PyTuple_GET_SIZE(__pyx_args)) {
44810         case  0:
44811         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
44812         if (likely(values[0])) kw_args--;
44813         else goto __pyx_L5_argtuple_error;
44814       }
44815       if (unlikely(kw_args > 0)) {
44816         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_name") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44817       }
44818     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
44819       goto __pyx_L5_argtuple_error;
44820     } else {
44821       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
44822     }
44823     __pyx_v_name = values[0];
44824   }
44825   goto __pyx_L4_argument_unpacking_done;
44826   __pyx_L5_argtuple_error:;
44827   __Pyx_RaiseArgtupleInvalid("Set_name", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
44828   __pyx_L3_error:;
44829   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
44830   __Pyx_RefNannyFinishContext();
44831   return NULL;
44832   __pyx_L4_argument_unpacking_done:;
44833   __Pyx_INCREF(__pyx_v_name);
44834 
44835   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":693
44836  *         Set the print name for this datatype
44837  *         """
44838  *         cdef char *cname = NULL             # <<<<<<<<<<<<<<
44839  *         name = asmpistr(name, &cname, NULL)
44840  *         CHKERR( MPI_Type_set_name(self.ob_mpi, cname) )
44841  */
44842   __pyx_v_cname = NULL;
44843 
44844   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":694
44845  *         """
44846  *         cdef char *cname = NULL
44847  *         name = asmpistr(name, &cname, NULL)             # <<<<<<<<<<<<<<
44848  *         CHKERR( MPI_Type_set_name(self.ob_mpi, cname) )
44849  *
44850  */
44851   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_name, (&__pyx_v_cname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44852   __Pyx_GOTREF(__pyx_t_1);
44853   __Pyx_DECREF(__pyx_v_name);
44854   __pyx_v_name = __pyx_t_1;
44855   __pyx_t_1 = 0;
44856 
44857   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":695
44858  *         cdef char *cname = NULL
44859  *         name = asmpistr(name, &cname, NULL)
44860  *         CHKERR( MPI_Type_set_name(self.ob_mpi, cname) )             # <<<<<<<<<<<<<<
44861  *
44862  *     property name:
44863  */
44864   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Type_set_name(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi, __pyx_v_cname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44865 
44866   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44867   goto __pyx_L0;
44868   __pyx_L1_error:;
44869   __Pyx_XDECREF(__pyx_t_1);
44870   __Pyx_AddTraceback("mpi4py.MPI.Datatype.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
44871   __pyx_r = NULL;
44872   __pyx_L0:;
44873   __Pyx_XDECREF(__pyx_v_name);
44874   __Pyx_XGIVEREF(__pyx_r);
44875   __Pyx_RefNannyFinishContext();
44876   return __pyx_r;
44877 }
44878 
44879 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":699
44880  *     property name:
44881  *         """datatype name"""
44882  *         def __get__(self):             # <<<<<<<<<<<<<<
44883  *             return self.Get_name()
44884  *         def __set__(self, value):
44885  */
44886 
44887 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4name___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_4name___get__(PyObject * __pyx_v_self)44888 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_4name___get__(PyObject *__pyx_v_self) {
44889   PyObject *__pyx_r = NULL;
44890   __Pyx_RefNannyDeclarations
44891   PyObject *__pyx_t_1 = NULL;
44892   PyObject *__pyx_t_2 = NULL;
44893   int __pyx_lineno = 0;
44894   const char *__pyx_filename = NULL;
44895   int __pyx_clineno = 0;
44896   __Pyx_RefNannySetupContext("__get__");
44897 
44898   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":700
44899  *         """datatype name"""
44900  *         def __get__(self):
44901  *             return self.Get_name()             # <<<<<<<<<<<<<<
44902  *         def __set__(self, value):
44903  *             self.Set_name(value)
44904  */
44905   __Pyx_XDECREF(__pyx_r);
44906   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44907   __Pyx_GOTREF(__pyx_t_1);
44908   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44909   __Pyx_GOTREF(__pyx_t_2);
44910   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44911   __pyx_r = __pyx_t_2;
44912   __pyx_t_2 = 0;
44913   goto __pyx_L0;
44914 
44915   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
44916   goto __pyx_L0;
44917   __pyx_L1_error:;
44918   __Pyx_XDECREF(__pyx_t_1);
44919   __Pyx_XDECREF(__pyx_t_2);
44920   __Pyx_AddTraceback("mpi4py.MPI.Datatype.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
44921   __pyx_r = NULL;
44922   __pyx_L0:;
44923   __Pyx_XGIVEREF(__pyx_r);
44924   __Pyx_RefNannyFinishContext();
44925   return __pyx_r;
44926 }
44927 
44928 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":701
44929  *         def __get__(self):
44930  *             return self.Get_name()
44931  *         def __set__(self, value):             # <<<<<<<<<<<<<<
44932  *             self.Set_name(value)
44933  *
44934  */
44935 
44936 static int __pyx_pf_6mpi4py_3MPI_8Datatype_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Datatype_4name_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)44937 static int __pyx_pf_6mpi4py_3MPI_8Datatype_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
44938   int __pyx_r;
44939   __Pyx_RefNannyDeclarations
44940   PyObject *__pyx_t_1 = NULL;
44941   PyObject *__pyx_t_2 = NULL;
44942   PyObject *__pyx_t_3 = NULL;
44943   int __pyx_lineno = 0;
44944   const char *__pyx_filename = NULL;
44945   int __pyx_clineno = 0;
44946   __Pyx_RefNannySetupContext("__set__");
44947 
44948   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":702
44949  *             return self.Get_name()
44950  *         def __set__(self, value):
44951  *             self.Set_name(value)             # <<<<<<<<<<<<<<
44952  *
44953  *     # Fortran Handle
44954  */
44955   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44956   __Pyx_GOTREF(__pyx_t_1);
44957   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44958   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
44959   __Pyx_INCREF(__pyx_v_value);
44960   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
44961   __Pyx_GIVEREF(__pyx_v_value);
44962   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
44963   __Pyx_GOTREF(__pyx_t_3);
44964   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
44965   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
44966   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
44967 
44968   __pyx_r = 0;
44969   goto __pyx_L0;
44970   __pyx_L1_error:;
44971   __Pyx_XDECREF(__pyx_t_1);
44972   __Pyx_XDECREF(__pyx_t_2);
44973   __Pyx_XDECREF(__pyx_t_3);
44974   __Pyx_AddTraceback("mpi4py.MPI.Datatype.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
44975   __pyx_r = -1;
44976   __pyx_L0:;
44977   __Pyx_RefNannyFinishContext();
44978   return __pyx_r;
44979 }
44980 
44981 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":707
44982  *     # --------------
44983  *
44984  *     def py2f(self):             # <<<<<<<<<<<<<<
44985  *         """
44986  *         """
44987  */
44988 
44989 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_40py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44990 static char __pyx_doc_6mpi4py_3MPI_8Datatype_40py2f[] = "Datatype.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_40py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)44991 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_40py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44992   PyObject *__pyx_r = NULL;
44993   __Pyx_RefNannyDeclarations
44994   PyObject *__pyx_t_1 = NULL;
44995   int __pyx_lineno = 0;
44996   const char *__pyx_filename = NULL;
44997   int __pyx_clineno = 0;
44998   __Pyx_RefNannySetupContext("py2f");
44999   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
45000     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
45001   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
45002 
45003   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":710
45004  *         """
45005  *         """
45006  *         return MPI_Type_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
45007  *
45008  *     @classmethod
45009  */
45010   __Pyx_XDECREF(__pyx_r);
45011   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Type_c2f(((struct PyMPIDatatypeObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45012   __Pyx_GOTREF(__pyx_t_1);
45013   __pyx_r = __pyx_t_1;
45014   __pyx_t_1 = 0;
45015   goto __pyx_L0;
45016 
45017   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45018   goto __pyx_L0;
45019   __pyx_L1_error:;
45020   __Pyx_XDECREF(__pyx_t_1);
45021   __Pyx_AddTraceback("mpi4py.MPI.Datatype.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
45022   __pyx_r = NULL;
45023   __pyx_L0:;
45024   __Pyx_XGIVEREF(__pyx_r);
45025   __Pyx_RefNannyFinishContext();
45026   return __pyx_r;
45027 }
45028 
45029 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":713
45030  *
45031  *     @classmethod
45032  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
45033  *         """
45034  *         """
45035  */
45036 
45037 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_41f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45038 static char __pyx_doc_6mpi4py_3MPI_8Datatype_41f2py[] = "Datatype.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_8Datatype_41f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)45039 static PyObject *__pyx_pf_6mpi4py_3MPI_8Datatype_41f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45040   PyObject *__pyx_v_arg = 0;
45041   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
45042   PyObject *__pyx_r = NULL;
45043   __Pyx_RefNannyDeclarations
45044   PyObject *__pyx_t_1 = NULL;
45045   MPI_Fint __pyx_t_2;
45046   int __pyx_lineno = 0;
45047   const char *__pyx_filename = NULL;
45048   int __pyx_clineno = 0;
45049   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
45050   __Pyx_RefNannySetupContext("f2py");
45051   {
45052     PyObject* values[1] = {0};
45053     if (unlikely(__pyx_kwds)) {
45054       Py_ssize_t kw_args;
45055       switch (PyTuple_GET_SIZE(__pyx_args)) {
45056         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45057         case  0: break;
45058         default: goto __pyx_L5_argtuple_error;
45059       }
45060       kw_args = PyDict_Size(__pyx_kwds);
45061       switch (PyTuple_GET_SIZE(__pyx_args)) {
45062         case  0:
45063         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
45064         if (likely(values[0])) kw_args--;
45065         else goto __pyx_L5_argtuple_error;
45066       }
45067       if (unlikely(kw_args > 0)) {
45068         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45069       }
45070     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
45071       goto __pyx_L5_argtuple_error;
45072     } else {
45073       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45074     }
45075     __pyx_v_arg = values[0];
45076   }
45077   goto __pyx_L4_argument_unpacking_done;
45078   __pyx_L5_argtuple_error:;
45079   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45080   __pyx_L3_error:;
45081   __Pyx_AddTraceback("mpi4py.MPI.Datatype.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
45082   __Pyx_RefNannyFinishContext();
45083   return NULL;
45084   __pyx_L4_argument_unpacking_done:;
45085 
45086   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":716
45087  *         """
45088  *         """
45089  *         cdef Datatype datatype = <Datatype>cls()             # <<<<<<<<<<<<<<
45090  *         datatype.ob_mpi = MPI_Type_f2c(arg)
45091  *         return datatype
45092  */
45093   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45094   __Pyx_GOTREF(__pyx_t_1);
45095   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
45096   __pyx_v_datatype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
45097   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45098 
45099   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":717
45100  *         """
45101  *         cdef Datatype datatype = <Datatype>cls()
45102  *         datatype.ob_mpi = MPI_Type_f2c(arg)             # <<<<<<<<<<<<<<
45103  *         return datatype
45104  *
45105  */
45106   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45107   __pyx_v_datatype->ob_mpi = MPI_Type_f2c(__pyx_t_2);
45108 
45109   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":718
45110  *         cdef Datatype datatype = <Datatype>cls()
45111  *         datatype.ob_mpi = MPI_Type_f2c(arg)
45112  *         return datatype             # <<<<<<<<<<<<<<
45113  *
45114  *
45115  */
45116   __Pyx_XDECREF(__pyx_r);
45117   __Pyx_INCREF(((PyObject *)__pyx_v_datatype));
45118   __pyx_r = ((PyObject *)__pyx_v_datatype);
45119   goto __pyx_L0;
45120 
45121   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45122   goto __pyx_L0;
45123   __pyx_L1_error:;
45124   __Pyx_XDECREF(__pyx_t_1);
45125   __Pyx_AddTraceback("mpi4py.MPI.Datatype.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
45126   __pyx_r = NULL;
45127   __pyx_L0:;
45128   __Pyx_XDECREF((PyObject *)__pyx_v_datatype);
45129   __Pyx_XGIVEREF(__pyx_r);
45130   __Pyx_RefNannyFinishContext();
45131   return __pyx_r;
45132 }
45133 
45134 /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":725
45135  * # ----------------
45136  *
45137  * def Get_address(location):             # <<<<<<<<<<<<<<
45138  *     """
45139  *     Get the address of a location in memory
45140  */
45141 
45142 static PyObject *__pyx_pf_6mpi4py_3MPI_5Get_address(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45143 static char __pyx_doc_6mpi4py_3MPI_5Get_address[] = "Get_address(location)\n\n    Get the address of a location in memory\n    ";
45144 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_5Get_address = {__Pyx_NAMESTR("Get_address"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Get_address, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Get_address)};
__pyx_pf_6mpi4py_3MPI_5Get_address(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45145 static PyObject *__pyx_pf_6mpi4py_3MPI_5Get_address(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45146   PyObject *__pyx_v_location = 0;
45147   void *__pyx_v_baseptr;
45148   PyObject *__pyx_v_tmp = 0;
45149   MPI_Aint __pyx_v_address;
45150   PyObject *__pyx_r = NULL;
45151   __Pyx_RefNannyDeclarations
45152   PyObject *__pyx_t_1 = NULL;
45153   int __pyx_t_2;
45154   int __pyx_lineno = 0;
45155   const char *__pyx_filename = NULL;
45156   int __pyx_clineno = 0;
45157   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__location,0};
45158   __Pyx_RefNannySetupContext("Get_address");
45159   __pyx_self = __pyx_self;
45160   {
45161     PyObject* values[1] = {0};
45162     if (unlikely(__pyx_kwds)) {
45163       Py_ssize_t kw_args;
45164       switch (PyTuple_GET_SIZE(__pyx_args)) {
45165         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45166         case  0: break;
45167         default: goto __pyx_L5_argtuple_error;
45168       }
45169       kw_args = PyDict_Size(__pyx_kwds);
45170       switch (PyTuple_GET_SIZE(__pyx_args)) {
45171         case  0:
45172         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__location);
45173         if (likely(values[0])) kw_args--;
45174         else goto __pyx_L5_argtuple_error;
45175       }
45176       if (unlikely(kw_args > 0)) {
45177         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_address") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45178       }
45179     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
45180       goto __pyx_L5_argtuple_error;
45181     } else {
45182       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45183     }
45184     __pyx_v_location = values[0];
45185   }
45186   goto __pyx_L4_argument_unpacking_done;
45187   __pyx_L5_argtuple_error:;
45188   __Pyx_RaiseArgtupleInvalid("Get_address", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45189   __pyx_L3_error:;
45190   __Pyx_AddTraceback("mpi4py.MPI.Get_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
45191   __Pyx_RefNannyFinishContext();
45192   return NULL;
45193   __pyx_L4_argument_unpacking_done:;
45194 
45195   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":729
45196  *     Get the address of a location in memory
45197  *     """
45198  *     cdef void *baseptr = NULL             # <<<<<<<<<<<<<<
45199  *     cdef tmp = getbuffer_r(location, &baseptr, NULL)
45200  *     cdef MPI_Aint address = 0
45201  */
45202   __pyx_v_baseptr = NULL;
45203 
45204   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":730
45205  *     """
45206  *     cdef void *baseptr = NULL
45207  *     cdef tmp = getbuffer_r(location, &baseptr, NULL)             # <<<<<<<<<<<<<<
45208  *     cdef MPI_Aint address = 0
45209  *     CHKERR( MPI_Get_address(baseptr, &address) )
45210  */
45211   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_r(__pyx_v_location, (&__pyx_v_baseptr), NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45212   __Pyx_GOTREF(__pyx_t_1);
45213   __pyx_v_tmp = __pyx_t_1;
45214   __pyx_t_1 = 0;
45215 
45216   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":731
45217  *     cdef void *baseptr = NULL
45218  *     cdef tmp = getbuffer_r(location, &baseptr, NULL)
45219  *     cdef MPI_Aint address = 0             # <<<<<<<<<<<<<<
45220  *     CHKERR( MPI_Get_address(baseptr, &address) )
45221  *     return address
45222  */
45223   __pyx_v_address = 0;
45224 
45225   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":732
45226  *     cdef tmp = getbuffer_r(location, &baseptr, NULL)
45227  *     cdef MPI_Aint address = 0
45228  *     CHKERR( MPI_Get_address(baseptr, &address) )             # <<<<<<<<<<<<<<
45229  *     return address
45230  *
45231  */
45232   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_address(__pyx_v_baseptr, (&__pyx_v_address))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45233 
45234   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":733
45235  *     cdef MPI_Aint address = 0
45236  *     CHKERR( MPI_Get_address(baseptr, &address) )
45237  *     return address             # <<<<<<<<<<<<<<
45238  *
45239  *
45240  */
45241   __Pyx_XDECREF(__pyx_r);
45242   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_address); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45243   __Pyx_GOTREF(__pyx_t_1);
45244   __pyx_r = __pyx_t_1;
45245   __pyx_t_1 = 0;
45246   goto __pyx_L0;
45247 
45248   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45249   goto __pyx_L0;
45250   __pyx_L1_error:;
45251   __Pyx_XDECREF(__pyx_t_1);
45252   __Pyx_AddTraceback("mpi4py.MPI.Get_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
45253   __pyx_r = NULL;
45254   __pyx_L0:;
45255   __Pyx_XDECREF(__pyx_v_tmp);
45256   __Pyx_XGIVEREF(__pyx_r);
45257   __Pyx_RefNannyFinishContext();
45258   return __pyx_r;
45259 }
45260 
45261 /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":3
45262  * # -----------------------------------------------------------------------------
45263  *
45264  * cdef inline int AddTypeMap(dict TD, object key, Datatype dataype) except -1:             # <<<<<<<<<<<<<<
45265  *     global TypeDict
45266  *     if dataype.ob_mpi != MPI_DATATYPE_NULL:
45267  */
45268 
__pyx_f_6mpi4py_3MPI_AddTypeMap(PyObject * __pyx_v_TD,PyObject * __pyx_v_key,struct PyMPIDatatypeObject * __pyx_v_dataype)45269 static CYTHON_INLINE int __pyx_f_6mpi4py_3MPI_AddTypeMap(PyObject *__pyx_v_TD, PyObject *__pyx_v_key, struct PyMPIDatatypeObject *__pyx_v_dataype) {
45270   int __pyx_r;
45271   __Pyx_RefNannyDeclarations
45272   int __pyx_t_1;
45273   int __pyx_lineno = 0;
45274   const char *__pyx_filename = NULL;
45275   int __pyx_clineno = 0;
45276   __Pyx_RefNannySetupContext("AddTypeMap");
45277 
45278   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":5
45279  * cdef inline int AddTypeMap(dict TD, object key, Datatype dataype) except -1:
45280  *     global TypeDict
45281  *     if dataype.ob_mpi != MPI_DATATYPE_NULL:             # <<<<<<<<<<<<<<
45282  *         TD[key] = dataype
45283  *         return 1
45284  */
45285   __pyx_t_1 = (__pyx_v_dataype->ob_mpi != MPI_DATATYPE_NULL);
45286   if (__pyx_t_1) {
45287 
45288     /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":6
45289  *     global TypeDict
45290  *     if dataype.ob_mpi != MPI_DATATYPE_NULL:
45291  *         TD[key] = dataype             # <<<<<<<<<<<<<<
45292  *         return 1
45293  *     return 0
45294  */
45295     if (PyDict_SetItem(((PyObject *)__pyx_v_TD), __pyx_v_key, ((PyObject *)__pyx_v_dataype)) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45296 
45297     /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":7
45298  *     if dataype.ob_mpi != MPI_DATATYPE_NULL:
45299  *         TD[key] = dataype
45300  *         return 1             # <<<<<<<<<<<<<<
45301  *     return 0
45302  *
45303  */
45304     __pyx_r = 1;
45305     goto __pyx_L0;
45306     goto __pyx_L3;
45307   }
45308   __pyx_L3:;
45309 
45310   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":8
45311  *         TD[key] = dataype
45312  *         return 1
45313  *     return 0             # <<<<<<<<<<<<<<
45314  *
45315  * # -----------------------------------------------------------------------------
45316  */
45317   __pyx_r = 0;
45318   goto __pyx_L0;
45319 
45320   __pyx_r = 0;
45321   goto __pyx_L0;
45322   __pyx_L1_error:;
45323   __Pyx_AddTraceback("mpi4py.MPI.AddTypeMap", __pyx_clineno, __pyx_lineno, __pyx_filename);
45324   __pyx_r = -1;
45325   __pyx_L0:;
45326   __Pyx_RefNannyFinishContext();
45327   return __pyx_r;
45328 }
45329 
45330 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":7
45331  *     """
45332  *
45333  *     def __cinit__(self):             # <<<<<<<<<<<<<<
45334  *         self.ob_mpi.MPI_SOURCE = MPI_ANY_SOURCE
45335  *         self.ob_mpi.MPI_TAG    = MPI_ANY_TAG
45336  */
45337 
45338 static int __pyx_pf_6mpi4py_3MPI_6Status___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45339 static int __pyx_pf_6mpi4py_3MPI_6Status___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45340   int __pyx_r;
45341   __Pyx_RefNannyDeclarations
45342   __Pyx_RefNannySetupContext("__cinit__");
45343   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
45344     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
45345   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
45346 
45347   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":8
45348  *
45349  *     def __cinit__(self):
45350  *         self.ob_mpi.MPI_SOURCE = MPI_ANY_SOURCE             # <<<<<<<<<<<<<<
45351  *         self.ob_mpi.MPI_TAG    = MPI_ANY_TAG
45352  *         self.ob_mpi.MPI_ERROR  = MPI_SUCCESS
45353  */
45354   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_SOURCE = MPI_ANY_SOURCE;
45355 
45356   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":9
45357  *     def __cinit__(self):
45358  *         self.ob_mpi.MPI_SOURCE = MPI_ANY_SOURCE
45359  *         self.ob_mpi.MPI_TAG    = MPI_ANY_TAG             # <<<<<<<<<<<<<<
45360  *         self.ob_mpi.MPI_ERROR  = MPI_SUCCESS
45361  *
45362  */
45363   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_TAG = MPI_ANY_TAG;
45364 
45365   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":10
45366  *         self.ob_mpi.MPI_SOURCE = MPI_ANY_SOURCE
45367  *         self.ob_mpi.MPI_TAG    = MPI_ANY_TAG
45368  *         self.ob_mpi.MPI_ERROR  = MPI_SUCCESS             # <<<<<<<<<<<<<<
45369  *
45370  *     def __richcmp__(self, other, int op):
45371  */
45372   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_ERROR = MPI_SUCCESS;
45373 
45374   __pyx_r = 0;
45375   __Pyx_RefNannyFinishContext();
45376   return __pyx_r;
45377 }
45378 
45379 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":12
45380  *         self.ob_mpi.MPI_ERROR  = MPI_SUCCESS
45381  *
45382  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
45383  *         if not isinstance(self,  Status): return NotImplemented
45384  *         if not isinstance(other, Status): return NotImplemented
45385  */
45386 
45387 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_1__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_1__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)45388 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_1__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
45389   struct PyMPIStatusObject *__pyx_v_s = 0;
45390   struct PyMPIStatusObject *__pyx_v_o = 0;
45391   int __pyx_v_r;
45392   PyObject *__pyx_r = NULL;
45393   __Pyx_RefNannyDeclarations
45394   PyObject *__pyx_t_1 = NULL;
45395   int __pyx_t_2;
45396   int __pyx_t_3;
45397   int __pyx_lineno = 0;
45398   const char *__pyx_filename = NULL;
45399   int __pyx_clineno = 0;
45400   __Pyx_RefNannySetupContext("__richcmp__");
45401 
45402   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":13
45403  *
45404  *     def __richcmp__(self, other, int op):
45405  *         if not isinstance(self,  Status): return NotImplemented             # <<<<<<<<<<<<<<
45406  *         if not isinstance(other, Status): return NotImplemented
45407  *         cdef Status s = <Status>self, o = <Status>other
45408  */
45409   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Status));
45410   __Pyx_INCREF(__pyx_t_1);
45411   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
45412   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45413   __pyx_t_3 = (!__pyx_t_2);
45414   if (__pyx_t_3) {
45415     __Pyx_XDECREF(__pyx_r);
45416     __Pyx_INCREF(__pyx_builtin_NotImplemented);
45417     __pyx_r = __pyx_builtin_NotImplemented;
45418     goto __pyx_L0;
45419     goto __pyx_L5;
45420   }
45421   __pyx_L5:;
45422 
45423   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":14
45424  *     def __richcmp__(self, other, int op):
45425  *         if not isinstance(self,  Status): return NotImplemented
45426  *         if not isinstance(other, Status): return NotImplemented             # <<<<<<<<<<<<<<
45427  *         cdef Status s = <Status>self, o = <Status>other
45428  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)
45429  */
45430   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Status));
45431   __Pyx_INCREF(__pyx_t_1);
45432   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
45433   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45434   __pyx_t_2 = (!__pyx_t_3);
45435   if (__pyx_t_2) {
45436     __Pyx_XDECREF(__pyx_r);
45437     __Pyx_INCREF(__pyx_builtin_NotImplemented);
45438     __pyx_r = __pyx_builtin_NotImplemented;
45439     goto __pyx_L0;
45440     goto __pyx_L6;
45441   }
45442   __pyx_L6:;
45443 
45444   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":15
45445  *         if not isinstance(self,  Status): return NotImplemented
45446  *         if not isinstance(other, Status): return NotImplemented
45447  *         cdef Status s = <Status>self, o = <Status>other             # <<<<<<<<<<<<<<
45448  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)
45449  *         if   op == Py_EQ: return  r == 0
45450  */
45451   __Pyx_INCREF(((PyObject *)((struct PyMPIStatusObject *)__pyx_v_self)));
45452   __pyx_v_s = ((struct PyMPIStatusObject *)__pyx_v_self);
45453   __Pyx_INCREF(((PyObject *)((struct PyMPIStatusObject *)__pyx_v_other)));
45454   __pyx_v_o = ((struct PyMPIStatusObject *)__pyx_v_other);
45455 
45456   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":16
45457  *         if not isinstance(other, Status): return NotImplemented
45458  *         cdef Status s = <Status>self, o = <Status>other
45459  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)             # <<<<<<<<<<<<<<
45460  *         if   op == Py_EQ: return  r == 0
45461  *         elif op == Py_NE: return  r != 0
45462  */
45463   __pyx_v_r = __pyx_f_6mpi4py_3MPI_equal_Status((&__pyx_v_s->ob_mpi), (&__pyx_v_o->ob_mpi));
45464 
45465   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":18
45466  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)
45467  *         if   op == Py_EQ: return  r == 0
45468  *         elif op == Py_NE: return  r != 0             # <<<<<<<<<<<<<<
45469  *         else: raise TypeError("only '==' and '!='")
45470  *
45471  */
45472   switch (__pyx_v_op) {
45473 
45474     /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":17
45475  *         cdef Status s = <Status>self, o = <Status>other
45476  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)
45477  *         if   op == Py_EQ: return  r == 0             # <<<<<<<<<<<<<<
45478  *         elif op == Py_NE: return  r != 0
45479  *         else: raise TypeError("only '==' and '!='")
45480  */
45481     case Py_EQ:
45482     __Pyx_XDECREF(__pyx_r);
45483     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r == 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45484     __Pyx_GOTREF(__pyx_t_1);
45485     __pyx_r = __pyx_t_1;
45486     __pyx_t_1 = 0;
45487     goto __pyx_L0;
45488     break;
45489 
45490     /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":18
45491  *         cdef int r = equal_Status(&s.ob_mpi, &o.ob_mpi)
45492  *         if   op == Py_EQ: return  r == 0
45493  *         elif op == Py_NE: return  r != 0             # <<<<<<<<<<<<<<
45494  *         else: raise TypeError("only '==' and '!='")
45495  *
45496  */
45497     case Py_NE:
45498     __Pyx_XDECREF(__pyx_r);
45499     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r != 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45500     __Pyx_GOTREF(__pyx_t_1);
45501     __pyx_r = __pyx_t_1;
45502     __pyx_t_1 = 0;
45503     goto __pyx_L0;
45504     break;
45505     default:
45506 
45507     /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":19
45508  *         if   op == Py_EQ: return  r == 0
45509  *         elif op == Py_NE: return  r != 0
45510  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
45511  *
45512  *
45513  */
45514     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_60), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45515     __Pyx_GOTREF(__pyx_t_1);
45516     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
45517     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45518     {__pyx_filename = __pyx_f[20]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45519     break;
45520   }
45521 
45522   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45523   goto __pyx_L0;
45524   __pyx_L1_error:;
45525   __Pyx_XDECREF(__pyx_t_1);
45526   __Pyx_AddTraceback("mpi4py.MPI.Status.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
45527   __pyx_r = NULL;
45528   __pyx_L0:;
45529   __Pyx_XDECREF((PyObject *)__pyx_v_s);
45530   __Pyx_XDECREF((PyObject *)__pyx_v_o);
45531   __Pyx_XGIVEREF(__pyx_r);
45532   __Pyx_RefNannyFinishContext();
45533   return __pyx_r;
45534 }
45535 
45536 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":22
45537  *
45538  *
45539  *     def Get_source(self):             # <<<<<<<<<<<<<<
45540  *         """
45541  *         Get message source
45542  */
45543 
45544 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_2Get_source(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45545 static char __pyx_doc_6mpi4py_3MPI_6Status_2Get_source[] = "Status.Get_source(self)\n\n        Get message source\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_2Get_source(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45546 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_2Get_source(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45547   PyObject *__pyx_r = NULL;
45548   __Pyx_RefNannyDeclarations
45549   PyObject *__pyx_t_1 = NULL;
45550   int __pyx_lineno = 0;
45551   const char *__pyx_filename = NULL;
45552   int __pyx_clineno = 0;
45553   __Pyx_RefNannySetupContext("Get_source");
45554   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
45555     __Pyx_RaiseArgtupleInvalid("Get_source", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
45556   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_source", 0))) return NULL;
45557 
45558   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":26
45559  *         Get message source
45560  *         """
45561  *         return self.ob_mpi.MPI_SOURCE             # <<<<<<<<<<<<<<
45562  *
45563  *     def Set_source(self, int source):
45564  */
45565   __Pyx_XDECREF(__pyx_r);
45566   __pyx_t_1 = PyInt_FromLong(((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_SOURCE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45567   __Pyx_GOTREF(__pyx_t_1);
45568   __pyx_r = __pyx_t_1;
45569   __pyx_t_1 = 0;
45570   goto __pyx_L0;
45571 
45572   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45573   goto __pyx_L0;
45574   __pyx_L1_error:;
45575   __Pyx_XDECREF(__pyx_t_1);
45576   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_source", __pyx_clineno, __pyx_lineno, __pyx_filename);
45577   __pyx_r = NULL;
45578   __pyx_L0:;
45579   __Pyx_XGIVEREF(__pyx_r);
45580   __Pyx_RefNannyFinishContext();
45581   return __pyx_r;
45582 }
45583 
45584 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":28
45585  *         return self.ob_mpi.MPI_SOURCE
45586  *
45587  *     def Set_source(self, int source):             # <<<<<<<<<<<<<<
45588  *         """
45589  *         Set message source
45590  */
45591 
45592 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_3Set_source(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45593 static char __pyx_doc_6mpi4py_3MPI_6Status_3Set_source[] = "Status.Set_source(self, int source)\n\n        Set message source\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_3Set_source(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45594 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_3Set_source(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45595   int __pyx_v_source;
45596   PyObject *__pyx_r = NULL;
45597   __Pyx_RefNannyDeclarations
45598   int __pyx_lineno = 0;
45599   const char *__pyx_filename = NULL;
45600   int __pyx_clineno = 0;
45601   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,0};
45602   __Pyx_RefNannySetupContext("Set_source");
45603   {
45604     PyObject* values[1] = {0};
45605     if (unlikely(__pyx_kwds)) {
45606       Py_ssize_t kw_args;
45607       switch (PyTuple_GET_SIZE(__pyx_args)) {
45608         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45609         case  0: break;
45610         default: goto __pyx_L5_argtuple_error;
45611       }
45612       kw_args = PyDict_Size(__pyx_kwds);
45613       switch (PyTuple_GET_SIZE(__pyx_args)) {
45614         case  0:
45615         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
45616         if (likely(values[0])) kw_args--;
45617         else goto __pyx_L5_argtuple_error;
45618       }
45619       if (unlikely(kw_args > 0)) {
45620         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_source") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45621       }
45622     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
45623       goto __pyx_L5_argtuple_error;
45624     } else {
45625       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45626     }
45627     __pyx_v_source = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45628   }
45629   goto __pyx_L4_argument_unpacking_done;
45630   __pyx_L5_argtuple_error:;
45631   __Pyx_RaiseArgtupleInvalid("Set_source", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45632   __pyx_L3_error:;
45633   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_source", __pyx_clineno, __pyx_lineno, __pyx_filename);
45634   __Pyx_RefNannyFinishContext();
45635   return NULL;
45636   __pyx_L4_argument_unpacking_done:;
45637 
45638   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":32
45639  *         Set message source
45640  *         """
45641  *         self.ob_mpi.MPI_SOURCE = source             # <<<<<<<<<<<<<<
45642  *
45643  *     property source:
45644  */
45645   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_SOURCE = __pyx_v_source;
45646 
45647   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45648   __Pyx_XGIVEREF(__pyx_r);
45649   __Pyx_RefNannyFinishContext();
45650   return __pyx_r;
45651 }
45652 
45653 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":36
45654  *     property source:
45655  *         """source"""
45656  *         def __get__(self):             # <<<<<<<<<<<<<<
45657  *             return self.Get_source()
45658  *         def __set__(self, value):
45659  */
45660 
45661 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_6source___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_6source___get__(PyObject * __pyx_v_self)45662 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_6source___get__(PyObject *__pyx_v_self) {
45663   PyObject *__pyx_r = NULL;
45664   __Pyx_RefNannyDeclarations
45665   PyObject *__pyx_t_1 = NULL;
45666   PyObject *__pyx_t_2 = NULL;
45667   int __pyx_lineno = 0;
45668   const char *__pyx_filename = NULL;
45669   int __pyx_clineno = 0;
45670   __Pyx_RefNannySetupContext("__get__");
45671 
45672   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":37
45673  *         """source"""
45674  *         def __get__(self):
45675  *             return self.Get_source()             # <<<<<<<<<<<<<<
45676  *         def __set__(self, value):
45677  *             self.Set_source(value)
45678  */
45679   __Pyx_XDECREF(__pyx_r);
45680   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_source); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45681   __Pyx_GOTREF(__pyx_t_1);
45682   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45683   __Pyx_GOTREF(__pyx_t_2);
45684   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45685   __pyx_r = __pyx_t_2;
45686   __pyx_t_2 = 0;
45687   goto __pyx_L0;
45688 
45689   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45690   goto __pyx_L0;
45691   __pyx_L1_error:;
45692   __Pyx_XDECREF(__pyx_t_1);
45693   __Pyx_XDECREF(__pyx_t_2);
45694   __Pyx_AddTraceback("mpi4py.MPI.Status.source.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
45695   __pyx_r = NULL;
45696   __pyx_L0:;
45697   __Pyx_XGIVEREF(__pyx_r);
45698   __Pyx_RefNannyFinishContext();
45699   return __pyx_r;
45700 }
45701 
45702 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":38
45703  *         def __get__(self):
45704  *             return self.Get_source()
45705  *         def __set__(self, value):             # <<<<<<<<<<<<<<
45706  *             self.Set_source(value)
45707  *
45708  */
45709 
45710 static int __pyx_pf_6mpi4py_3MPI_6Status_6source_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_6source_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)45711 static int __pyx_pf_6mpi4py_3MPI_6Status_6source_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
45712   int __pyx_r;
45713   __Pyx_RefNannyDeclarations
45714   PyObject *__pyx_t_1 = NULL;
45715   PyObject *__pyx_t_2 = NULL;
45716   PyObject *__pyx_t_3 = NULL;
45717   int __pyx_lineno = 0;
45718   const char *__pyx_filename = NULL;
45719   int __pyx_clineno = 0;
45720   __Pyx_RefNannySetupContext("__set__");
45721 
45722   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":39
45723  *             return self.Get_source()
45724  *         def __set__(self, value):
45725  *             self.Set_source(value)             # <<<<<<<<<<<<<<
45726  *
45727  *     def Get_tag(self):
45728  */
45729   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_source); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45730   __Pyx_GOTREF(__pyx_t_1);
45731   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45732   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
45733   __Pyx_INCREF(__pyx_v_value);
45734   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
45735   __Pyx_GIVEREF(__pyx_v_value);
45736   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45737   __Pyx_GOTREF(__pyx_t_3);
45738   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45739   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
45740   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45741 
45742   __pyx_r = 0;
45743   goto __pyx_L0;
45744   __pyx_L1_error:;
45745   __Pyx_XDECREF(__pyx_t_1);
45746   __Pyx_XDECREF(__pyx_t_2);
45747   __Pyx_XDECREF(__pyx_t_3);
45748   __Pyx_AddTraceback("mpi4py.MPI.Status.source.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
45749   __pyx_r = -1;
45750   __pyx_L0:;
45751   __Pyx_RefNannyFinishContext();
45752   return __pyx_r;
45753 }
45754 
45755 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":41
45756  *             self.Set_source(value)
45757  *
45758  *     def Get_tag(self):             # <<<<<<<<<<<<<<
45759  *         """
45760  *         Get message tag
45761  */
45762 
45763 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_4Get_tag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45764 static char __pyx_doc_6mpi4py_3MPI_6Status_4Get_tag[] = "Status.Get_tag(self)\n\n        Get message tag\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_4Get_tag(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45765 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_4Get_tag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45766   PyObject *__pyx_r = NULL;
45767   __Pyx_RefNannyDeclarations
45768   PyObject *__pyx_t_1 = NULL;
45769   int __pyx_lineno = 0;
45770   const char *__pyx_filename = NULL;
45771   int __pyx_clineno = 0;
45772   __Pyx_RefNannySetupContext("Get_tag");
45773   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
45774     __Pyx_RaiseArgtupleInvalid("Get_tag", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
45775   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_tag", 0))) return NULL;
45776 
45777   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":45
45778  *         Get message tag
45779  *         """
45780  *         return self.ob_mpi.MPI_TAG             # <<<<<<<<<<<<<<
45781  *
45782  *     def Set_tag(self, int tag):
45783  */
45784   __Pyx_XDECREF(__pyx_r);
45785   __pyx_t_1 = PyInt_FromLong(((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_TAG); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45786   __Pyx_GOTREF(__pyx_t_1);
45787   __pyx_r = __pyx_t_1;
45788   __pyx_t_1 = 0;
45789   goto __pyx_L0;
45790 
45791   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45792   goto __pyx_L0;
45793   __pyx_L1_error:;
45794   __Pyx_XDECREF(__pyx_t_1);
45795   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
45796   __pyx_r = NULL;
45797   __pyx_L0:;
45798   __Pyx_XGIVEREF(__pyx_r);
45799   __Pyx_RefNannyFinishContext();
45800   return __pyx_r;
45801 }
45802 
45803 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":47
45804  *         return self.ob_mpi.MPI_TAG
45805  *
45806  *     def Set_tag(self, int tag):             # <<<<<<<<<<<<<<
45807  *         """
45808  *         Set message tag
45809  */
45810 
45811 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5Set_tag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45812 static char __pyx_doc_6mpi4py_3MPI_6Status_5Set_tag[] = "Status.Set_tag(self, int tag)\n\n        Set message tag\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_5Set_tag(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45813 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5Set_tag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45814   int __pyx_v_tag;
45815   PyObject *__pyx_r = NULL;
45816   __Pyx_RefNannyDeclarations
45817   int __pyx_lineno = 0;
45818   const char *__pyx_filename = NULL;
45819   int __pyx_clineno = 0;
45820   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
45821   __Pyx_RefNannySetupContext("Set_tag");
45822   {
45823     PyObject* values[1] = {0};
45824     if (unlikely(__pyx_kwds)) {
45825       Py_ssize_t kw_args;
45826       switch (PyTuple_GET_SIZE(__pyx_args)) {
45827         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45828         case  0: break;
45829         default: goto __pyx_L5_argtuple_error;
45830       }
45831       kw_args = PyDict_Size(__pyx_kwds);
45832       switch (PyTuple_GET_SIZE(__pyx_args)) {
45833         case  0:
45834         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
45835         if (likely(values[0])) kw_args--;
45836         else goto __pyx_L5_argtuple_error;
45837       }
45838       if (unlikely(kw_args > 0)) {
45839         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_tag") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45840       }
45841     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
45842       goto __pyx_L5_argtuple_error;
45843     } else {
45844       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
45845     }
45846     __pyx_v_tag = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45847   }
45848   goto __pyx_L4_argument_unpacking_done;
45849   __pyx_L5_argtuple_error:;
45850   __Pyx_RaiseArgtupleInvalid("Set_tag", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
45851   __pyx_L3_error:;
45852   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
45853   __Pyx_RefNannyFinishContext();
45854   return NULL;
45855   __pyx_L4_argument_unpacking_done:;
45856 
45857   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":51
45858  *         Set message tag
45859  *         """
45860  *         self.ob_mpi.MPI_TAG = tag             # <<<<<<<<<<<<<<
45861  *
45862  *     property tag:
45863  */
45864   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_TAG = __pyx_v_tag;
45865 
45866   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45867   __Pyx_XGIVEREF(__pyx_r);
45868   __Pyx_RefNannyFinishContext();
45869   return __pyx_r;
45870 }
45871 
45872 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":55
45873  *     property tag:
45874  *         """tag"""
45875  *         def __get__(self):             # <<<<<<<<<<<<<<
45876  *             return self.Get_tag()
45877  *         def __set__(self, value):
45878  */
45879 
45880 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_3tag___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_3tag___get__(PyObject * __pyx_v_self)45881 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_3tag___get__(PyObject *__pyx_v_self) {
45882   PyObject *__pyx_r = NULL;
45883   __Pyx_RefNannyDeclarations
45884   PyObject *__pyx_t_1 = NULL;
45885   PyObject *__pyx_t_2 = NULL;
45886   int __pyx_lineno = 0;
45887   const char *__pyx_filename = NULL;
45888   int __pyx_clineno = 0;
45889   __Pyx_RefNannySetupContext("__get__");
45890 
45891   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":56
45892  *         """tag"""
45893  *         def __get__(self):
45894  *             return self.Get_tag()             # <<<<<<<<<<<<<<
45895  *         def __set__(self, value):
45896  *             self.Set_tag(value)
45897  */
45898   __Pyx_XDECREF(__pyx_r);
45899   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45900   __Pyx_GOTREF(__pyx_t_1);
45901   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45902   __Pyx_GOTREF(__pyx_t_2);
45903   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45904   __pyx_r = __pyx_t_2;
45905   __pyx_t_2 = 0;
45906   goto __pyx_L0;
45907 
45908   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
45909   goto __pyx_L0;
45910   __pyx_L1_error:;
45911   __Pyx_XDECREF(__pyx_t_1);
45912   __Pyx_XDECREF(__pyx_t_2);
45913   __Pyx_AddTraceback("mpi4py.MPI.Status.tag.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
45914   __pyx_r = NULL;
45915   __pyx_L0:;
45916   __Pyx_XGIVEREF(__pyx_r);
45917   __Pyx_RefNannyFinishContext();
45918   return __pyx_r;
45919 }
45920 
45921 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":57
45922  *         def __get__(self):
45923  *             return self.Get_tag()
45924  *         def __set__(self, value):             # <<<<<<<<<<<<<<
45925  *             self.Set_tag(value)
45926  *
45927  */
45928 
45929 static int __pyx_pf_6mpi4py_3MPI_6Status_3tag_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_3tag_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)45930 static int __pyx_pf_6mpi4py_3MPI_6Status_3tag_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
45931   int __pyx_r;
45932   __Pyx_RefNannyDeclarations
45933   PyObject *__pyx_t_1 = NULL;
45934   PyObject *__pyx_t_2 = NULL;
45935   PyObject *__pyx_t_3 = NULL;
45936   int __pyx_lineno = 0;
45937   const char *__pyx_filename = NULL;
45938   int __pyx_clineno = 0;
45939   __Pyx_RefNannySetupContext("__set__");
45940 
45941   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":58
45942  *             return self.Get_tag()
45943  *         def __set__(self, value):
45944  *             self.Set_tag(value)             # <<<<<<<<<<<<<<
45945  *
45946  *     def Get_error(self):
45947  */
45948   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45949   __Pyx_GOTREF(__pyx_t_1);
45950   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45951   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
45952   __Pyx_INCREF(__pyx_v_value);
45953   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
45954   __Pyx_GIVEREF(__pyx_v_value);
45955   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
45956   __Pyx_GOTREF(__pyx_t_3);
45957   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
45958   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
45959   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
45960 
45961   __pyx_r = 0;
45962   goto __pyx_L0;
45963   __pyx_L1_error:;
45964   __Pyx_XDECREF(__pyx_t_1);
45965   __Pyx_XDECREF(__pyx_t_2);
45966   __Pyx_XDECREF(__pyx_t_3);
45967   __Pyx_AddTraceback("mpi4py.MPI.Status.tag.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
45968   __pyx_r = -1;
45969   __pyx_L0:;
45970   __Pyx_RefNannyFinishContext();
45971   return __pyx_r;
45972 }
45973 
45974 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":60
45975  *             self.Set_tag(value)
45976  *
45977  *     def Get_error(self):             # <<<<<<<<<<<<<<
45978  *         """
45979  *         Get message error
45980  */
45981 
45982 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_6Get_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45983 static char __pyx_doc_6mpi4py_3MPI_6Status_6Get_error[] = "Status.Get_error(self)\n\n        Get message error\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_6Get_error(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)45984 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_6Get_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45985   PyObject *__pyx_r = NULL;
45986   __Pyx_RefNannyDeclarations
45987   PyObject *__pyx_t_1 = NULL;
45988   int __pyx_lineno = 0;
45989   const char *__pyx_filename = NULL;
45990   int __pyx_clineno = 0;
45991   __Pyx_RefNannySetupContext("Get_error");
45992   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
45993     __Pyx_RaiseArgtupleInvalid("Get_error", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
45994   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_error", 0))) return NULL;
45995 
45996   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":64
45997  *         Get message error
45998  *         """
45999  *         return self.ob_mpi.MPI_ERROR             # <<<<<<<<<<<<<<
46000  *
46001  *     def Set_error(self, int error):
46002  */
46003   __Pyx_XDECREF(__pyx_r);
46004   __pyx_t_1 = PyInt_FromLong(((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46005   __Pyx_GOTREF(__pyx_t_1);
46006   __pyx_r = __pyx_t_1;
46007   __pyx_t_1 = 0;
46008   goto __pyx_L0;
46009 
46010   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46011   goto __pyx_L0;
46012   __pyx_L1_error:;
46013   __Pyx_XDECREF(__pyx_t_1);
46014   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
46015   __pyx_r = NULL;
46016   __pyx_L0:;
46017   __Pyx_XGIVEREF(__pyx_r);
46018   __Pyx_RefNannyFinishContext();
46019   return __pyx_r;
46020 }
46021 
46022 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":66
46023  *         return self.ob_mpi.MPI_ERROR
46024  *
46025  *     def Set_error(self, int error):             # <<<<<<<<<<<<<<
46026  *         """
46027  *         Set message error
46028  */
46029 
46030 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_7Set_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46031 static char __pyx_doc_6mpi4py_3MPI_6Status_7Set_error[] = "Status.Set_error(self, int error)\n\n        Set message error\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_7Set_error(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46032 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_7Set_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46033   int __pyx_v_error;
46034   PyObject *__pyx_r = NULL;
46035   __Pyx_RefNannyDeclarations
46036   int __pyx_lineno = 0;
46037   const char *__pyx_filename = NULL;
46038   int __pyx_clineno = 0;
46039   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__error,0};
46040   __Pyx_RefNannySetupContext("Set_error");
46041   {
46042     PyObject* values[1] = {0};
46043     if (unlikely(__pyx_kwds)) {
46044       Py_ssize_t kw_args;
46045       switch (PyTuple_GET_SIZE(__pyx_args)) {
46046         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46047         case  0: break;
46048         default: goto __pyx_L5_argtuple_error;
46049       }
46050       kw_args = PyDict_Size(__pyx_kwds);
46051       switch (PyTuple_GET_SIZE(__pyx_args)) {
46052         case  0:
46053         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error);
46054         if (likely(values[0])) kw_args--;
46055         else goto __pyx_L5_argtuple_error;
46056       }
46057       if (unlikely(kw_args > 0)) {
46058         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_error") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46059       }
46060     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
46061       goto __pyx_L5_argtuple_error;
46062     } else {
46063       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46064     }
46065     __pyx_v_error = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46066   }
46067   goto __pyx_L4_argument_unpacking_done;
46068   __pyx_L5_argtuple_error:;
46069   __Pyx_RaiseArgtupleInvalid("Set_error", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46070   __pyx_L3_error:;
46071   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
46072   __Pyx_RefNannyFinishContext();
46073   return NULL;
46074   __pyx_L4_argument_unpacking_done:;
46075 
46076   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":70
46077  *         Set message error
46078  *         """
46079  *         self.ob_mpi.MPI_ERROR = error             # <<<<<<<<<<<<<<
46080  *
46081  *     property error:
46082  */
46083   ((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi.MPI_ERROR = __pyx_v_error;
46084 
46085   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46086   __Pyx_XGIVEREF(__pyx_r);
46087   __Pyx_RefNannyFinishContext();
46088   return __pyx_r;
46089 }
46090 
46091 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":74
46092  *     property error:
46093  *         """error"""
46094  *         def __get__(self):             # <<<<<<<<<<<<<<
46095  *             return self.Get_error()
46096  *         def __set__(self, value):
46097  */
46098 
46099 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5error___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_5error___get__(PyObject * __pyx_v_self)46100 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5error___get__(PyObject *__pyx_v_self) {
46101   PyObject *__pyx_r = NULL;
46102   __Pyx_RefNannyDeclarations
46103   PyObject *__pyx_t_1 = NULL;
46104   PyObject *__pyx_t_2 = NULL;
46105   int __pyx_lineno = 0;
46106   const char *__pyx_filename = NULL;
46107   int __pyx_clineno = 0;
46108   __Pyx_RefNannySetupContext("__get__");
46109 
46110   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":75
46111  *         """error"""
46112  *         def __get__(self):
46113  *             return self.Get_error()             # <<<<<<<<<<<<<<
46114  *         def __set__(self, value):
46115  *             self.Set_error(value)
46116  */
46117   __Pyx_XDECREF(__pyx_r);
46118   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46119   __Pyx_GOTREF(__pyx_t_1);
46120   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46121   __Pyx_GOTREF(__pyx_t_2);
46122   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46123   __pyx_r = __pyx_t_2;
46124   __pyx_t_2 = 0;
46125   goto __pyx_L0;
46126 
46127   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46128   goto __pyx_L0;
46129   __pyx_L1_error:;
46130   __Pyx_XDECREF(__pyx_t_1);
46131   __Pyx_XDECREF(__pyx_t_2);
46132   __Pyx_AddTraceback("mpi4py.MPI.Status.error.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46133   __pyx_r = NULL;
46134   __pyx_L0:;
46135   __Pyx_XGIVEREF(__pyx_r);
46136   __Pyx_RefNannyFinishContext();
46137   return __pyx_r;
46138 }
46139 
46140 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":76
46141  *         def __get__(self):
46142  *             return self.Get_error()
46143  *         def __set__(self, value):             # <<<<<<<<<<<<<<
46144  *             self.Set_error(value)
46145  *
46146  */
46147 
46148 static int __pyx_pf_6mpi4py_3MPI_6Status_5error_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_5error_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)46149 static int __pyx_pf_6mpi4py_3MPI_6Status_5error_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
46150   int __pyx_r;
46151   __Pyx_RefNannyDeclarations
46152   PyObject *__pyx_t_1 = NULL;
46153   PyObject *__pyx_t_2 = NULL;
46154   PyObject *__pyx_t_3 = NULL;
46155   int __pyx_lineno = 0;
46156   const char *__pyx_filename = NULL;
46157   int __pyx_clineno = 0;
46158   __Pyx_RefNannySetupContext("__set__");
46159 
46160   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":77
46161  *             return self.Get_error()
46162  *         def __set__(self, value):
46163  *             self.Set_error(value)             # <<<<<<<<<<<<<<
46164  *
46165  *     def Get_count(self, Datatype datatype not None=BYTE):
46166  */
46167   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46168   __Pyx_GOTREF(__pyx_t_1);
46169   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46170   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
46171   __Pyx_INCREF(__pyx_v_value);
46172   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
46173   __Pyx_GIVEREF(__pyx_v_value);
46174   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46175   __Pyx_GOTREF(__pyx_t_3);
46176   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46177   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
46178   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46179 
46180   __pyx_r = 0;
46181   goto __pyx_L0;
46182   __pyx_L1_error:;
46183   __Pyx_XDECREF(__pyx_t_1);
46184   __Pyx_XDECREF(__pyx_t_2);
46185   __Pyx_XDECREF(__pyx_t_3);
46186   __Pyx_AddTraceback("mpi4py.MPI.Status.error.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46187   __pyx_r = -1;
46188   __pyx_L0:;
46189   __Pyx_RefNannyFinishContext();
46190   return __pyx_r;
46191 }
46192 
46193 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":79
46194  *             self.Set_error(value)
46195  *
46196  *     def Get_count(self, Datatype datatype not None=BYTE):             # <<<<<<<<<<<<<<
46197  *         """
46198  *         Get the number of *top level* elements
46199  */
46200 
46201 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_8Get_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46202 static char __pyx_doc_6mpi4py_3MPI_6Status_8Get_count[] = "Status.Get_count(self, Datatype datatype=BYTE)\n\n        Get the number of *top level* elements\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_8Get_count(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46203 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_8Get_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46204   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
46205   int __pyx_v_count;
46206   PyObject *__pyx_r = NULL;
46207   __Pyx_RefNannyDeclarations
46208   int __pyx_t_1;
46209   PyObject *__pyx_t_2 = NULL;
46210   int __pyx_lineno = 0;
46211   const char *__pyx_filename = NULL;
46212   int __pyx_clineno = 0;
46213   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datatype,0};
46214   __Pyx_RefNannySetupContext("Get_count");
46215   {
46216     PyObject* values[1] = {0};
46217     values[0] = (PyObject *)__pyx_k_61;
46218     if (unlikely(__pyx_kwds)) {
46219       Py_ssize_t kw_args;
46220       switch (PyTuple_GET_SIZE(__pyx_args)) {
46221         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46222         case  0: break;
46223         default: goto __pyx_L5_argtuple_error;
46224       }
46225       kw_args = PyDict_Size(__pyx_kwds);
46226       switch (PyTuple_GET_SIZE(__pyx_args)) {
46227         case  0:
46228         if (kw_args > 0) {
46229           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datatype);
46230           if (value) { values[0] = value; kw_args--; }
46231         }
46232       }
46233       if (unlikely(kw_args > 0)) {
46234         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_count") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46235       }
46236     } else {
46237       switch (PyTuple_GET_SIZE(__pyx_args)) {
46238         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46239         case  0: break;
46240         default: goto __pyx_L5_argtuple_error;
46241       }
46242     }
46243     __pyx_v_datatype = ((struct PyMPIDatatypeObject *)values[0]);
46244   }
46245   goto __pyx_L4_argument_unpacking_done;
46246   __pyx_L5_argtuple_error:;
46247   __Pyx_RaiseArgtupleInvalid("Get_count", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46248   __pyx_L3_error:;
46249   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
46250   __Pyx_RefNannyFinishContext();
46251   return NULL;
46252   __pyx_L4_argument_unpacking_done:;
46253   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_datatype), __pyx_ptype_6mpi4py_3MPI_Datatype, 0, "datatype", 0))) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46254 
46255   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":83
46256  *         Get the number of *top level* elements
46257  *         """
46258  *         cdef int count = MPI_UNDEFINED             # <<<<<<<<<<<<<<
46259  *         CHKERR( MPI_Get_count(&self.ob_mpi, datatype.ob_mpi, &count) )
46260  *         return count
46261  */
46262   __pyx_v_count = MPI_UNDEFINED;
46263 
46264   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":84
46265  *         """
46266  *         cdef int count = MPI_UNDEFINED
46267  *         CHKERR( MPI_Get_count(&self.ob_mpi, datatype.ob_mpi, &count) )             # <<<<<<<<<<<<<<
46268  *         return count
46269  *
46270  */
46271   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_count((&((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi), __pyx_v_datatype->ob_mpi, (&__pyx_v_count))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46272 
46273   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":85
46274  *         cdef int count = MPI_UNDEFINED
46275  *         CHKERR( MPI_Get_count(&self.ob_mpi, datatype.ob_mpi, &count) )
46276  *         return count             # <<<<<<<<<<<<<<
46277  *
46278  *     property count:
46279  */
46280   __Pyx_XDECREF(__pyx_r);
46281   __pyx_t_2 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46282   __Pyx_GOTREF(__pyx_t_2);
46283   __pyx_r = __pyx_t_2;
46284   __pyx_t_2 = 0;
46285   goto __pyx_L0;
46286 
46287   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46288   goto __pyx_L0;
46289   __pyx_L1_error:;
46290   __Pyx_XDECREF(__pyx_t_2);
46291   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
46292   __pyx_r = NULL;
46293   __pyx_L0:;
46294   __Pyx_XGIVEREF(__pyx_r);
46295   __Pyx_RefNannyFinishContext();
46296   return __pyx_r;
46297 }
46298 
46299 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":89
46300  *     property count:
46301  *         """byte count"""
46302  *         def __get__(self):             # <<<<<<<<<<<<<<
46303  *             return self.Get_count(__BYTE__)
46304  *
46305  */
46306 
46307 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5count___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_5count___get__(PyObject * __pyx_v_self)46308 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_5count___get__(PyObject *__pyx_v_self) {
46309   PyObject *__pyx_r = NULL;
46310   __Pyx_RefNannyDeclarations
46311   PyObject *__pyx_t_1 = NULL;
46312   PyObject *__pyx_t_2 = NULL;
46313   PyObject *__pyx_t_3 = NULL;
46314   int __pyx_lineno = 0;
46315   const char *__pyx_filename = NULL;
46316   int __pyx_clineno = 0;
46317   __Pyx_RefNannySetupContext("__get__");
46318 
46319   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":90
46320  *         """byte count"""
46321  *         def __get__(self):
46322  *             return self.Get_count(__BYTE__)             # <<<<<<<<<<<<<<
46323  *
46324  *     def Get_elements(self, Datatype datatype not None):
46325  */
46326   __Pyx_XDECREF(__pyx_r);
46327   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46328   __Pyx_GOTREF(__pyx_t_1);
46329   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46330   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
46331   __Pyx_INCREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__));
46332   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__));
46333   __Pyx_GIVEREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__));
46334   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46335   __Pyx_GOTREF(__pyx_t_3);
46336   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46337   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
46338   __pyx_r = __pyx_t_3;
46339   __pyx_t_3 = 0;
46340   goto __pyx_L0;
46341 
46342   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46343   goto __pyx_L0;
46344   __pyx_L1_error:;
46345   __Pyx_XDECREF(__pyx_t_1);
46346   __Pyx_XDECREF(__pyx_t_2);
46347   __Pyx_XDECREF(__pyx_t_3);
46348   __Pyx_AddTraceback("mpi4py.MPI.Status.count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46349   __pyx_r = NULL;
46350   __pyx_L0:;
46351   __Pyx_XGIVEREF(__pyx_r);
46352   __Pyx_RefNannyFinishContext();
46353   return __pyx_r;
46354 }
46355 
46356 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":92
46357  *             return self.Get_count(__BYTE__)
46358  *
46359  *     def Get_elements(self, Datatype datatype not None):             # <<<<<<<<<<<<<<
46360  *         """
46361  *         Get the number of basic elements in a datatype
46362  */
46363 
46364 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_9Get_elements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46365 static char __pyx_doc_6mpi4py_3MPI_6Status_9Get_elements[] = "Status.Get_elements(self, Datatype datatype)\n\n        Get the number of basic elements in a datatype\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_9Get_elements(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46366 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_9Get_elements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46367   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
46368   int __pyx_v_elements;
46369   PyObject *__pyx_r = NULL;
46370   __Pyx_RefNannyDeclarations
46371   int __pyx_t_1;
46372   PyObject *__pyx_t_2 = NULL;
46373   int __pyx_lineno = 0;
46374   const char *__pyx_filename = NULL;
46375   int __pyx_clineno = 0;
46376   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datatype,0};
46377   __Pyx_RefNannySetupContext("Get_elements");
46378   {
46379     PyObject* values[1] = {0};
46380     if (unlikely(__pyx_kwds)) {
46381       Py_ssize_t kw_args;
46382       switch (PyTuple_GET_SIZE(__pyx_args)) {
46383         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46384         case  0: break;
46385         default: goto __pyx_L5_argtuple_error;
46386       }
46387       kw_args = PyDict_Size(__pyx_kwds);
46388       switch (PyTuple_GET_SIZE(__pyx_args)) {
46389         case  0:
46390         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datatype);
46391         if (likely(values[0])) kw_args--;
46392         else goto __pyx_L5_argtuple_error;
46393       }
46394       if (unlikely(kw_args > 0)) {
46395         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_elements") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46396       }
46397     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
46398       goto __pyx_L5_argtuple_error;
46399     } else {
46400       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46401     }
46402     __pyx_v_datatype = ((struct PyMPIDatatypeObject *)values[0]);
46403   }
46404   goto __pyx_L4_argument_unpacking_done;
46405   __pyx_L5_argtuple_error:;
46406   __Pyx_RaiseArgtupleInvalid("Get_elements", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46407   __pyx_L3_error:;
46408   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_elements", __pyx_clineno, __pyx_lineno, __pyx_filename);
46409   __Pyx_RefNannyFinishContext();
46410   return NULL;
46411   __pyx_L4_argument_unpacking_done:;
46412   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_datatype), __pyx_ptype_6mpi4py_3MPI_Datatype, 0, "datatype", 0))) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46413 
46414   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":96
46415  *         Get the number of basic elements in a datatype
46416  *         """
46417  *         cdef int elements = MPI_UNDEFINED             # <<<<<<<<<<<<<<
46418  *         CHKERR( MPI_Get_elements(&self.ob_mpi, datatype.ob_mpi, &elements) )
46419  *         return elements
46420  */
46421   __pyx_v_elements = MPI_UNDEFINED;
46422 
46423   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":97
46424  *         """
46425  *         cdef int elements = MPI_UNDEFINED
46426  *         CHKERR( MPI_Get_elements(&self.ob_mpi, datatype.ob_mpi, &elements) )             # <<<<<<<<<<<<<<
46427  *         return elements
46428  *
46429  */
46430   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_elements((&((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi), __pyx_v_datatype->ob_mpi, (&__pyx_v_elements))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46431 
46432   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":98
46433  *         cdef int elements = MPI_UNDEFINED
46434  *         CHKERR( MPI_Get_elements(&self.ob_mpi, datatype.ob_mpi, &elements) )
46435  *         return elements             # <<<<<<<<<<<<<<
46436  *
46437  *     def Set_elements(self, Datatype datatype not None, int count):
46438  */
46439   __Pyx_XDECREF(__pyx_r);
46440   __pyx_t_2 = PyInt_FromLong(__pyx_v_elements); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46441   __Pyx_GOTREF(__pyx_t_2);
46442   __pyx_r = __pyx_t_2;
46443   __pyx_t_2 = 0;
46444   goto __pyx_L0;
46445 
46446   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46447   goto __pyx_L0;
46448   __pyx_L1_error:;
46449   __Pyx_XDECREF(__pyx_t_2);
46450   __Pyx_AddTraceback("mpi4py.MPI.Status.Get_elements", __pyx_clineno, __pyx_lineno, __pyx_filename);
46451   __pyx_r = NULL;
46452   __pyx_L0:;
46453   __Pyx_XGIVEREF(__pyx_r);
46454   __Pyx_RefNannyFinishContext();
46455   return __pyx_r;
46456 }
46457 
46458 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":100
46459  *         return elements
46460  *
46461  *     def Set_elements(self, Datatype datatype not None, int count):             # <<<<<<<<<<<<<<
46462  *         """
46463  *         Set the number of elements in a status
46464  */
46465 
46466 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_10Set_elements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46467 static char __pyx_doc_6mpi4py_3MPI_6Status_10Set_elements[] = "Status.Set_elements(self, Datatype datatype, int count)\n\n        Set the number of elements in a status\n\n        .. note:: This should be only used when implementing\n           query callback functions for generalized requests\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_10Set_elements(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46468 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_10Set_elements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46469   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
46470   int __pyx_v_count;
46471   PyObject *__pyx_r = NULL;
46472   __Pyx_RefNannyDeclarations
46473   int __pyx_t_1;
46474   int __pyx_lineno = 0;
46475   const char *__pyx_filename = NULL;
46476   int __pyx_clineno = 0;
46477   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datatype,&__pyx_n_s__count,0};
46478   __Pyx_RefNannySetupContext("Set_elements");
46479   {
46480     PyObject* values[2] = {0,0};
46481     if (unlikely(__pyx_kwds)) {
46482       Py_ssize_t kw_args;
46483       switch (PyTuple_GET_SIZE(__pyx_args)) {
46484         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46485         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46486         case  0: break;
46487         default: goto __pyx_L5_argtuple_error;
46488       }
46489       kw_args = PyDict_Size(__pyx_kwds);
46490       switch (PyTuple_GET_SIZE(__pyx_args)) {
46491         case  0:
46492         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datatype);
46493         if (likely(values[0])) kw_args--;
46494         else goto __pyx_L5_argtuple_error;
46495         case  1:
46496         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__count);
46497         if (likely(values[1])) kw_args--;
46498         else {
46499           __Pyx_RaiseArgtupleInvalid("Set_elements", 1, 2, 2, 1); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46500         }
46501       }
46502       if (unlikely(kw_args > 0)) {
46503         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_elements") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46504       }
46505     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
46506       goto __pyx_L5_argtuple_error;
46507     } else {
46508       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46509       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
46510     }
46511     __pyx_v_datatype = ((struct PyMPIDatatypeObject *)values[0]);
46512     __pyx_v_count = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_count == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46513   }
46514   goto __pyx_L4_argument_unpacking_done;
46515   __pyx_L5_argtuple_error:;
46516   __Pyx_RaiseArgtupleInvalid("Set_elements", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46517   __pyx_L3_error:;
46518   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_elements", __pyx_clineno, __pyx_lineno, __pyx_filename);
46519   __Pyx_RefNannyFinishContext();
46520   return NULL;
46521   __pyx_L4_argument_unpacking_done:;
46522   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_datatype), __pyx_ptype_6mpi4py_3MPI_Datatype, 0, "datatype", 0))) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46523 
46524   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":107
46525  *            query callback functions for generalized requests
46526  *         """
46527  *         CHKERR( MPI_Status_set_elements(&self.ob_mpi, datatype.ob_mpi, count) )             # <<<<<<<<<<<<<<
46528  *
46529  *     def Is_cancelled(self):
46530  */
46531   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Status_set_elements((&((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi), __pyx_v_datatype->ob_mpi, __pyx_v_count)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46532 
46533   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46534   goto __pyx_L0;
46535   __pyx_L1_error:;
46536   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_elements", __pyx_clineno, __pyx_lineno, __pyx_filename);
46537   __pyx_r = NULL;
46538   __pyx_L0:;
46539   __Pyx_XGIVEREF(__pyx_r);
46540   __Pyx_RefNannyFinishContext();
46541   return __pyx_r;
46542 }
46543 
46544 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":109
46545  *         CHKERR( MPI_Status_set_elements(&self.ob_mpi, datatype.ob_mpi, count) )
46546  *
46547  *     def Is_cancelled(self):             # <<<<<<<<<<<<<<
46548  *         """
46549  *         Test to see if a request was cancelled
46550  */
46551 
46552 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_11Is_cancelled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46553 static char __pyx_doc_6mpi4py_3MPI_6Status_11Is_cancelled[] = "Status.Is_cancelled(self)\n\n        Test to see if a request was cancelled\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_11Is_cancelled(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46554 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_11Is_cancelled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46555   int __pyx_v_flag;
46556   PyObject *__pyx_r = NULL;
46557   __Pyx_RefNannyDeclarations
46558   int __pyx_t_1;
46559   PyObject *__pyx_t_2 = NULL;
46560   int __pyx_lineno = 0;
46561   const char *__pyx_filename = NULL;
46562   int __pyx_clineno = 0;
46563   __Pyx_RefNannySetupContext("Is_cancelled");
46564   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
46565     __Pyx_RaiseArgtupleInvalid("Is_cancelled", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
46566   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_cancelled", 0))) return NULL;
46567 
46568   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":113
46569  *         Test to see if a request was cancelled
46570  *         """
46571  *         cdef int flag = 0             # <<<<<<<<<<<<<<
46572  *         CHKERR( MPI_Test_cancelled(&self.ob_mpi, &flag) )
46573  *         return <bint>flag
46574  */
46575   __pyx_v_flag = 0;
46576 
46577   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":114
46578  *         """
46579  *         cdef int flag = 0
46580  *         CHKERR( MPI_Test_cancelled(&self.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
46581  *         return <bint>flag
46582  *
46583  */
46584   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Test_cancelled((&((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46585 
46586   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":115
46587  *         cdef int flag = 0
46588  *         CHKERR( MPI_Test_cancelled(&self.ob_mpi, &flag) )
46589  *         return <bint>flag             # <<<<<<<<<<<<<<
46590  *
46591  *     def Set_cancelled(self, bint flag):
46592  */
46593   __Pyx_XDECREF(__pyx_r);
46594   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46595   __Pyx_GOTREF(__pyx_t_2);
46596   __pyx_r = __pyx_t_2;
46597   __pyx_t_2 = 0;
46598   goto __pyx_L0;
46599 
46600   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46601   goto __pyx_L0;
46602   __pyx_L1_error:;
46603   __Pyx_XDECREF(__pyx_t_2);
46604   __Pyx_AddTraceback("mpi4py.MPI.Status.Is_cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
46605   __pyx_r = NULL;
46606   __pyx_L0:;
46607   __Pyx_XGIVEREF(__pyx_r);
46608   __Pyx_RefNannyFinishContext();
46609   return __pyx_r;
46610 }
46611 
46612 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":117
46613  *         return <bint>flag
46614  *
46615  *     def Set_cancelled(self, bint flag):             # <<<<<<<<<<<<<<
46616  *         """
46617  *         Set the cancelled state associated with a status
46618  */
46619 
46620 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_12Set_cancelled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46621 static char __pyx_doc_6mpi4py_3MPI_6Status_12Set_cancelled[] = "Status.Set_cancelled(self, int flag)\n\n        Set the cancelled state associated with a status\n\n        .. note:: This should be only used when implementing\n           query callback functions for generalized requests\n        ";
__pyx_pf_6mpi4py_3MPI_6Status_12Set_cancelled(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46622 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_12Set_cancelled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46623   int __pyx_v_flag;
46624   PyObject *__pyx_r = NULL;
46625   __Pyx_RefNannyDeclarations
46626   int __pyx_t_1;
46627   int __pyx_lineno = 0;
46628   const char *__pyx_filename = NULL;
46629   int __pyx_clineno = 0;
46630   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__flag,0};
46631   __Pyx_RefNannySetupContext("Set_cancelled");
46632   {
46633     PyObject* values[1] = {0};
46634     if (unlikely(__pyx_kwds)) {
46635       Py_ssize_t kw_args;
46636       switch (PyTuple_GET_SIZE(__pyx_args)) {
46637         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46638         case  0: break;
46639         default: goto __pyx_L5_argtuple_error;
46640       }
46641       kw_args = PyDict_Size(__pyx_kwds);
46642       switch (PyTuple_GET_SIZE(__pyx_args)) {
46643         case  0:
46644         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flag);
46645         if (likely(values[0])) kw_args--;
46646         else goto __pyx_L5_argtuple_error;
46647       }
46648       if (unlikely(kw_args > 0)) {
46649         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_cancelled") < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46650       }
46651     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
46652       goto __pyx_L5_argtuple_error;
46653     } else {
46654       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46655     }
46656     __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46657   }
46658   goto __pyx_L4_argument_unpacking_done;
46659   __pyx_L5_argtuple_error:;
46660   __Pyx_RaiseArgtupleInvalid("Set_cancelled", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[20]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46661   __pyx_L3_error:;
46662   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
46663   __Pyx_RefNannyFinishContext();
46664   return NULL;
46665   __pyx_L4_argument_unpacking_done:;
46666 
46667   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":124
46668  *            query callback functions for generalized requests
46669  *         """
46670  *         CHKERR( MPI_Status_set_cancelled(&self.ob_mpi, flag) )             # <<<<<<<<<<<<<<
46671  *
46672  *     property cancelled:
46673  */
46674   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Status_set_cancelled((&((struct PyMPIStatusObject *)__pyx_v_self)->ob_mpi), __pyx_v_flag)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46675 
46676   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46677   goto __pyx_L0;
46678   __pyx_L1_error:;
46679   __Pyx_AddTraceback("mpi4py.MPI.Status.Set_cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
46680   __pyx_r = NULL;
46681   __pyx_L0:;
46682   __Pyx_XGIVEREF(__pyx_r);
46683   __Pyx_RefNannyFinishContext();
46684   return __pyx_r;
46685 }
46686 
46687 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":130
46688  *         cancelled state
46689  *         """
46690  *         def __get__(self):             # <<<<<<<<<<<<<<
46691  *             return self.Is_cancelled()
46692  *         def __set__(self, value):
46693  */
46694 
46695 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_9cancelled___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_9cancelled___get__(PyObject * __pyx_v_self)46696 static PyObject *__pyx_pf_6mpi4py_3MPI_6Status_9cancelled___get__(PyObject *__pyx_v_self) {
46697   PyObject *__pyx_r = NULL;
46698   __Pyx_RefNannyDeclarations
46699   PyObject *__pyx_t_1 = NULL;
46700   PyObject *__pyx_t_2 = NULL;
46701   int __pyx_lineno = 0;
46702   const char *__pyx_filename = NULL;
46703   int __pyx_clineno = 0;
46704   __Pyx_RefNannySetupContext("__get__");
46705 
46706   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":131
46707  *         """
46708  *         def __get__(self):
46709  *             return self.Is_cancelled()             # <<<<<<<<<<<<<<
46710  *         def __set__(self, value):
46711  *             self.Set_cancelled(value)
46712  */
46713   __Pyx_XDECREF(__pyx_r);
46714   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Is_cancelled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46715   __Pyx_GOTREF(__pyx_t_1);
46716   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46717   __Pyx_GOTREF(__pyx_t_2);
46718   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46719   __pyx_r = __pyx_t_2;
46720   __pyx_t_2 = 0;
46721   goto __pyx_L0;
46722 
46723   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
46724   goto __pyx_L0;
46725   __pyx_L1_error:;
46726   __Pyx_XDECREF(__pyx_t_1);
46727   __Pyx_XDECREF(__pyx_t_2);
46728   __Pyx_AddTraceback("mpi4py.MPI.Status.cancelled.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46729   __pyx_r = NULL;
46730   __pyx_L0:;
46731   __Pyx_XGIVEREF(__pyx_r);
46732   __Pyx_RefNannyFinishContext();
46733   return __pyx_r;
46734 }
46735 
46736 /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":132
46737  *         def __get__(self):
46738  *             return self.Is_cancelled()
46739  *         def __set__(self, value):             # <<<<<<<<<<<<<<
46740  *             self.Set_cancelled(value)
46741  */
46742 
46743 static int __pyx_pf_6mpi4py_3MPI_6Status_9cancelled_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_6Status_9cancelled_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)46744 static int __pyx_pf_6mpi4py_3MPI_6Status_9cancelled_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
46745   int __pyx_r;
46746   __Pyx_RefNannyDeclarations
46747   PyObject *__pyx_t_1 = NULL;
46748   PyObject *__pyx_t_2 = NULL;
46749   PyObject *__pyx_t_3 = NULL;
46750   int __pyx_lineno = 0;
46751   const char *__pyx_filename = NULL;
46752   int __pyx_clineno = 0;
46753   __Pyx_RefNannySetupContext("__set__");
46754 
46755   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":133
46756  *             return self.Is_cancelled()
46757  *         def __set__(self, value):
46758  *             self.Set_cancelled(value)             # <<<<<<<<<<<<<<
46759  */
46760   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_cancelled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46761   __Pyx_GOTREF(__pyx_t_1);
46762   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46763   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
46764   __Pyx_INCREF(__pyx_v_value);
46765   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
46766   __Pyx_GIVEREF(__pyx_v_value);
46767   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46768   __Pyx_GOTREF(__pyx_t_3);
46769   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46770   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
46771   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
46772 
46773   __pyx_r = 0;
46774   goto __pyx_L0;
46775   __pyx_L1_error:;
46776   __Pyx_XDECREF(__pyx_t_1);
46777   __Pyx_XDECREF(__pyx_t_2);
46778   __Pyx_XDECREF(__pyx_t_3);
46779   __Pyx_AddTraceback("mpi4py.MPI.Status.cancelled.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46780   __pyx_r = -1;
46781   __pyx_L0:;
46782   __Pyx_RefNannyFinishContext();
46783   return __pyx_r;
46784 }
46785 
46786 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":7
46787  *     """
46788  *
46789  *     def __cinit__(self, Request request=None):             # <<<<<<<<<<<<<<
46790  *         self.ob_mpi = MPI_REQUEST_NULL
46791  *         if request is not None:
46792  */
46793 
46794 static int __pyx_pf_6mpi4py_3MPI_7Request___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_7Request___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)46795 static int __pyx_pf_6mpi4py_3MPI_7Request___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46796   struct PyMPIRequestObject *__pyx_v_request = 0;
46797   int __pyx_r;
46798   __Pyx_RefNannyDeclarations
46799   int __pyx_t_1;
46800   int __pyx_lineno = 0;
46801   const char *__pyx_filename = NULL;
46802   int __pyx_clineno = 0;
46803   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__request,0};
46804   __Pyx_RefNannySetupContext("__cinit__");
46805   {
46806     PyObject* values[1] = {0};
46807     values[0] = (PyObject *)((struct PyMPIRequestObject *)Py_None);
46808     if (unlikely(__pyx_kwds)) {
46809       Py_ssize_t kw_args;
46810       switch (PyTuple_GET_SIZE(__pyx_args)) {
46811         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46812         case  0: break;
46813         default: goto __pyx_L5_argtuple_error;
46814       }
46815       kw_args = PyDict_Size(__pyx_kwds);
46816       switch (PyTuple_GET_SIZE(__pyx_args)) {
46817         case  0:
46818         if (kw_args > 0) {
46819           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__request);
46820           if (value) { values[0] = value; kw_args--; }
46821         }
46822       }
46823       if (unlikely(kw_args > 0)) {
46824         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46825       }
46826     } else {
46827       switch (PyTuple_GET_SIZE(__pyx_args)) {
46828         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
46829         case  0: break;
46830         default: goto __pyx_L5_argtuple_error;
46831       }
46832     }
46833     __pyx_v_request = ((struct PyMPIRequestObject *)values[0]);
46834   }
46835   goto __pyx_L4_argument_unpacking_done;
46836   __pyx_L5_argtuple_error:;
46837   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
46838   __pyx_L3_error:;
46839   __Pyx_AddTraceback("mpi4py.MPI.Request.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46840   __Pyx_RefNannyFinishContext();
46841   return -1;
46842   __pyx_L4_argument_unpacking_done:;
46843   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), __pyx_ptype_6mpi4py_3MPI_Request, 1, "request", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46844 
46845   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":8
46846  *
46847  *     def __cinit__(self, Request request=None):
46848  *         self.ob_mpi = MPI_REQUEST_NULL             # <<<<<<<<<<<<<<
46849  *         if request is not None:
46850  *             self.ob_mpi = request.ob_mpi
46851  */
46852   ((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi = MPI_REQUEST_NULL;
46853 
46854   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":9
46855  *     def __cinit__(self, Request request=None):
46856  *         self.ob_mpi = MPI_REQUEST_NULL
46857  *         if request is not None:             # <<<<<<<<<<<<<<
46858  *             self.ob_mpi = request.ob_mpi
46859  *             self.ob_buf = request.ob_buf
46860  */
46861   __pyx_t_1 = (((PyObject *)__pyx_v_request) != Py_None);
46862   if (__pyx_t_1) {
46863 
46864     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":10
46865  *         self.ob_mpi = MPI_REQUEST_NULL
46866  *         if request is not None:
46867  *             self.ob_mpi = request.ob_mpi             # <<<<<<<<<<<<<<
46868  *             self.ob_buf = request.ob_buf
46869  *
46870  */
46871     ((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi = __pyx_v_request->ob_mpi;
46872 
46873     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":11
46874  *         if request is not None:
46875  *             self.ob_mpi = request.ob_mpi
46876  *             self.ob_buf = request.ob_buf             # <<<<<<<<<<<<<<
46877  *
46878  *     def __dealloc__(self):
46879  */
46880     __Pyx_INCREF(__pyx_v_request->ob_buf);
46881     __Pyx_GIVEREF(__pyx_v_request->ob_buf);
46882     __Pyx_GOTREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
46883     __Pyx_DECREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
46884     ((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf = __pyx_v_request->ob_buf;
46885     goto __pyx_L6;
46886   }
46887   __pyx_L6:;
46888 
46889   __pyx_r = 0;
46890   goto __pyx_L0;
46891   __pyx_L1_error:;
46892   __Pyx_AddTraceback("mpi4py.MPI.Request.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46893   __pyx_r = -1;
46894   __pyx_L0:;
46895   __Pyx_RefNannyFinishContext();
46896   return __pyx_r;
46897 }
46898 
46899 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":13
46900  *             self.ob_buf = request.ob_buf
46901  *
46902  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
46903  *         if not (self.flags & PyMPI_OWNED): return
46904  *         CHKERR( del_Request(&self.ob_mpi) )
46905  */
46906 
46907 static void __pyx_pf_6mpi4py_3MPI_7Request_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_7Request_1__dealloc__(PyObject * __pyx_v_self)46908 static void __pyx_pf_6mpi4py_3MPI_7Request_1__dealloc__(PyObject *__pyx_v_self) {
46909   __Pyx_RefNannyDeclarations
46910   int __pyx_t_1;
46911   int __pyx_t_2;
46912   int __pyx_lineno = 0;
46913   const char *__pyx_filename = NULL;
46914   int __pyx_clineno = 0;
46915   __Pyx_RefNannySetupContext("__dealloc__");
46916 
46917   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":14
46918  *
46919  *     def __dealloc__(self):
46920  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
46921  *         CHKERR( del_Request(&self.ob_mpi) )
46922  *
46923  */
46924   __pyx_t_1 = (!(((struct PyMPIRequestObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
46925   if (__pyx_t_1) {
46926     goto __pyx_L0;
46927     goto __pyx_L5;
46928   }
46929   __pyx_L5:;
46930 
46931   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":15
46932  *     def __dealloc__(self):
46933  *         if not (self.flags & PyMPI_OWNED): return
46934  *         CHKERR( del_Request(&self.ob_mpi) )             # <<<<<<<<<<<<<<
46935  *
46936  *     def __richcmp__(self, other, int op):
46937  */
46938   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Request((&((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
46939 
46940   goto __pyx_L0;
46941   __pyx_L1_error:;
46942   __Pyx_AddTraceback("mpi4py.MPI.Request.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
46943   __pyx_L0:;
46944   __Pyx_RefNannyFinishContext();
46945 }
46946 
46947 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":17
46948  *         CHKERR( del_Request(&self.ob_mpi) )
46949  *
46950  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
46951  *         if not isinstance(self,  Request): return NotImplemented
46952  *         if not isinstance(other, Request): return NotImplemented
46953  */
46954 
46955 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_7Request_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)46956 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
46957   struct PyMPIRequestObject *__pyx_v_s = 0;
46958   struct PyMPIRequestObject *__pyx_v_o = 0;
46959   PyObject *__pyx_r = NULL;
46960   __Pyx_RefNannyDeclarations
46961   PyObject *__pyx_t_1 = NULL;
46962   int __pyx_t_2;
46963   int __pyx_t_3;
46964   int __pyx_lineno = 0;
46965   const char *__pyx_filename = NULL;
46966   int __pyx_clineno = 0;
46967   __Pyx_RefNannySetupContext("__richcmp__");
46968 
46969   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":18
46970  *
46971  *     def __richcmp__(self, other, int op):
46972  *         if not isinstance(self,  Request): return NotImplemented             # <<<<<<<<<<<<<<
46973  *         if not isinstance(other, Request): return NotImplemented
46974  *         cdef Request s = <Request>self, o = <Request>other
46975  */
46976   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request));
46977   __Pyx_INCREF(__pyx_t_1);
46978   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
46979   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
46980   __pyx_t_3 = (!__pyx_t_2);
46981   if (__pyx_t_3) {
46982     __Pyx_XDECREF(__pyx_r);
46983     __Pyx_INCREF(__pyx_builtin_NotImplemented);
46984     __pyx_r = __pyx_builtin_NotImplemented;
46985     goto __pyx_L0;
46986     goto __pyx_L5;
46987   }
46988   __pyx_L5:;
46989 
46990   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":19
46991  *     def __richcmp__(self, other, int op):
46992  *         if not isinstance(self,  Request): return NotImplemented
46993  *         if not isinstance(other, Request): return NotImplemented             # <<<<<<<<<<<<<<
46994  *         cdef Request s = <Request>self, o = <Request>other
46995  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
46996  */
46997   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request));
46998   __Pyx_INCREF(__pyx_t_1);
46999   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
47000   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47001   __pyx_t_2 = (!__pyx_t_3);
47002   if (__pyx_t_2) {
47003     __Pyx_XDECREF(__pyx_r);
47004     __Pyx_INCREF(__pyx_builtin_NotImplemented);
47005     __pyx_r = __pyx_builtin_NotImplemented;
47006     goto __pyx_L0;
47007     goto __pyx_L6;
47008   }
47009   __pyx_L6:;
47010 
47011   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":20
47012  *         if not isinstance(self,  Request): return NotImplemented
47013  *         if not isinstance(other, Request): return NotImplemented
47014  *         cdef Request s = <Request>self, o = <Request>other             # <<<<<<<<<<<<<<
47015  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
47016  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
47017  */
47018   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_v_self)));
47019   __pyx_v_s = ((struct PyMPIRequestObject *)__pyx_v_self);
47020   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_v_other)));
47021   __pyx_v_o = ((struct PyMPIRequestObject *)__pyx_v_other);
47022 
47023   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":22
47024  *         cdef Request s = <Request>self, o = <Request>other
47025  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
47026  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
47027  *         else: raise TypeError("only '==' and '!='")
47028  *
47029  */
47030   switch (__pyx_v_op) {
47031 
47032     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":21
47033  *         if not isinstance(other, Request): return NotImplemented
47034  *         cdef Request s = <Request>self, o = <Request>other
47035  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
47036  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
47037  *         else: raise TypeError("only '==' and '!='")
47038  */
47039     case Py_EQ:
47040     __Pyx_XDECREF(__pyx_r);
47041     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47042     __Pyx_GOTREF(__pyx_t_1);
47043     __pyx_r = __pyx_t_1;
47044     __pyx_t_1 = 0;
47045     goto __pyx_L0;
47046     break;
47047 
47048     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":22
47049  *         cdef Request s = <Request>self, o = <Request>other
47050  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
47051  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
47052  *         else: raise TypeError("only '==' and '!='")
47053  *
47054  */
47055     case Py_NE:
47056     __Pyx_XDECREF(__pyx_r);
47057     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47058     __Pyx_GOTREF(__pyx_t_1);
47059     __pyx_r = __pyx_t_1;
47060     __pyx_t_1 = 0;
47061     goto __pyx_L0;
47062     break;
47063     default:
47064 
47065     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":23
47066  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
47067  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
47068  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
47069  *
47070  *     def __bool__(self):
47071  */
47072     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_62), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47073     __Pyx_GOTREF(__pyx_t_1);
47074     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
47075     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47076     {__pyx_filename = __pyx_f[21]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47077     break;
47078   }
47079 
47080   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47081   goto __pyx_L0;
47082   __pyx_L1_error:;
47083   __Pyx_XDECREF(__pyx_t_1);
47084   __Pyx_AddTraceback("mpi4py.MPI.Request.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
47085   __pyx_r = NULL;
47086   __pyx_L0:;
47087   __Pyx_XDECREF((PyObject *)__pyx_v_s);
47088   __Pyx_XDECREF((PyObject *)__pyx_v_o);
47089   __Pyx_XGIVEREF(__pyx_r);
47090   __Pyx_RefNannyFinishContext();
47091   return __pyx_r;
47092 }
47093 
47094 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":25
47095  *         else: raise TypeError("only '==' and '!='")
47096  *
47097  *     def __bool__(self):             # <<<<<<<<<<<<<<
47098  *         return self.ob_mpi != MPI_REQUEST_NULL
47099  *
47100  */
47101 
47102 static int __pyx_pf_6mpi4py_3MPI_7Request_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_7Request_3__bool__(PyObject * __pyx_v_self)47103 static int __pyx_pf_6mpi4py_3MPI_7Request_3__bool__(PyObject *__pyx_v_self) {
47104   int __pyx_r;
47105   __Pyx_RefNannyDeclarations
47106   __Pyx_RefNannySetupContext("__bool__");
47107 
47108   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":26
47109  *
47110  *     def __bool__(self):
47111  *         return self.ob_mpi != MPI_REQUEST_NULL             # <<<<<<<<<<<<<<
47112  *
47113  *     # Completion Operations
47114  */
47115   __pyx_r = (((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi != MPI_REQUEST_NULL);
47116   goto __pyx_L0;
47117 
47118   __pyx_r = 0;
47119   __pyx_L0:;
47120   __Pyx_RefNannyFinishContext();
47121   return __pyx_r;
47122 }
47123 
47124 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":31
47125  *     # ---------------------
47126  *
47127  *     def Wait(self, Status status=None):             # <<<<<<<<<<<<<<
47128  *         """
47129  *         Wait for a send or receive to complete
47130  */
47131 
47132 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_4Wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47133 static char __pyx_doc_6mpi4py_3MPI_7Request_4Wait[] = "Request.Wait(self, Status status=None)\n\n        Wait for a send or receive to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_4Wait(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)47134 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_4Wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47135   struct PyMPIStatusObject *__pyx_v_status = 0;
47136   MPI_Status *__pyx_v_statusp;
47137   PyObject *__pyx_r = NULL;
47138   __Pyx_RefNannyDeclarations
47139   int __pyx_t_1;
47140   int __pyx_t_2;
47141   int __pyx_lineno = 0;
47142   const char *__pyx_filename = NULL;
47143   int __pyx_clineno = 0;
47144   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,0};
47145   __Pyx_RefNannySetupContext("Wait");
47146   {
47147     PyObject* values[1] = {0};
47148     values[0] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
47149     if (unlikely(__pyx_kwds)) {
47150       Py_ssize_t kw_args;
47151       switch (PyTuple_GET_SIZE(__pyx_args)) {
47152         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47153         case  0: break;
47154         default: goto __pyx_L5_argtuple_error;
47155       }
47156       kw_args = PyDict_Size(__pyx_kwds);
47157       switch (PyTuple_GET_SIZE(__pyx_args)) {
47158         case  0:
47159         if (kw_args > 0) {
47160           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
47161           if (value) { values[0] = value; kw_args--; }
47162         }
47163       }
47164       if (unlikely(kw_args > 0)) {
47165         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Wait") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47166       }
47167     } else {
47168       switch (PyTuple_GET_SIZE(__pyx_args)) {
47169         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47170         case  0: break;
47171         default: goto __pyx_L5_argtuple_error;
47172       }
47173     }
47174     __pyx_v_status = ((struct PyMPIStatusObject *)values[0]);
47175   }
47176   goto __pyx_L4_argument_unpacking_done;
47177   __pyx_L5_argtuple_error:;
47178   __Pyx_RaiseArgtupleInvalid("Wait", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47179   __pyx_L3_error:;
47180   __Pyx_AddTraceback("mpi4py.MPI.Request.Wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
47181   __Pyx_RefNannyFinishContext();
47182   return NULL;
47183   __pyx_L4_argument_unpacking_done:;
47184   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47185 
47186   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":35
47187  *         Wait for a send or receive to complete
47188  *         """
47189  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
47190  *         with nogil: CHKERR( MPI_Wait(
47191  *             &self.ob_mpi, statusp) )
47192  */
47193   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
47194 
47195   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":36
47196  *         """
47197  *         cdef MPI_Status *statusp = arg_Status(status)
47198  *         with nogil: CHKERR( MPI_Wait(             # <<<<<<<<<<<<<<
47199  *             &self.ob_mpi, statusp) )
47200  *         if self.ob_mpi == MPI_REQUEST_NULL:
47201  */
47202   {
47203       #ifdef WITH_THREAD
47204       PyThreadState *_save = NULL;
47205       #endif
47206       Py_UNBLOCK_THREADS
47207       /*try:*/ {
47208 
47209         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":37
47210  *         cdef MPI_Status *statusp = arg_Status(status)
47211  *         with nogil: CHKERR( MPI_Wait(
47212  *             &self.ob_mpi, statusp) )             # <<<<<<<<<<<<<<
47213  *         if self.ob_mpi == MPI_REQUEST_NULL:
47214  *             self.ob_buf = None
47215  */
47216         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Wait((&((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi), __pyx_v_statusp)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L7;}
47217       }
47218 
47219       /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":36
47220  *         """
47221  *         cdef MPI_Status *statusp = arg_Status(status)
47222  *         with nogil: CHKERR( MPI_Wait(             # <<<<<<<<<<<<<<
47223  *             &self.ob_mpi, statusp) )
47224  *         if self.ob_mpi == MPI_REQUEST_NULL:
47225  */
47226       /*finally:*/ {
47227         int __pyx_why;
47228         __pyx_why = 0; goto __pyx_L8;
47229         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
47230         __pyx_L8:;
47231         Py_BLOCK_THREADS
47232         switch (__pyx_why) {
47233           case 4: goto __pyx_L1_error;
47234         }
47235       }
47236   }
47237 
47238   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":38
47239  *         with nogil: CHKERR( MPI_Wait(
47240  *             &self.ob_mpi, statusp) )
47241  *         if self.ob_mpi == MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
47242  *             self.ob_buf = None
47243  *
47244  */
47245   __pyx_t_2 = (((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi == MPI_REQUEST_NULL);
47246   if (__pyx_t_2) {
47247 
47248     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":39
47249  *             &self.ob_mpi, statusp) )
47250  *         if self.ob_mpi == MPI_REQUEST_NULL:
47251  *             self.ob_buf = None             # <<<<<<<<<<<<<<
47252  *
47253  *     def Test(self, Status status=None):
47254  */
47255     __Pyx_INCREF(Py_None);
47256     __Pyx_GIVEREF(Py_None);
47257     __Pyx_GOTREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
47258     __Pyx_DECREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
47259     ((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf = Py_None;
47260     goto __pyx_L10;
47261   }
47262   __pyx_L10:;
47263 
47264   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47265   goto __pyx_L0;
47266   __pyx_L1_error:;
47267   __Pyx_AddTraceback("mpi4py.MPI.Request.Wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
47268   __pyx_r = NULL;
47269   __pyx_L0:;
47270   __Pyx_XGIVEREF(__pyx_r);
47271   __Pyx_RefNannyFinishContext();
47272   return __pyx_r;
47273 }
47274 
47275 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":41
47276  *             self.ob_buf = None
47277  *
47278  *     def Test(self, Status status=None):             # <<<<<<<<<<<<<<
47279  *         """
47280  *         Test for the completion of a send or receive
47281  */
47282 
47283 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_5Test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47284 static char __pyx_doc_6mpi4py_3MPI_7Request_5Test[] = "Request.Test(self, Status status=None)\n\n        Test for the completion of a send or receive\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_5Test(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)47285 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_5Test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47286   struct PyMPIStatusObject *__pyx_v_status = 0;
47287   int __pyx_v_flag;
47288   MPI_Status *__pyx_v_statusp;
47289   PyObject *__pyx_r = NULL;
47290   __Pyx_RefNannyDeclarations
47291   int __pyx_t_1;
47292   int __pyx_t_2;
47293   PyObject *__pyx_t_3 = NULL;
47294   int __pyx_lineno = 0;
47295   const char *__pyx_filename = NULL;
47296   int __pyx_clineno = 0;
47297   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,0};
47298   __Pyx_RefNannySetupContext("Test");
47299   {
47300     PyObject* values[1] = {0};
47301     values[0] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
47302     if (unlikely(__pyx_kwds)) {
47303       Py_ssize_t kw_args;
47304       switch (PyTuple_GET_SIZE(__pyx_args)) {
47305         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47306         case  0: break;
47307         default: goto __pyx_L5_argtuple_error;
47308       }
47309       kw_args = PyDict_Size(__pyx_kwds);
47310       switch (PyTuple_GET_SIZE(__pyx_args)) {
47311         case  0:
47312         if (kw_args > 0) {
47313           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
47314           if (value) { values[0] = value; kw_args--; }
47315         }
47316       }
47317       if (unlikely(kw_args > 0)) {
47318         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Test") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47319       }
47320     } else {
47321       switch (PyTuple_GET_SIZE(__pyx_args)) {
47322         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47323         case  0: break;
47324         default: goto __pyx_L5_argtuple_error;
47325       }
47326     }
47327     __pyx_v_status = ((struct PyMPIStatusObject *)values[0]);
47328   }
47329   goto __pyx_L4_argument_unpacking_done;
47330   __pyx_L5_argtuple_error:;
47331   __Pyx_RaiseArgtupleInvalid("Test", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47332   __pyx_L3_error:;
47333   __Pyx_AddTraceback("mpi4py.MPI.Request.Test", __pyx_clineno, __pyx_lineno, __pyx_filename);
47334   __Pyx_RefNannyFinishContext();
47335   return NULL;
47336   __pyx_L4_argument_unpacking_done:;
47337   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47338 
47339   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":45
47340  *         Test for the completion of a send or receive
47341  *         """
47342  *         cdef int flag = 0             # <<<<<<<<<<<<<<
47343  *         cdef MPI_Status *statusp = arg_Status(status)
47344  *         with nogil: CHKERR( MPI_Test(
47345  */
47346   __pyx_v_flag = 0;
47347 
47348   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":46
47349  *         """
47350  *         cdef int flag = 0
47351  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
47352  *         with nogil: CHKERR( MPI_Test(
47353  *             &self.ob_mpi, &flag, statusp) )
47354  */
47355   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
47356 
47357   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":47
47358  *         cdef int flag = 0
47359  *         cdef MPI_Status *statusp = arg_Status(status)
47360  *         with nogil: CHKERR( MPI_Test(             # <<<<<<<<<<<<<<
47361  *             &self.ob_mpi, &flag, statusp) )
47362  *         if self.ob_mpi == MPI_REQUEST_NULL:
47363  */
47364   {
47365       #ifdef WITH_THREAD
47366       PyThreadState *_save = NULL;
47367       #endif
47368       Py_UNBLOCK_THREADS
47369       /*try:*/ {
47370 
47371         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":48
47372  *         cdef MPI_Status *statusp = arg_Status(status)
47373  *         with nogil: CHKERR( MPI_Test(
47374  *             &self.ob_mpi, &flag, statusp) )             # <<<<<<<<<<<<<<
47375  *         if self.ob_mpi == MPI_REQUEST_NULL:
47376  *             self.ob_buf = None
47377  */
47378         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Test((&((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi), (&__pyx_v_flag), __pyx_v_statusp)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L7;}
47379       }
47380 
47381       /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":47
47382  *         cdef int flag = 0
47383  *         cdef MPI_Status *statusp = arg_Status(status)
47384  *         with nogil: CHKERR( MPI_Test(             # <<<<<<<<<<<<<<
47385  *             &self.ob_mpi, &flag, statusp) )
47386  *         if self.ob_mpi == MPI_REQUEST_NULL:
47387  */
47388       /*finally:*/ {
47389         int __pyx_why;
47390         __pyx_why = 0; goto __pyx_L8;
47391         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
47392         __pyx_L8:;
47393         Py_BLOCK_THREADS
47394         switch (__pyx_why) {
47395           case 4: goto __pyx_L1_error;
47396         }
47397       }
47398   }
47399 
47400   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":49
47401  *         with nogil: CHKERR( MPI_Test(
47402  *             &self.ob_mpi, &flag, statusp) )
47403  *         if self.ob_mpi == MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
47404  *             self.ob_buf = None
47405  *         return <bint>flag
47406  */
47407   __pyx_t_2 = (((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi == MPI_REQUEST_NULL);
47408   if (__pyx_t_2) {
47409 
47410     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":50
47411  *             &self.ob_mpi, &flag, statusp) )
47412  *         if self.ob_mpi == MPI_REQUEST_NULL:
47413  *             self.ob_buf = None             # <<<<<<<<<<<<<<
47414  *         return <bint>flag
47415  *
47416  */
47417     __Pyx_INCREF(Py_None);
47418     __Pyx_GIVEREF(Py_None);
47419     __Pyx_GOTREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
47420     __Pyx_DECREF(((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf);
47421     ((struct PyMPIRequestObject *)__pyx_v_self)->ob_buf = Py_None;
47422     goto __pyx_L10;
47423   }
47424   __pyx_L10:;
47425 
47426   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":51
47427  *         if self.ob_mpi == MPI_REQUEST_NULL:
47428  *             self.ob_buf = None
47429  *         return <bint>flag             # <<<<<<<<<<<<<<
47430  *
47431  *     def Free(self):
47432  */
47433   __Pyx_XDECREF(__pyx_r);
47434   __pyx_t_3 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47435   __Pyx_GOTREF(__pyx_t_3);
47436   __pyx_r = __pyx_t_3;
47437   __pyx_t_3 = 0;
47438   goto __pyx_L0;
47439 
47440   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47441   goto __pyx_L0;
47442   __pyx_L1_error:;
47443   __Pyx_XDECREF(__pyx_t_3);
47444   __Pyx_AddTraceback("mpi4py.MPI.Request.Test", __pyx_clineno, __pyx_lineno, __pyx_filename);
47445   __pyx_r = NULL;
47446   __pyx_L0:;
47447   __Pyx_XGIVEREF(__pyx_r);
47448   __Pyx_RefNannyFinishContext();
47449   return __pyx_r;
47450 }
47451 
47452 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":53
47453  *         return <bint>flag
47454  *
47455  *     def Free(self):             # <<<<<<<<<<<<<<
47456  *         """
47457  *         Free a communication request
47458  */
47459 
47460 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_6Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47461 static char __pyx_doc_6mpi4py_3MPI_7Request_6Free[] = "Request.Free(self)\n\n        Free a communication request\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_6Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)47462 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_6Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47463   PyObject *__pyx_r = NULL;
47464   __Pyx_RefNannyDeclarations
47465   int __pyx_t_1;
47466   int __pyx_lineno = 0;
47467   const char *__pyx_filename = NULL;
47468   int __pyx_clineno = 0;
47469   __Pyx_RefNannySetupContext("Free");
47470   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
47471     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
47472   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
47473 
47474   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":57
47475  *         Free a communication request
47476  *         """
47477  *         with nogil: CHKERR( MPI_Request_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
47478  *
47479  *     def Get_status(self, Status status=None):
47480  */
47481   {
47482       #ifdef WITH_THREAD
47483       PyThreadState *_save = NULL;
47484       #endif
47485       Py_UNBLOCK_THREADS
47486       /*try:*/ {
47487         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Request_free((&((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L6;}
47488       }
47489       /*finally:*/ {
47490         int __pyx_why;
47491         __pyx_why = 0; goto __pyx_L7;
47492         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
47493         __pyx_L7:;
47494         Py_BLOCK_THREADS
47495         switch (__pyx_why) {
47496           case 4: goto __pyx_L1_error;
47497         }
47498       }
47499   }
47500 
47501   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47502   goto __pyx_L0;
47503   __pyx_L1_error:;
47504   __Pyx_AddTraceback("mpi4py.MPI.Request.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
47505   __pyx_r = NULL;
47506   __pyx_L0:;
47507   __Pyx_XGIVEREF(__pyx_r);
47508   __Pyx_RefNannyFinishContext();
47509   return __pyx_r;
47510 }
47511 
47512 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":59
47513  *         with nogil: CHKERR( MPI_Request_free(&self.ob_mpi) )
47514  *
47515  *     def Get_status(self, Status status=None):             # <<<<<<<<<<<<<<
47516  *         """
47517  *         Non-destructive test for the completion of a request
47518  */
47519 
47520 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_7Get_status(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47521 static char __pyx_doc_6mpi4py_3MPI_7Request_7Get_status[] = "Request.Get_status(self, Status status=None)\n\n        Non-destructive test for the completion of a request\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_7Get_status(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)47522 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_7Get_status(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47523   struct PyMPIStatusObject *__pyx_v_status = 0;
47524   int __pyx_v_flag;
47525   MPI_Status *__pyx_v_statusp;
47526   PyObject *__pyx_r = NULL;
47527   __Pyx_RefNannyDeclarations
47528   int __pyx_t_1;
47529   PyObject *__pyx_t_2 = NULL;
47530   int __pyx_lineno = 0;
47531   const char *__pyx_filename = NULL;
47532   int __pyx_clineno = 0;
47533   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,0};
47534   __Pyx_RefNannySetupContext("Get_status");
47535   {
47536     PyObject* values[1] = {0};
47537     values[0] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
47538     if (unlikely(__pyx_kwds)) {
47539       Py_ssize_t kw_args;
47540       switch (PyTuple_GET_SIZE(__pyx_args)) {
47541         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47542         case  0: break;
47543         default: goto __pyx_L5_argtuple_error;
47544       }
47545       kw_args = PyDict_Size(__pyx_kwds);
47546       switch (PyTuple_GET_SIZE(__pyx_args)) {
47547         case  0:
47548         if (kw_args > 0) {
47549           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
47550           if (value) { values[0] = value; kw_args--; }
47551         }
47552       }
47553       if (unlikely(kw_args > 0)) {
47554         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_status") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47555       }
47556     } else {
47557       switch (PyTuple_GET_SIZE(__pyx_args)) {
47558         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47559         case  0: break;
47560         default: goto __pyx_L5_argtuple_error;
47561       }
47562     }
47563     __pyx_v_status = ((struct PyMPIStatusObject *)values[0]);
47564   }
47565   goto __pyx_L4_argument_unpacking_done;
47566   __pyx_L5_argtuple_error:;
47567   __Pyx_RaiseArgtupleInvalid("Get_status", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47568   __pyx_L3_error:;
47569   __Pyx_AddTraceback("mpi4py.MPI.Request.Get_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
47570   __Pyx_RefNannyFinishContext();
47571   return NULL;
47572   __pyx_L4_argument_unpacking_done:;
47573   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47574 
47575   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":63
47576  *         Non-destructive test for the completion of a request
47577  *         """
47578  *         cdef int flag = 0             # <<<<<<<<<<<<<<
47579  *         cdef MPI_Status *statusp = arg_Status(status)
47580  *         with nogil: CHKERR( MPI_Request_get_status(
47581  */
47582   __pyx_v_flag = 0;
47583 
47584   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":64
47585  *         """
47586  *         cdef int flag = 0
47587  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
47588  *         with nogil: CHKERR( MPI_Request_get_status(
47589  *             self.ob_mpi, &flag, statusp) )
47590  */
47591   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
47592 
47593   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":65
47594  *         cdef int flag = 0
47595  *         cdef MPI_Status *statusp = arg_Status(status)
47596  *         with nogil: CHKERR( MPI_Request_get_status(             # <<<<<<<<<<<<<<
47597  *             self.ob_mpi, &flag, statusp) )
47598  *         return <bint>flag
47599  */
47600   {
47601       #ifdef WITH_THREAD
47602       PyThreadState *_save = NULL;
47603       #endif
47604       Py_UNBLOCK_THREADS
47605       /*try:*/ {
47606 
47607         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":66
47608  *         cdef MPI_Status *statusp = arg_Status(status)
47609  *         with nogil: CHKERR( MPI_Request_get_status(
47610  *             self.ob_mpi, &flag, statusp) )             # <<<<<<<<<<<<<<
47611  *         return <bint>flag
47612  *
47613  */
47614         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Request_get_status(((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_flag), __pyx_v_statusp)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L7;}
47615       }
47616 
47617       /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":65
47618  *         cdef int flag = 0
47619  *         cdef MPI_Status *statusp = arg_Status(status)
47620  *         with nogil: CHKERR( MPI_Request_get_status(             # <<<<<<<<<<<<<<
47621  *             self.ob_mpi, &flag, statusp) )
47622  *         return <bint>flag
47623  */
47624       /*finally:*/ {
47625         int __pyx_why;
47626         __pyx_why = 0; goto __pyx_L8;
47627         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
47628         __pyx_L8:;
47629         Py_BLOCK_THREADS
47630         switch (__pyx_why) {
47631           case 4: goto __pyx_L1_error;
47632         }
47633       }
47634   }
47635 
47636   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":67
47637  *         with nogil: CHKERR( MPI_Request_get_status(
47638  *             self.ob_mpi, &flag, statusp) )
47639  *         return <bint>flag             # <<<<<<<<<<<<<<
47640  *
47641  *     # Multiple Completions
47642  */
47643   __Pyx_XDECREF(__pyx_r);
47644   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47645   __Pyx_GOTREF(__pyx_t_2);
47646   __pyx_r = __pyx_t_2;
47647   __pyx_t_2 = 0;
47648   goto __pyx_L0;
47649 
47650   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47651   goto __pyx_L0;
47652   __pyx_L1_error:;
47653   __Pyx_XDECREF(__pyx_t_2);
47654   __Pyx_AddTraceback("mpi4py.MPI.Request.Get_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
47655   __pyx_r = NULL;
47656   __pyx_L0:;
47657   __Pyx_XGIVEREF(__pyx_r);
47658   __Pyx_RefNannyFinishContext();
47659   return __pyx_r;
47660 }
47661 
47662 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":73
47663  *
47664  *     @classmethod
47665  *     def Waitany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
47666  *         """
47667  *         Wait for any previously initiated request to complete
47668  */
47669 
47670 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_8Waitany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47671 static char __pyx_doc_6mpi4py_3MPI_7Request_8Waitany[] = "Request.Waitany(type cls, requests, Status status=None)\n\n        Wait for any previously initiated request to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_8Waitany(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)47672 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_8Waitany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47673   PyObject *__pyx_v_requests = 0;
47674   struct PyMPIStatusObject *__pyx_v_status = 0;
47675   int __pyx_v_count;
47676   MPI_Request *__pyx_v_irequests;
47677   int __pyx_v_index;
47678   MPI_Status *__pyx_v_statusp;
47679   PyObject *__pyx_v_tmp = 0;
47680   PyObject *__pyx_r = NULL;
47681   __Pyx_RefNannyDeclarations
47682   PyObject *__pyx_t_1 = NULL;
47683   PyObject *__pyx_t_2 = NULL;
47684   int __pyx_t_3;
47685   int __pyx_lineno = 0;
47686   const char *__pyx_filename = NULL;
47687   int __pyx_clineno = 0;
47688   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__status,0};
47689   __Pyx_RefNannySetupContext("Waitany");
47690   {
47691     PyObject* values[2] = {0,0};
47692     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
47693     if (unlikely(__pyx_kwds)) {
47694       Py_ssize_t kw_args;
47695       switch (PyTuple_GET_SIZE(__pyx_args)) {
47696         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47697         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47698         case  0: break;
47699         default: goto __pyx_L5_argtuple_error;
47700       }
47701       kw_args = PyDict_Size(__pyx_kwds);
47702       switch (PyTuple_GET_SIZE(__pyx_args)) {
47703         case  0:
47704         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
47705         if (likely(values[0])) kw_args--;
47706         else goto __pyx_L5_argtuple_error;
47707         case  1:
47708         if (kw_args > 0) {
47709           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
47710           if (value) { values[1] = value; kw_args--; }
47711         }
47712       }
47713       if (unlikely(kw_args > 0)) {
47714         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Waitany") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47715       }
47716     } else {
47717       switch (PyTuple_GET_SIZE(__pyx_args)) {
47718         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47719         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47720         break;
47721         default: goto __pyx_L5_argtuple_error;
47722       }
47723     }
47724     __pyx_v_requests = values[0];
47725     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
47726   }
47727   goto __pyx_L4_argument_unpacking_done;
47728   __pyx_L5_argtuple_error:;
47729   __Pyx_RaiseArgtupleInvalid("Waitany", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47730   __pyx_L3_error:;
47731   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitany", __pyx_clineno, __pyx_lineno, __pyx_filename);
47732   __Pyx_RefNannyFinishContext();
47733   return NULL;
47734   __pyx_L4_argument_unpacking_done:;
47735   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47736 
47737   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":77
47738  *         Wait for any previously initiated request to complete
47739  *         """
47740  *         cdef int count = 0             # <<<<<<<<<<<<<<
47741  *         cdef MPI_Request *irequests = NULL
47742  *         cdef int index = MPI_UNDEFINED
47743  */
47744   __pyx_v_count = 0;
47745 
47746   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":78
47747  *         """
47748  *         cdef int count = 0
47749  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
47750  *         cdef int index = MPI_UNDEFINED
47751  *         cdef MPI_Status *statusp = arg_Status(status)
47752  */
47753   __pyx_v_irequests = NULL;
47754 
47755   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":79
47756  *         cdef int count = 0
47757  *         cdef MPI_Request *irequests = NULL
47758  *         cdef int index = MPI_UNDEFINED             # <<<<<<<<<<<<<<
47759  *         cdef MPI_Status *statusp = arg_Status(status)
47760  *         #
47761  */
47762   __pyx_v_index = MPI_UNDEFINED;
47763 
47764   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":80
47765  *         cdef MPI_Request *irequests = NULL
47766  *         cdef int index = MPI_UNDEFINED
47767  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
47768  *         #
47769  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
47770  */
47771   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
47772 
47773   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":82
47774  *         cdef MPI_Status *statusp = arg_Status(status)
47775  *         #
47776  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)             # <<<<<<<<<<<<<<
47777  *         try:
47778  *             with nogil: CHKERR( MPI_Waitany(
47779  */
47780   __pyx_t_1 = Py_None;
47781   __Pyx_INCREF(__pyx_t_1);
47782   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47783   __Pyx_GOTREF(__pyx_t_2);
47784   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
47785   __pyx_v_tmp = __pyx_t_2;
47786   __pyx_t_2 = 0;
47787 
47788   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":83
47789  *         #
47790  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
47791  *         try:             # <<<<<<<<<<<<<<
47792  *             with nogil: CHKERR( MPI_Waitany(
47793  *                 count, irequests, &index, statusp) )
47794  */
47795   /*try:*/ {
47796 
47797     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":84
47798  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
47799  *         try:
47800  *             with nogil: CHKERR( MPI_Waitany(             # <<<<<<<<<<<<<<
47801  *                 count, irequests, &index, statusp) )
47802  *         finally:
47803  */
47804     {
47805         #ifdef WITH_THREAD
47806         PyThreadState *_save = NULL;
47807         #endif
47808         Py_UNBLOCK_THREADS
47809         /*try:*/ {
47810 
47811           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":85
47812  *         try:
47813  *             with nogil: CHKERR( MPI_Waitany(
47814  *                 count, irequests, &index, statusp) )             # <<<<<<<<<<<<<<
47815  *         finally:
47816  *             release_rs(requests, None, count, irequests, NULL)
47817  */
47818           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Waitany(__pyx_v_count, __pyx_v_irequests, (&__pyx_v_index), __pyx_v_statusp)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L10;}
47819         }
47820 
47821         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":84
47822  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
47823  *         try:
47824  *             with nogil: CHKERR( MPI_Waitany(             # <<<<<<<<<<<<<<
47825  *                 count, irequests, &index, statusp) )
47826  *         finally:
47827  */
47828         /*finally:*/ {
47829           int __pyx_why;
47830           __pyx_why = 0; goto __pyx_L11;
47831           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
47832           __pyx_L11:;
47833           Py_BLOCK_THREADS
47834           switch (__pyx_why) {
47835             case 4: goto __pyx_L7;
47836           }
47837         }
47838     }
47839   }
47840 
47841   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":87
47842  *                 count, irequests, &index, statusp) )
47843  *         finally:
47844  *             release_rs(requests, None, count, irequests, NULL)             # <<<<<<<<<<<<<<
47845  *         return index
47846  *
47847  */
47848   /*finally:*/ {
47849     int __pyx_why;
47850     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
47851     int __pyx_exc_lineno;
47852     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
47853     __pyx_why = 0; goto __pyx_L8;
47854     __pyx_L7: {
47855       __pyx_why = 4;
47856       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
47857       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
47858       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
47859       __pyx_exc_lineno = __pyx_lineno;
47860       goto __pyx_L8;
47861     }
47862     __pyx_L8:;
47863     __pyx_t_2 = Py_None;
47864     __Pyx_INCREF(__pyx_t_2);
47865     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_t_2, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
47866     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
47867     goto __pyx_L14;
47868     __pyx_L13_error:;
47869     if (__pyx_why == 4) {
47870       Py_XDECREF(__pyx_exc_type);
47871       Py_XDECREF(__pyx_exc_value);
47872       Py_XDECREF(__pyx_exc_tb);
47873     }
47874     goto __pyx_L1_error;
47875     __pyx_L14:;
47876     switch (__pyx_why) {
47877       case 4: {
47878         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
47879         __pyx_lineno = __pyx_exc_lineno;
47880         __pyx_exc_type = 0;
47881         __pyx_exc_value = 0;
47882         __pyx_exc_tb = 0;
47883         goto __pyx_L1_error;
47884       }
47885     }
47886   }
47887 
47888   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":88
47889  *         finally:
47890  *             release_rs(requests, None, count, irequests, NULL)
47891  *         return index             # <<<<<<<<<<<<<<
47892  *
47893  *     @classmethod
47894  */
47895   __Pyx_XDECREF(__pyx_r);
47896   __pyx_t_2 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47897   __Pyx_GOTREF(__pyx_t_2);
47898   __pyx_r = __pyx_t_2;
47899   __pyx_t_2 = 0;
47900   goto __pyx_L0;
47901 
47902   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
47903   goto __pyx_L0;
47904   __pyx_L1_error:;
47905   __Pyx_XDECREF(__pyx_t_1);
47906   __Pyx_XDECREF(__pyx_t_2);
47907   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitany", __pyx_clineno, __pyx_lineno, __pyx_filename);
47908   __pyx_r = NULL;
47909   __pyx_L0:;
47910   __Pyx_XDECREF(__pyx_v_tmp);
47911   __Pyx_XGIVEREF(__pyx_r);
47912   __Pyx_RefNannyFinishContext();
47913   return __pyx_r;
47914 }
47915 
47916 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":91
47917  *
47918  *     @classmethod
47919  *     def Testany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
47920  *         """
47921  *         Test for completion of any previously initiated request
47922  */
47923 
47924 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_9Testany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47925 static char __pyx_doc_6mpi4py_3MPI_7Request_9Testany[] = "Request.Testany(type cls, requests, Status status=None)\n\n        Test for completion of any previously initiated request\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_9Testany(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)47926 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_9Testany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47927   PyObject *__pyx_v_requests = 0;
47928   struct PyMPIStatusObject *__pyx_v_status = 0;
47929   int __pyx_v_count;
47930   MPI_Request *__pyx_v_irequests;
47931   int __pyx_v_index;
47932   int __pyx_v_flag;
47933   MPI_Status *__pyx_v_statusp;
47934   PyObject *__pyx_v_tmp = 0;
47935   PyObject *__pyx_r = NULL;
47936   __Pyx_RefNannyDeclarations
47937   PyObject *__pyx_t_1 = NULL;
47938   PyObject *__pyx_t_2 = NULL;
47939   int __pyx_t_3;
47940   PyObject *__pyx_t_4 = NULL;
47941   int __pyx_lineno = 0;
47942   const char *__pyx_filename = NULL;
47943   int __pyx_clineno = 0;
47944   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__status,0};
47945   __Pyx_RefNannySetupContext("Testany");
47946   {
47947     PyObject* values[2] = {0,0};
47948     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
47949     if (unlikely(__pyx_kwds)) {
47950       Py_ssize_t kw_args;
47951       switch (PyTuple_GET_SIZE(__pyx_args)) {
47952         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47953         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47954         case  0: break;
47955         default: goto __pyx_L5_argtuple_error;
47956       }
47957       kw_args = PyDict_Size(__pyx_kwds);
47958       switch (PyTuple_GET_SIZE(__pyx_args)) {
47959         case  0:
47960         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
47961         if (likely(values[0])) kw_args--;
47962         else goto __pyx_L5_argtuple_error;
47963         case  1:
47964         if (kw_args > 0) {
47965           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
47966           if (value) { values[1] = value; kw_args--; }
47967         }
47968       }
47969       if (unlikely(kw_args > 0)) {
47970         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Testany") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47971       }
47972     } else {
47973       switch (PyTuple_GET_SIZE(__pyx_args)) {
47974         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
47975         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
47976         break;
47977         default: goto __pyx_L5_argtuple_error;
47978       }
47979     }
47980     __pyx_v_requests = values[0];
47981     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
47982   }
47983   goto __pyx_L4_argument_unpacking_done;
47984   __pyx_L5_argtuple_error:;
47985   __Pyx_RaiseArgtupleInvalid("Testany", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
47986   __pyx_L3_error:;
47987   __Pyx_AddTraceback("mpi4py.MPI.Request.Testany", __pyx_clineno, __pyx_lineno, __pyx_filename);
47988   __Pyx_RefNannyFinishContext();
47989   return NULL;
47990   __pyx_L4_argument_unpacking_done:;
47991   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
47992 
47993   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":95
47994  *         Test for completion of any previously initiated request
47995  *         """
47996  *         cdef int count = 0             # <<<<<<<<<<<<<<
47997  *         cdef MPI_Request *irequests = NULL
47998  *         cdef int index = MPI_UNDEFINED
47999  */
48000   __pyx_v_count = 0;
48001 
48002   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":96
48003  *         """
48004  *         cdef int count = 0
48005  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
48006  *         cdef int index = MPI_UNDEFINED
48007  *         cdef int flag = 0
48008  */
48009   __pyx_v_irequests = NULL;
48010 
48011   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":97
48012  *         cdef int count = 0
48013  *         cdef MPI_Request *irequests = NULL
48014  *         cdef int index = MPI_UNDEFINED             # <<<<<<<<<<<<<<
48015  *         cdef int flag = 0
48016  *         cdef MPI_Status *statusp = arg_Status(status)
48017  */
48018   __pyx_v_index = MPI_UNDEFINED;
48019 
48020   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":98
48021  *         cdef MPI_Request *irequests = NULL
48022  *         cdef int index = MPI_UNDEFINED
48023  *         cdef int flag = 0             # <<<<<<<<<<<<<<
48024  *         cdef MPI_Status *statusp = arg_Status(status)
48025  *         #
48026  */
48027   __pyx_v_flag = 0;
48028 
48029   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":99
48030  *         cdef int index = MPI_UNDEFINED
48031  *         cdef int flag = 0
48032  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
48033  *         #
48034  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
48035  */
48036   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
48037 
48038   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":101
48039  *         cdef MPI_Status *statusp = arg_Status(status)
48040  *         #
48041  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)             # <<<<<<<<<<<<<<
48042  *         try:
48043  *             with nogil: CHKERR( MPI_Testany(
48044  */
48045   __pyx_t_1 = Py_None;
48046   __Pyx_INCREF(__pyx_t_1);
48047   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48048   __Pyx_GOTREF(__pyx_t_2);
48049   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
48050   __pyx_v_tmp = __pyx_t_2;
48051   __pyx_t_2 = 0;
48052 
48053   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":102
48054  *         #
48055  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
48056  *         try:             # <<<<<<<<<<<<<<
48057  *             with nogil: CHKERR( MPI_Testany(
48058  *                 count, irequests, &index, &flag, statusp) )
48059  */
48060   /*try:*/ {
48061 
48062     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":103
48063  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
48064  *         try:
48065  *             with nogil: CHKERR( MPI_Testany(             # <<<<<<<<<<<<<<
48066  *                 count, irequests, &index, &flag, statusp) )
48067  *         finally:
48068  */
48069     {
48070         #ifdef WITH_THREAD
48071         PyThreadState *_save = NULL;
48072         #endif
48073         Py_UNBLOCK_THREADS
48074         /*try:*/ {
48075 
48076           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":104
48077  *         try:
48078  *             with nogil: CHKERR( MPI_Testany(
48079  *                 count, irequests, &index, &flag, statusp) )             # <<<<<<<<<<<<<<
48080  *         finally:
48081  *             release_rs(requests, None, count, irequests, NULL)
48082  */
48083           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Testany(__pyx_v_count, __pyx_v_irequests, (&__pyx_v_index), (&__pyx_v_flag), __pyx_v_statusp)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L10;}
48084         }
48085 
48086         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":103
48087  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
48088  *         try:
48089  *             with nogil: CHKERR( MPI_Testany(             # <<<<<<<<<<<<<<
48090  *                 count, irequests, &index, &flag, statusp) )
48091  *         finally:
48092  */
48093         /*finally:*/ {
48094           int __pyx_why;
48095           __pyx_why = 0; goto __pyx_L11;
48096           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
48097           __pyx_L11:;
48098           Py_BLOCK_THREADS
48099           switch (__pyx_why) {
48100             case 4: goto __pyx_L7;
48101           }
48102         }
48103     }
48104   }
48105 
48106   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":106
48107  *                 count, irequests, &index, &flag, statusp) )
48108  *         finally:
48109  *             release_rs(requests, None, count, irequests, NULL)             # <<<<<<<<<<<<<<
48110  *         #
48111  *         return (index, <bint>flag)
48112  */
48113   /*finally:*/ {
48114     int __pyx_why;
48115     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
48116     int __pyx_exc_lineno;
48117     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
48118     __pyx_why = 0; goto __pyx_L8;
48119     __pyx_L7: {
48120       __pyx_why = 4;
48121       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
48122       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
48123       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
48124       __pyx_exc_lineno = __pyx_lineno;
48125       goto __pyx_L8;
48126     }
48127     __pyx_L8:;
48128     __pyx_t_2 = Py_None;
48129     __Pyx_INCREF(__pyx_t_2);
48130     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_t_2, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
48131     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
48132     goto __pyx_L14;
48133     __pyx_L13_error:;
48134     if (__pyx_why == 4) {
48135       Py_XDECREF(__pyx_exc_type);
48136       Py_XDECREF(__pyx_exc_value);
48137       Py_XDECREF(__pyx_exc_tb);
48138     }
48139     goto __pyx_L1_error;
48140     __pyx_L14:;
48141     switch (__pyx_why) {
48142       case 4: {
48143         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
48144         __pyx_lineno = __pyx_exc_lineno;
48145         __pyx_exc_type = 0;
48146         __pyx_exc_value = 0;
48147         __pyx_exc_tb = 0;
48148         goto __pyx_L1_error;
48149       }
48150     }
48151   }
48152 
48153   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":108
48154  *             release_rs(requests, None, count, irequests, NULL)
48155  *         #
48156  *         return (index, <bint>flag)             # <<<<<<<<<<<<<<
48157  *
48158  *     @classmethod
48159  */
48160   __Pyx_XDECREF(__pyx_r);
48161   __pyx_t_2 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48162   __Pyx_GOTREF(__pyx_t_2);
48163   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48164   __Pyx_GOTREF(__pyx_t_1);
48165   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48166   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
48167   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
48168   __Pyx_GIVEREF(__pyx_t_2);
48169   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
48170   __Pyx_GIVEREF(__pyx_t_1);
48171   __pyx_t_2 = 0;
48172   __pyx_t_1 = 0;
48173   __pyx_r = ((PyObject *)__pyx_t_4);
48174   __pyx_t_4 = 0;
48175   goto __pyx_L0;
48176 
48177   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48178   goto __pyx_L0;
48179   __pyx_L1_error:;
48180   __Pyx_XDECREF(__pyx_t_1);
48181   __Pyx_XDECREF(__pyx_t_2);
48182   __Pyx_XDECREF(__pyx_t_4);
48183   __Pyx_AddTraceback("mpi4py.MPI.Request.Testany", __pyx_clineno, __pyx_lineno, __pyx_filename);
48184   __pyx_r = NULL;
48185   __pyx_L0:;
48186   __Pyx_XDECREF(__pyx_v_tmp);
48187   __Pyx_XGIVEREF(__pyx_r);
48188   __Pyx_RefNannyFinishContext();
48189   return __pyx_r;
48190 }
48191 
48192 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":111
48193  *
48194  *     @classmethod
48195  *     def Waitall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
48196  *         """
48197  *         Wait for all previously initiated requests to complete
48198  */
48199 
48200 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_10Waitall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48201 static char __pyx_doc_6mpi4py_3MPI_7Request_10Waitall[] = "Request.Waitall(type cls, requests, statuses=None)\n\n        Wait for all previously initiated requests to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_10Waitall(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)48202 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_10Waitall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48203   PyObject *__pyx_v_requests = 0;
48204   PyObject *__pyx_v_statuses = 0;
48205   int __pyx_v_count;
48206   MPI_Request *__pyx_v_irequests;
48207   MPI_Status *__pyx_v_istatuses;
48208   PyObject *__pyx_v_tmp = 0;
48209   PyObject *__pyx_r = NULL;
48210   __Pyx_RefNannyDeclarations
48211   PyObject *__pyx_t_1 = NULL;
48212   int __pyx_t_2;
48213   int __pyx_lineno = 0;
48214   const char *__pyx_filename = NULL;
48215   int __pyx_clineno = 0;
48216   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
48217   __Pyx_RefNannySetupContext("Waitall");
48218   {
48219     PyObject* values[2] = {0,0};
48220     values[1] = ((PyObject *)Py_None);
48221     if (unlikely(__pyx_kwds)) {
48222       Py_ssize_t kw_args;
48223       switch (PyTuple_GET_SIZE(__pyx_args)) {
48224         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48225         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48226         case  0: break;
48227         default: goto __pyx_L5_argtuple_error;
48228       }
48229       kw_args = PyDict_Size(__pyx_kwds);
48230       switch (PyTuple_GET_SIZE(__pyx_args)) {
48231         case  0:
48232         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
48233         if (likely(values[0])) kw_args--;
48234         else goto __pyx_L5_argtuple_error;
48235         case  1:
48236         if (kw_args > 0) {
48237           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
48238           if (value) { values[1] = value; kw_args--; }
48239         }
48240       }
48241       if (unlikely(kw_args > 0)) {
48242         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Waitall") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48243       }
48244     } else {
48245       switch (PyTuple_GET_SIZE(__pyx_args)) {
48246         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48247         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48248         break;
48249         default: goto __pyx_L5_argtuple_error;
48250       }
48251     }
48252     __pyx_v_requests = values[0];
48253     __pyx_v_statuses = values[1];
48254   }
48255   goto __pyx_L4_argument_unpacking_done;
48256   __pyx_L5_argtuple_error:;
48257   __Pyx_RaiseArgtupleInvalid("Waitall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48258   __pyx_L3_error:;
48259   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48260   __Pyx_RefNannyFinishContext();
48261   return NULL;
48262   __pyx_L4_argument_unpacking_done:;
48263 
48264   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":115
48265  *         Wait for all previously initiated requests to complete
48266  *         """
48267  *         cdef int count = 0             # <<<<<<<<<<<<<<
48268  *         cdef MPI_Request *irequests = NULL
48269  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48270  */
48271   __pyx_v_count = 0;
48272 
48273   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":116
48274  *         """
48275  *         cdef int count = 0
48276  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
48277  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48278  *         #
48279  */
48280   __pyx_v_irequests = NULL;
48281 
48282   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":117
48283  *         cdef int count = 0
48284  *         cdef MPI_Request *irequests = NULL
48285  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
48286  *         #
48287  *         cdef tmp = acquire_rs(requests, statuses,
48288  */
48289   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
48290 
48291   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":120
48292  *         #
48293  *         cdef tmp = acquire_rs(requests, statuses,
48294  *                               &count, &irequests, &istatuses)             # <<<<<<<<<<<<<<
48295  *         try:
48296  *             with nogil: CHKERR( MPI_Waitall(
48297  */
48298   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_v_statuses, (&__pyx_v_count), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48299   __Pyx_GOTREF(__pyx_t_1);
48300   __pyx_v_tmp = __pyx_t_1;
48301   __pyx_t_1 = 0;
48302 
48303   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":121
48304  *         cdef tmp = acquire_rs(requests, statuses,
48305  *                               &count, &irequests, &istatuses)
48306  *         try:             # <<<<<<<<<<<<<<
48307  *             with nogil: CHKERR( MPI_Waitall(
48308  *                 count, irequests, istatuses) )
48309  */
48310   /*try:*/ {
48311 
48312     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":122
48313  *                               &count, &irequests, &istatuses)
48314  *         try:
48315  *             with nogil: CHKERR( MPI_Waitall(             # <<<<<<<<<<<<<<
48316  *                 count, irequests, istatuses) )
48317  *         finally:
48318  */
48319     {
48320         #ifdef WITH_THREAD
48321         PyThreadState *_save = NULL;
48322         #endif
48323         Py_UNBLOCK_THREADS
48324         /*try:*/ {
48325 
48326           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":123
48327  *         try:
48328  *             with nogil: CHKERR( MPI_Waitall(
48329  *                 count, irequests, istatuses) )             # <<<<<<<<<<<<<<
48330  *         finally:
48331  *             release_rs(requests, statuses, count, irequests, istatuses)
48332  */
48333           __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Waitall(__pyx_v_count, __pyx_v_irequests, __pyx_v_istatuses)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L10;}
48334         }
48335 
48336         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":122
48337  *                               &count, &irequests, &istatuses)
48338  *         try:
48339  *             with nogil: CHKERR( MPI_Waitall(             # <<<<<<<<<<<<<<
48340  *                 count, irequests, istatuses) )
48341  *         finally:
48342  */
48343         /*finally:*/ {
48344           int __pyx_why;
48345           __pyx_why = 0; goto __pyx_L11;
48346           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
48347           __pyx_L11:;
48348           Py_BLOCK_THREADS
48349           switch (__pyx_why) {
48350             case 4: goto __pyx_L7;
48351           }
48352         }
48353     }
48354   }
48355 
48356   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":125
48357  *                 count, irequests, istatuses) )
48358  *         finally:
48359  *             release_rs(requests, statuses, count, irequests, istatuses)             # <<<<<<<<<<<<<<
48360  *         return None
48361  *
48362  */
48363   /*finally:*/ {
48364     int __pyx_why;
48365     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
48366     int __pyx_exc_lineno;
48367     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
48368     __pyx_why = 0; goto __pyx_L8;
48369     __pyx_L7: {
48370       __pyx_why = 4;
48371       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
48372       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
48373       __pyx_exc_lineno = __pyx_lineno;
48374       goto __pyx_L8;
48375     }
48376     __pyx_L8:;
48377     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_count, __pyx_v_irequests, __pyx_v_istatuses); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
48378     goto __pyx_L14;
48379     __pyx_L13_error:;
48380     if (__pyx_why == 4) {
48381       Py_XDECREF(__pyx_exc_type);
48382       Py_XDECREF(__pyx_exc_value);
48383       Py_XDECREF(__pyx_exc_tb);
48384     }
48385     goto __pyx_L1_error;
48386     __pyx_L14:;
48387     switch (__pyx_why) {
48388       case 4: {
48389         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
48390         __pyx_lineno = __pyx_exc_lineno;
48391         __pyx_exc_type = 0;
48392         __pyx_exc_value = 0;
48393         __pyx_exc_tb = 0;
48394         goto __pyx_L1_error;
48395       }
48396     }
48397   }
48398 
48399   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":126
48400  *         finally:
48401  *             release_rs(requests, statuses, count, irequests, istatuses)
48402  *         return None             # <<<<<<<<<<<<<<
48403  *
48404  *     @classmethod
48405  */
48406   __Pyx_XDECREF(__pyx_r);
48407   __Pyx_INCREF(Py_None);
48408   __pyx_r = Py_None;
48409   goto __pyx_L0;
48410 
48411   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48412   goto __pyx_L0;
48413   __pyx_L1_error:;
48414   __Pyx_XDECREF(__pyx_t_1);
48415   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48416   __pyx_r = NULL;
48417   __pyx_L0:;
48418   __Pyx_XDECREF(__pyx_v_tmp);
48419   __Pyx_XGIVEREF(__pyx_r);
48420   __Pyx_RefNannyFinishContext();
48421   return __pyx_r;
48422 }
48423 
48424 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":129
48425  *
48426  *     @classmethod
48427  *     def Testall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
48428  *         """
48429  *         Test for completion of all previously initiated requests
48430  */
48431 
48432 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_11Testall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48433 static char __pyx_doc_6mpi4py_3MPI_7Request_11Testall[] = "Request.Testall(type cls, requests, statuses=None)\n\n        Test for completion of all previously initiated requests\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_11Testall(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)48434 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_11Testall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48435   PyObject *__pyx_v_requests = 0;
48436   PyObject *__pyx_v_statuses = 0;
48437   int __pyx_v_count;
48438   MPI_Request *__pyx_v_irequests;
48439   int __pyx_v_flag;
48440   MPI_Status *__pyx_v_istatuses;
48441   PyObject *__pyx_v_tmp = 0;
48442   PyObject *__pyx_r = NULL;
48443   __Pyx_RefNannyDeclarations
48444   PyObject *__pyx_t_1 = NULL;
48445   int __pyx_t_2;
48446   int __pyx_lineno = 0;
48447   const char *__pyx_filename = NULL;
48448   int __pyx_clineno = 0;
48449   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
48450   __Pyx_RefNannySetupContext("Testall");
48451   {
48452     PyObject* values[2] = {0,0};
48453     values[1] = ((PyObject *)Py_None);
48454     if (unlikely(__pyx_kwds)) {
48455       Py_ssize_t kw_args;
48456       switch (PyTuple_GET_SIZE(__pyx_args)) {
48457         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48458         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48459         case  0: break;
48460         default: goto __pyx_L5_argtuple_error;
48461       }
48462       kw_args = PyDict_Size(__pyx_kwds);
48463       switch (PyTuple_GET_SIZE(__pyx_args)) {
48464         case  0:
48465         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
48466         if (likely(values[0])) kw_args--;
48467         else goto __pyx_L5_argtuple_error;
48468         case  1:
48469         if (kw_args > 0) {
48470           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
48471           if (value) { values[1] = value; kw_args--; }
48472         }
48473       }
48474       if (unlikely(kw_args > 0)) {
48475         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Testall") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48476       }
48477     } else {
48478       switch (PyTuple_GET_SIZE(__pyx_args)) {
48479         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48480         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48481         break;
48482         default: goto __pyx_L5_argtuple_error;
48483       }
48484     }
48485     __pyx_v_requests = values[0];
48486     __pyx_v_statuses = values[1];
48487   }
48488   goto __pyx_L4_argument_unpacking_done;
48489   __pyx_L5_argtuple_error:;
48490   __Pyx_RaiseArgtupleInvalid("Testall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48491   __pyx_L3_error:;
48492   __Pyx_AddTraceback("mpi4py.MPI.Request.Testall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48493   __Pyx_RefNannyFinishContext();
48494   return NULL;
48495   __pyx_L4_argument_unpacking_done:;
48496 
48497   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":133
48498  *         Test for completion of all previously initiated requests
48499  *         """
48500  *         cdef int count = 0             # <<<<<<<<<<<<<<
48501  *         cdef MPI_Request *irequests = NULL
48502  *         cdef int flag = 0
48503  */
48504   __pyx_v_count = 0;
48505 
48506   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":134
48507  *         """
48508  *         cdef int count = 0
48509  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
48510  *         cdef int flag = 0
48511  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48512  */
48513   __pyx_v_irequests = NULL;
48514 
48515   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":135
48516  *         cdef int count = 0
48517  *         cdef MPI_Request *irequests = NULL
48518  *         cdef int flag = 0             # <<<<<<<<<<<<<<
48519  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48520  *         #
48521  */
48522   __pyx_v_flag = 0;
48523 
48524   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":136
48525  *         cdef MPI_Request *irequests = NULL
48526  *         cdef int flag = 0
48527  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
48528  *         #
48529  *         cdef tmp = acquire_rs(requests, statuses,
48530  */
48531   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
48532 
48533   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":139
48534  *         #
48535  *         cdef tmp = acquire_rs(requests, statuses,
48536  *                               &count, &irequests, &istatuses)             # <<<<<<<<<<<<<<
48537  *         try:
48538  *             with nogil: CHKERR( MPI_Testall(
48539  */
48540   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_v_statuses, (&__pyx_v_count), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48541   __Pyx_GOTREF(__pyx_t_1);
48542   __pyx_v_tmp = __pyx_t_1;
48543   __pyx_t_1 = 0;
48544 
48545   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":140
48546  *         cdef tmp = acquire_rs(requests, statuses,
48547  *                               &count, &irequests, &istatuses)
48548  *         try:             # <<<<<<<<<<<<<<
48549  *             with nogil: CHKERR( MPI_Testall(
48550  *                 count, irequests, &flag, istatuses) )
48551  */
48552   /*try:*/ {
48553 
48554     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":141
48555  *                               &count, &irequests, &istatuses)
48556  *         try:
48557  *             with nogil: CHKERR( MPI_Testall(             # <<<<<<<<<<<<<<
48558  *                 count, irequests, &flag, istatuses) )
48559  *         finally:
48560  */
48561     {
48562         #ifdef WITH_THREAD
48563         PyThreadState *_save = NULL;
48564         #endif
48565         Py_UNBLOCK_THREADS
48566         /*try:*/ {
48567 
48568           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":142
48569  *         try:
48570  *             with nogil: CHKERR( MPI_Testall(
48571  *                 count, irequests, &flag, istatuses) )             # <<<<<<<<<<<<<<
48572  *         finally:
48573  *             release_rs(requests, statuses, count, irequests, istatuses)
48574  */
48575           __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Testall(__pyx_v_count, __pyx_v_irequests, (&__pyx_v_flag), __pyx_v_istatuses)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L10;}
48576         }
48577 
48578         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":141
48579  *                               &count, &irequests, &istatuses)
48580  *         try:
48581  *             with nogil: CHKERR( MPI_Testall(             # <<<<<<<<<<<<<<
48582  *                 count, irequests, &flag, istatuses) )
48583  *         finally:
48584  */
48585         /*finally:*/ {
48586           int __pyx_why;
48587           __pyx_why = 0; goto __pyx_L11;
48588           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
48589           __pyx_L11:;
48590           Py_BLOCK_THREADS
48591           switch (__pyx_why) {
48592             case 4: goto __pyx_L7;
48593           }
48594         }
48595     }
48596   }
48597 
48598   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":144
48599  *                 count, irequests, &flag, istatuses) )
48600  *         finally:
48601  *             release_rs(requests, statuses, count, irequests, istatuses)             # <<<<<<<<<<<<<<
48602  *         return <bint>flag
48603  *
48604  */
48605   /*finally:*/ {
48606     int __pyx_why;
48607     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
48608     int __pyx_exc_lineno;
48609     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
48610     __pyx_why = 0; goto __pyx_L8;
48611     __pyx_L7: {
48612       __pyx_why = 4;
48613       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
48614       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
48615       __pyx_exc_lineno = __pyx_lineno;
48616       goto __pyx_L8;
48617     }
48618     __pyx_L8:;
48619     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_count, __pyx_v_irequests, __pyx_v_istatuses); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
48620     goto __pyx_L14;
48621     __pyx_L13_error:;
48622     if (__pyx_why == 4) {
48623       Py_XDECREF(__pyx_exc_type);
48624       Py_XDECREF(__pyx_exc_value);
48625       Py_XDECREF(__pyx_exc_tb);
48626     }
48627     goto __pyx_L1_error;
48628     __pyx_L14:;
48629     switch (__pyx_why) {
48630       case 4: {
48631         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
48632         __pyx_lineno = __pyx_exc_lineno;
48633         __pyx_exc_type = 0;
48634         __pyx_exc_value = 0;
48635         __pyx_exc_tb = 0;
48636         goto __pyx_L1_error;
48637       }
48638     }
48639   }
48640 
48641   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":145
48642  *         finally:
48643  *             release_rs(requests, statuses, count, irequests, istatuses)
48644  *         return <bint>flag             # <<<<<<<<<<<<<<
48645  *
48646  *     @classmethod
48647  */
48648   __Pyx_XDECREF(__pyx_r);
48649   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48650   __Pyx_GOTREF(__pyx_t_1);
48651   __pyx_r = __pyx_t_1;
48652   __pyx_t_1 = 0;
48653   goto __pyx_L0;
48654 
48655   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48656   goto __pyx_L0;
48657   __pyx_L1_error:;
48658   __Pyx_XDECREF(__pyx_t_1);
48659   __Pyx_AddTraceback("mpi4py.MPI.Request.Testall", __pyx_clineno, __pyx_lineno, __pyx_filename);
48660   __pyx_r = NULL;
48661   __pyx_L0:;
48662   __Pyx_XDECREF(__pyx_v_tmp);
48663   __Pyx_XGIVEREF(__pyx_r);
48664   __Pyx_RefNannyFinishContext();
48665   return __pyx_r;
48666 }
48667 
48668 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":148
48669  *
48670  *     @classmethod
48671  *     def Waitsome(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
48672  *         """
48673  *         Wait for some previously initiated requests to complete
48674  */
48675 
48676 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_12Waitsome(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48677 static char __pyx_doc_6mpi4py_3MPI_7Request_12Waitsome[] = "Request.Waitsome(type cls, requests, statuses=None)\n\n        Wait for some previously initiated requests to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_12Waitsome(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)48678 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_12Waitsome(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48679   PyObject *__pyx_v_requests = 0;
48680   PyObject *__pyx_v_statuses = 0;
48681   int __pyx_v_incount;
48682   MPI_Request *__pyx_v_irequests;
48683   int __pyx_v_outcount;
48684   int *__pyx_v_iindices;
48685   MPI_Status *__pyx_v_istatuses;
48686   PyObject *__pyx_v_tmp = 0;
48687   PyObject *__pyx_v_indices = 0;
48688   PyObject *__pyx_r = NULL;
48689   __Pyx_RefNannyDeclarations
48690   PyObject *__pyx_t_1 = NULL;
48691   int __pyx_t_2;
48692   int __pyx_t_3;
48693   PyObject *__pyx_t_4 = NULL;
48694   int __pyx_lineno = 0;
48695   const char *__pyx_filename = NULL;
48696   int __pyx_clineno = 0;
48697   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
48698   __Pyx_RefNannySetupContext("Waitsome");
48699   {
48700     PyObject* values[2] = {0,0};
48701     values[1] = ((PyObject *)Py_None);
48702     if (unlikely(__pyx_kwds)) {
48703       Py_ssize_t kw_args;
48704       switch (PyTuple_GET_SIZE(__pyx_args)) {
48705         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48706         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48707         case  0: break;
48708         default: goto __pyx_L5_argtuple_error;
48709       }
48710       kw_args = PyDict_Size(__pyx_kwds);
48711       switch (PyTuple_GET_SIZE(__pyx_args)) {
48712         case  0:
48713         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
48714         if (likely(values[0])) kw_args--;
48715         else goto __pyx_L5_argtuple_error;
48716         case  1:
48717         if (kw_args > 0) {
48718           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
48719           if (value) { values[1] = value; kw_args--; }
48720         }
48721       }
48722       if (unlikely(kw_args > 0)) {
48723         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Waitsome") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48724       }
48725     } else {
48726       switch (PyTuple_GET_SIZE(__pyx_args)) {
48727         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
48728         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
48729         break;
48730         default: goto __pyx_L5_argtuple_error;
48731       }
48732     }
48733     __pyx_v_requests = values[0];
48734     __pyx_v_statuses = values[1];
48735   }
48736   goto __pyx_L4_argument_unpacking_done;
48737   __pyx_L5_argtuple_error:;
48738   __Pyx_RaiseArgtupleInvalid("Waitsome", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
48739   __pyx_L3_error:;
48740   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitsome", __pyx_clineno, __pyx_lineno, __pyx_filename);
48741   __Pyx_RefNannyFinishContext();
48742   return NULL;
48743   __pyx_L4_argument_unpacking_done:;
48744 
48745   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":152
48746  *         Wait for some previously initiated requests to complete
48747  *         """
48748  *         cdef int incount = 0             # <<<<<<<<<<<<<<
48749  *         cdef MPI_Request *irequests = NULL
48750  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
48751  */
48752   __pyx_v_incount = 0;
48753 
48754   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":153
48755  *         """
48756  *         cdef int incount = 0
48757  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
48758  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
48759  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48760  */
48761   __pyx_v_irequests = NULL;
48762 
48763   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":154
48764  *         cdef int incount = 0
48765  *         cdef MPI_Request *irequests = NULL
48766  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL             # <<<<<<<<<<<<<<
48767  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
48768  *         #
48769  */
48770   __pyx_v_outcount = MPI_UNDEFINED;
48771   __pyx_v_iindices = NULL;
48772 
48773   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":155
48774  *         cdef MPI_Request *irequests = NULL
48775  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
48776  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
48777  *         #
48778  *         cdef tmp = acquire_rs(requests, statuses,
48779  */
48780   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
48781 
48782   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":158
48783  *         #
48784  *         cdef tmp = acquire_rs(requests, statuses,
48785  *                               &incount, &irequests, &istatuses)             # <<<<<<<<<<<<<<
48786  *         cdef object indices = newarray_int(incount, &iindices)
48787  *         try:
48788  */
48789   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_v_statuses, (&__pyx_v_incount), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48790   __Pyx_GOTREF(__pyx_t_1);
48791   __pyx_v_tmp = __pyx_t_1;
48792   __pyx_t_1 = 0;
48793 
48794   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":159
48795  *         cdef tmp = acquire_rs(requests, statuses,
48796  *                               &incount, &irequests, &istatuses)
48797  *         cdef object indices = newarray_int(incount, &iindices)             # <<<<<<<<<<<<<<
48798  *         try:
48799  *             with nogil: CHKERR( MPI_Waitsome(
48800  */
48801   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_incount, (&__pyx_v_iindices)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48802   __Pyx_GOTREF(__pyx_t_1);
48803   __pyx_v_indices = __pyx_t_1;
48804   __pyx_t_1 = 0;
48805 
48806   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":160
48807  *                               &incount, &irequests, &istatuses)
48808  *         cdef object indices = newarray_int(incount, &iindices)
48809  *         try:             # <<<<<<<<<<<<<<
48810  *             with nogil: CHKERR( MPI_Waitsome(
48811  *                 incount, irequests, &outcount, iindices, istatuses) )
48812  */
48813   /*try:*/ {
48814 
48815     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":161
48816  *         cdef object indices = newarray_int(incount, &iindices)
48817  *         try:
48818  *             with nogil: CHKERR( MPI_Waitsome(             # <<<<<<<<<<<<<<
48819  *                 incount, irequests, &outcount, iindices, istatuses) )
48820  *         finally:
48821  */
48822     {
48823         #ifdef WITH_THREAD
48824         PyThreadState *_save = NULL;
48825         #endif
48826         Py_UNBLOCK_THREADS
48827         /*try:*/ {
48828 
48829           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":162
48830  *         try:
48831  *             with nogil: CHKERR( MPI_Waitsome(
48832  *                 incount, irequests, &outcount, iindices, istatuses) )             # <<<<<<<<<<<<<<
48833  *         finally:
48834  *             release_rs(requests, statuses, incount, irequests, istatuses)
48835  */
48836           __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Waitsome(__pyx_v_incount, __pyx_v_irequests, (&__pyx_v_outcount), __pyx_v_iindices, __pyx_v_istatuses)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L10;}
48837         }
48838 
48839         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":161
48840  *         cdef object indices = newarray_int(incount, &iindices)
48841  *         try:
48842  *             with nogil: CHKERR( MPI_Waitsome(             # <<<<<<<<<<<<<<
48843  *                 incount, irequests, &outcount, iindices, istatuses) )
48844  *         finally:
48845  */
48846         /*finally:*/ {
48847           int __pyx_why;
48848           __pyx_why = 0; goto __pyx_L11;
48849           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
48850           __pyx_L11:;
48851           Py_BLOCK_THREADS
48852           switch (__pyx_why) {
48853             case 4: goto __pyx_L7;
48854           }
48855         }
48856     }
48857   }
48858 
48859   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":164
48860  *                 incount, irequests, &outcount, iindices, istatuses) )
48861  *         finally:
48862  *             release_rs(requests, statuses, incount, irequests, istatuses)             # <<<<<<<<<<<<<<
48863  *         #
48864  *         if outcount == MPI_UNDEFINED:
48865  */
48866   /*finally:*/ {
48867     int __pyx_why;
48868     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
48869     int __pyx_exc_lineno;
48870     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
48871     __pyx_why = 0; goto __pyx_L8;
48872     __pyx_L7: {
48873       __pyx_why = 4;
48874       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
48875       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
48876       __pyx_exc_lineno = __pyx_lineno;
48877       goto __pyx_L8;
48878     }
48879     __pyx_L8:;
48880     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_incount, __pyx_v_irequests, __pyx_v_istatuses); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
48881     goto __pyx_L14;
48882     __pyx_L13_error:;
48883     if (__pyx_why == 4) {
48884       Py_XDECREF(__pyx_exc_type);
48885       Py_XDECREF(__pyx_exc_value);
48886       Py_XDECREF(__pyx_exc_tb);
48887     }
48888     goto __pyx_L1_error;
48889     __pyx_L14:;
48890     switch (__pyx_why) {
48891       case 4: {
48892         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
48893         __pyx_lineno = __pyx_exc_lineno;
48894         __pyx_exc_type = 0;
48895         __pyx_exc_value = 0;
48896         __pyx_exc_tb = 0;
48897         goto __pyx_L1_error;
48898       }
48899     }
48900   }
48901 
48902   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":166
48903  *             release_rs(requests, statuses, incount, irequests, istatuses)
48904  *         #
48905  *         if outcount == MPI_UNDEFINED:             # <<<<<<<<<<<<<<
48906  *             del indices[:]
48907  *         else:
48908  */
48909   __pyx_t_3 = (__pyx_v_outcount == MPI_UNDEFINED);
48910   if (__pyx_t_3) {
48911     if (unlikely(!__pyx_v_indices)) { __Pyx_RaiseUnboundLocalError("indices"); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (__Pyx_PySequence_DelSlice(__pyx_v_indices, 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48912 
48913     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":167
48914  *         #
48915  *         if outcount == MPI_UNDEFINED:
48916  *             del indices[:]             # <<<<<<<<<<<<<<
48917  *         else:
48918  *             del indices[outcount:]
48919  */
48920     goto __pyx_L15;
48921   }
48922   /*else*/ {
48923     if (unlikely(!__pyx_v_indices)) { __Pyx_RaiseUnboundLocalError("indices"); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (__Pyx_PySequence_DelSlice(__pyx_v_indices, __pyx_v_outcount, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48924 
48925     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":169
48926  *             del indices[:]
48927  *         else:
48928  *             del indices[outcount:]             # <<<<<<<<<<<<<<
48929  *         return (outcount, indices)
48930  *
48931  */
48932   }
48933   __pyx_L15:;
48934 
48935   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":170
48936  *         else:
48937  *             del indices[outcount:]
48938  *         return (outcount, indices)             # <<<<<<<<<<<<<<
48939  *
48940  *     @classmethod
48941  */
48942   __Pyx_XDECREF(__pyx_r);
48943   __pyx_t_1 = PyInt_FromLong(__pyx_v_outcount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48944   __Pyx_GOTREF(__pyx_t_1);
48945   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
48946   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
48947   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
48948   __Pyx_GIVEREF(__pyx_t_1);
48949   __Pyx_INCREF(__pyx_v_indices);
48950   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_indices);
48951   __Pyx_GIVEREF(__pyx_v_indices);
48952   __pyx_t_1 = 0;
48953   __pyx_r = ((PyObject *)__pyx_t_4);
48954   __pyx_t_4 = 0;
48955   goto __pyx_L0;
48956 
48957   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
48958   goto __pyx_L0;
48959   __pyx_L1_error:;
48960   __Pyx_XDECREF(__pyx_t_1);
48961   __Pyx_XDECREF(__pyx_t_4);
48962   __Pyx_AddTraceback("mpi4py.MPI.Request.Waitsome", __pyx_clineno, __pyx_lineno, __pyx_filename);
48963   __pyx_r = NULL;
48964   __pyx_L0:;
48965   __Pyx_XDECREF(__pyx_v_tmp);
48966   __Pyx_XDECREF(__pyx_v_indices);
48967   __Pyx_XGIVEREF(__pyx_r);
48968   __Pyx_RefNannyFinishContext();
48969   return __pyx_r;
48970 }
48971 
48972 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":173
48973  *
48974  *     @classmethod
48975  *     def Testsome(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
48976  *         """
48977  *         Test for completion of some previously initiated requests
48978  */
48979 
48980 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_13Testsome(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48981 static char __pyx_doc_6mpi4py_3MPI_7Request_13Testsome[] = "Request.Testsome(type cls, requests, statuses=None)\n\n        Test for completion of some previously initiated requests\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_13Testsome(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)48982 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_13Testsome(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48983   PyObject *__pyx_v_requests = 0;
48984   PyObject *__pyx_v_statuses = 0;
48985   int __pyx_v_incount;
48986   MPI_Request *__pyx_v_irequests;
48987   int __pyx_v_outcount;
48988   int *__pyx_v_iindices;
48989   MPI_Status *__pyx_v_istatuses;
48990   PyObject *__pyx_v_tmp = 0;
48991   PyObject *__pyx_v_indices = 0;
48992   PyObject *__pyx_r = NULL;
48993   __Pyx_RefNannyDeclarations
48994   Py_ssize_t __pyx_t_1;
48995   PyObject *__pyx_t_2 = NULL;
48996   int __pyx_t_3;
48997   int __pyx_t_4;
48998   PyObject *__pyx_t_5 = NULL;
48999   int __pyx_lineno = 0;
49000   const char *__pyx_filename = NULL;
49001   int __pyx_clineno = 0;
49002   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
49003   __Pyx_RefNannySetupContext("Testsome");
49004   {
49005     PyObject* values[2] = {0,0};
49006     values[1] = ((PyObject *)Py_None);
49007     if (unlikely(__pyx_kwds)) {
49008       Py_ssize_t kw_args;
49009       switch (PyTuple_GET_SIZE(__pyx_args)) {
49010         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49011         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49012         case  0: break;
49013         default: goto __pyx_L5_argtuple_error;
49014       }
49015       kw_args = PyDict_Size(__pyx_kwds);
49016       switch (PyTuple_GET_SIZE(__pyx_args)) {
49017         case  0:
49018         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
49019         if (likely(values[0])) kw_args--;
49020         else goto __pyx_L5_argtuple_error;
49021         case  1:
49022         if (kw_args > 0) {
49023           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
49024           if (value) { values[1] = value; kw_args--; }
49025         }
49026       }
49027       if (unlikely(kw_args > 0)) {
49028         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Testsome") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49029       }
49030     } else {
49031       switch (PyTuple_GET_SIZE(__pyx_args)) {
49032         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49033         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49034         break;
49035         default: goto __pyx_L5_argtuple_error;
49036       }
49037     }
49038     __pyx_v_requests = values[0];
49039     __pyx_v_statuses = values[1];
49040   }
49041   goto __pyx_L4_argument_unpacking_done;
49042   __pyx_L5_argtuple_error:;
49043   __Pyx_RaiseArgtupleInvalid("Testsome", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49044   __pyx_L3_error:;
49045   __Pyx_AddTraceback("mpi4py.MPI.Request.Testsome", __pyx_clineno, __pyx_lineno, __pyx_filename);
49046   __Pyx_RefNannyFinishContext();
49047   return NULL;
49048   __pyx_L4_argument_unpacking_done:;
49049 
49050   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":177
49051  *         Test for completion of some previously initiated requests
49052  *         """
49053  *         cdef int incount = <int>len(requests)             # <<<<<<<<<<<<<<
49054  *         cdef MPI_Request *irequests = NULL
49055  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
49056  */
49057   __pyx_t_1 = PyObject_Length(__pyx_v_requests); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49058   __pyx_v_incount = ((int)__pyx_t_1);
49059 
49060   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":178
49061  *         """
49062  *         cdef int incount = <int>len(requests)
49063  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
49064  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
49065  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
49066  */
49067   __pyx_v_irequests = NULL;
49068 
49069   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":179
49070  *         cdef int incount = <int>len(requests)
49071  *         cdef MPI_Request *irequests = NULL
49072  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL             # <<<<<<<<<<<<<<
49073  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE
49074  *         #
49075  */
49076   __pyx_v_outcount = MPI_UNDEFINED;
49077   __pyx_v_iindices = NULL;
49078 
49079   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":180
49080  *         cdef MPI_Request *irequests = NULL
49081  *         cdef int outcount = MPI_UNDEFINED, *iindices = NULL
49082  *         cdef MPI_Status *istatuses = MPI_STATUSES_IGNORE             # <<<<<<<<<<<<<<
49083  *         #
49084  *         cdef tmp = acquire_rs(requests, statuses,
49085  */
49086   __pyx_v_istatuses = MPI_STATUSES_IGNORE;
49087 
49088   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":183
49089  *         #
49090  *         cdef tmp = acquire_rs(requests, statuses,
49091  *                               &incount, &irequests, &istatuses)             # <<<<<<<<<<<<<<
49092  *         cdef object indices = newarray_int(incount, &iindices)
49093  *         try:
49094  */
49095   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_v_statuses, (&__pyx_v_incount), (&__pyx_v_irequests), (&__pyx_v_istatuses)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49096   __Pyx_GOTREF(__pyx_t_2);
49097   __pyx_v_tmp = __pyx_t_2;
49098   __pyx_t_2 = 0;
49099 
49100   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":184
49101  *         cdef tmp = acquire_rs(requests, statuses,
49102  *                               &incount, &irequests, &istatuses)
49103  *         cdef object indices = newarray_int(incount, &iindices)             # <<<<<<<<<<<<<<
49104  *         try:
49105  *             with nogil: CHKERR( MPI_Testsome(
49106  */
49107   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_incount, (&__pyx_v_iindices)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49108   __Pyx_GOTREF(__pyx_t_2);
49109   __pyx_v_indices = __pyx_t_2;
49110   __pyx_t_2 = 0;
49111 
49112   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":185
49113  *                               &incount, &irequests, &istatuses)
49114  *         cdef object indices = newarray_int(incount, &iindices)
49115  *         try:             # <<<<<<<<<<<<<<
49116  *             with nogil: CHKERR( MPI_Testsome(
49117  *                 incount, irequests, &outcount, iindices, istatuses) )
49118  */
49119   /*try:*/ {
49120 
49121     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":186
49122  *         cdef object indices = newarray_int(incount, &iindices)
49123  *         try:
49124  *             with nogil: CHKERR( MPI_Testsome(             # <<<<<<<<<<<<<<
49125  *                 incount, irequests, &outcount, iindices, istatuses) )
49126  *         finally:
49127  */
49128     {
49129         #ifdef WITH_THREAD
49130         PyThreadState *_save = NULL;
49131         #endif
49132         Py_UNBLOCK_THREADS
49133         /*try:*/ {
49134 
49135           /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":187
49136  *         try:
49137  *             with nogil: CHKERR( MPI_Testsome(
49138  *                 incount, irequests, &outcount, iindices, istatuses) )             # <<<<<<<<<<<<<<
49139  *         finally:
49140  *             release_rs(requests, statuses, incount, irequests, istatuses)
49141  */
49142           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Testsome(__pyx_v_incount, __pyx_v_irequests, (&__pyx_v_outcount), __pyx_v_iindices, __pyx_v_istatuses)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L10;}
49143         }
49144 
49145         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":186
49146  *         cdef object indices = newarray_int(incount, &iindices)
49147  *         try:
49148  *             with nogil: CHKERR( MPI_Testsome(             # <<<<<<<<<<<<<<
49149  *                 incount, irequests, &outcount, iindices, istatuses) )
49150  *         finally:
49151  */
49152         /*finally:*/ {
49153           int __pyx_why;
49154           __pyx_why = 0; goto __pyx_L11;
49155           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
49156           __pyx_L11:;
49157           Py_BLOCK_THREADS
49158           switch (__pyx_why) {
49159             case 4: goto __pyx_L7;
49160           }
49161         }
49162     }
49163   }
49164 
49165   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":189
49166  *                 incount, irequests, &outcount, iindices, istatuses) )
49167  *         finally:
49168  *             release_rs(requests, statuses, incount, irequests, istatuses)             # <<<<<<<<<<<<<<
49169  *         #
49170  *         if outcount == MPI_UNDEFINED:
49171  */
49172   /*finally:*/ {
49173     int __pyx_why;
49174     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
49175     int __pyx_exc_lineno;
49176     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
49177     __pyx_why = 0; goto __pyx_L8;
49178     __pyx_L7: {
49179       __pyx_why = 4;
49180       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
49181       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
49182       __pyx_exc_lineno = __pyx_lineno;
49183       goto __pyx_L8;
49184     }
49185     __pyx_L8:;
49186     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_v_statuses, __pyx_v_incount, __pyx_v_irequests, __pyx_v_istatuses); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
49187     goto __pyx_L14;
49188     __pyx_L13_error:;
49189     if (__pyx_why == 4) {
49190       Py_XDECREF(__pyx_exc_type);
49191       Py_XDECREF(__pyx_exc_value);
49192       Py_XDECREF(__pyx_exc_tb);
49193     }
49194     goto __pyx_L1_error;
49195     __pyx_L14:;
49196     switch (__pyx_why) {
49197       case 4: {
49198         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
49199         __pyx_lineno = __pyx_exc_lineno;
49200         __pyx_exc_type = 0;
49201         __pyx_exc_value = 0;
49202         __pyx_exc_tb = 0;
49203         goto __pyx_L1_error;
49204       }
49205     }
49206   }
49207 
49208   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":191
49209  *             release_rs(requests, statuses, incount, irequests, istatuses)
49210  *         #
49211  *         if outcount == MPI_UNDEFINED:             # <<<<<<<<<<<<<<
49212  *             del indices[:]
49213  *         else:
49214  */
49215   __pyx_t_4 = (__pyx_v_outcount == MPI_UNDEFINED);
49216   if (__pyx_t_4) {
49217     if (unlikely(!__pyx_v_indices)) { __Pyx_RaiseUnboundLocalError("indices"); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (__Pyx_PySequence_DelSlice(__pyx_v_indices, 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49218 
49219     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":192
49220  *         #
49221  *         if outcount == MPI_UNDEFINED:
49222  *             del indices[:]             # <<<<<<<<<<<<<<
49223  *         else:
49224  *             del indices[outcount:]
49225  */
49226     goto __pyx_L15;
49227   }
49228   /*else*/ {
49229     if (unlikely(!__pyx_v_indices)) { __Pyx_RaiseUnboundLocalError("indices"); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (__Pyx_PySequence_DelSlice(__pyx_v_indices, __pyx_v_outcount, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49230 
49231     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":194
49232  *             del indices[:]
49233  *         else:
49234  *             del indices[outcount:]             # <<<<<<<<<<<<<<
49235  *         return (outcount, indices)
49236  *
49237  */
49238   }
49239   __pyx_L15:;
49240 
49241   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":195
49242  *         else:
49243  *             del indices[outcount:]
49244  *         return (outcount, indices)             # <<<<<<<<<<<<<<
49245  *
49246  *     # Cancel
49247  */
49248   __Pyx_XDECREF(__pyx_r);
49249   __pyx_t_2 = PyInt_FromLong(__pyx_v_outcount); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49250   __Pyx_GOTREF(__pyx_t_2);
49251   __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49252   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
49253   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
49254   __Pyx_GIVEREF(__pyx_t_2);
49255   __Pyx_INCREF(__pyx_v_indices);
49256   PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_indices);
49257   __Pyx_GIVEREF(__pyx_v_indices);
49258   __pyx_t_2 = 0;
49259   __pyx_r = ((PyObject *)__pyx_t_5);
49260   __pyx_t_5 = 0;
49261   goto __pyx_L0;
49262 
49263   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49264   goto __pyx_L0;
49265   __pyx_L1_error:;
49266   __Pyx_XDECREF(__pyx_t_2);
49267   __Pyx_XDECREF(__pyx_t_5);
49268   __Pyx_AddTraceback("mpi4py.MPI.Request.Testsome", __pyx_clineno, __pyx_lineno, __pyx_filename);
49269   __pyx_r = NULL;
49270   __pyx_L0:;
49271   __Pyx_XDECREF(__pyx_v_tmp);
49272   __Pyx_XDECREF(__pyx_v_indices);
49273   __Pyx_XGIVEREF(__pyx_r);
49274   __Pyx_RefNannyFinishContext();
49275   return __pyx_r;
49276 }
49277 
49278 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":200
49279  *     # ------
49280  *
49281  *     def Cancel(self):             # <<<<<<<<<<<<<<
49282  *         """
49283  *         Cancel a communication request
49284  */
49285 
49286 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_14Cancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49287 static char __pyx_doc_6mpi4py_3MPI_7Request_14Cancel[] = "Request.Cancel(self)\n\n        Cancel a communication request\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_14Cancel(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)49288 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_14Cancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49289   PyObject *__pyx_r = NULL;
49290   __Pyx_RefNannyDeclarations
49291   int __pyx_t_1;
49292   int __pyx_lineno = 0;
49293   const char *__pyx_filename = NULL;
49294   int __pyx_clineno = 0;
49295   __Pyx_RefNannySetupContext("Cancel");
49296   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
49297     __Pyx_RaiseArgtupleInvalid("Cancel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
49298   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Cancel", 0))) return NULL;
49299 
49300   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":204
49301  *         Cancel a communication request
49302  *         """
49303  *         with nogil: CHKERR( MPI_Cancel(&self.ob_mpi) )             # <<<<<<<<<<<<<<
49304  *
49305  *     # Fortran Handle
49306  */
49307   {
49308       #ifdef WITH_THREAD
49309       PyThreadState *_save = NULL;
49310       #endif
49311       Py_UNBLOCK_THREADS
49312       /*try:*/ {
49313         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cancel((&((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L6;}
49314       }
49315       /*finally:*/ {
49316         int __pyx_why;
49317         __pyx_why = 0; goto __pyx_L7;
49318         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
49319         __pyx_L7:;
49320         Py_BLOCK_THREADS
49321         switch (__pyx_why) {
49322           case 4: goto __pyx_L1_error;
49323         }
49324       }
49325   }
49326 
49327   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49328   goto __pyx_L0;
49329   __pyx_L1_error:;
49330   __Pyx_AddTraceback("mpi4py.MPI.Request.Cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
49331   __pyx_r = NULL;
49332   __pyx_L0:;
49333   __Pyx_XGIVEREF(__pyx_r);
49334   __Pyx_RefNannyFinishContext();
49335   return __pyx_r;
49336 }
49337 
49338 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":209
49339  *     # --------------
49340  *
49341  *     def py2f(self):             # <<<<<<<<<<<<<<
49342  *         """
49343  *         """
49344  */
49345 
49346 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_15py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49347 static char __pyx_doc_6mpi4py_3MPI_7Request_15py2f[] = "Request.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_15py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)49348 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_15py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49349   PyObject *__pyx_r = NULL;
49350   __Pyx_RefNannyDeclarations
49351   PyObject *__pyx_t_1 = NULL;
49352   int __pyx_lineno = 0;
49353   const char *__pyx_filename = NULL;
49354   int __pyx_clineno = 0;
49355   __Pyx_RefNannySetupContext("py2f");
49356   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
49357     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
49358   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
49359 
49360   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":212
49361  *         """
49362  *         """
49363  *         return MPI_Request_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
49364  *
49365  *     @classmethod
49366  */
49367   __Pyx_XDECREF(__pyx_r);
49368   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Request_c2f(((struct PyMPIRequestObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49369   __Pyx_GOTREF(__pyx_t_1);
49370   __pyx_r = __pyx_t_1;
49371   __pyx_t_1 = 0;
49372   goto __pyx_L0;
49373 
49374   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49375   goto __pyx_L0;
49376   __pyx_L1_error:;
49377   __Pyx_XDECREF(__pyx_t_1);
49378   __Pyx_AddTraceback("mpi4py.MPI.Request.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
49379   __pyx_r = NULL;
49380   __pyx_L0:;
49381   __Pyx_XGIVEREF(__pyx_r);
49382   __Pyx_RefNannyFinishContext();
49383   return __pyx_r;
49384 }
49385 
49386 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":215
49387  *
49388  *     @classmethod
49389  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
49390  *         """
49391  *         """
49392  */
49393 
49394 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_16f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49395 static char __pyx_doc_6mpi4py_3MPI_7Request_16f2py[] = "Request.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_16f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)49396 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_16f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49397   PyObject *__pyx_v_arg = 0;
49398   struct PyMPIRequestObject *__pyx_v_request = 0;
49399   PyObject *__pyx_r = NULL;
49400   __Pyx_RefNannyDeclarations
49401   PyObject *__pyx_t_1 = NULL;
49402   MPI_Fint __pyx_t_2;
49403   int __pyx_lineno = 0;
49404   const char *__pyx_filename = NULL;
49405   int __pyx_clineno = 0;
49406   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
49407   __Pyx_RefNannySetupContext("f2py");
49408   {
49409     PyObject* values[1] = {0};
49410     if (unlikely(__pyx_kwds)) {
49411       Py_ssize_t kw_args;
49412       switch (PyTuple_GET_SIZE(__pyx_args)) {
49413         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49414         case  0: break;
49415         default: goto __pyx_L5_argtuple_error;
49416       }
49417       kw_args = PyDict_Size(__pyx_kwds);
49418       switch (PyTuple_GET_SIZE(__pyx_args)) {
49419         case  0:
49420         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
49421         if (likely(values[0])) kw_args--;
49422         else goto __pyx_L5_argtuple_error;
49423       }
49424       if (unlikely(kw_args > 0)) {
49425         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49426       }
49427     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
49428       goto __pyx_L5_argtuple_error;
49429     } else {
49430       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49431     }
49432     __pyx_v_arg = values[0];
49433   }
49434   goto __pyx_L4_argument_unpacking_done;
49435   __pyx_L5_argtuple_error:;
49436   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49437   __pyx_L3_error:;
49438   __Pyx_AddTraceback("mpi4py.MPI.Request.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
49439   __Pyx_RefNannyFinishContext();
49440   return NULL;
49441   __pyx_L4_argument_unpacking_done:;
49442 
49443   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":218
49444  *         """
49445  *         """
49446  *         cdef Request request = <Request>cls()             # <<<<<<<<<<<<<<
49447  *         request.ob_mpi = MPI_Request_f2c(arg)
49448  *         return request
49449  */
49450   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49451   __Pyx_GOTREF(__pyx_t_1);
49452   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
49453   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
49454   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49455 
49456   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":219
49457  *         """
49458  *         cdef Request request = <Request>cls()
49459  *         request.ob_mpi = MPI_Request_f2c(arg)             # <<<<<<<<<<<<<<
49460  *         return request
49461  *
49462  */
49463   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49464   __pyx_v_request->ob_mpi = MPI_Request_f2c(__pyx_t_2);
49465 
49466   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":220
49467  *         cdef Request request = <Request>cls()
49468  *         request.ob_mpi = MPI_Request_f2c(arg)
49469  *         return request             # <<<<<<<<<<<<<<
49470  *
49471  *     # Python Communication
49472  */
49473   __Pyx_XDECREF(__pyx_r);
49474   __Pyx_INCREF(((PyObject *)__pyx_v_request));
49475   __pyx_r = ((PyObject *)__pyx_v_request);
49476   goto __pyx_L0;
49477 
49478   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49479   goto __pyx_L0;
49480   __pyx_L1_error:;
49481   __Pyx_XDECREF(__pyx_t_1);
49482   __Pyx_AddTraceback("mpi4py.MPI.Request.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
49483   __pyx_r = NULL;
49484   __pyx_L0:;
49485   __Pyx_XDECREF((PyObject *)__pyx_v_request);
49486   __Pyx_XGIVEREF(__pyx_r);
49487   __Pyx_RefNannyFinishContext();
49488   return __pyx_r;
49489 }
49490 
49491 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":225
49492  *     # --------------------
49493  *     #
49494  *     def wait(self, Status status=None):             # <<<<<<<<<<<<<<
49495  *         """
49496  *         Wait for a send or receive to complete
49497  */
49498 
49499 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_17wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49500 static char __pyx_doc_6mpi4py_3MPI_7Request_17wait[] = "Request.wait(self, Status status=None)\n\n        Wait for a send or receive to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_17wait(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)49501 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_17wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49502   struct PyMPIStatusObject *__pyx_v_status = 0;
49503   PyObject *__pyx_v_msg = 0;
49504   PyObject *__pyx_r = NULL;
49505   __Pyx_RefNannyDeclarations
49506   PyObject *__pyx_t_1 = NULL;
49507   int __pyx_lineno = 0;
49508   const char *__pyx_filename = NULL;
49509   int __pyx_clineno = 0;
49510   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,0};
49511   __Pyx_RefNannySetupContext("wait");
49512   {
49513     PyObject* values[1] = {0};
49514     values[0] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
49515     if (unlikely(__pyx_kwds)) {
49516       Py_ssize_t kw_args;
49517       switch (PyTuple_GET_SIZE(__pyx_args)) {
49518         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49519         case  0: break;
49520         default: goto __pyx_L5_argtuple_error;
49521       }
49522       kw_args = PyDict_Size(__pyx_kwds);
49523       switch (PyTuple_GET_SIZE(__pyx_args)) {
49524         case  0:
49525         if (kw_args > 0) {
49526           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
49527           if (value) { values[0] = value; kw_args--; }
49528         }
49529       }
49530       if (unlikely(kw_args > 0)) {
49531         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "wait") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49532       }
49533     } else {
49534       switch (PyTuple_GET_SIZE(__pyx_args)) {
49535         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49536         case  0: break;
49537         default: goto __pyx_L5_argtuple_error;
49538       }
49539     }
49540     __pyx_v_status = ((struct PyMPIStatusObject *)values[0]);
49541   }
49542   goto __pyx_L4_argument_unpacking_done;
49543   __pyx_L5_argtuple_error:;
49544   __Pyx_RaiseArgtupleInvalid("wait", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49545   __pyx_L3_error:;
49546   __Pyx_AddTraceback("mpi4py.MPI.Request.wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
49547   __Pyx_RefNannyFinishContext();
49548   return NULL;
49549   __pyx_L4_argument_unpacking_done:;
49550   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49551 
49552   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":229
49553  *         Wait for a send or receive to complete
49554  *         """
49555  *         cdef msg = PyMPI_wait(self, status)             # <<<<<<<<<<<<<<
49556  *         return msg
49557  *     #
49558  */
49559   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_wait(((struct PyMPIRequestObject *)__pyx_v_self), __pyx_v_status); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49560   __Pyx_GOTREF(__pyx_t_1);
49561   __pyx_v_msg = __pyx_t_1;
49562   __pyx_t_1 = 0;
49563 
49564   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":230
49565  *         """
49566  *         cdef msg = PyMPI_wait(self, status)
49567  *         return msg             # <<<<<<<<<<<<<<
49568  *     #
49569  *     def test(self, Status status=None):
49570  */
49571   __Pyx_XDECREF(__pyx_r);
49572   __Pyx_INCREF(__pyx_v_msg);
49573   __pyx_r = __pyx_v_msg;
49574   goto __pyx_L0;
49575 
49576   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49577   goto __pyx_L0;
49578   __pyx_L1_error:;
49579   __Pyx_XDECREF(__pyx_t_1);
49580   __Pyx_AddTraceback("mpi4py.MPI.Request.wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
49581   __pyx_r = NULL;
49582   __pyx_L0:;
49583   __Pyx_XDECREF(__pyx_v_msg);
49584   __Pyx_XGIVEREF(__pyx_r);
49585   __Pyx_RefNannyFinishContext();
49586   return __pyx_r;
49587 }
49588 
49589 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":232
49590  *         return msg
49591  *     #
49592  *     def test(self, Status status=None):             # <<<<<<<<<<<<<<
49593  *         """
49594  *         Test for the completion of a send or receive
49595  */
49596 
49597 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_18test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49598 static char __pyx_doc_6mpi4py_3MPI_7Request_18test[] = "Request.test(self, Status status=None)\n\n        Test for the completion of a send or receive\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_18test(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)49599 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_18test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49600   struct PyMPIStatusObject *__pyx_v_status = 0;
49601   int __pyx_v_flag;
49602   PyObject *__pyx_v_msg = 0;
49603   PyObject *__pyx_r = NULL;
49604   __Pyx_RefNannyDeclarations
49605   PyObject *__pyx_t_1 = NULL;
49606   PyObject *__pyx_t_2 = NULL;
49607   int __pyx_lineno = 0;
49608   const char *__pyx_filename = NULL;
49609   int __pyx_clineno = 0;
49610   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,0};
49611   __Pyx_RefNannySetupContext("test");
49612   {
49613     PyObject* values[1] = {0};
49614     values[0] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
49615     if (unlikely(__pyx_kwds)) {
49616       Py_ssize_t kw_args;
49617       switch (PyTuple_GET_SIZE(__pyx_args)) {
49618         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49619         case  0: break;
49620         default: goto __pyx_L5_argtuple_error;
49621       }
49622       kw_args = PyDict_Size(__pyx_kwds);
49623       switch (PyTuple_GET_SIZE(__pyx_args)) {
49624         case  0:
49625         if (kw_args > 0) {
49626           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
49627           if (value) { values[0] = value; kw_args--; }
49628         }
49629       }
49630       if (unlikely(kw_args > 0)) {
49631         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "test") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49632       }
49633     } else {
49634       switch (PyTuple_GET_SIZE(__pyx_args)) {
49635         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49636         case  0: break;
49637         default: goto __pyx_L5_argtuple_error;
49638       }
49639     }
49640     __pyx_v_status = ((struct PyMPIStatusObject *)values[0]);
49641   }
49642   goto __pyx_L4_argument_unpacking_done;
49643   __pyx_L5_argtuple_error:;
49644   __Pyx_RaiseArgtupleInvalid("test", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49645   __pyx_L3_error:;
49646   __Pyx_AddTraceback("mpi4py.MPI.Request.test", __pyx_clineno, __pyx_lineno, __pyx_filename);
49647   __Pyx_RefNannyFinishContext();
49648   return NULL;
49649   __pyx_L4_argument_unpacking_done:;
49650   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49651 
49652   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":236
49653  *         Test for the completion of a send or receive
49654  *         """
49655  *         cdef int flag = 0             # <<<<<<<<<<<<<<
49656  *         cdef msg = PyMPI_test(self, &flag, status)
49657  *         return (<bint>flag, msg)
49658  */
49659   __pyx_v_flag = 0;
49660 
49661   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":237
49662  *         """
49663  *         cdef int flag = 0
49664  *         cdef msg = PyMPI_test(self, &flag, status)             # <<<<<<<<<<<<<<
49665  *         return (<bint>flag, msg)
49666  *     #
49667  */
49668   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_test(((struct PyMPIRequestObject *)__pyx_v_self), (&__pyx_v_flag), __pyx_v_status); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49669   __Pyx_GOTREF(__pyx_t_1);
49670   __pyx_v_msg = __pyx_t_1;
49671   __pyx_t_1 = 0;
49672 
49673   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":238
49674  *         cdef int flag = 0
49675  *         cdef msg = PyMPI_test(self, &flag, status)
49676  *         return (<bint>flag, msg)             # <<<<<<<<<<<<<<
49677  *     #
49678  *     @classmethod
49679  */
49680   __Pyx_XDECREF(__pyx_r);
49681   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49682   __Pyx_GOTREF(__pyx_t_1);
49683   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49684   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
49685   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
49686   __Pyx_GIVEREF(__pyx_t_1);
49687   __Pyx_INCREF(__pyx_v_msg);
49688   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_msg);
49689   __Pyx_GIVEREF(__pyx_v_msg);
49690   __pyx_t_1 = 0;
49691   __pyx_r = ((PyObject *)__pyx_t_2);
49692   __pyx_t_2 = 0;
49693   goto __pyx_L0;
49694 
49695   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49696   goto __pyx_L0;
49697   __pyx_L1_error:;
49698   __Pyx_XDECREF(__pyx_t_1);
49699   __Pyx_XDECREF(__pyx_t_2);
49700   __Pyx_AddTraceback("mpi4py.MPI.Request.test", __pyx_clineno, __pyx_lineno, __pyx_filename);
49701   __pyx_r = NULL;
49702   __pyx_L0:;
49703   __Pyx_XDECREF(__pyx_v_msg);
49704   __Pyx_XGIVEREF(__pyx_r);
49705   __Pyx_RefNannyFinishContext();
49706   return __pyx_r;
49707 }
49708 
49709 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":241
49710  *     #
49711  *     @classmethod
49712  *     def waitany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
49713  *         """
49714  *         Wait for any previously initiated request to complete
49715  */
49716 
49717 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_19waitany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49718 static char __pyx_doc_6mpi4py_3MPI_7Request_19waitany[] = "Request.waitany(type cls, requests, Status status=None)\n\n        Wait for any previously initiated request to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_19waitany(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)49719 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_19waitany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49720   PyObject *__pyx_v_requests = 0;
49721   struct PyMPIStatusObject *__pyx_v_status = 0;
49722   int __pyx_v_index;
49723   PyObject *__pyx_v_msg = 0;
49724   PyObject *__pyx_r = NULL;
49725   __Pyx_RefNannyDeclarations
49726   PyObject *__pyx_t_1 = NULL;
49727   PyObject *__pyx_t_2 = NULL;
49728   int __pyx_lineno = 0;
49729   const char *__pyx_filename = NULL;
49730   int __pyx_clineno = 0;
49731   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__status,0};
49732   __Pyx_RefNannySetupContext("waitany");
49733   {
49734     PyObject* values[2] = {0,0};
49735     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
49736     if (unlikely(__pyx_kwds)) {
49737       Py_ssize_t kw_args;
49738       switch (PyTuple_GET_SIZE(__pyx_args)) {
49739         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49740         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49741         case  0: break;
49742         default: goto __pyx_L5_argtuple_error;
49743       }
49744       kw_args = PyDict_Size(__pyx_kwds);
49745       switch (PyTuple_GET_SIZE(__pyx_args)) {
49746         case  0:
49747         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
49748         if (likely(values[0])) kw_args--;
49749         else goto __pyx_L5_argtuple_error;
49750         case  1:
49751         if (kw_args > 0) {
49752           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
49753           if (value) { values[1] = value; kw_args--; }
49754         }
49755       }
49756       if (unlikely(kw_args > 0)) {
49757         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "waitany") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49758       }
49759     } else {
49760       switch (PyTuple_GET_SIZE(__pyx_args)) {
49761         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49762         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49763         break;
49764         default: goto __pyx_L5_argtuple_error;
49765       }
49766     }
49767     __pyx_v_requests = values[0];
49768     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
49769   }
49770   goto __pyx_L4_argument_unpacking_done;
49771   __pyx_L5_argtuple_error:;
49772   __Pyx_RaiseArgtupleInvalid("waitany", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49773   __pyx_L3_error:;
49774   __Pyx_AddTraceback("mpi4py.MPI.Request.waitany", __pyx_clineno, __pyx_lineno, __pyx_filename);
49775   __Pyx_RefNannyFinishContext();
49776   return NULL;
49777   __pyx_L4_argument_unpacking_done:;
49778   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49779 
49780   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":245
49781  *         Wait for any previously initiated request to complete
49782  *         """
49783  *         cdef int index = MPI_UNDEFINED             # <<<<<<<<<<<<<<
49784  *         cdef msg = PyMPI_waitany(requests, &index, status)
49785  *         return (index, msg)
49786  */
49787   __pyx_v_index = MPI_UNDEFINED;
49788 
49789   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":246
49790  *         """
49791  *         cdef int index = MPI_UNDEFINED
49792  *         cdef msg = PyMPI_waitany(requests, &index, status)             # <<<<<<<<<<<<<<
49793  *         return (index, msg)
49794  *     #
49795  */
49796   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_waitany(__pyx_v_requests, (&__pyx_v_index), __pyx_v_status); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49797   __Pyx_GOTREF(__pyx_t_1);
49798   __pyx_v_msg = __pyx_t_1;
49799   __pyx_t_1 = 0;
49800 
49801   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":247
49802  *         cdef int index = MPI_UNDEFINED
49803  *         cdef msg = PyMPI_waitany(requests, &index, status)
49804  *         return (index, msg)             # <<<<<<<<<<<<<<
49805  *     #
49806  *     @classmethod
49807  */
49808   __Pyx_XDECREF(__pyx_r);
49809   __pyx_t_1 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49810   __Pyx_GOTREF(__pyx_t_1);
49811   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49812   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
49813   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
49814   __Pyx_GIVEREF(__pyx_t_1);
49815   __Pyx_INCREF(__pyx_v_msg);
49816   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_msg);
49817   __Pyx_GIVEREF(__pyx_v_msg);
49818   __pyx_t_1 = 0;
49819   __pyx_r = ((PyObject *)__pyx_t_2);
49820   __pyx_t_2 = 0;
49821   goto __pyx_L0;
49822 
49823   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49824   goto __pyx_L0;
49825   __pyx_L1_error:;
49826   __Pyx_XDECREF(__pyx_t_1);
49827   __Pyx_XDECREF(__pyx_t_2);
49828   __Pyx_AddTraceback("mpi4py.MPI.Request.waitany", __pyx_clineno, __pyx_lineno, __pyx_filename);
49829   __pyx_r = NULL;
49830   __pyx_L0:;
49831   __Pyx_XDECREF(__pyx_v_msg);
49832   __Pyx_XGIVEREF(__pyx_r);
49833   __Pyx_RefNannyFinishContext();
49834   return __pyx_r;
49835 }
49836 
49837 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":250
49838  *     #
49839  *     @classmethod
49840  *     def testany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
49841  *         """
49842  *         Test for completion of any previously initiated request
49843  */
49844 
49845 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_20testany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49846 static char __pyx_doc_6mpi4py_3MPI_7Request_20testany[] = "Request.testany(type cls, requests, Status status=None)\n\n        Test for completion of any previously initiated request\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_20testany(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)49847 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_20testany(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49848   PyObject *__pyx_v_requests = 0;
49849   struct PyMPIStatusObject *__pyx_v_status = 0;
49850   int __pyx_v_index;
49851   int __pyx_v_flag;
49852   PyObject *__pyx_v_msg = 0;
49853   PyObject *__pyx_r = NULL;
49854   __Pyx_RefNannyDeclarations
49855   PyObject *__pyx_t_1 = NULL;
49856   PyObject *__pyx_t_2 = NULL;
49857   PyObject *__pyx_t_3 = NULL;
49858   int __pyx_lineno = 0;
49859   const char *__pyx_filename = NULL;
49860   int __pyx_clineno = 0;
49861   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__status,0};
49862   __Pyx_RefNannySetupContext("testany");
49863   {
49864     PyObject* values[2] = {0,0};
49865     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
49866     if (unlikely(__pyx_kwds)) {
49867       Py_ssize_t kw_args;
49868       switch (PyTuple_GET_SIZE(__pyx_args)) {
49869         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49870         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49871         case  0: break;
49872         default: goto __pyx_L5_argtuple_error;
49873       }
49874       kw_args = PyDict_Size(__pyx_kwds);
49875       switch (PyTuple_GET_SIZE(__pyx_args)) {
49876         case  0:
49877         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
49878         if (likely(values[0])) kw_args--;
49879         else goto __pyx_L5_argtuple_error;
49880         case  1:
49881         if (kw_args > 0) {
49882           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
49883           if (value) { values[1] = value; kw_args--; }
49884         }
49885       }
49886       if (unlikely(kw_args > 0)) {
49887         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "testany") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49888       }
49889     } else {
49890       switch (PyTuple_GET_SIZE(__pyx_args)) {
49891         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
49892         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
49893         break;
49894         default: goto __pyx_L5_argtuple_error;
49895       }
49896     }
49897     __pyx_v_requests = values[0];
49898     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
49899   }
49900   goto __pyx_L4_argument_unpacking_done;
49901   __pyx_L5_argtuple_error:;
49902   __Pyx_RaiseArgtupleInvalid("testany", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
49903   __pyx_L3_error:;
49904   __Pyx_AddTraceback("mpi4py.MPI.Request.testany", __pyx_clineno, __pyx_lineno, __pyx_filename);
49905   __Pyx_RefNannyFinishContext();
49906   return NULL;
49907   __pyx_L4_argument_unpacking_done:;
49908   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49909 
49910   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":254
49911  *         Test for completion of any previously initiated request
49912  *         """
49913  *         cdef int index = MPI_UNDEFINED             # <<<<<<<<<<<<<<
49914  *         cdef int flag  = 0
49915  *         cdef msg = PyMPI_testany(requests, &index, &flag, status)
49916  */
49917   __pyx_v_index = MPI_UNDEFINED;
49918 
49919   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":255
49920  *         """
49921  *         cdef int index = MPI_UNDEFINED
49922  *         cdef int flag  = 0             # <<<<<<<<<<<<<<
49923  *         cdef msg = PyMPI_testany(requests, &index, &flag, status)
49924  *         return (index, <bint>flag, msg)
49925  */
49926   __pyx_v_flag = 0;
49927 
49928   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":256
49929  *         cdef int index = MPI_UNDEFINED
49930  *         cdef int flag  = 0
49931  *         cdef msg = PyMPI_testany(requests, &index, &flag, status)             # <<<<<<<<<<<<<<
49932  *         return (index, <bint>flag, msg)
49933  *     #
49934  */
49935   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_testany(__pyx_v_requests, (&__pyx_v_index), (&__pyx_v_flag), __pyx_v_status); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49936   __Pyx_GOTREF(__pyx_t_1);
49937   __pyx_v_msg = __pyx_t_1;
49938   __pyx_t_1 = 0;
49939 
49940   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":257
49941  *         cdef int flag  = 0
49942  *         cdef msg = PyMPI_testany(requests, &index, &flag, status)
49943  *         return (index, <bint>flag, msg)             # <<<<<<<<<<<<<<
49944  *     #
49945  *     @classmethod
49946  */
49947   __Pyx_XDECREF(__pyx_r);
49948   __pyx_t_1 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49949   __Pyx_GOTREF(__pyx_t_1);
49950   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49951   __Pyx_GOTREF(__pyx_t_2);
49952   __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
49953   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
49954   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
49955   __Pyx_GIVEREF(__pyx_t_1);
49956   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
49957   __Pyx_GIVEREF(__pyx_t_2);
49958   __Pyx_INCREF(__pyx_v_msg);
49959   PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_msg);
49960   __Pyx_GIVEREF(__pyx_v_msg);
49961   __pyx_t_1 = 0;
49962   __pyx_t_2 = 0;
49963   __pyx_r = ((PyObject *)__pyx_t_3);
49964   __pyx_t_3 = 0;
49965   goto __pyx_L0;
49966 
49967   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
49968   goto __pyx_L0;
49969   __pyx_L1_error:;
49970   __Pyx_XDECREF(__pyx_t_1);
49971   __Pyx_XDECREF(__pyx_t_2);
49972   __Pyx_XDECREF(__pyx_t_3);
49973   __Pyx_AddTraceback("mpi4py.MPI.Request.testany", __pyx_clineno, __pyx_lineno, __pyx_filename);
49974   __pyx_r = NULL;
49975   __pyx_L0:;
49976   __Pyx_XDECREF(__pyx_v_msg);
49977   __Pyx_XGIVEREF(__pyx_r);
49978   __Pyx_RefNannyFinishContext();
49979   return __pyx_r;
49980 }
49981 
49982 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":260
49983  *     #
49984  *     @classmethod
49985  *     def waitall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
49986  *         """
49987  *         Wait for all previously initiated requests to complete
49988  */
49989 
49990 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_21waitall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49991 static char __pyx_doc_6mpi4py_3MPI_7Request_21waitall[] = "Request.waitall(type cls, requests, statuses=None)\n\n        Wait for all previously initiated requests to complete\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_21waitall(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)49992 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_21waitall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49993   PyObject *__pyx_v_requests = 0;
49994   PyObject *__pyx_v_statuses = 0;
49995   PyObject *__pyx_v_msg = 0;
49996   PyObject *__pyx_r = NULL;
49997   __Pyx_RefNannyDeclarations
49998   PyObject *__pyx_t_1 = NULL;
49999   int __pyx_lineno = 0;
50000   const char *__pyx_filename = NULL;
50001   int __pyx_clineno = 0;
50002   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
50003   __Pyx_RefNannySetupContext("waitall");
50004   {
50005     PyObject* values[2] = {0,0};
50006     values[1] = ((PyObject *)Py_None);
50007     if (unlikely(__pyx_kwds)) {
50008       Py_ssize_t kw_args;
50009       switch (PyTuple_GET_SIZE(__pyx_args)) {
50010         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50011         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50012         case  0: break;
50013         default: goto __pyx_L5_argtuple_error;
50014       }
50015       kw_args = PyDict_Size(__pyx_kwds);
50016       switch (PyTuple_GET_SIZE(__pyx_args)) {
50017         case  0:
50018         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
50019         if (likely(values[0])) kw_args--;
50020         else goto __pyx_L5_argtuple_error;
50021         case  1:
50022         if (kw_args > 0) {
50023           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
50024           if (value) { values[1] = value; kw_args--; }
50025         }
50026       }
50027       if (unlikely(kw_args > 0)) {
50028         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "waitall") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50029       }
50030     } else {
50031       switch (PyTuple_GET_SIZE(__pyx_args)) {
50032         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50033         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50034         break;
50035         default: goto __pyx_L5_argtuple_error;
50036       }
50037     }
50038     __pyx_v_requests = values[0];
50039     __pyx_v_statuses = values[1];
50040   }
50041   goto __pyx_L4_argument_unpacking_done;
50042   __pyx_L5_argtuple_error:;
50043   __Pyx_RaiseArgtupleInvalid("waitall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50044   __pyx_L3_error:;
50045   __Pyx_AddTraceback("mpi4py.MPI.Request.waitall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50046   __Pyx_RefNannyFinishContext();
50047   return NULL;
50048   __pyx_L4_argument_unpacking_done:;
50049 
50050   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":264
50051  *         Wait for all previously initiated requests to complete
50052  *         """
50053  *         cdef msg = PyMPI_waitall(requests, statuses)             # <<<<<<<<<<<<<<
50054  *         return msg
50055  *     #
50056  */
50057   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_waitall(__pyx_v_requests, __pyx_v_statuses); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50058   __Pyx_GOTREF(__pyx_t_1);
50059   __pyx_v_msg = __pyx_t_1;
50060   __pyx_t_1 = 0;
50061 
50062   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":265
50063  *         """
50064  *         cdef msg = PyMPI_waitall(requests, statuses)
50065  *         return msg             # <<<<<<<<<<<<<<
50066  *     #
50067  *     @classmethod
50068  */
50069   __Pyx_XDECREF(__pyx_r);
50070   __Pyx_INCREF(__pyx_v_msg);
50071   __pyx_r = __pyx_v_msg;
50072   goto __pyx_L0;
50073 
50074   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50075   goto __pyx_L0;
50076   __pyx_L1_error:;
50077   __Pyx_XDECREF(__pyx_t_1);
50078   __Pyx_AddTraceback("mpi4py.MPI.Request.waitall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50079   __pyx_r = NULL;
50080   __pyx_L0:;
50081   __Pyx_XDECREF(__pyx_v_msg);
50082   __Pyx_XGIVEREF(__pyx_r);
50083   __Pyx_RefNannyFinishContext();
50084   return __pyx_r;
50085 }
50086 
50087 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":268
50088  *     #
50089  *     @classmethod
50090  *     def testall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
50091  *         """
50092  *         Test for completion of all previously initiated requests
50093  */
50094 
50095 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_22testall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50096 static char __pyx_doc_6mpi4py_3MPI_7Request_22testall[] = "Request.testall(type cls, requests, statuses=None)\n\n        Test for completion of all previously initiated requests\n        ";
__pyx_pf_6mpi4py_3MPI_7Request_22testall(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)50097 static PyObject *__pyx_pf_6mpi4py_3MPI_7Request_22testall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50098   PyObject *__pyx_v_requests = 0;
50099   PyObject *__pyx_v_statuses = 0;
50100   int __pyx_v_flag;
50101   PyObject *__pyx_v_msg = 0;
50102   PyObject *__pyx_r = NULL;
50103   __Pyx_RefNannyDeclarations
50104   PyObject *__pyx_t_1 = NULL;
50105   PyObject *__pyx_t_2 = NULL;
50106   int __pyx_lineno = 0;
50107   const char *__pyx_filename = NULL;
50108   int __pyx_clineno = 0;
50109   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,&__pyx_n_s__statuses,0};
50110   __Pyx_RefNannySetupContext("testall");
50111   {
50112     PyObject* values[2] = {0,0};
50113     values[1] = ((PyObject *)Py_None);
50114     if (unlikely(__pyx_kwds)) {
50115       Py_ssize_t kw_args;
50116       switch (PyTuple_GET_SIZE(__pyx_args)) {
50117         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50118         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50119         case  0: break;
50120         default: goto __pyx_L5_argtuple_error;
50121       }
50122       kw_args = PyDict_Size(__pyx_kwds);
50123       switch (PyTuple_GET_SIZE(__pyx_args)) {
50124         case  0:
50125         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
50126         if (likely(values[0])) kw_args--;
50127         else goto __pyx_L5_argtuple_error;
50128         case  1:
50129         if (kw_args > 0) {
50130           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__statuses);
50131           if (value) { values[1] = value; kw_args--; }
50132         }
50133       }
50134       if (unlikely(kw_args > 0)) {
50135         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "testall") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50136       }
50137     } else {
50138       switch (PyTuple_GET_SIZE(__pyx_args)) {
50139         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50140         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50141         break;
50142         default: goto __pyx_L5_argtuple_error;
50143       }
50144     }
50145     __pyx_v_requests = values[0];
50146     __pyx_v_statuses = values[1];
50147   }
50148   goto __pyx_L4_argument_unpacking_done;
50149   __pyx_L5_argtuple_error:;
50150   __Pyx_RaiseArgtupleInvalid("testall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50151   __pyx_L3_error:;
50152   __Pyx_AddTraceback("mpi4py.MPI.Request.testall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50153   __Pyx_RefNannyFinishContext();
50154   return NULL;
50155   __pyx_L4_argument_unpacking_done:;
50156 
50157   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":272
50158  *         Test for completion of all previously initiated requests
50159  *         """
50160  *         cdef int flag = 0             # <<<<<<<<<<<<<<
50161  *         cdef msg = PyMPI_testall(requests, &flag, statuses)
50162  *         return (<bint>flag, msg)
50163  */
50164   __pyx_v_flag = 0;
50165 
50166   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":273
50167  *         """
50168  *         cdef int flag = 0
50169  *         cdef msg = PyMPI_testall(requests, &flag, statuses)             # <<<<<<<<<<<<<<
50170  *         return (<bint>flag, msg)
50171  *
50172  */
50173   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_testall(__pyx_v_requests, (&__pyx_v_flag), __pyx_v_statuses); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50174   __Pyx_GOTREF(__pyx_t_1);
50175   __pyx_v_msg = __pyx_t_1;
50176   __pyx_t_1 = 0;
50177 
50178   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":274
50179  *         cdef int flag = 0
50180  *         cdef msg = PyMPI_testall(requests, &flag, statuses)
50181  *         return (<bint>flag, msg)             # <<<<<<<<<<<<<<
50182  *
50183  *
50184  */
50185   __Pyx_XDECREF(__pyx_r);
50186   __pyx_t_1 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50187   __Pyx_GOTREF(__pyx_t_1);
50188   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50189   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
50190   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
50191   __Pyx_GIVEREF(__pyx_t_1);
50192   __Pyx_INCREF(__pyx_v_msg);
50193   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_msg);
50194   __Pyx_GIVEREF(__pyx_v_msg);
50195   __pyx_t_1 = 0;
50196   __pyx_r = ((PyObject *)__pyx_t_2);
50197   __pyx_t_2 = 0;
50198   goto __pyx_L0;
50199 
50200   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50201   goto __pyx_L0;
50202   __pyx_L1_error:;
50203   __Pyx_XDECREF(__pyx_t_1);
50204   __Pyx_XDECREF(__pyx_t_2);
50205   __Pyx_AddTraceback("mpi4py.MPI.Request.testall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50206   __pyx_r = NULL;
50207   __pyx_L0:;
50208   __Pyx_XDECREF(__pyx_v_msg);
50209   __Pyx_XGIVEREF(__pyx_r);
50210   __Pyx_RefNannyFinishContext();
50211   return __pyx_r;
50212 }
50213 
50214 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":283
50215  *     """
50216  *
50217  *     def __cinit__(self, Request request=None):             # <<<<<<<<<<<<<<
50218  *         if self.ob_mpi != MPI_REQUEST_NULL:
50219  *             <void>(<Prequest?>request)
50220  */
50221 
50222 static int __pyx_pf_6mpi4py_3MPI_8Prequest___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Prequest___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)50223 static int __pyx_pf_6mpi4py_3MPI_8Prequest___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50224   struct PyMPIRequestObject *__pyx_v_request = 0;
50225   int __pyx_r;
50226   __Pyx_RefNannyDeclarations
50227   int __pyx_t_1;
50228   int __pyx_lineno = 0;
50229   const char *__pyx_filename = NULL;
50230   int __pyx_clineno = 0;
50231   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__request,0};
50232   __Pyx_RefNannySetupContext("__cinit__");
50233   {
50234     PyObject* values[1] = {0};
50235     values[0] = (PyObject *)((struct PyMPIRequestObject *)Py_None);
50236     if (unlikely(__pyx_kwds)) {
50237       Py_ssize_t kw_args;
50238       switch (PyTuple_GET_SIZE(__pyx_args)) {
50239         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50240         case  0: break;
50241         default: goto __pyx_L5_argtuple_error;
50242       }
50243       kw_args = PyDict_Size(__pyx_kwds);
50244       switch (PyTuple_GET_SIZE(__pyx_args)) {
50245         case  0:
50246         if (kw_args > 0) {
50247           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__request);
50248           if (value) { values[0] = value; kw_args--; }
50249         }
50250       }
50251       if (unlikely(kw_args > 0)) {
50252         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50253       }
50254     } else {
50255       switch (PyTuple_GET_SIZE(__pyx_args)) {
50256         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50257         case  0: break;
50258         default: goto __pyx_L5_argtuple_error;
50259       }
50260     }
50261     __pyx_v_request = ((struct PyMPIRequestObject *)values[0]);
50262   }
50263   goto __pyx_L4_argument_unpacking_done;
50264   __pyx_L5_argtuple_error:;
50265   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50266   __pyx_L3_error:;
50267   __Pyx_AddTraceback("mpi4py.MPI.Prequest.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
50268   __Pyx_RefNannyFinishContext();
50269   return -1;
50270   __pyx_L4_argument_unpacking_done:;
50271   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), __pyx_ptype_6mpi4py_3MPI_Request, 1, "request", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50272 
50273   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":284
50274  *
50275  *     def __cinit__(self, Request request=None):
50276  *         if self.ob_mpi != MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
50277  *             <void>(<Prequest?>request)
50278  *
50279  */
50280   __pyx_t_1 = (((struct PyMPIPrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi != MPI_REQUEST_NULL);
50281   if (__pyx_t_1) {
50282 
50283     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":285
50284  *     def __cinit__(self, Request request=None):
50285  *         if self.ob_mpi != MPI_REQUEST_NULL:
50286  *             <void>(<Prequest?>request)             # <<<<<<<<<<<<<<
50287  *
50288  *     def Start(self):
50289  */
50290     if (!(likely(__Pyx_TypeTest(((PyObject *)__pyx_v_request), __pyx_ptype_6mpi4py_3MPI_Prequest)))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50291     ((void)((struct PyMPIPrequestObject *)__pyx_v_request));
50292     goto __pyx_L6;
50293   }
50294   __pyx_L6:;
50295 
50296   __pyx_r = 0;
50297   goto __pyx_L0;
50298   __pyx_L1_error:;
50299   __Pyx_AddTraceback("mpi4py.MPI.Prequest.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
50300   __pyx_r = -1;
50301   __pyx_L0:;
50302   __Pyx_RefNannyFinishContext();
50303   return __pyx_r;
50304 }
50305 
50306 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":287
50307  *             <void>(<Prequest?>request)
50308  *
50309  *     def Start(self):             # <<<<<<<<<<<<<<
50310  *         """
50311  *         Initiate a communication with a persistent request
50312  */
50313 
50314 static PyObject *__pyx_pf_6mpi4py_3MPI_8Prequest_1Start(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50315 static char __pyx_doc_6mpi4py_3MPI_8Prequest_1Start[] = "Prequest.Start(self)\n\n        Initiate a communication with a persistent request\n        ";
__pyx_pf_6mpi4py_3MPI_8Prequest_1Start(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)50316 static PyObject *__pyx_pf_6mpi4py_3MPI_8Prequest_1Start(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50317   PyObject *__pyx_r = NULL;
50318   __Pyx_RefNannyDeclarations
50319   int __pyx_t_1;
50320   int __pyx_lineno = 0;
50321   const char *__pyx_filename = NULL;
50322   int __pyx_clineno = 0;
50323   __Pyx_RefNannySetupContext("Start");
50324   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
50325     __Pyx_RaiseArgtupleInvalid("Start", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
50326   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Start", 0))) return NULL;
50327 
50328   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":291
50329  *         Initiate a communication with a persistent request
50330  *         """
50331  *         with nogil: CHKERR( MPI_Start(&self.ob_mpi) )             # <<<<<<<<<<<<<<
50332  *
50333  *     @classmethod
50334  */
50335   {
50336       #ifdef WITH_THREAD
50337       PyThreadState *_save = NULL;
50338       #endif
50339       Py_UNBLOCK_THREADS
50340       /*try:*/ {
50341         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Start((&((struct PyMPIPrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L6;}
50342       }
50343       /*finally:*/ {
50344         int __pyx_why;
50345         __pyx_why = 0; goto __pyx_L7;
50346         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
50347         __pyx_L7:;
50348         Py_BLOCK_THREADS
50349         switch (__pyx_why) {
50350           case 4: goto __pyx_L1_error;
50351         }
50352       }
50353   }
50354 
50355   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50356   goto __pyx_L0;
50357   __pyx_L1_error:;
50358   __Pyx_AddTraceback("mpi4py.MPI.Prequest.Start", __pyx_clineno, __pyx_lineno, __pyx_filename);
50359   __pyx_r = NULL;
50360   __pyx_L0:;
50361   __Pyx_XGIVEREF(__pyx_r);
50362   __Pyx_RefNannyFinishContext();
50363   return __pyx_r;
50364 }
50365 
50366 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":294
50367  *
50368  *     @classmethod
50369  *     def Startall(cls, requests):             # <<<<<<<<<<<<<<
50370  *         """
50371  *         Start a collection of persistent requests
50372  */
50373 
50374 static PyObject *__pyx_pf_6mpi4py_3MPI_8Prequest_2Startall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50375 static char __pyx_doc_6mpi4py_3MPI_8Prequest_2Startall[] = "Prequest.Startall(type cls, requests)\n\n        Start a collection of persistent requests\n        ";
__pyx_pf_6mpi4py_3MPI_8Prequest_2Startall(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)50376 static PyObject *__pyx_pf_6mpi4py_3MPI_8Prequest_2Startall(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50377   PyObject *__pyx_v_requests = 0;
50378   int __pyx_v_count;
50379   MPI_Request *__pyx_v_irequests;
50380   PyObject *__pyx_v_tmp = 0;
50381   PyObject *__pyx_r = NULL;
50382   __Pyx_RefNannyDeclarations
50383   PyObject *__pyx_t_1 = NULL;
50384   PyObject *__pyx_t_2 = NULL;
50385   int __pyx_t_3;
50386   int __pyx_lineno = 0;
50387   const char *__pyx_filename = NULL;
50388   int __pyx_clineno = 0;
50389   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__requests,0};
50390   __Pyx_RefNannySetupContext("Startall");
50391   {
50392     PyObject* values[1] = {0};
50393     if (unlikely(__pyx_kwds)) {
50394       Py_ssize_t kw_args;
50395       switch (PyTuple_GET_SIZE(__pyx_args)) {
50396         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50397         case  0: break;
50398         default: goto __pyx_L5_argtuple_error;
50399       }
50400       kw_args = PyDict_Size(__pyx_kwds);
50401       switch (PyTuple_GET_SIZE(__pyx_args)) {
50402         case  0:
50403         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requests);
50404         if (likely(values[0])) kw_args--;
50405         else goto __pyx_L5_argtuple_error;
50406       }
50407       if (unlikely(kw_args > 0)) {
50408         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Startall") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50409       }
50410     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
50411       goto __pyx_L5_argtuple_error;
50412     } else {
50413       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50414     }
50415     __pyx_v_requests = values[0];
50416   }
50417   goto __pyx_L4_argument_unpacking_done;
50418   __pyx_L5_argtuple_error:;
50419   __Pyx_RaiseArgtupleInvalid("Startall", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50420   __pyx_L3_error:;
50421   __Pyx_AddTraceback("mpi4py.MPI.Prequest.Startall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50422   __Pyx_RefNannyFinishContext();
50423   return NULL;
50424   __pyx_L4_argument_unpacking_done:;
50425 
50426   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":298
50427  *         Start a collection of persistent requests
50428  *         """
50429  *         cdef int count = 0             # <<<<<<<<<<<<<<
50430  *         cdef MPI_Request *irequests = NULL
50431  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
50432  */
50433   __pyx_v_count = 0;
50434 
50435   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":299
50436  *         """
50437  *         cdef int count = 0
50438  *         cdef MPI_Request *irequests = NULL             # <<<<<<<<<<<<<<
50439  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
50440  *         #
50441  */
50442   __pyx_v_irequests = NULL;
50443 
50444   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":300
50445  *         cdef int count = 0
50446  *         cdef MPI_Request *irequests = NULL
50447  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)             # <<<<<<<<<<<<<<
50448  *         #
50449  *         try:
50450  */
50451   __pyx_t_1 = Py_None;
50452   __Pyx_INCREF(__pyx_t_1);
50453   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_acquire_rs(__pyx_v_requests, __pyx_t_1, (&__pyx_v_count), (&__pyx_v_irequests), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50454   __Pyx_GOTREF(__pyx_t_2);
50455   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50456   __pyx_v_tmp = __pyx_t_2;
50457   __pyx_t_2 = 0;
50458 
50459   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":302
50460  *         cdef tmp = acquire_rs(requests, None, &count, &irequests, NULL)
50461  *         #
50462  *         try:             # <<<<<<<<<<<<<<
50463  *             with nogil: CHKERR( MPI_Startall(count, irequests) )
50464  *         finally:
50465  */
50466   /*try:*/ {
50467 
50468     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":303
50469  *         #
50470  *         try:
50471  *             with nogil: CHKERR( MPI_Startall(count, irequests) )             # <<<<<<<<<<<<<<
50472  *         finally:
50473  *             release_rs(requests, None, count, irequests, NULL)
50474  */
50475     {
50476         #ifdef WITH_THREAD
50477         PyThreadState *_save = NULL;
50478         #endif
50479         Py_UNBLOCK_THREADS
50480         /*try:*/ {
50481           __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Startall(__pyx_v_count, __pyx_v_irequests)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L10;}
50482         }
50483         /*finally:*/ {
50484           int __pyx_why;
50485           __pyx_why = 0; goto __pyx_L11;
50486           __pyx_L10: __pyx_why = 4; goto __pyx_L11;
50487           __pyx_L11:;
50488           Py_BLOCK_THREADS
50489           switch (__pyx_why) {
50490             case 4: goto __pyx_L7;
50491           }
50492         }
50493     }
50494   }
50495 
50496   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":305
50497  *             with nogil: CHKERR( MPI_Startall(count, irequests) )
50498  *         finally:
50499  *             release_rs(requests, None, count, irequests, NULL)             # <<<<<<<<<<<<<<
50500  *
50501  *
50502  */
50503   /*finally:*/ {
50504     int __pyx_why;
50505     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
50506     int __pyx_exc_lineno;
50507     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
50508     __pyx_why = 0; goto __pyx_L8;
50509     __pyx_L7: {
50510       __pyx_why = 4;
50511       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
50512       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
50513       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
50514       __pyx_exc_lineno = __pyx_lineno;
50515       goto __pyx_L8;
50516     }
50517     __pyx_L8:;
50518     __pyx_t_2 = Py_None;
50519     __Pyx_INCREF(__pyx_t_2);
50520     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_release_rs(__pyx_v_requests, __pyx_t_2, __pyx_v_count, __pyx_v_irequests, NULL); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
50521     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
50522     goto __pyx_L14;
50523     __pyx_L13_error:;
50524     if (__pyx_why == 4) {
50525       Py_XDECREF(__pyx_exc_type);
50526       Py_XDECREF(__pyx_exc_value);
50527       Py_XDECREF(__pyx_exc_tb);
50528     }
50529     goto __pyx_L1_error;
50530     __pyx_L14:;
50531     switch (__pyx_why) {
50532       case 4: {
50533         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
50534         __pyx_lineno = __pyx_exc_lineno;
50535         __pyx_exc_type = 0;
50536         __pyx_exc_value = 0;
50537         __pyx_exc_tb = 0;
50538         goto __pyx_L1_error;
50539       }
50540     }
50541   }
50542 
50543   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50544   goto __pyx_L0;
50545   __pyx_L1_error:;
50546   __Pyx_XDECREF(__pyx_t_1);
50547   __Pyx_XDECREF(__pyx_t_2);
50548   __Pyx_AddTraceback("mpi4py.MPI.Prequest.Startall", __pyx_clineno, __pyx_lineno, __pyx_filename);
50549   __pyx_r = NULL;
50550   __pyx_L0:;
50551   __Pyx_XDECREF(__pyx_v_tmp);
50552   __Pyx_XGIVEREF(__pyx_r);
50553   __Pyx_RefNannyFinishContext();
50554   return __pyx_r;
50555 }
50556 
50557 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":315
50558  *     """
50559  *
50560  *     def __cinit__(self, Request request=None):             # <<<<<<<<<<<<<<
50561  *         self.ob_grequest = self.ob_mpi
50562  *         if self.ob_mpi != MPI_REQUEST_NULL:
50563  */
50564 
50565 static int __pyx_pf_6mpi4py_3MPI_8Grequest___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Grequest___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)50566 static int __pyx_pf_6mpi4py_3MPI_8Grequest___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50567   struct PyMPIRequestObject *__pyx_v_request = 0;
50568   int __pyx_r;
50569   __Pyx_RefNannyDeclarations
50570   int __pyx_t_1;
50571   int __pyx_lineno = 0;
50572   const char *__pyx_filename = NULL;
50573   int __pyx_clineno = 0;
50574   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__request,0};
50575   __Pyx_RefNannySetupContext("__cinit__");
50576   {
50577     PyObject* values[1] = {0};
50578     values[0] = (PyObject *)((struct PyMPIRequestObject *)Py_None);
50579     if (unlikely(__pyx_kwds)) {
50580       Py_ssize_t kw_args;
50581       switch (PyTuple_GET_SIZE(__pyx_args)) {
50582         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50583         case  0: break;
50584         default: goto __pyx_L5_argtuple_error;
50585       }
50586       kw_args = PyDict_Size(__pyx_kwds);
50587       switch (PyTuple_GET_SIZE(__pyx_args)) {
50588         case  0:
50589         if (kw_args > 0) {
50590           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__request);
50591           if (value) { values[0] = value; kw_args--; }
50592         }
50593       }
50594       if (unlikely(kw_args > 0)) {
50595         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50596       }
50597     } else {
50598       switch (PyTuple_GET_SIZE(__pyx_args)) {
50599         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50600         case  0: break;
50601         default: goto __pyx_L5_argtuple_error;
50602       }
50603     }
50604     __pyx_v_request = ((struct PyMPIRequestObject *)values[0]);
50605   }
50606   goto __pyx_L4_argument_unpacking_done;
50607   __pyx_L5_argtuple_error:;
50608   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50609   __pyx_L3_error:;
50610   __Pyx_AddTraceback("mpi4py.MPI.Grequest.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
50611   __Pyx_RefNannyFinishContext();
50612   return -1;
50613   __pyx_L4_argument_unpacking_done:;
50614   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), __pyx_ptype_6mpi4py_3MPI_Request, 1, "request", 0))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50615 
50616   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":316
50617  *
50618  *     def __cinit__(self, Request request=None):
50619  *         self.ob_grequest = self.ob_mpi             # <<<<<<<<<<<<<<
50620  *         if self.ob_mpi != MPI_REQUEST_NULL:
50621  *             <void>(<Grequest?>request)
50622  */
50623   ((struct PyMPIGrequestObject *)__pyx_v_self)->ob_grequest = ((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi;
50624 
50625   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":317
50626  *     def __cinit__(self, Request request=None):
50627  *         self.ob_grequest = self.ob_mpi
50628  *         if self.ob_mpi != MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
50629  *             <void>(<Grequest?>request)
50630  *
50631  */
50632   __pyx_t_1 = (((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi != MPI_REQUEST_NULL);
50633   if (__pyx_t_1) {
50634 
50635     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":318
50636  *         self.ob_grequest = self.ob_mpi
50637  *         if self.ob_mpi != MPI_REQUEST_NULL:
50638  *             <void>(<Grequest?>request)             # <<<<<<<<<<<<<<
50639  *
50640  *     @classmethod
50641  */
50642     if (!(likely(__Pyx_TypeTest(((PyObject *)__pyx_v_request), __pyx_ptype_6mpi4py_3MPI_Grequest)))) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50643     ((void)((struct PyMPIGrequestObject *)__pyx_v_request));
50644     goto __pyx_L6;
50645   }
50646   __pyx_L6:;
50647 
50648   __pyx_r = 0;
50649   goto __pyx_L0;
50650   __pyx_L1_error:;
50651   __Pyx_AddTraceback("mpi4py.MPI.Grequest.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
50652   __pyx_r = -1;
50653   __pyx_L0:;
50654   __Pyx_RefNannyFinishContext();
50655   return __pyx_r;
50656 }
50657 
50658 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":321
50659  *
50660  *     @classmethod
50661  *     def Start(cls, query_fn, free_fn, cancel_fn,             # <<<<<<<<<<<<<<
50662  *               args=None, kargs=None):
50663  *         """
50664  */
50665 
50666 static PyObject *__pyx_pf_6mpi4py_3MPI_8Grequest_1Start(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50667 static char __pyx_doc_6mpi4py_3MPI_8Grequest_1Start[] = "Grequest.Start(type cls, query_fn, free_fn, cancel_fn, args=None, kargs=None)\n\n        Create and return a user-defined request\n        ";
__pyx_pf_6mpi4py_3MPI_8Grequest_1Start(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)50668 static PyObject *__pyx_pf_6mpi4py_3MPI_8Grequest_1Start(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50669   PyObject *__pyx_v_query_fn = 0;
50670   PyObject *__pyx_v_free_fn = 0;
50671   PyObject *__pyx_v_cancel_fn = 0;
50672   PyObject *__pyx_v_args = 0;
50673   PyObject *__pyx_v_kargs = 0;
50674   struct PyMPIGrequestObject *__pyx_v_request = 0;
50675   struct __pyx_obj_6mpi4py_3MPI__p_greq *__pyx_v_state = 0;
50676   PyObject *__pyx_r = NULL;
50677   __Pyx_RefNannyDeclarations
50678   PyObject *__pyx_t_1 = NULL;
50679   PyObject *__pyx_t_2 = NULL;
50680   int __pyx_t_3;
50681   int __pyx_lineno = 0;
50682   const char *__pyx_filename = NULL;
50683   int __pyx_clineno = 0;
50684   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__query_fn,&__pyx_n_s__free_fn,&__pyx_n_s__cancel_fn,&__pyx_n_s__args,&__pyx_n_s__kargs,0};
50685   __Pyx_RefNannySetupContext("Start");
50686   {
50687     PyObject* values[5] = {0,0,0,0,0};
50688 
50689     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":322
50690  *     @classmethod
50691  *     def Start(cls, query_fn, free_fn, cancel_fn,
50692  *               args=None, kargs=None):             # <<<<<<<<<<<<<<
50693  *         """
50694  *         Create and return a user-defined request
50695  */
50696     values[3] = ((PyObject *)Py_None);
50697     values[4] = ((PyObject *)Py_None);
50698     if (unlikely(__pyx_kwds)) {
50699       Py_ssize_t kw_args;
50700       switch (PyTuple_GET_SIZE(__pyx_args)) {
50701         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
50702         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
50703         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50704         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50705         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50706         case  0: break;
50707         default: goto __pyx_L5_argtuple_error;
50708       }
50709       kw_args = PyDict_Size(__pyx_kwds);
50710       switch (PyTuple_GET_SIZE(__pyx_args)) {
50711         case  0:
50712         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__query_fn);
50713         if (likely(values[0])) kw_args--;
50714         else goto __pyx_L5_argtuple_error;
50715         case  1:
50716         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__free_fn);
50717         if (likely(values[1])) kw_args--;
50718         else {
50719           __Pyx_RaiseArgtupleInvalid("Start", 0, 3, 5, 1); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50720         }
50721         case  2:
50722         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cancel_fn);
50723         if (likely(values[2])) kw_args--;
50724         else {
50725           __Pyx_RaiseArgtupleInvalid("Start", 0, 3, 5, 2); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50726         }
50727         case  3:
50728         if (kw_args > 0) {
50729           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__args);
50730           if (value) { values[3] = value; kw_args--; }
50731         }
50732         case  4:
50733         if (kw_args > 0) {
50734           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__kargs);
50735           if (value) { values[4] = value; kw_args--; }
50736         }
50737       }
50738       if (unlikely(kw_args > 0)) {
50739         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Start") < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50740       }
50741     } else {
50742       switch (PyTuple_GET_SIZE(__pyx_args)) {
50743         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
50744         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
50745         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
50746         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
50747         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
50748         break;
50749         default: goto __pyx_L5_argtuple_error;
50750       }
50751     }
50752     __pyx_v_query_fn = values[0];
50753     __pyx_v_free_fn = values[1];
50754     __pyx_v_cancel_fn = values[2];
50755     __pyx_v_args = values[3];
50756     __pyx_v_kargs = values[4];
50757   }
50758   goto __pyx_L4_argument_unpacking_done;
50759   __pyx_L5_argtuple_error:;
50760   __Pyx_RaiseArgtupleInvalid("Start", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
50761   __pyx_L3_error:;
50762   __Pyx_AddTraceback("mpi4py.MPI.Grequest.Start", __pyx_clineno, __pyx_lineno, __pyx_filename);
50763   __Pyx_RefNannyFinishContext();
50764   return NULL;
50765   __pyx_L4_argument_unpacking_done:;
50766 
50767   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":326
50768  *         Create and return a user-defined request
50769  *         """
50770  *         cdef Grequest request = <Grequest>cls()             # <<<<<<<<<<<<<<
50771  *         cdef _p_greq state = \
50772  *              _p_greq(query_fn, free_fn, cancel_fn, args, kargs)
50773  */
50774   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50775   __Pyx_GOTREF(__pyx_t_1);
50776   __Pyx_INCREF(((PyObject *)((struct PyMPIGrequestObject *)__pyx_t_1)));
50777   __pyx_v_request = ((struct PyMPIGrequestObject *)__pyx_t_1);
50778   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50779 
50780   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":328
50781  *         cdef Grequest request = <Grequest>cls()
50782  *         cdef _p_greq state = \
50783  *              _p_greq(query_fn, free_fn, cancel_fn, args, kargs)             # <<<<<<<<<<<<<<
50784  *         with nogil: CHKERR( MPI_Grequest_start(
50785  *             greq_query_fn, greq_free_fn, greq_cancel_fn,
50786  */
50787   __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50788   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
50789   __Pyx_INCREF(__pyx_v_query_fn);
50790   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_query_fn);
50791   __Pyx_GIVEREF(__pyx_v_query_fn);
50792   __Pyx_INCREF(__pyx_v_free_fn);
50793   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_free_fn);
50794   __Pyx_GIVEREF(__pyx_v_free_fn);
50795   __Pyx_INCREF(__pyx_v_cancel_fn);
50796   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_cancel_fn);
50797   __Pyx_GIVEREF(__pyx_v_cancel_fn);
50798   __Pyx_INCREF(__pyx_v_args);
50799   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_args);
50800   __Pyx_GIVEREF(__pyx_v_args);
50801   __Pyx_INCREF(__pyx_v_kargs);
50802   PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_kargs);
50803   __Pyx_GIVEREF(__pyx_v_kargs);
50804   __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_greq)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50805   __Pyx_GOTREF(__pyx_t_2);
50806   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
50807   __pyx_v_state = ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)__pyx_t_2);
50808   __pyx_t_2 = 0;
50809 
50810   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":329
50811  *         cdef _p_greq state = \
50812  *              _p_greq(query_fn, free_fn, cancel_fn, args, kargs)
50813  *         with nogil: CHKERR( MPI_Grequest_start(             # <<<<<<<<<<<<<<
50814  *             greq_query_fn, greq_free_fn, greq_cancel_fn,
50815  *             <void*>state, &request.ob_mpi) )
50816  */
50817   {
50818       #ifdef WITH_THREAD
50819       PyThreadState *_save = NULL;
50820       #endif
50821       Py_UNBLOCK_THREADS
50822       /*try:*/ {
50823 
50824         /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":331
50825  *         with nogil: CHKERR( MPI_Grequest_start(
50826  *             greq_query_fn, greq_free_fn, greq_cancel_fn,
50827  *             <void*>state, &request.ob_mpi) )             # <<<<<<<<<<<<<<
50828  *         Py_INCREF(state)
50829  *         request.ob_grequest = request.ob_mpi
50830  */
50831         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Grequest_start(__pyx_f_6mpi4py_3MPI_greq_query_fn, __pyx_f_6mpi4py_3MPI_greq_free_fn, __pyx_f_6mpi4py_3MPI_greq_cancel_fn, ((void *)__pyx_v_state), (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L7;}
50832       }
50833 
50834       /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":329
50835  *         cdef _p_greq state = \
50836  *              _p_greq(query_fn, free_fn, cancel_fn, args, kargs)
50837  *         with nogil: CHKERR( MPI_Grequest_start(             # <<<<<<<<<<<<<<
50838  *             greq_query_fn, greq_free_fn, greq_cancel_fn,
50839  *             <void*>state, &request.ob_mpi) )
50840  */
50841       /*finally:*/ {
50842         int __pyx_why;
50843         __pyx_why = 0; goto __pyx_L8;
50844         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
50845         __pyx_L8:;
50846         Py_BLOCK_THREADS
50847         switch (__pyx_why) {
50848           case 4: goto __pyx_L1_error;
50849         }
50850       }
50851   }
50852 
50853   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":332
50854  *             greq_query_fn, greq_free_fn, greq_cancel_fn,
50855  *             <void*>state, &request.ob_mpi) )
50856  *         Py_INCREF(state)             # <<<<<<<<<<<<<<
50857  *         request.ob_grequest = request.ob_mpi
50858  *         return request
50859  */
50860   Py_INCREF(((PyObject *)__pyx_v_state));
50861 
50862   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":333
50863  *             <void*>state, &request.ob_mpi) )
50864  *         Py_INCREF(state)
50865  *         request.ob_grequest = request.ob_mpi             # <<<<<<<<<<<<<<
50866  *         return request
50867  *
50868  */
50869   __pyx_v_request->ob_grequest = __pyx_v_request->__pyx_base.ob_mpi;
50870 
50871   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":334
50872  *         Py_INCREF(state)
50873  *         request.ob_grequest = request.ob_mpi
50874  *         return request             # <<<<<<<<<<<<<<
50875  *
50876  *     def Complete(self):
50877  */
50878   __Pyx_XDECREF(__pyx_r);
50879   __Pyx_INCREF(((PyObject *)__pyx_v_request));
50880   __pyx_r = ((PyObject *)__pyx_v_request);
50881   goto __pyx_L0;
50882 
50883   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
50884   goto __pyx_L0;
50885   __pyx_L1_error:;
50886   __Pyx_XDECREF(__pyx_t_1);
50887   __Pyx_XDECREF(__pyx_t_2);
50888   __Pyx_AddTraceback("mpi4py.MPI.Grequest.Start", __pyx_clineno, __pyx_lineno, __pyx_filename);
50889   __pyx_r = NULL;
50890   __pyx_L0:;
50891   __Pyx_XDECREF((PyObject *)__pyx_v_request);
50892   __Pyx_XDECREF((PyObject *)__pyx_v_state);
50893   __Pyx_XGIVEREF(__pyx_r);
50894   __Pyx_RefNannyFinishContext();
50895   return __pyx_r;
50896 }
50897 
50898 /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":336
50899  *         return request
50900  *
50901  *     def Complete(self):             # <<<<<<<<<<<<<<
50902  *         """
50903  *         Notify that a user-defined request is complete
50904  */
50905 
50906 static PyObject *__pyx_pf_6mpi4py_3MPI_8Grequest_2Complete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50907 static char __pyx_doc_6mpi4py_3MPI_8Grequest_2Complete[] = "Grequest.Complete(self)\n\n        Notify that a user-defined request is complete\n        ";
__pyx_pf_6mpi4py_3MPI_8Grequest_2Complete(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)50908 static PyObject *__pyx_pf_6mpi4py_3MPI_8Grequest_2Complete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50909   MPI_Request __pyx_v_grequest;
50910   PyObject *__pyx_r = NULL;
50911   __Pyx_RefNannyDeclarations
50912   int __pyx_t_1;
50913   PyObject *__pyx_t_2 = NULL;
50914   PyObject *__pyx_t_3 = NULL;
50915   int __pyx_t_4;
50916   int __pyx_lineno = 0;
50917   const char *__pyx_filename = NULL;
50918   int __pyx_clineno = 0;
50919   __Pyx_RefNannySetupContext("Complete");
50920   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
50921     __Pyx_RaiseArgtupleInvalid("Complete", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
50922   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Complete", 0))) return NULL;
50923 
50924   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":340
50925  *         Notify that a user-defined request is complete
50926  *         """
50927  *         if self.ob_mpi != MPI_REQUEST_NULL:             # <<<<<<<<<<<<<<
50928  *             if self.ob_mpi != self.ob_grequest:
50929  *                 raise MPIException(MPI_ERR_REQUEST)
50930  */
50931   __pyx_t_1 = (((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi != MPI_REQUEST_NULL);
50932   if (__pyx_t_1) {
50933 
50934     /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":341
50935  *         """
50936  *         if self.ob_mpi != MPI_REQUEST_NULL:
50937  *             if self.ob_mpi != self.ob_grequest:             # <<<<<<<<<<<<<<
50938  *                 raise MPIException(MPI_ERR_REQUEST)
50939  *         cdef MPI_Request grequest = self.ob_grequest
50940  */
50941     __pyx_t_1 = (((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi != ((struct PyMPIGrequestObject *)__pyx_v_self)->ob_grequest);
50942     if (__pyx_t_1) {
50943 
50944       /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":342
50945  *         if self.ob_mpi != MPI_REQUEST_NULL:
50946  *             if self.ob_mpi != self.ob_grequest:
50947  *                 raise MPIException(MPI_ERR_REQUEST)             # <<<<<<<<<<<<<<
50948  *         cdef MPI_Request grequest = self.ob_grequest
50949  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
50950  */
50951       __pyx_t_2 = PyInt_FromLong(MPI_ERR_REQUEST); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50952       __Pyx_GOTREF(__pyx_t_2);
50953       __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50954       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
50955       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
50956       __Pyx_GIVEREF(__pyx_t_2);
50957       __pyx_t_2 = 0;
50958       __pyx_t_2 = PyObject_Call(__pyx_v_6mpi4py_3MPI_MPIException, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50959       __Pyx_GOTREF(__pyx_t_2);
50960       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
50961       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
50962       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
50963       {__pyx_filename = __pyx_f[21]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
50964       goto __pyx_L6;
50965     }
50966     __pyx_L6:;
50967     goto __pyx_L5;
50968   }
50969   __pyx_L5:;
50970 
50971   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":343
50972  *             if self.ob_mpi != self.ob_grequest:
50973  *                 raise MPIException(MPI_ERR_REQUEST)
50974  *         cdef MPI_Request grequest = self.ob_grequest             # <<<<<<<<<<<<<<
50975  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
50976  *         with nogil: CHKERR( MPI_Grequest_complete(grequest) )
50977  */
50978   __pyx_v_grequest = ((struct PyMPIGrequestObject *)__pyx_v_self)->ob_grequest;
50979 
50980   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":344
50981  *                 raise MPIException(MPI_ERR_REQUEST)
50982  *         cdef MPI_Request grequest = self.ob_grequest
50983  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??             # <<<<<<<<<<<<<<
50984  *         with nogil: CHKERR( MPI_Grequest_complete(grequest) )
50985  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
50986  */
50987   ((struct PyMPIGrequestObject *)__pyx_v_self)->ob_grequest = ((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi;
50988 
50989   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":345
50990  *         cdef MPI_Request grequest = self.ob_grequest
50991  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
50992  *         with nogil: CHKERR( MPI_Grequest_complete(grequest) )             # <<<<<<<<<<<<<<
50993  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
50994  *
50995  */
50996   {
50997       #ifdef WITH_THREAD
50998       PyThreadState *_save = NULL;
50999       #endif
51000       Py_UNBLOCK_THREADS
51001       /*try:*/ {
51002         __pyx_t_4 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Grequest_complete(__pyx_v_grequest)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L8;}
51003       }
51004       /*finally:*/ {
51005         int __pyx_why;
51006         __pyx_why = 0; goto __pyx_L9;
51007         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
51008         __pyx_L9:;
51009         Py_BLOCK_THREADS
51010         switch (__pyx_why) {
51011           case 4: goto __pyx_L1_error;
51012         }
51013       }
51014   }
51015 
51016   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":346
51017  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??
51018  *         with nogil: CHKERR( MPI_Grequest_complete(grequest) )
51019  *         self.ob_grequest = self.ob_mpi ## or MPI_REQUEST_NULL ??             # <<<<<<<<<<<<<<
51020  *
51021  *
51022  */
51023   ((struct PyMPIGrequestObject *)__pyx_v_self)->ob_grequest = ((struct PyMPIGrequestObject *)__pyx_v_self)->__pyx_base.ob_mpi;
51024 
51025   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51026   goto __pyx_L0;
51027   __pyx_L1_error:;
51028   __Pyx_XDECREF(__pyx_t_2);
51029   __Pyx_XDECREF(__pyx_t_3);
51030   __Pyx_AddTraceback("mpi4py.MPI.Grequest.Complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
51031   __pyx_r = NULL;
51032   __pyx_L0:;
51033   __Pyx_XGIVEREF(__pyx_r);
51034   __Pyx_RefNannyFinishContext();
51035   return __pyx_r;
51036 }
51037 
51038 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":7
51039  *     """
51040  *
51041  *     def __cinit__(self):             # <<<<<<<<<<<<<<
51042  *         self.ob_mpi = MPI_INFO_NULL
51043  *
51044  */
51045 
51046 static int __pyx_pf_6mpi4py_3MPI_4Info___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51047 static int __pyx_pf_6mpi4py_3MPI_4Info___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51048   int __pyx_r;
51049   __Pyx_RefNannyDeclarations
51050   __Pyx_RefNannySetupContext("__cinit__");
51051   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
51052     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
51053   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
51054 
51055   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":8
51056  *
51057  *     def __cinit__(self):
51058  *         self.ob_mpi = MPI_INFO_NULL             # <<<<<<<<<<<<<<
51059  *
51060  *     def __dealloc__(self):
51061  */
51062   ((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi = MPI_INFO_NULL;
51063 
51064   __pyx_r = 0;
51065   __Pyx_RefNannyFinishContext();
51066   return __pyx_r;
51067 }
51068 
51069 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":10
51070  *         self.ob_mpi = MPI_INFO_NULL
51071  *
51072  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
51073  *         if not (self.flags & PyMPI_OWNED): return
51074  *         CHKERR( del_Info(&self.ob_mpi) )
51075  */
51076 
51077 static void __pyx_pf_6mpi4py_3MPI_4Info_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_1__dealloc__(PyObject * __pyx_v_self)51078 static void __pyx_pf_6mpi4py_3MPI_4Info_1__dealloc__(PyObject *__pyx_v_self) {
51079   __Pyx_RefNannyDeclarations
51080   int __pyx_t_1;
51081   int __pyx_t_2;
51082   int __pyx_lineno = 0;
51083   const char *__pyx_filename = NULL;
51084   int __pyx_clineno = 0;
51085   __Pyx_RefNannySetupContext("__dealloc__");
51086 
51087   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":11
51088  *
51089  *     def __dealloc__(self):
51090  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
51091  *         CHKERR( del_Info(&self.ob_mpi) )
51092  *
51093  */
51094   __pyx_t_1 = (!(((struct PyMPIInfoObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
51095   if (__pyx_t_1) {
51096     goto __pyx_L0;
51097     goto __pyx_L5;
51098   }
51099   __pyx_L5:;
51100 
51101   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":12
51102  *     def __dealloc__(self):
51103  *         if not (self.flags & PyMPI_OWNED): return
51104  *         CHKERR( del_Info(&self.ob_mpi) )             # <<<<<<<<<<<<<<
51105  *
51106  *     def __richcmp__(self, other, int op):
51107  */
51108   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Info((&((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51109 
51110   goto __pyx_L0;
51111   __pyx_L1_error:;
51112   __Pyx_AddTraceback("mpi4py.MPI.Info.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
51113   __pyx_L0:;
51114   __Pyx_RefNannyFinishContext();
51115 }
51116 
51117 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":14
51118  *         CHKERR( del_Info(&self.ob_mpi) )
51119  *
51120  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
51121  *         if not isinstance(self,  Info): return NotImplemented
51122  *         if not isinstance(other, Info): return NotImplemented
51123  */
51124 
51125 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)51126 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
51127   struct PyMPIInfoObject *__pyx_v_s = 0;
51128   struct PyMPIInfoObject *__pyx_v_o = 0;
51129   PyObject *__pyx_r = NULL;
51130   __Pyx_RefNannyDeclarations
51131   PyObject *__pyx_t_1 = NULL;
51132   int __pyx_t_2;
51133   int __pyx_t_3;
51134   int __pyx_lineno = 0;
51135   const char *__pyx_filename = NULL;
51136   int __pyx_clineno = 0;
51137   __Pyx_RefNannySetupContext("__richcmp__");
51138 
51139   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":15
51140  *
51141  *     def __richcmp__(self, other, int op):
51142  *         if not isinstance(self,  Info): return NotImplemented             # <<<<<<<<<<<<<<
51143  *         if not isinstance(other, Info): return NotImplemented
51144  *         cdef Info s = <Info>self, o = <Info>other
51145  */
51146   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info));
51147   __Pyx_INCREF(__pyx_t_1);
51148   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
51149   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51150   __pyx_t_3 = (!__pyx_t_2);
51151   if (__pyx_t_3) {
51152     __Pyx_XDECREF(__pyx_r);
51153     __Pyx_INCREF(__pyx_builtin_NotImplemented);
51154     __pyx_r = __pyx_builtin_NotImplemented;
51155     goto __pyx_L0;
51156     goto __pyx_L5;
51157   }
51158   __pyx_L5:;
51159 
51160   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":16
51161  *     def __richcmp__(self, other, int op):
51162  *         if not isinstance(self,  Info): return NotImplemented
51163  *         if not isinstance(other, Info): return NotImplemented             # <<<<<<<<<<<<<<
51164  *         cdef Info s = <Info>self, o = <Info>other
51165  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
51166  */
51167   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info));
51168   __Pyx_INCREF(__pyx_t_1);
51169   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
51170   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51171   __pyx_t_2 = (!__pyx_t_3);
51172   if (__pyx_t_2) {
51173     __Pyx_XDECREF(__pyx_r);
51174     __Pyx_INCREF(__pyx_builtin_NotImplemented);
51175     __pyx_r = __pyx_builtin_NotImplemented;
51176     goto __pyx_L0;
51177     goto __pyx_L6;
51178   }
51179   __pyx_L6:;
51180 
51181   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":17
51182  *         if not isinstance(self,  Info): return NotImplemented
51183  *         if not isinstance(other, Info): return NotImplemented
51184  *         cdef Info s = <Info>self, o = <Info>other             # <<<<<<<<<<<<<<
51185  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
51186  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
51187  */
51188   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_v_self)));
51189   __pyx_v_s = ((struct PyMPIInfoObject *)__pyx_v_self);
51190   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_v_other)));
51191   __pyx_v_o = ((struct PyMPIInfoObject *)__pyx_v_other);
51192 
51193   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":19
51194  *         cdef Info s = <Info>self, o = <Info>other
51195  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
51196  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
51197  *         else: raise TypeError("only '==' and '!='")
51198  *
51199  */
51200   switch (__pyx_v_op) {
51201 
51202     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":18
51203  *         if not isinstance(other, Info): return NotImplemented
51204  *         cdef Info s = <Info>self, o = <Info>other
51205  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
51206  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
51207  *         else: raise TypeError("only '==' and '!='")
51208  */
51209     case Py_EQ:
51210     __Pyx_XDECREF(__pyx_r);
51211     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51212     __Pyx_GOTREF(__pyx_t_1);
51213     __pyx_r = __pyx_t_1;
51214     __pyx_t_1 = 0;
51215     goto __pyx_L0;
51216     break;
51217 
51218     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":19
51219  *         cdef Info s = <Info>self, o = <Info>other
51220  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
51221  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
51222  *         else: raise TypeError("only '==' and '!='")
51223  *
51224  */
51225     case Py_NE:
51226     __Pyx_XDECREF(__pyx_r);
51227     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51228     __Pyx_GOTREF(__pyx_t_1);
51229     __pyx_r = __pyx_t_1;
51230     __pyx_t_1 = 0;
51231     goto __pyx_L0;
51232     break;
51233     default:
51234 
51235     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":20
51236  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
51237  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
51238  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
51239  *
51240  *     def __bool__(self):
51241  */
51242     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_63), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51243     __Pyx_GOTREF(__pyx_t_1);
51244     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
51245     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51246     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51247     break;
51248   }
51249 
51250   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51251   goto __pyx_L0;
51252   __pyx_L1_error:;
51253   __Pyx_XDECREF(__pyx_t_1);
51254   __Pyx_AddTraceback("mpi4py.MPI.Info.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
51255   __pyx_r = NULL;
51256   __pyx_L0:;
51257   __Pyx_XDECREF((PyObject *)__pyx_v_s);
51258   __Pyx_XDECREF((PyObject *)__pyx_v_o);
51259   __Pyx_XGIVEREF(__pyx_r);
51260   __Pyx_RefNannyFinishContext();
51261   return __pyx_r;
51262 }
51263 
51264 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":22
51265  *         else: raise TypeError("only '==' and '!='")
51266  *
51267  *     def __bool__(self):             # <<<<<<<<<<<<<<
51268  *         return self.ob_mpi != MPI_INFO_NULL
51269  *
51270  */
51271 
51272 static int __pyx_pf_6mpi4py_3MPI_4Info_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_3__bool__(PyObject * __pyx_v_self)51273 static int __pyx_pf_6mpi4py_3MPI_4Info_3__bool__(PyObject *__pyx_v_self) {
51274   int __pyx_r;
51275   __Pyx_RefNannyDeclarations
51276   __Pyx_RefNannySetupContext("__bool__");
51277 
51278   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":23
51279  *
51280  *     def __bool__(self):
51281  *         return self.ob_mpi != MPI_INFO_NULL             # <<<<<<<<<<<<<<
51282  *
51283  *     @classmethod
51284  */
51285   __pyx_r = (((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi != MPI_INFO_NULL);
51286   goto __pyx_L0;
51287 
51288   __pyx_r = 0;
51289   __pyx_L0:;
51290   __Pyx_RefNannyFinishContext();
51291   return __pyx_r;
51292 }
51293 
51294 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":26
51295  *
51296  *     @classmethod
51297  *     def Create(cls):             # <<<<<<<<<<<<<<
51298  *         """
51299  *         Create a new, empty info object
51300  */
51301 
51302 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_4Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51303 static char __pyx_doc_6mpi4py_3MPI_4Info_4Create[] = "Info.Create(type cls)\n\n        Create a new, empty info object\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_4Create(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)51304 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_4Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51305   struct PyMPIInfoObject *__pyx_v_info = 0;
51306   PyObject *__pyx_r = NULL;
51307   __Pyx_RefNannyDeclarations
51308   PyObject *__pyx_t_1 = NULL;
51309   int __pyx_t_2;
51310   int __pyx_lineno = 0;
51311   const char *__pyx_filename = NULL;
51312   int __pyx_clineno = 0;
51313   __Pyx_RefNannySetupContext("Create");
51314   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
51315     __Pyx_RaiseArgtupleInvalid("Create", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
51316   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Create", 0))) return NULL;
51317 
51318   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":30
51319  *         Create a new, empty info object
51320  *         """
51321  *         cdef Info info = <Info>cls()             # <<<<<<<<<<<<<<
51322  *         CHKERR( MPI_Info_create(&info.ob_mpi) )
51323  *         return info
51324  */
51325   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51326   __Pyx_GOTREF(__pyx_t_1);
51327   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
51328   __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_t_1);
51329   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51330 
51331   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":31
51332  *         """
51333  *         cdef Info info = <Info>cls()
51334  *         CHKERR( MPI_Info_create(&info.ob_mpi) )             # <<<<<<<<<<<<<<
51335  *         return info
51336  *
51337  */
51338   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_create((&__pyx_v_info->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51339 
51340   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":32
51341  *         cdef Info info = <Info>cls()
51342  *         CHKERR( MPI_Info_create(&info.ob_mpi) )
51343  *         return info             # <<<<<<<<<<<<<<
51344  *
51345  *     def Free(self):
51346  */
51347   __Pyx_XDECREF(__pyx_r);
51348   __Pyx_INCREF(((PyObject *)__pyx_v_info));
51349   __pyx_r = ((PyObject *)__pyx_v_info);
51350   goto __pyx_L0;
51351 
51352   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51353   goto __pyx_L0;
51354   __pyx_L1_error:;
51355   __Pyx_XDECREF(__pyx_t_1);
51356   __Pyx_AddTraceback("mpi4py.MPI.Info.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
51357   __pyx_r = NULL;
51358   __pyx_L0:;
51359   __Pyx_XDECREF((PyObject *)__pyx_v_info);
51360   __Pyx_XGIVEREF(__pyx_r);
51361   __Pyx_RefNannyFinishContext();
51362   return __pyx_r;
51363 }
51364 
51365 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":34
51366  *         return info
51367  *
51368  *     def Free(self):             # <<<<<<<<<<<<<<
51369  *         """
51370  *         Free a info object
51371  */
51372 
51373 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_5Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51374 static char __pyx_doc_6mpi4py_3MPI_4Info_5Free[] = "Info.Free(self)\n\n        Free a info object\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_5Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51375 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_5Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51376   PyObject *__pyx_r = NULL;
51377   __Pyx_RefNannyDeclarations
51378   int __pyx_t_1;
51379   int __pyx_lineno = 0;
51380   const char *__pyx_filename = NULL;
51381   int __pyx_clineno = 0;
51382   __Pyx_RefNannySetupContext("Free");
51383   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
51384     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
51385   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
51386 
51387   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":38
51388  *         Free a info object
51389  *         """
51390  *         CHKERR( MPI_Info_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
51391  *
51392  *     def Dup(self):
51393  */
51394   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_free((&((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51395 
51396   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51397   goto __pyx_L0;
51398   __pyx_L1_error:;
51399   __Pyx_AddTraceback("mpi4py.MPI.Info.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
51400   __pyx_r = NULL;
51401   __pyx_L0:;
51402   __Pyx_XGIVEREF(__pyx_r);
51403   __Pyx_RefNannyFinishContext();
51404   return __pyx_r;
51405 }
51406 
51407 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":40
51408  *         CHKERR( MPI_Info_free(&self.ob_mpi) )
51409  *
51410  *     def Dup(self):             # <<<<<<<<<<<<<<
51411  *         """
51412  *         Duplicate an existing info object, creating a new object, with
51413  */
51414 
51415 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_6Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51416 static char __pyx_doc_6mpi4py_3MPI_4Info_6Dup[] = "Info.Dup(self)\n\n        Duplicate an existing info object, creating a new object, with\n        the same (key, value) pairs and the same ordering of keys\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_6Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51417 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_6Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51418   struct PyMPIInfoObject *__pyx_v_info = 0;
51419   PyObject *__pyx_r = NULL;
51420   __Pyx_RefNannyDeclarations
51421   PyObject *__pyx_t_1 = NULL;
51422   int __pyx_t_2;
51423   int __pyx_lineno = 0;
51424   const char *__pyx_filename = NULL;
51425   int __pyx_clineno = 0;
51426   __Pyx_RefNannySetupContext("Dup");
51427   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
51428     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
51429   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
51430 
51431   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":45
51432  *         the same (key, value) pairs and the same ordering of keys
51433  *         """
51434  *         cdef Info info = <Info>type(self)()             # <<<<<<<<<<<<<<
51435  *         CHKERR( MPI_Info_dup(self.ob_mpi, &info.ob_mpi) )
51436  *         return info
51437  */
51438   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51439   __Pyx_GOTREF(__pyx_t_1);
51440   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
51441   __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_t_1);
51442   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
51443 
51444   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":46
51445  *         """
51446  *         cdef Info info = <Info>type(self)()
51447  *         CHKERR( MPI_Info_dup(self.ob_mpi, &info.ob_mpi) )             # <<<<<<<<<<<<<<
51448  *         return info
51449  *
51450  */
51451   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_dup(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_info->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51452 
51453   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":47
51454  *         cdef Info info = <Info>type(self)()
51455  *         CHKERR( MPI_Info_dup(self.ob_mpi, &info.ob_mpi) )
51456  *         return info             # <<<<<<<<<<<<<<
51457  *
51458  *     def Get(self, object key, int maxlen=-1):
51459  */
51460   __Pyx_XDECREF(__pyx_r);
51461   __Pyx_INCREF(((PyObject *)__pyx_v_info));
51462   __pyx_r = ((PyObject *)__pyx_v_info);
51463   goto __pyx_L0;
51464 
51465   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51466   goto __pyx_L0;
51467   __pyx_L1_error:;
51468   __Pyx_XDECREF(__pyx_t_1);
51469   __Pyx_AddTraceback("mpi4py.MPI.Info.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
51470   __pyx_r = NULL;
51471   __pyx_L0:;
51472   __Pyx_XDECREF((PyObject *)__pyx_v_info);
51473   __Pyx_XGIVEREF(__pyx_r);
51474   __Pyx_RefNannyFinishContext();
51475   return __pyx_r;
51476 }
51477 
51478 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":49
51479  *         return info
51480  *
51481  *     def Get(self, object key, int maxlen=-1):             # <<<<<<<<<<<<<<
51482  *         """
51483  *         Retrieve the value associated with a key
51484  */
51485 
51486 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_7Get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51487 static char __pyx_doc_6mpi4py_3MPI_4Info_7Get[] = "Info.Get(self, key, int maxlen=-1)\n\n        Retrieve the value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_7Get(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51488 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_7Get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51489   PyObject *__pyx_v_key = 0;
51490   int __pyx_v_maxlen;
51491   char *__pyx_v_ckey;
51492   char *__pyx_v_cvalue;
51493   int __pyx_v_flag;
51494   PyObject *__pyx_v_tmp = 0;
51495   PyObject *__pyx_r = NULL;
51496   __Pyx_RefNannyDeclarations
51497   int __pyx_t_1;
51498   PyObject *__pyx_t_2 = NULL;
51499   int __pyx_t_3;
51500   int __pyx_lineno = 0;
51501   const char *__pyx_filename = NULL;
51502   int __pyx_clineno = 0;
51503   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__maxlen,0};
51504   __Pyx_RefNannySetupContext("Get");
51505   {
51506     PyObject* values[2] = {0,0};
51507     if (unlikely(__pyx_kwds)) {
51508       Py_ssize_t kw_args;
51509       switch (PyTuple_GET_SIZE(__pyx_args)) {
51510         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
51511         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51512         case  0: break;
51513         default: goto __pyx_L5_argtuple_error;
51514       }
51515       kw_args = PyDict_Size(__pyx_kwds);
51516       switch (PyTuple_GET_SIZE(__pyx_args)) {
51517         case  0:
51518         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
51519         if (likely(values[0])) kw_args--;
51520         else goto __pyx_L5_argtuple_error;
51521         case  1:
51522         if (kw_args > 0) {
51523           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__maxlen);
51524           if (value) { values[1] = value; kw_args--; }
51525         }
51526       }
51527       if (unlikely(kw_args > 0)) {
51528         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51529       }
51530     } else {
51531       switch (PyTuple_GET_SIZE(__pyx_args)) {
51532         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
51533         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51534         break;
51535         default: goto __pyx_L5_argtuple_error;
51536       }
51537     }
51538     __pyx_v_key = values[0];
51539     if (values[1]) {
51540       __pyx_v_maxlen = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_maxlen == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51541     } else {
51542       __pyx_v_maxlen = ((int)-1);
51543     }
51544   }
51545   goto __pyx_L4_argument_unpacking_done;
51546   __pyx_L5_argtuple_error:;
51547   __Pyx_RaiseArgtupleInvalid("Get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51548   __pyx_L3_error:;
51549   __Pyx_AddTraceback("mpi4py.MPI.Info.Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
51550   __Pyx_RefNannyFinishContext();
51551   return NULL;
51552   __pyx_L4_argument_unpacking_done:;
51553   __Pyx_INCREF(__pyx_v_key);
51554 
51555   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":53
51556  *         Retrieve the value associated with a key
51557  *         """
51558  *         if maxlen < 0: maxlen = MPI_MAX_INFO_VAL             # <<<<<<<<<<<<<<
51559  *         if maxlen > MPI_MAX_INFO_VAL: maxlen = MPI_MAX_INFO_VAL
51560  *         cdef char *ckey = NULL
51561  */
51562   __pyx_t_1 = (__pyx_v_maxlen < 0);
51563   if (__pyx_t_1) {
51564     __pyx_v_maxlen = MPI_MAX_INFO_VAL;
51565     goto __pyx_L6;
51566   }
51567   __pyx_L6:;
51568 
51569   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":54
51570  *         """
51571  *         if maxlen < 0: maxlen = MPI_MAX_INFO_VAL
51572  *         if maxlen > MPI_MAX_INFO_VAL: maxlen = MPI_MAX_INFO_VAL             # <<<<<<<<<<<<<<
51573  *         cdef char *ckey = NULL
51574  *         cdef char *cvalue = NULL
51575  */
51576   __pyx_t_1 = (__pyx_v_maxlen > MPI_MAX_INFO_VAL);
51577   if (__pyx_t_1) {
51578     __pyx_v_maxlen = MPI_MAX_INFO_VAL;
51579     goto __pyx_L7;
51580   }
51581   __pyx_L7:;
51582 
51583   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":55
51584  *         if maxlen < 0: maxlen = MPI_MAX_INFO_VAL
51585  *         if maxlen > MPI_MAX_INFO_VAL: maxlen = MPI_MAX_INFO_VAL
51586  *         cdef char *ckey = NULL             # <<<<<<<<<<<<<<
51587  *         cdef char *cvalue = NULL
51588  *         cdef int flag = 0
51589  */
51590   __pyx_v_ckey = NULL;
51591 
51592   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":56
51593  *         if maxlen > MPI_MAX_INFO_VAL: maxlen = MPI_MAX_INFO_VAL
51594  *         cdef char *ckey = NULL
51595  *         cdef char *cvalue = NULL             # <<<<<<<<<<<<<<
51596  *         cdef int flag = 0
51597  *         key = asmpistr(key, &ckey, NULL)
51598  */
51599   __pyx_v_cvalue = NULL;
51600 
51601   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":57
51602  *         cdef char *ckey = NULL
51603  *         cdef char *cvalue = NULL
51604  *         cdef int flag = 0             # <<<<<<<<<<<<<<
51605  *         key = asmpistr(key, &ckey, NULL)
51606  *         cdef tmp = allocate((maxlen+1), sizeof(char), <void**>&cvalue)
51607  */
51608   __pyx_v_flag = 0;
51609 
51610   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":58
51611  *         cdef char *cvalue = NULL
51612  *         cdef int flag = 0
51613  *         key = asmpistr(key, &ckey, NULL)             # <<<<<<<<<<<<<<
51614  *         cdef tmp = allocate((maxlen+1), sizeof(char), <void**>&cvalue)
51615  *         CHKERR( MPI_Info_get(self.ob_mpi, ckey, maxlen, cvalue, &flag) )
51616  */
51617   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_key, (&__pyx_v_ckey), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51618   __Pyx_GOTREF(__pyx_t_2);
51619   __Pyx_DECREF(__pyx_v_key);
51620   __pyx_v_key = __pyx_t_2;
51621   __pyx_t_2 = 0;
51622 
51623   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":59
51624  *         cdef int flag = 0
51625  *         key = asmpistr(key, &ckey, NULL)
51626  *         cdef tmp = allocate((maxlen+1), sizeof(char), <void**>&cvalue)             # <<<<<<<<<<<<<<
51627  *         CHKERR( MPI_Info_get(self.ob_mpi, ckey, maxlen, cvalue, &flag) )
51628  *         cvalue[maxlen] = 0 # just in case
51629  */
51630   __pyx_t_2 = PyMPI_Allocate((__pyx_v_maxlen + 1), (sizeof(char)), ((void **)(&__pyx_v_cvalue))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51631   __Pyx_GOTREF(__pyx_t_2);
51632   __pyx_v_tmp = __pyx_t_2;
51633   __pyx_t_2 = 0;
51634 
51635   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":60
51636  *         key = asmpistr(key, &ckey, NULL)
51637  *         cdef tmp = allocate((maxlen+1), sizeof(char), <void**>&cvalue)
51638  *         CHKERR( MPI_Info_get(self.ob_mpi, ckey, maxlen, cvalue, &flag) )             # <<<<<<<<<<<<<<
51639  *         cvalue[maxlen] = 0 # just in case
51640  *         if not flag: return None
51641  */
51642   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_get(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, __pyx_v_ckey, __pyx_v_maxlen, __pyx_v_cvalue, (&__pyx_v_flag))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51643 
51644   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":61
51645  *         cdef tmp = allocate((maxlen+1), sizeof(char), <void**>&cvalue)
51646  *         CHKERR( MPI_Info_get(self.ob_mpi, ckey, maxlen, cvalue, &flag) )
51647  *         cvalue[maxlen] = 0 # just in case             # <<<<<<<<<<<<<<
51648  *         if not flag: return None
51649  *         return mpistr(cvalue)
51650  */
51651   (__pyx_v_cvalue[__pyx_v_maxlen]) = 0;
51652 
51653   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":62
51654  *         CHKERR( MPI_Info_get(self.ob_mpi, ckey, maxlen, cvalue, &flag) )
51655  *         cvalue[maxlen] = 0 # just in case
51656  *         if not flag: return None             # <<<<<<<<<<<<<<
51657  *         return mpistr(cvalue)
51658  *
51659  */
51660   __pyx_t_1 = (!__pyx_v_flag);
51661   if (__pyx_t_1) {
51662     __Pyx_XDECREF(__pyx_r);
51663     __Pyx_INCREF(Py_None);
51664     __pyx_r = Py_None;
51665     goto __pyx_L0;
51666     goto __pyx_L8;
51667   }
51668   __pyx_L8:;
51669 
51670   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":63
51671  *         cvalue[maxlen] = 0 # just in case
51672  *         if not flag: return None
51673  *         return mpistr(cvalue)             # <<<<<<<<<<<<<<
51674  *
51675  *     def Set(self, object key, object value):
51676  */
51677   __Pyx_XDECREF(__pyx_r);
51678   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_cvalue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51679   __Pyx_GOTREF(__pyx_t_2);
51680   __pyx_r = __pyx_t_2;
51681   __pyx_t_2 = 0;
51682   goto __pyx_L0;
51683 
51684   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51685   goto __pyx_L0;
51686   __pyx_L1_error:;
51687   __Pyx_XDECREF(__pyx_t_2);
51688   __Pyx_AddTraceback("mpi4py.MPI.Info.Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
51689   __pyx_r = NULL;
51690   __pyx_L0:;
51691   __Pyx_XDECREF(__pyx_v_tmp);
51692   __Pyx_XDECREF(__pyx_v_key);
51693   __Pyx_XGIVEREF(__pyx_r);
51694   __Pyx_RefNannyFinishContext();
51695   return __pyx_r;
51696 }
51697 
51698 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":65
51699  *         return mpistr(cvalue)
51700  *
51701  *     def Set(self, object key, object value):             # <<<<<<<<<<<<<<
51702  *         """
51703  *         Add the (key, value) pair to info, and overrides the value if
51704  */
51705 
51706 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_8Set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51707 static char __pyx_doc_6mpi4py_3MPI_4Info_8Set[] = "Info.Set(self, key, value)\n\n        Add the (key, value) pair to info, and overrides the value if\n        a value for the same key was previously set\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_8Set(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51708 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_8Set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51709   PyObject *__pyx_v_key = 0;
51710   PyObject *__pyx_v_value = 0;
51711   char *__pyx_v_ckey;
51712   char *__pyx_v_cvalue;
51713   PyObject *__pyx_r = NULL;
51714   __Pyx_RefNannyDeclarations
51715   PyObject *__pyx_t_1 = NULL;
51716   int __pyx_t_2;
51717   int __pyx_lineno = 0;
51718   const char *__pyx_filename = NULL;
51719   int __pyx_clineno = 0;
51720   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__value,0};
51721   __Pyx_RefNannySetupContext("Set");
51722   {
51723     PyObject* values[2] = {0,0};
51724     if (unlikely(__pyx_kwds)) {
51725       Py_ssize_t kw_args;
51726       switch (PyTuple_GET_SIZE(__pyx_args)) {
51727         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
51728         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51729         case  0: break;
51730         default: goto __pyx_L5_argtuple_error;
51731       }
51732       kw_args = PyDict_Size(__pyx_kwds);
51733       switch (PyTuple_GET_SIZE(__pyx_args)) {
51734         case  0:
51735         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
51736         if (likely(values[0])) kw_args--;
51737         else goto __pyx_L5_argtuple_error;
51738         case  1:
51739         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
51740         if (likely(values[1])) kw_args--;
51741         else {
51742           __Pyx_RaiseArgtupleInvalid("Set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51743         }
51744       }
51745       if (unlikely(kw_args > 0)) {
51746         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51747       }
51748     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
51749       goto __pyx_L5_argtuple_error;
51750     } else {
51751       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51752       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
51753     }
51754     __pyx_v_key = values[0];
51755     __pyx_v_value = values[1];
51756   }
51757   goto __pyx_L4_argument_unpacking_done;
51758   __pyx_L5_argtuple_error:;
51759   __Pyx_RaiseArgtupleInvalid("Set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51760   __pyx_L3_error:;
51761   __Pyx_AddTraceback("mpi4py.MPI.Info.Set", __pyx_clineno, __pyx_lineno, __pyx_filename);
51762   __Pyx_RefNannyFinishContext();
51763   return NULL;
51764   __pyx_L4_argument_unpacking_done:;
51765   __Pyx_INCREF(__pyx_v_key);
51766   __Pyx_INCREF(__pyx_v_value);
51767 
51768   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":70
51769  *         a value for the same key was previously set
51770  *         """
51771  *         cdef char *ckey = NULL             # <<<<<<<<<<<<<<
51772  *         cdef char *cvalue = NULL
51773  *         key = asmpistr(key, &ckey, NULL)
51774  */
51775   __pyx_v_ckey = NULL;
51776 
51777   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":71
51778  *         """
51779  *         cdef char *ckey = NULL
51780  *         cdef char *cvalue = NULL             # <<<<<<<<<<<<<<
51781  *         key = asmpistr(key, &ckey, NULL)
51782  *         value = asmpistr(value, &cvalue, NULL)
51783  */
51784   __pyx_v_cvalue = NULL;
51785 
51786   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":72
51787  *         cdef char *ckey = NULL
51788  *         cdef char *cvalue = NULL
51789  *         key = asmpistr(key, &ckey, NULL)             # <<<<<<<<<<<<<<
51790  *         value = asmpistr(value, &cvalue, NULL)
51791  *         CHKERR( MPI_Info_set(self.ob_mpi, ckey, cvalue) )
51792  */
51793   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_key, (&__pyx_v_ckey), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51794   __Pyx_GOTREF(__pyx_t_1);
51795   __Pyx_DECREF(__pyx_v_key);
51796   __pyx_v_key = __pyx_t_1;
51797   __pyx_t_1 = 0;
51798 
51799   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":73
51800  *         cdef char *cvalue = NULL
51801  *         key = asmpistr(key, &ckey, NULL)
51802  *         value = asmpistr(value, &cvalue, NULL)             # <<<<<<<<<<<<<<
51803  *         CHKERR( MPI_Info_set(self.ob_mpi, ckey, cvalue) )
51804  *
51805  */
51806   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_value, (&__pyx_v_cvalue), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51807   __Pyx_GOTREF(__pyx_t_1);
51808   __Pyx_DECREF(__pyx_v_value);
51809   __pyx_v_value = __pyx_t_1;
51810   __pyx_t_1 = 0;
51811 
51812   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":74
51813  *         key = asmpistr(key, &ckey, NULL)
51814  *         value = asmpistr(value, &cvalue, NULL)
51815  *         CHKERR( MPI_Info_set(self.ob_mpi, ckey, cvalue) )             # <<<<<<<<<<<<<<
51816  *
51817  *     def Delete(self, object key):
51818  */
51819   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_set(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, __pyx_v_ckey, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51820 
51821   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51822   goto __pyx_L0;
51823   __pyx_L1_error:;
51824   __Pyx_XDECREF(__pyx_t_1);
51825   __Pyx_AddTraceback("mpi4py.MPI.Info.Set", __pyx_clineno, __pyx_lineno, __pyx_filename);
51826   __pyx_r = NULL;
51827   __pyx_L0:;
51828   __Pyx_XDECREF(__pyx_v_key);
51829   __Pyx_XDECREF(__pyx_v_value);
51830   __Pyx_XGIVEREF(__pyx_r);
51831   __Pyx_RefNannyFinishContext();
51832   return __pyx_r;
51833 }
51834 
51835 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":76
51836  *         CHKERR( MPI_Info_set(self.ob_mpi, ckey, cvalue) )
51837  *
51838  *     def Delete(self, object key):             # <<<<<<<<<<<<<<
51839  *         """
51840  *         Remove a (key, value) pair from info
51841  */
51842 
51843 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_9Delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51844 static char __pyx_doc_6mpi4py_3MPI_4Info_9Delete[] = "Info.Delete(self, key)\n\n        Remove a (key, value) pair from info\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_9Delete(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51845 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_9Delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51846   PyObject *__pyx_v_key = 0;
51847   char *__pyx_v_ckey;
51848   PyObject *__pyx_r = NULL;
51849   __Pyx_RefNannyDeclarations
51850   PyObject *__pyx_t_1 = NULL;
51851   int __pyx_t_2;
51852   int __pyx_lineno = 0;
51853   const char *__pyx_filename = NULL;
51854   int __pyx_clineno = 0;
51855   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,0};
51856   __Pyx_RefNannySetupContext("Delete");
51857   {
51858     PyObject* values[1] = {0};
51859     if (unlikely(__pyx_kwds)) {
51860       Py_ssize_t kw_args;
51861       switch (PyTuple_GET_SIZE(__pyx_args)) {
51862         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51863         case  0: break;
51864         default: goto __pyx_L5_argtuple_error;
51865       }
51866       kw_args = PyDict_Size(__pyx_kwds);
51867       switch (PyTuple_GET_SIZE(__pyx_args)) {
51868         case  0:
51869         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
51870         if (likely(values[0])) kw_args--;
51871         else goto __pyx_L5_argtuple_error;
51872       }
51873       if (unlikely(kw_args > 0)) {
51874         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Delete") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51875       }
51876     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
51877       goto __pyx_L5_argtuple_error;
51878     } else {
51879       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
51880     }
51881     __pyx_v_key = values[0];
51882   }
51883   goto __pyx_L4_argument_unpacking_done;
51884   __pyx_L5_argtuple_error:;
51885   __Pyx_RaiseArgtupleInvalid("Delete", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
51886   __pyx_L3_error:;
51887   __Pyx_AddTraceback("mpi4py.MPI.Info.Delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
51888   __Pyx_RefNannyFinishContext();
51889   return NULL;
51890   __pyx_L4_argument_unpacking_done:;
51891   __Pyx_INCREF(__pyx_v_key);
51892 
51893   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":80
51894  *         Remove a (key, value) pair from info
51895  *         """
51896  *         cdef char *ckey = NULL             # <<<<<<<<<<<<<<
51897  *         key = asmpistr(key, &ckey, NULL)
51898  *         CHKERR( MPI_Info_delete(self.ob_mpi, ckey) )
51899  */
51900   __pyx_v_ckey = NULL;
51901 
51902   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":81
51903  *         """
51904  *         cdef char *ckey = NULL
51905  *         key = asmpistr(key, &ckey, NULL)             # <<<<<<<<<<<<<<
51906  *         CHKERR( MPI_Info_delete(self.ob_mpi, ckey) )
51907  *
51908  */
51909   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_key, (&__pyx_v_ckey), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51910   __Pyx_GOTREF(__pyx_t_1);
51911   __Pyx_DECREF(__pyx_v_key);
51912   __pyx_v_key = __pyx_t_1;
51913   __pyx_t_1 = 0;
51914 
51915   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":82
51916  *         cdef char *ckey = NULL
51917  *         key = asmpistr(key, &ckey, NULL)
51918  *         CHKERR( MPI_Info_delete(self.ob_mpi, ckey) )             # <<<<<<<<<<<<<<
51919  *
51920  *     def Get_nkeys(self):
51921  */
51922   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_delete(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, __pyx_v_ckey)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51923 
51924   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51925   goto __pyx_L0;
51926   __pyx_L1_error:;
51927   __Pyx_XDECREF(__pyx_t_1);
51928   __Pyx_AddTraceback("mpi4py.MPI.Info.Delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
51929   __pyx_r = NULL;
51930   __pyx_L0:;
51931   __Pyx_XDECREF(__pyx_v_key);
51932   __Pyx_XGIVEREF(__pyx_r);
51933   __Pyx_RefNannyFinishContext();
51934   return __pyx_r;
51935 }
51936 
51937 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":84
51938  *         CHKERR( MPI_Info_delete(self.ob_mpi, ckey) )
51939  *
51940  *     def Get_nkeys(self):             # <<<<<<<<<<<<<<
51941  *         """
51942  *         Return the number of currently defined keys in info
51943  */
51944 
51945 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_10Get_nkeys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51946 static char __pyx_doc_6mpi4py_3MPI_4Info_10Get_nkeys[] = "Info.Get_nkeys(self)\n\n        Return the number of currently defined keys in info\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_10Get_nkeys(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)51947 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_10Get_nkeys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51948   int __pyx_v_nkeys;
51949   PyObject *__pyx_r = NULL;
51950   __Pyx_RefNannyDeclarations
51951   int __pyx_t_1;
51952   PyObject *__pyx_t_2 = NULL;
51953   int __pyx_lineno = 0;
51954   const char *__pyx_filename = NULL;
51955   int __pyx_clineno = 0;
51956   __Pyx_RefNannySetupContext("Get_nkeys");
51957   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
51958     __Pyx_RaiseArgtupleInvalid("Get_nkeys", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
51959   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_nkeys", 0))) return NULL;
51960 
51961   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":88
51962  *         Return the number of currently defined keys in info
51963  *         """
51964  *         cdef int nkeys = 0             # <<<<<<<<<<<<<<
51965  *         CHKERR( MPI_Info_get_nkeys(self.ob_mpi, &nkeys) )
51966  *         return nkeys
51967  */
51968   __pyx_v_nkeys = 0;
51969 
51970   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":89
51971  *         """
51972  *         cdef int nkeys = 0
51973  *         CHKERR( MPI_Info_get_nkeys(self.ob_mpi, &nkeys) )             # <<<<<<<<<<<<<<
51974  *         return nkeys
51975  *
51976  */
51977   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_get_nkeys(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_nkeys))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51978 
51979   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":90
51980  *         cdef int nkeys = 0
51981  *         CHKERR( MPI_Info_get_nkeys(self.ob_mpi, &nkeys) )
51982  *         return nkeys             # <<<<<<<<<<<<<<
51983  *
51984  *     def Get_nthkey(self, int n):
51985  */
51986   __Pyx_XDECREF(__pyx_r);
51987   __pyx_t_2 = PyInt_FromLong(__pyx_v_nkeys); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
51988   __Pyx_GOTREF(__pyx_t_2);
51989   __pyx_r = __pyx_t_2;
51990   __pyx_t_2 = 0;
51991   goto __pyx_L0;
51992 
51993   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
51994   goto __pyx_L0;
51995   __pyx_L1_error:;
51996   __Pyx_XDECREF(__pyx_t_2);
51997   __Pyx_AddTraceback("mpi4py.MPI.Info.Get_nkeys", __pyx_clineno, __pyx_lineno, __pyx_filename);
51998   __pyx_r = NULL;
51999   __pyx_L0:;
52000   __Pyx_XGIVEREF(__pyx_r);
52001   __Pyx_RefNannyFinishContext();
52002   return __pyx_r;
52003 }
52004 
52005 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":92
52006  *         return nkeys
52007  *
52008  *     def Get_nthkey(self, int n):             # <<<<<<<<<<<<<<
52009  *         """
52010  *         Return the nth defined key in info. Keys are numbered in the
52011  */
52012 
52013 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_11Get_nthkey(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
52014 static char __pyx_doc_6mpi4py_3MPI_4Info_11Get_nthkey[] = "Info.Get_nthkey(self, int n)\n\n        Return the nth defined key in info. Keys are numbered in the\n        range [0, N) where N is the value returned by\n        `Info.Get_nkeys()`\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_11Get_nthkey(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)52015 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_11Get_nthkey(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
52016   int __pyx_v_n;
52017   char __pyx_v_ckey[(MPI_MAX_INFO_KEY + 1)];
52018   PyObject *__pyx_r = NULL;
52019   __Pyx_RefNannyDeclarations
52020   int __pyx_t_1;
52021   PyObject *__pyx_t_2 = NULL;
52022   int __pyx_lineno = 0;
52023   const char *__pyx_filename = NULL;
52024   int __pyx_clineno = 0;
52025   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__n,0};
52026   __Pyx_RefNannySetupContext("Get_nthkey");
52027   {
52028     PyObject* values[1] = {0};
52029     if (unlikely(__pyx_kwds)) {
52030       Py_ssize_t kw_args;
52031       switch (PyTuple_GET_SIZE(__pyx_args)) {
52032         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52033         case  0: break;
52034         default: goto __pyx_L5_argtuple_error;
52035       }
52036       kw_args = PyDict_Size(__pyx_kwds);
52037       switch (PyTuple_GET_SIZE(__pyx_args)) {
52038         case  0:
52039         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n);
52040         if (likely(values[0])) kw_args--;
52041         else goto __pyx_L5_argtuple_error;
52042       }
52043       if (unlikely(kw_args > 0)) {
52044         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_nthkey") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52045       }
52046     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
52047       goto __pyx_L5_argtuple_error;
52048     } else {
52049       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52050     }
52051     __pyx_v_n = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52052   }
52053   goto __pyx_L4_argument_unpacking_done;
52054   __pyx_L5_argtuple_error:;
52055   __Pyx_RaiseArgtupleInvalid("Get_nthkey", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52056   __pyx_L3_error:;
52057   __Pyx_AddTraceback("mpi4py.MPI.Info.Get_nthkey", __pyx_clineno, __pyx_lineno, __pyx_filename);
52058   __Pyx_RefNannyFinishContext();
52059   return NULL;
52060   __pyx_L4_argument_unpacking_done:;
52061 
52062   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":99
52063  *         """
52064  *         cdef char ckey[MPI_MAX_INFO_KEY+1]
52065  *         CHKERR( MPI_Info_get_nthkey(self.ob_mpi, n, ckey) )             # <<<<<<<<<<<<<<
52066  *         ckey[MPI_MAX_INFO_KEY] = 0 # just in case
52067  *         return mpistr(ckey)
52068  */
52069   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_get_nthkey(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, __pyx_v_n, __pyx_v_ckey)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52070 
52071   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":100
52072  *         cdef char ckey[MPI_MAX_INFO_KEY+1]
52073  *         CHKERR( MPI_Info_get_nthkey(self.ob_mpi, n, ckey) )
52074  *         ckey[MPI_MAX_INFO_KEY] = 0 # just in case             # <<<<<<<<<<<<<<
52075  *         return mpistr(ckey)
52076  *
52077  */
52078   (__pyx_v_ckey[MPI_MAX_INFO_KEY]) = 0;
52079 
52080   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":101
52081  *         CHKERR( MPI_Info_get_nthkey(self.ob_mpi, n, ckey) )
52082  *         ckey[MPI_MAX_INFO_KEY] = 0 # just in case
52083  *         return mpistr(ckey)             # <<<<<<<<<<<<<<
52084  *
52085  *     # Fortran Handle
52086  */
52087   __Pyx_XDECREF(__pyx_r);
52088   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_ckey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52089   __Pyx_GOTREF(__pyx_t_2);
52090   __pyx_r = __pyx_t_2;
52091   __pyx_t_2 = 0;
52092   goto __pyx_L0;
52093 
52094   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52095   goto __pyx_L0;
52096   __pyx_L1_error:;
52097   __Pyx_XDECREF(__pyx_t_2);
52098   __Pyx_AddTraceback("mpi4py.MPI.Info.Get_nthkey", __pyx_clineno, __pyx_lineno, __pyx_filename);
52099   __pyx_r = NULL;
52100   __pyx_L0:;
52101   __Pyx_XGIVEREF(__pyx_r);
52102   __Pyx_RefNannyFinishContext();
52103   return __pyx_r;
52104 }
52105 
52106 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":106
52107  *     # --------------
52108  *
52109  *     def py2f(self):             # <<<<<<<<<<<<<<
52110  *         """
52111  *         """
52112  */
52113 
52114 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_12py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
52115 static char __pyx_doc_6mpi4py_3MPI_4Info_12py2f[] = "Info.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_12py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)52116 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_12py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
52117   PyObject *__pyx_r = NULL;
52118   __Pyx_RefNannyDeclarations
52119   PyObject *__pyx_t_1 = NULL;
52120   int __pyx_lineno = 0;
52121   const char *__pyx_filename = NULL;
52122   int __pyx_clineno = 0;
52123   __Pyx_RefNannySetupContext("py2f");
52124   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
52125     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
52126   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
52127 
52128   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":109
52129  *         """
52130  *         """
52131  *         return MPI_Info_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
52132  *
52133  *     @classmethod
52134  */
52135   __Pyx_XDECREF(__pyx_r);
52136   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Info_c2f(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52137   __Pyx_GOTREF(__pyx_t_1);
52138   __pyx_r = __pyx_t_1;
52139   __pyx_t_1 = 0;
52140   goto __pyx_L0;
52141 
52142   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52143   goto __pyx_L0;
52144   __pyx_L1_error:;
52145   __Pyx_XDECREF(__pyx_t_1);
52146   __Pyx_AddTraceback("mpi4py.MPI.Info.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
52147   __pyx_r = NULL;
52148   __pyx_L0:;
52149   __Pyx_XGIVEREF(__pyx_r);
52150   __Pyx_RefNannyFinishContext();
52151   return __pyx_r;
52152 }
52153 
52154 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":112
52155  *
52156  *     @classmethod
52157  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
52158  *         """
52159  *         """
52160  */
52161 
52162 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_13f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
52163 static char __pyx_doc_6mpi4py_3MPI_4Info_13f2py[] = "Info.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4Info_13f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)52164 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_13f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
52165   PyObject *__pyx_v_arg = 0;
52166   struct PyMPIInfoObject *__pyx_v_info = 0;
52167   PyObject *__pyx_r = NULL;
52168   __Pyx_RefNannyDeclarations
52169   PyObject *__pyx_t_1 = NULL;
52170   MPI_Fint __pyx_t_2;
52171   int __pyx_lineno = 0;
52172   const char *__pyx_filename = NULL;
52173   int __pyx_clineno = 0;
52174   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
52175   __Pyx_RefNannySetupContext("f2py");
52176   {
52177     PyObject* values[1] = {0};
52178     if (unlikely(__pyx_kwds)) {
52179       Py_ssize_t kw_args;
52180       switch (PyTuple_GET_SIZE(__pyx_args)) {
52181         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52182         case  0: break;
52183         default: goto __pyx_L5_argtuple_error;
52184       }
52185       kw_args = PyDict_Size(__pyx_kwds);
52186       switch (PyTuple_GET_SIZE(__pyx_args)) {
52187         case  0:
52188         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
52189         if (likely(values[0])) kw_args--;
52190         else goto __pyx_L5_argtuple_error;
52191       }
52192       if (unlikely(kw_args > 0)) {
52193         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52194       }
52195     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
52196       goto __pyx_L5_argtuple_error;
52197     } else {
52198       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52199     }
52200     __pyx_v_arg = values[0];
52201   }
52202   goto __pyx_L4_argument_unpacking_done;
52203   __pyx_L5_argtuple_error:;
52204   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52205   __pyx_L3_error:;
52206   __Pyx_AddTraceback("mpi4py.MPI.Info.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
52207   __Pyx_RefNannyFinishContext();
52208   return NULL;
52209   __pyx_L4_argument_unpacking_done:;
52210 
52211   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":115
52212  *         """
52213  *         """
52214  *         cdef Info info = <Info>cls()             # <<<<<<<<<<<<<<
52215  *         info.ob_mpi = MPI_Info_f2c(arg)
52216  *         return info
52217  */
52218   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52219   __Pyx_GOTREF(__pyx_t_1);
52220   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
52221   __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_t_1);
52222   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52223 
52224   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":116
52225  *         """
52226  *         cdef Info info = <Info>cls()
52227  *         info.ob_mpi = MPI_Info_f2c(arg)             # <<<<<<<<<<<<<<
52228  *         return info
52229  *
52230  */
52231   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52232   __pyx_v_info->ob_mpi = MPI_Info_f2c(__pyx_t_2);
52233 
52234   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":117
52235  *         cdef Info info = <Info>cls()
52236  *         info.ob_mpi = MPI_Info_f2c(arg)
52237  *         return info             # <<<<<<<<<<<<<<
52238  *
52239  *     # Python mapping emulation
52240  */
52241   __Pyx_XDECREF(__pyx_r);
52242   __Pyx_INCREF(((PyObject *)__pyx_v_info));
52243   __pyx_r = ((PyObject *)__pyx_v_info);
52244   goto __pyx_L0;
52245 
52246   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52247   goto __pyx_L0;
52248   __pyx_L1_error:;
52249   __Pyx_XDECREF(__pyx_t_1);
52250   __Pyx_AddTraceback("mpi4py.MPI.Info.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
52251   __pyx_r = NULL;
52252   __pyx_L0:;
52253   __Pyx_XDECREF((PyObject *)__pyx_v_info);
52254   __Pyx_XGIVEREF(__pyx_r);
52255   __Pyx_RefNannyFinishContext();
52256   return __pyx_r;
52257 }
52258 
52259 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":122
52260  *     # ------------------------
52261  *
52262  *     def __len__(self):             # <<<<<<<<<<<<<<
52263  *         if not self: return 0
52264  *         return self.Get_nkeys()
52265  */
52266 
52267 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_4Info_14__len__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_14__len__(PyObject * __pyx_v_self)52268 static Py_ssize_t __pyx_pf_6mpi4py_3MPI_4Info_14__len__(PyObject *__pyx_v_self) {
52269   Py_ssize_t __pyx_r;
52270   __Pyx_RefNannyDeclarations
52271   int __pyx_t_1;
52272   int __pyx_t_2;
52273   PyObject *__pyx_t_3 = NULL;
52274   PyObject *__pyx_t_4 = NULL;
52275   Py_ssize_t __pyx_t_5;
52276   int __pyx_lineno = 0;
52277   const char *__pyx_filename = NULL;
52278   int __pyx_clineno = 0;
52279   __Pyx_RefNannySetupContext("__len__");
52280 
52281   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":123
52282  *
52283  *     def __len__(self):
52284  *         if not self: return 0             # <<<<<<<<<<<<<<
52285  *         return self.Get_nkeys()
52286  *
52287  */
52288   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52289   __pyx_t_2 = (!__pyx_t_1);
52290   if (__pyx_t_2) {
52291     __pyx_r = 0;
52292     goto __pyx_L0;
52293     goto __pyx_L5;
52294   }
52295   __pyx_L5:;
52296 
52297   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":124
52298  *     def __len__(self):
52299  *         if not self: return 0
52300  *         return self.Get_nkeys()             # <<<<<<<<<<<<<<
52301  *
52302  *     def __contains__(self, object key):
52303  */
52304   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nkeys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52305   __Pyx_GOTREF(__pyx_t_3);
52306   __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52307   __Pyx_GOTREF(__pyx_t_4);
52308   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52309   __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52310   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52311   __pyx_r = __pyx_t_5;
52312   goto __pyx_L0;
52313 
52314   __pyx_r = 0;
52315   goto __pyx_L0;
52316   __pyx_L1_error:;
52317   __Pyx_XDECREF(__pyx_t_3);
52318   __Pyx_XDECREF(__pyx_t_4);
52319   __Pyx_AddTraceback("mpi4py.MPI.Info.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52320   __pyx_r = -1;
52321   __pyx_L0:;
52322   __Pyx_RefNannyFinishContext();
52323   return __pyx_r;
52324 }
52325 
52326 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":126
52327  *         return self.Get_nkeys()
52328  *
52329  *     def __contains__(self, object key):             # <<<<<<<<<<<<<<
52330  *         if not self: return False
52331  *         cdef char *ckey = NULL
52332  */
52333 
52334 static int __pyx_pf_6mpi4py_3MPI_4Info_15__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_15__contains__(PyObject * __pyx_v_self,PyObject * __pyx_v_key)52335 static int __pyx_pf_6mpi4py_3MPI_4Info_15__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
52336   char *__pyx_v_ckey;
52337   int __pyx_v_dummy;
52338   int __pyx_v_haskey;
52339   int __pyx_r;
52340   __Pyx_RefNannyDeclarations
52341   int __pyx_t_1;
52342   int __pyx_t_2;
52343   PyObject *__pyx_t_3 = NULL;
52344   int __pyx_t_4;
52345   int __pyx_lineno = 0;
52346   const char *__pyx_filename = NULL;
52347   int __pyx_clineno = 0;
52348   __Pyx_RefNannySetupContext("__contains__");
52349   __Pyx_INCREF(__pyx_v_key);
52350 
52351   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":127
52352  *
52353  *     def __contains__(self, object key):
52354  *         if not self: return False             # <<<<<<<<<<<<<<
52355  *         cdef char *ckey = NULL
52356  *         cdef int dummy = 0
52357  */
52358   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52359   __pyx_t_2 = (!__pyx_t_1);
52360   if (__pyx_t_2) {
52361     __pyx_r = 0;
52362     goto __pyx_L0;
52363     goto __pyx_L5;
52364   }
52365   __pyx_L5:;
52366 
52367   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":128
52368  *     def __contains__(self, object key):
52369  *         if not self: return False
52370  *         cdef char *ckey = NULL             # <<<<<<<<<<<<<<
52371  *         cdef int dummy = 0
52372  *         cdef int haskey = 0
52373  */
52374   __pyx_v_ckey = NULL;
52375 
52376   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":129
52377  *         if not self: return False
52378  *         cdef char *ckey = NULL
52379  *         cdef int dummy = 0             # <<<<<<<<<<<<<<
52380  *         cdef int haskey = 0
52381  *         key = asmpistr(key, &ckey, NULL)
52382  */
52383   __pyx_v_dummy = 0;
52384 
52385   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":130
52386  *         cdef char *ckey = NULL
52387  *         cdef int dummy = 0
52388  *         cdef int haskey = 0             # <<<<<<<<<<<<<<
52389  *         key = asmpistr(key, &ckey, NULL)
52390  *         CHKERR( MPI_Info_get_valuelen(self.ob_mpi, ckey, &dummy, &haskey) )
52391  */
52392   __pyx_v_haskey = 0;
52393 
52394   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":131
52395  *         cdef int dummy = 0
52396  *         cdef int haskey = 0
52397  *         key = asmpistr(key, &ckey, NULL)             # <<<<<<<<<<<<<<
52398  *         CHKERR( MPI_Info_get_valuelen(self.ob_mpi, ckey, &dummy, &haskey) )
52399  *         return <bint>haskey
52400  */
52401   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_key, (&__pyx_v_ckey), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52402   __Pyx_GOTREF(__pyx_t_3);
52403   __Pyx_DECREF(__pyx_v_key);
52404   __pyx_v_key = __pyx_t_3;
52405   __pyx_t_3 = 0;
52406 
52407   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":132
52408  *         cdef int haskey = 0
52409  *         key = asmpistr(key, &ckey, NULL)
52410  *         CHKERR( MPI_Info_get_valuelen(self.ob_mpi, ckey, &dummy, &haskey) )             # <<<<<<<<<<<<<<
52411  *         return <bint>haskey
52412  *
52413  */
52414   __pyx_t_4 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Info_get_valuelen(((struct PyMPIInfoObject *)__pyx_v_self)->ob_mpi, __pyx_v_ckey, (&__pyx_v_dummy), (&__pyx_v_haskey))); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52415 
52416   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":133
52417  *         key = asmpistr(key, &ckey, NULL)
52418  *         CHKERR( MPI_Info_get_valuelen(self.ob_mpi, ckey, &dummy, &haskey) )
52419  *         return <bint>haskey             # <<<<<<<<<<<<<<
52420  *
52421  *     def __iter__(self):
52422  */
52423   __pyx_r = ((int)__pyx_v_haskey);
52424   goto __pyx_L0;
52425 
52426   __pyx_r = 0;
52427   goto __pyx_L0;
52428   __pyx_L1_error:;
52429   __Pyx_XDECREF(__pyx_t_3);
52430   __Pyx_AddTraceback("mpi4py.MPI.Info.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52431   __pyx_r = -1;
52432   __pyx_L0:;
52433   __Pyx_XDECREF(__pyx_v_key);
52434   __Pyx_RefNannyFinishContext();
52435   return __pyx_r;
52436 }
52437 
52438 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":135
52439  *         return <bint>haskey
52440  *
52441  *     def __iter__(self):             # <<<<<<<<<<<<<<
52442  *         return iter(self.keys())
52443  *
52444  */
52445 
52446 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_16__iter__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_16__iter__(PyObject * __pyx_v_self)52447 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_16__iter__(PyObject *__pyx_v_self) {
52448   PyObject *__pyx_r = NULL;
52449   __Pyx_RefNannyDeclarations
52450   PyObject *__pyx_t_1 = NULL;
52451   PyObject *__pyx_t_2 = NULL;
52452   int __pyx_lineno = 0;
52453   const char *__pyx_filename = NULL;
52454   int __pyx_clineno = 0;
52455   __Pyx_RefNannySetupContext("__iter__");
52456 
52457   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":136
52458  *
52459  *     def __iter__(self):
52460  *         return iter(self.keys())             # <<<<<<<<<<<<<<
52461  *
52462  *     def __getitem__(self, object key):
52463  */
52464   __Pyx_XDECREF(__pyx_r);
52465   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__keys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52466   __Pyx_GOTREF(__pyx_t_1);
52467   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52468   __Pyx_GOTREF(__pyx_t_2);
52469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
52470   __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52471   __Pyx_GOTREF(__pyx_t_1);
52472   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
52473   __pyx_r = __pyx_t_1;
52474   __pyx_t_1 = 0;
52475   goto __pyx_L0;
52476 
52477   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52478   goto __pyx_L0;
52479   __pyx_L1_error:;
52480   __Pyx_XDECREF(__pyx_t_1);
52481   __Pyx_XDECREF(__pyx_t_2);
52482   __Pyx_AddTraceback("mpi4py.MPI.Info.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52483   __pyx_r = NULL;
52484   __pyx_L0:;
52485   __Pyx_XGIVEREF(__pyx_r);
52486   __Pyx_RefNannyFinishContext();
52487   return __pyx_r;
52488 }
52489 
52490 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":138
52491  *         return iter(self.keys())
52492  *
52493  *     def __getitem__(self, object key):             # <<<<<<<<<<<<<<
52494  *         if not self: raise KeyError(key)
52495  *         cdef object value = self.Get(key)
52496  */
52497 
52498 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_17__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_17__getitem__(PyObject * __pyx_v_self,PyObject * __pyx_v_key)52499 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_17__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
52500   PyObject *__pyx_v_value = 0;
52501   PyObject *__pyx_r = NULL;
52502   __Pyx_RefNannyDeclarations
52503   int __pyx_t_1;
52504   int __pyx_t_2;
52505   PyObject *__pyx_t_3 = NULL;
52506   PyObject *__pyx_t_4 = NULL;
52507   PyObject *__pyx_t_5 = NULL;
52508   int __pyx_lineno = 0;
52509   const char *__pyx_filename = NULL;
52510   int __pyx_clineno = 0;
52511   __Pyx_RefNannySetupContext("__getitem__");
52512 
52513   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":139
52514  *
52515  *     def __getitem__(self, object key):
52516  *         if not self: raise KeyError(key)             # <<<<<<<<<<<<<<
52517  *         cdef object value = self.Get(key)
52518  *         if value is None: raise KeyError(key)
52519  */
52520   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52521   __pyx_t_2 = (!__pyx_t_1);
52522   if (__pyx_t_2) {
52523     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52524     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52525     __Pyx_INCREF(__pyx_v_key);
52526     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
52527     __Pyx_GIVEREF(__pyx_v_key);
52528     __pyx_t_4 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52529     __Pyx_GOTREF(__pyx_t_4);
52530     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
52531     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
52532     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52533     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52534     goto __pyx_L5;
52535   }
52536   __pyx_L5:;
52537 
52538   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":140
52539  *     def __getitem__(self, object key):
52540  *         if not self: raise KeyError(key)
52541  *         cdef object value = self.Get(key)             # <<<<<<<<<<<<<<
52542  *         if value is None: raise KeyError(key)
52543  *         return value
52544  */
52545   __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52546   __Pyx_GOTREF(__pyx_t_4);
52547   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52548   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52549   __Pyx_INCREF(__pyx_v_key);
52550   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
52551   __Pyx_GIVEREF(__pyx_v_key);
52552   __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52553   __Pyx_GOTREF(__pyx_t_5);
52554   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52555   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
52556   __pyx_v_value = __pyx_t_5;
52557   __pyx_t_5 = 0;
52558 
52559   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":141
52560  *         if not self: raise KeyError(key)
52561  *         cdef object value = self.Get(key)
52562  *         if value is None: raise KeyError(key)             # <<<<<<<<<<<<<<
52563  *         return value
52564  *
52565  */
52566   __pyx_t_2 = (__pyx_v_value == Py_None);
52567   if (__pyx_t_2) {
52568     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52569     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
52570     __Pyx_INCREF(__pyx_v_key);
52571     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key);
52572     __Pyx_GIVEREF(__pyx_v_key);
52573     __pyx_t_3 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52574     __Pyx_GOTREF(__pyx_t_3);
52575     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
52576     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
52577     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52578     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52579     goto __pyx_L6;
52580   }
52581   __pyx_L6:;
52582 
52583   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":142
52584  *         cdef object value = self.Get(key)
52585  *         if value is None: raise KeyError(key)
52586  *         return value             # <<<<<<<<<<<<<<
52587  *
52588  *     def __setitem__(self, object key, object value):
52589  */
52590   __Pyx_XDECREF(__pyx_r);
52591   __Pyx_INCREF(__pyx_v_value);
52592   __pyx_r = __pyx_v_value;
52593   goto __pyx_L0;
52594 
52595   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52596   goto __pyx_L0;
52597   __pyx_L1_error:;
52598   __Pyx_XDECREF(__pyx_t_3);
52599   __Pyx_XDECREF(__pyx_t_4);
52600   __Pyx_XDECREF(__pyx_t_5);
52601   __Pyx_AddTraceback("mpi4py.MPI.Info.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52602   __pyx_r = NULL;
52603   __pyx_L0:;
52604   __Pyx_XDECREF(__pyx_v_value);
52605   __Pyx_XGIVEREF(__pyx_r);
52606   __Pyx_RefNannyFinishContext();
52607   return __pyx_r;
52608 }
52609 
52610 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":144
52611  *         return value
52612  *
52613  *     def __setitem__(self, object key, object value):             # <<<<<<<<<<<<<<
52614  *         if not self: raise KeyError(key)
52615  *         self.Set(key, value)
52616  */
52617 
52618 static int __pyx_pf_6mpi4py_3MPI_4Info_18__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_18__setitem__(PyObject * __pyx_v_self,PyObject * __pyx_v_key,PyObject * __pyx_v_value)52619 static int __pyx_pf_6mpi4py_3MPI_4Info_18__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
52620   int __pyx_r;
52621   __Pyx_RefNannyDeclarations
52622   int __pyx_t_1;
52623   int __pyx_t_2;
52624   PyObject *__pyx_t_3 = NULL;
52625   PyObject *__pyx_t_4 = NULL;
52626   PyObject *__pyx_t_5 = NULL;
52627   int __pyx_lineno = 0;
52628   const char *__pyx_filename = NULL;
52629   int __pyx_clineno = 0;
52630   __Pyx_RefNannySetupContext("__setitem__");
52631 
52632   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":145
52633  *
52634  *     def __setitem__(self, object key, object value):
52635  *         if not self: raise KeyError(key)             # <<<<<<<<<<<<<<
52636  *         self.Set(key, value)
52637  *
52638  */
52639   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52640   __pyx_t_2 = (!__pyx_t_1);
52641   if (__pyx_t_2) {
52642     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52643     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52644     __Pyx_INCREF(__pyx_v_key);
52645     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
52646     __Pyx_GIVEREF(__pyx_v_key);
52647     __pyx_t_4 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52648     __Pyx_GOTREF(__pyx_t_4);
52649     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
52650     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
52651     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52652     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52653     goto __pyx_L5;
52654   }
52655   __pyx_L5:;
52656 
52657   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":146
52658  *     def __setitem__(self, object key, object value):
52659  *         if not self: raise KeyError(key)
52660  *         self.Set(key, value)             # <<<<<<<<<<<<<<
52661  *
52662  *     def __delitem__(self, object key):
52663  */
52664   __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52665   __Pyx_GOTREF(__pyx_t_4);
52666   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52667   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52668   __Pyx_INCREF(__pyx_v_key);
52669   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
52670   __Pyx_GIVEREF(__pyx_v_key);
52671   __Pyx_INCREF(__pyx_v_value);
52672   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_value);
52673   __Pyx_GIVEREF(__pyx_v_value);
52674   __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52675   __Pyx_GOTREF(__pyx_t_5);
52676   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52677   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
52678   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
52679 
52680   __pyx_r = 0;
52681   goto __pyx_L0;
52682   __pyx_L1_error:;
52683   __Pyx_XDECREF(__pyx_t_3);
52684   __Pyx_XDECREF(__pyx_t_4);
52685   __Pyx_XDECREF(__pyx_t_5);
52686   __Pyx_AddTraceback("mpi4py.MPI.Info.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52687   __pyx_r = -1;
52688   __pyx_L0:;
52689   __Pyx_RefNannyFinishContext();
52690   return __pyx_r;
52691 }
52692 
52693 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":148
52694  *         self.Set(key, value)
52695  *
52696  *     def __delitem__(self, object key):             # <<<<<<<<<<<<<<
52697  *         if not self: raise KeyError(key)
52698  *         if key not in self: raise KeyError(key)
52699  */
52700 
52701 static int __pyx_pf_6mpi4py_3MPI_4Info_19__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Info_19__delitem__(PyObject * __pyx_v_self,PyObject * __pyx_v_key)52702 static int __pyx_pf_6mpi4py_3MPI_4Info_19__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
52703   int __pyx_r;
52704   __Pyx_RefNannyDeclarations
52705   int __pyx_t_1;
52706   int __pyx_t_2;
52707   PyObject *__pyx_t_3 = NULL;
52708   PyObject *__pyx_t_4 = NULL;
52709   PyObject *__pyx_t_5 = NULL;
52710   int __pyx_lineno = 0;
52711   const char *__pyx_filename = NULL;
52712   int __pyx_clineno = 0;
52713   __Pyx_RefNannySetupContext("__delitem__");
52714 
52715   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":149
52716  *
52717  *     def __delitem__(self, object key):
52718  *         if not self: raise KeyError(key)             # <<<<<<<<<<<<<<
52719  *         if key not in self: raise KeyError(key)
52720  *         self.Delete(key)
52721  */
52722   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52723   __pyx_t_2 = (!__pyx_t_1);
52724   if (__pyx_t_2) {
52725     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52726     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52727     __Pyx_INCREF(__pyx_v_key);
52728     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
52729     __Pyx_GIVEREF(__pyx_v_key);
52730     __pyx_t_4 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52731     __Pyx_GOTREF(__pyx_t_4);
52732     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
52733     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
52734     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
52735     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52736     goto __pyx_L5;
52737   }
52738   __pyx_L5:;
52739 
52740   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":150
52741  *     def __delitem__(self, object key):
52742  *         if not self: raise KeyError(key)
52743  *         if key not in self: raise KeyError(key)             # <<<<<<<<<<<<<<
52744  *         self.Delete(key)
52745  *
52746  */
52747   __pyx_t_2 = (__Pyx_NegateNonNeg(PySequence_Contains(__pyx_v_self, __pyx_v_key))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52748   if (__pyx_t_2) {
52749     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52750     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
52751     __Pyx_INCREF(__pyx_v_key);
52752     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
52753     __Pyx_GIVEREF(__pyx_v_key);
52754     __pyx_t_3 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52755     __Pyx_GOTREF(__pyx_t_3);
52756     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
52757     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
52758     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52759     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52760     goto __pyx_L6;
52761   }
52762   __pyx_L6:;
52763 
52764   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":151
52765  *         if not self: raise KeyError(key)
52766  *         if key not in self: raise KeyError(key)
52767  *         self.Delete(key)             # <<<<<<<<<<<<<<
52768  *
52769  *     def get(self, object key, object default=None):
52770  */
52771   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Delete); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52772   __Pyx_GOTREF(__pyx_t_3);
52773   __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52774   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
52775   __Pyx_INCREF(__pyx_v_key);
52776   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
52777   __Pyx_GIVEREF(__pyx_v_key);
52778   __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52779   __Pyx_GOTREF(__pyx_t_5);
52780   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52781   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
52782   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
52783 
52784   __pyx_r = 0;
52785   goto __pyx_L0;
52786   __pyx_L1_error:;
52787   __Pyx_XDECREF(__pyx_t_3);
52788   __Pyx_XDECREF(__pyx_t_4);
52789   __Pyx_XDECREF(__pyx_t_5);
52790   __Pyx_AddTraceback("mpi4py.MPI.Info.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
52791   __pyx_r = -1;
52792   __pyx_L0:;
52793   __Pyx_RefNannyFinishContext();
52794   return __pyx_r;
52795 }
52796 
52797 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":153
52798  *         self.Delete(key)
52799  *
52800  *     def get(self, object key, object default=None):             # <<<<<<<<<<<<<<
52801  *         """info get"""
52802  *         if not self: return default
52803  */
52804 
52805 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_20get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
52806 static char __pyx_doc_6mpi4py_3MPI_4Info_20get[] = "Info.get(self, key, default=None)\ninfo get";
__pyx_pf_6mpi4py_3MPI_4Info_20get(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)52807 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_20get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
52808   PyObject *__pyx_v_key = 0;
52809   PyObject *__pyx_v_default = 0;
52810   PyObject *__pyx_v_value = 0;
52811   PyObject *__pyx_r = NULL;
52812   __Pyx_RefNannyDeclarations
52813   int __pyx_t_1;
52814   int __pyx_t_2;
52815   PyObject *__pyx_t_3 = NULL;
52816   PyObject *__pyx_t_4 = NULL;
52817   PyObject *__pyx_t_5 = NULL;
52818   int __pyx_lineno = 0;
52819   const char *__pyx_filename = NULL;
52820   int __pyx_clineno = 0;
52821   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__default,0};
52822   __Pyx_RefNannySetupContext("get");
52823   {
52824     PyObject* values[2] = {0,0};
52825     values[1] = ((PyObject *)Py_None);
52826     if (unlikely(__pyx_kwds)) {
52827       Py_ssize_t kw_args;
52828       switch (PyTuple_GET_SIZE(__pyx_args)) {
52829         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
52830         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52831         case  0: break;
52832         default: goto __pyx_L5_argtuple_error;
52833       }
52834       kw_args = PyDict_Size(__pyx_kwds);
52835       switch (PyTuple_GET_SIZE(__pyx_args)) {
52836         case  0:
52837         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
52838         if (likely(values[0])) kw_args--;
52839         else goto __pyx_L5_argtuple_error;
52840         case  1:
52841         if (kw_args > 0) {
52842           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
52843           if (value) { values[1] = value; kw_args--; }
52844         }
52845       }
52846       if (unlikely(kw_args > 0)) {
52847         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "get") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52848       }
52849     } else {
52850       switch (PyTuple_GET_SIZE(__pyx_args)) {
52851         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
52852         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
52853         break;
52854         default: goto __pyx_L5_argtuple_error;
52855       }
52856     }
52857     __pyx_v_key = values[0];
52858     __pyx_v_default = values[1];
52859   }
52860   goto __pyx_L4_argument_unpacking_done;
52861   __pyx_L5_argtuple_error:;
52862   __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
52863   __pyx_L3_error:;
52864   __Pyx_AddTraceback("mpi4py.MPI.Info.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
52865   __Pyx_RefNannyFinishContext();
52866   return NULL;
52867   __pyx_L4_argument_unpacking_done:;
52868 
52869   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":155
52870  *     def get(self, object key, object default=None):
52871  *         """info get"""
52872  *         if not self: return default             # <<<<<<<<<<<<<<
52873  *         cdef object value = self.Get(key)
52874  *         if value is None: return default
52875  */
52876   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52877   __pyx_t_2 = (!__pyx_t_1);
52878   if (__pyx_t_2) {
52879     __Pyx_XDECREF(__pyx_r);
52880     __Pyx_INCREF(__pyx_v_default);
52881     __pyx_r = __pyx_v_default;
52882     goto __pyx_L0;
52883     goto __pyx_L6;
52884   }
52885   __pyx_L6:;
52886 
52887   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":156
52888  *         """info get"""
52889  *         if not self: return default
52890  *         cdef object value = self.Get(key)             # <<<<<<<<<<<<<<
52891  *         if value is None: return default
52892  *         return value
52893  */
52894   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52895   __Pyx_GOTREF(__pyx_t_3);
52896   __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52897   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
52898   __Pyx_INCREF(__pyx_v_key);
52899   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
52900   __Pyx_GIVEREF(__pyx_v_key);
52901   __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52902   __Pyx_GOTREF(__pyx_t_5);
52903   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
52904   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
52905   __pyx_v_value = __pyx_t_5;
52906   __pyx_t_5 = 0;
52907 
52908   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":157
52909  *         if not self: return default
52910  *         cdef object value = self.Get(key)
52911  *         if value is None: return default             # <<<<<<<<<<<<<<
52912  *         return value
52913  *
52914  */
52915   __pyx_t_2 = (__pyx_v_value == Py_None);
52916   if (__pyx_t_2) {
52917     __Pyx_XDECREF(__pyx_r);
52918     __Pyx_INCREF(__pyx_v_default);
52919     __pyx_r = __pyx_v_default;
52920     goto __pyx_L0;
52921     goto __pyx_L7;
52922   }
52923   __pyx_L7:;
52924 
52925   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":158
52926  *         cdef object value = self.Get(key)
52927  *         if value is None: return default
52928  *         return value             # <<<<<<<<<<<<<<
52929  *
52930  *     def keys(self):
52931  */
52932   __Pyx_XDECREF(__pyx_r);
52933   __Pyx_INCREF(__pyx_v_value);
52934   __pyx_r = __pyx_v_value;
52935   goto __pyx_L0;
52936 
52937   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
52938   goto __pyx_L0;
52939   __pyx_L1_error:;
52940   __Pyx_XDECREF(__pyx_t_3);
52941   __Pyx_XDECREF(__pyx_t_4);
52942   __Pyx_XDECREF(__pyx_t_5);
52943   __Pyx_AddTraceback("mpi4py.MPI.Info.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
52944   __pyx_r = NULL;
52945   __pyx_L0:;
52946   __Pyx_XDECREF(__pyx_v_value);
52947   __Pyx_XGIVEREF(__pyx_r);
52948   __Pyx_RefNannyFinishContext();
52949   return __pyx_r;
52950 }
52951 
52952 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":160
52953  *         return value
52954  *
52955  *     def keys(self):             # <<<<<<<<<<<<<<
52956  *         """info keys"""
52957  *         if not self: return []
52958  */
52959 
52960 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_21keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
52961 static char __pyx_doc_6mpi4py_3MPI_4Info_21keys[] = "Info.keys(self)\ninfo keys";
__pyx_pf_6mpi4py_3MPI_4Info_21keys(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)52962 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_21keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
52963   PyObject *__pyx_v_keys = 0;
52964   int __pyx_v_k;
52965   int __pyx_v_nkeys;
52966   PyObject *__pyx_v_key = 0;
52967   PyObject *__pyx_r = NULL;
52968   __Pyx_RefNannyDeclarations
52969   int __pyx_t_1;
52970   int __pyx_t_2;
52971   PyObject *__pyx_t_3 = NULL;
52972   PyObject *__pyx_t_4 = NULL;
52973   int __pyx_t_5;
52974   PyObject *__pyx_t_6 = NULL;
52975   int __pyx_t_7;
52976   int __pyx_lineno = 0;
52977   const char *__pyx_filename = NULL;
52978   int __pyx_clineno = 0;
52979   __Pyx_RefNannySetupContext("keys");
52980   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
52981     __Pyx_RaiseArgtupleInvalid("keys", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
52982   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "keys", 0))) return NULL;
52983 
52984   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":162
52985  *     def keys(self):
52986  *         """info keys"""
52987  *         if not self: return []             # <<<<<<<<<<<<<<
52988  *         cdef list keys = []
52989  *         cdef int k = 0, nkeys = self.Get_nkeys()
52990  */
52991   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52992   __pyx_t_2 = (!__pyx_t_1);
52993   if (__pyx_t_2) {
52994     __Pyx_XDECREF(__pyx_r);
52995     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
52996     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
52997     __pyx_r = ((PyObject *)__pyx_t_3);
52998     __pyx_t_3 = 0;
52999     goto __pyx_L0;
53000     goto __pyx_L5;
53001   }
53002   __pyx_L5:;
53003 
53004   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":163
53005  *         """info keys"""
53006  *         if not self: return []
53007  *         cdef list keys = []             # <<<<<<<<<<<<<<
53008  *         cdef int k = 0, nkeys = self.Get_nkeys()
53009  *         cdef object key
53010  */
53011   __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53012   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
53013   __pyx_v_keys = __pyx_t_3;
53014   __pyx_t_3 = 0;
53015 
53016   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":164
53017  *         if not self: return []
53018  *         cdef list keys = []
53019  *         cdef int k = 0, nkeys = self.Get_nkeys()             # <<<<<<<<<<<<<<
53020  *         cdef object key
53021  *         for k from 0 <= k < nkeys:
53022  */
53023   __pyx_v_k = 0;
53024   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nkeys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53025   __Pyx_GOTREF(__pyx_t_3);
53026   __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53027   __Pyx_GOTREF(__pyx_t_4);
53028   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53029   __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53030   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53031   __pyx_v_nkeys = __pyx_t_5;
53032 
53033   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":166
53034  *         cdef int k = 0, nkeys = self.Get_nkeys()
53035  *         cdef object key
53036  *         for k from 0 <= k < nkeys:             # <<<<<<<<<<<<<<
53037  *             key = self.Get_nthkey(k)
53038  *             keys.append(key)
53039  */
53040   __pyx_t_5 = __pyx_v_nkeys;
53041   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_5; __pyx_v_k++) {
53042 
53043     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":167
53044  *         cdef object key
53045  *         for k from 0 <= k < nkeys:
53046  *             key = self.Get_nthkey(k)             # <<<<<<<<<<<<<<
53047  *             keys.append(key)
53048  *         return keys
53049  */
53050     __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nthkey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53051     __Pyx_GOTREF(__pyx_t_4);
53052     __pyx_t_3 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53053     __Pyx_GOTREF(__pyx_t_3);
53054     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53055     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
53056     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
53057     __Pyx_GIVEREF(__pyx_t_3);
53058     __pyx_t_3 = 0;
53059     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53060     __Pyx_GOTREF(__pyx_t_3);
53061     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53062     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
53063     __Pyx_XDECREF(__pyx_v_key);
53064     __pyx_v_key = __pyx_t_3;
53065     __pyx_t_3 = 0;
53066 
53067     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":168
53068  *         for k from 0 <= k < nkeys:
53069  *             key = self.Get_nthkey(k)
53070  *             keys.append(key)             # <<<<<<<<<<<<<<
53071  *         return keys
53072  *
53073  */
53074     if (unlikely(((PyObject *)__pyx_v_keys) == Py_None)) {
53075       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53076     }
53077     __pyx_t_7 = PyList_Append(__pyx_v_keys, __pyx_v_key); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53078   }
53079 
53080   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":169
53081  *             key = self.Get_nthkey(k)
53082  *             keys.append(key)
53083  *         return keys             # <<<<<<<<<<<<<<
53084  *
53085  *     def values(self):
53086  */
53087   __Pyx_XDECREF(__pyx_r);
53088   __Pyx_INCREF(((PyObject *)__pyx_v_keys));
53089   __pyx_r = ((PyObject *)__pyx_v_keys);
53090   goto __pyx_L0;
53091 
53092   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
53093   goto __pyx_L0;
53094   __pyx_L1_error:;
53095   __Pyx_XDECREF(__pyx_t_3);
53096   __Pyx_XDECREF(__pyx_t_4);
53097   __Pyx_XDECREF(__pyx_t_6);
53098   __Pyx_AddTraceback("mpi4py.MPI.Info.keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
53099   __pyx_r = NULL;
53100   __pyx_L0:;
53101   __Pyx_XDECREF(__pyx_v_keys);
53102   __Pyx_XDECREF(__pyx_v_key);
53103   __Pyx_XGIVEREF(__pyx_r);
53104   __Pyx_RefNannyFinishContext();
53105   return __pyx_r;
53106 }
53107 
53108 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":171
53109  *         return keys
53110  *
53111  *     def values(self):             # <<<<<<<<<<<<<<
53112  *         """info values"""
53113  *         if not self: return []
53114  */
53115 
53116 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_22values(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53117 static char __pyx_doc_6mpi4py_3MPI_4Info_22values[] = "Info.values(self)\ninfo values";
__pyx_pf_6mpi4py_3MPI_4Info_22values(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)53118 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_22values(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53119   PyObject *__pyx_v_values = 0;
53120   int __pyx_v_k;
53121   int __pyx_v_nkeys;
53122   PyObject *__pyx_v_key = 0;
53123   PyObject *__pyx_v_val = 0;
53124   PyObject *__pyx_r = NULL;
53125   __Pyx_RefNannyDeclarations
53126   int __pyx_t_1;
53127   int __pyx_t_2;
53128   PyObject *__pyx_t_3 = NULL;
53129   PyObject *__pyx_t_4 = NULL;
53130   int __pyx_t_5;
53131   PyObject *__pyx_t_6 = NULL;
53132   int __pyx_t_7;
53133   int __pyx_lineno = 0;
53134   const char *__pyx_filename = NULL;
53135   int __pyx_clineno = 0;
53136   __Pyx_RefNannySetupContext("values");
53137   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
53138     __Pyx_RaiseArgtupleInvalid("values", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
53139   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "values", 0))) return NULL;
53140 
53141   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":173
53142  *     def values(self):
53143  *         """info values"""
53144  *         if not self: return []             # <<<<<<<<<<<<<<
53145  *         cdef list values = []
53146  *         cdef int k = 0, nkeys = self.Get_nkeys()
53147  */
53148   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53149   __pyx_t_2 = (!__pyx_t_1);
53150   if (__pyx_t_2) {
53151     __Pyx_XDECREF(__pyx_r);
53152     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53153     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
53154     __pyx_r = ((PyObject *)__pyx_t_3);
53155     __pyx_t_3 = 0;
53156     goto __pyx_L0;
53157     goto __pyx_L5;
53158   }
53159   __pyx_L5:;
53160 
53161   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":174
53162  *         """info values"""
53163  *         if not self: return []
53164  *         cdef list values = []             # <<<<<<<<<<<<<<
53165  *         cdef int k = 0, nkeys = self.Get_nkeys()
53166  *         cdef object key, val
53167  */
53168   __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53169   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
53170   __pyx_v_values = __pyx_t_3;
53171   __pyx_t_3 = 0;
53172 
53173   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":175
53174  *         if not self: return []
53175  *         cdef list values = []
53176  *         cdef int k = 0, nkeys = self.Get_nkeys()             # <<<<<<<<<<<<<<
53177  *         cdef object key, val
53178  *         for k from 0 <= k < nkeys:
53179  */
53180   __pyx_v_k = 0;
53181   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nkeys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53182   __Pyx_GOTREF(__pyx_t_3);
53183   __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53184   __Pyx_GOTREF(__pyx_t_4);
53185   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53186   __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53187   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53188   __pyx_v_nkeys = __pyx_t_5;
53189 
53190   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":177
53191  *         cdef int k = 0, nkeys = self.Get_nkeys()
53192  *         cdef object key, val
53193  *         for k from 0 <= k < nkeys:             # <<<<<<<<<<<<<<
53194  *             key = self.Get_nthkey(k)
53195  *             val = self.Get(key)
53196  */
53197   __pyx_t_5 = __pyx_v_nkeys;
53198   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_5; __pyx_v_k++) {
53199 
53200     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":178
53201  *         cdef object key, val
53202  *         for k from 0 <= k < nkeys:
53203  *             key = self.Get_nthkey(k)             # <<<<<<<<<<<<<<
53204  *             val = self.Get(key)
53205  *             values.append(val)
53206  */
53207     __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nthkey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53208     __Pyx_GOTREF(__pyx_t_4);
53209     __pyx_t_3 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53210     __Pyx_GOTREF(__pyx_t_3);
53211     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53212     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
53213     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
53214     __Pyx_GIVEREF(__pyx_t_3);
53215     __pyx_t_3 = 0;
53216     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53217     __Pyx_GOTREF(__pyx_t_3);
53218     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53219     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
53220     __Pyx_XDECREF(__pyx_v_key);
53221     __pyx_v_key = __pyx_t_3;
53222     __pyx_t_3 = 0;
53223 
53224     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":179
53225  *         for k from 0 <= k < nkeys:
53226  *             key = self.Get_nthkey(k)
53227  *             val = self.Get(key)             # <<<<<<<<<<<<<<
53228  *             values.append(val)
53229  *         return values
53230  */
53231     __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53232     __Pyx_GOTREF(__pyx_t_3);
53233     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53234     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
53235     __Pyx_INCREF(__pyx_v_key);
53236     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_key);
53237     __Pyx_GIVEREF(__pyx_v_key);
53238     __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53239     __Pyx_GOTREF(__pyx_t_4);
53240     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53241     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
53242     __Pyx_XDECREF(__pyx_v_val);
53243     __pyx_v_val = __pyx_t_4;
53244     __pyx_t_4 = 0;
53245 
53246     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":180
53247  *             key = self.Get_nthkey(k)
53248  *             val = self.Get(key)
53249  *             values.append(val)             # <<<<<<<<<<<<<<
53250  *         return values
53251  *
53252  */
53253     if (unlikely(((PyObject *)__pyx_v_values) == Py_None)) {
53254       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53255     }
53256     __pyx_t_7 = PyList_Append(__pyx_v_values, __pyx_v_val); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53257   }
53258 
53259   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":181
53260  *             val = self.Get(key)
53261  *             values.append(val)
53262  *         return values             # <<<<<<<<<<<<<<
53263  *
53264  *     def items(self):
53265  */
53266   __Pyx_XDECREF(__pyx_r);
53267   __Pyx_INCREF(((PyObject *)__pyx_v_values));
53268   __pyx_r = ((PyObject *)__pyx_v_values);
53269   goto __pyx_L0;
53270 
53271   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
53272   goto __pyx_L0;
53273   __pyx_L1_error:;
53274   __Pyx_XDECREF(__pyx_t_3);
53275   __Pyx_XDECREF(__pyx_t_4);
53276   __Pyx_XDECREF(__pyx_t_6);
53277   __Pyx_AddTraceback("mpi4py.MPI.Info.values", __pyx_clineno, __pyx_lineno, __pyx_filename);
53278   __pyx_r = NULL;
53279   __pyx_L0:;
53280   __Pyx_XDECREF(__pyx_v_values);
53281   __Pyx_XDECREF(__pyx_v_key);
53282   __Pyx_XDECREF(__pyx_v_val);
53283   __Pyx_XGIVEREF(__pyx_r);
53284   __Pyx_RefNannyFinishContext();
53285   return __pyx_r;
53286 }
53287 
53288 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":183
53289  *         return values
53290  *
53291  *     def items(self):             # <<<<<<<<<<<<<<
53292  *         """info items"""
53293  *         if not self: return []
53294  */
53295 
53296 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_23items(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53297 static char __pyx_doc_6mpi4py_3MPI_4Info_23items[] = "Info.items(self)\ninfo items";
__pyx_pf_6mpi4py_3MPI_4Info_23items(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)53298 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_23items(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53299   PyObject *__pyx_v_items = 0;
53300   int __pyx_v_k;
53301   int __pyx_v_nkeys;
53302   PyObject *__pyx_v_key = 0;
53303   PyObject *__pyx_v_value = 0;
53304   PyObject *__pyx_r = NULL;
53305   __Pyx_RefNannyDeclarations
53306   int __pyx_t_1;
53307   int __pyx_t_2;
53308   PyObject *__pyx_t_3 = NULL;
53309   PyObject *__pyx_t_4 = NULL;
53310   int __pyx_t_5;
53311   PyObject *__pyx_t_6 = NULL;
53312   int __pyx_t_7;
53313   int __pyx_lineno = 0;
53314   const char *__pyx_filename = NULL;
53315   int __pyx_clineno = 0;
53316   __Pyx_RefNannySetupContext("items");
53317   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
53318     __Pyx_RaiseArgtupleInvalid("items", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
53319   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "items", 0))) return NULL;
53320 
53321   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":185
53322  *     def items(self):
53323  *         """info items"""
53324  *         if not self: return []             # <<<<<<<<<<<<<<
53325  *         cdef list items = []
53326  *         cdef int k = 0, nkeys = self.Get_nkeys()
53327  */
53328   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53329   __pyx_t_2 = (!__pyx_t_1);
53330   if (__pyx_t_2) {
53331     __Pyx_XDECREF(__pyx_r);
53332     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53333     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
53334     __pyx_r = ((PyObject *)__pyx_t_3);
53335     __pyx_t_3 = 0;
53336     goto __pyx_L0;
53337     goto __pyx_L5;
53338   }
53339   __pyx_L5:;
53340 
53341   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":186
53342  *         """info items"""
53343  *         if not self: return []
53344  *         cdef list items = []             # <<<<<<<<<<<<<<
53345  *         cdef int k = 0, nkeys = self.Get_nkeys()
53346  *         cdef object key, value
53347  */
53348   __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53349   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
53350   __pyx_v_items = __pyx_t_3;
53351   __pyx_t_3 = 0;
53352 
53353   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":187
53354  *         if not self: return []
53355  *         cdef list items = []
53356  *         cdef int k = 0, nkeys = self.Get_nkeys()             # <<<<<<<<<<<<<<
53357  *         cdef object key, value
53358  *         for k from 0 <= k < nkeys:
53359  */
53360   __pyx_v_k = 0;
53361   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nkeys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53362   __Pyx_GOTREF(__pyx_t_3);
53363   __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53364   __Pyx_GOTREF(__pyx_t_4);
53365   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53366   __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53367   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53368   __pyx_v_nkeys = __pyx_t_5;
53369 
53370   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":189
53371  *         cdef int k = 0, nkeys = self.Get_nkeys()
53372  *         cdef object key, value
53373  *         for k from 0 <= k < nkeys:             # <<<<<<<<<<<<<<
53374  *             key = self.Get_nthkey(k)
53375  *             value = self.Get(key)
53376  */
53377   __pyx_t_5 = __pyx_v_nkeys;
53378   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_5; __pyx_v_k++) {
53379 
53380     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":190
53381  *         cdef object key, value
53382  *         for k from 0 <= k < nkeys:
53383  *             key = self.Get_nthkey(k)             # <<<<<<<<<<<<<<
53384  *             value = self.Get(key)
53385  *             items.append((key, value))
53386  */
53387     __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nthkey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53388     __Pyx_GOTREF(__pyx_t_4);
53389     __pyx_t_3 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53390     __Pyx_GOTREF(__pyx_t_3);
53391     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53392     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
53393     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
53394     __Pyx_GIVEREF(__pyx_t_3);
53395     __pyx_t_3 = 0;
53396     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53397     __Pyx_GOTREF(__pyx_t_3);
53398     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53399     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
53400     __Pyx_XDECREF(__pyx_v_key);
53401     __pyx_v_key = __pyx_t_3;
53402     __pyx_t_3 = 0;
53403 
53404     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":191
53405  *         for k from 0 <= k < nkeys:
53406  *             key = self.Get_nthkey(k)
53407  *             value = self.Get(key)             # <<<<<<<<<<<<<<
53408  *             items.append((key, value))
53409  *         return items
53410  */
53411     __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53412     __Pyx_GOTREF(__pyx_t_3);
53413     __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53414     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
53415     __Pyx_INCREF(__pyx_v_key);
53416     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_key);
53417     __Pyx_GIVEREF(__pyx_v_key);
53418     __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53419     __Pyx_GOTREF(__pyx_t_4);
53420     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53421     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
53422     __Pyx_XDECREF(__pyx_v_value);
53423     __pyx_v_value = __pyx_t_4;
53424     __pyx_t_4 = 0;
53425 
53426     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":192
53427  *             key = self.Get_nthkey(k)
53428  *             value = self.Get(key)
53429  *             items.append((key, value))             # <<<<<<<<<<<<<<
53430  *         return items
53431  *
53432  */
53433     if (unlikely(((PyObject *)__pyx_v_items) == Py_None)) {
53434       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53435     }
53436     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53437     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
53438     __Pyx_INCREF(__pyx_v_key);
53439     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
53440     __Pyx_GIVEREF(__pyx_v_key);
53441     __Pyx_INCREF(__pyx_v_value);
53442     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_value);
53443     __Pyx_GIVEREF(__pyx_v_value);
53444     __pyx_t_7 = PyList_Append(__pyx_v_items, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53445     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
53446   }
53447 
53448   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":193
53449  *             value = self.Get(key)
53450  *             items.append((key, value))
53451  *         return items             # <<<<<<<<<<<<<<
53452  *
53453  *     def update(self, other=(), **kwds):
53454  */
53455   __Pyx_XDECREF(__pyx_r);
53456   __Pyx_INCREF(((PyObject *)__pyx_v_items));
53457   __pyx_r = ((PyObject *)__pyx_v_items);
53458   goto __pyx_L0;
53459 
53460   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
53461   goto __pyx_L0;
53462   __pyx_L1_error:;
53463   __Pyx_XDECREF(__pyx_t_3);
53464   __Pyx_XDECREF(__pyx_t_4);
53465   __Pyx_XDECREF(__pyx_t_6);
53466   __Pyx_AddTraceback("mpi4py.MPI.Info.items", __pyx_clineno, __pyx_lineno, __pyx_filename);
53467   __pyx_r = NULL;
53468   __pyx_L0:;
53469   __Pyx_XDECREF(__pyx_v_items);
53470   __Pyx_XDECREF(__pyx_v_key);
53471   __Pyx_XDECREF(__pyx_v_value);
53472   __Pyx_XGIVEREF(__pyx_r);
53473   __Pyx_RefNannyFinishContext();
53474   return __pyx_r;
53475 }
53476 
53477 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":195
53478  *         return items
53479  *
53480  *     def update(self, other=(), **kwds):             # <<<<<<<<<<<<<<
53481  *         """info update"""
53482  *         if not self: raise KeyError
53483  */
53484 
53485 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_24update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53486 static char __pyx_doc_6mpi4py_3MPI_4Info_24update[] = "Info.update(self, other=(), **kwds)\ninfo update";
__pyx_pf_6mpi4py_3MPI_4Info_24update(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)53487 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_24update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53488   PyObject *__pyx_v_other = 0;
53489   PyObject *__pyx_v_kwds = 0;
53490   PyObject *__pyx_v_key = 0;
53491   PyObject *__pyx_v_value = 0;
53492   PyObject *__pyx_r = NULL;
53493   __Pyx_RefNannyDeclarations
53494   int __pyx_t_1;
53495   int __pyx_t_2;
53496   PyObject *__pyx_t_3 = NULL;
53497   PyObject *__pyx_t_4 = NULL;
53498   Py_ssize_t __pyx_t_5;
53499   PyObject *(*__pyx_t_6)(PyObject *);
53500   PyObject *__pyx_t_7 = NULL;
53501   PyObject *__pyx_t_8 = NULL;
53502   PyObject *__pyx_t_9 = NULL;
53503   PyObject *(*__pyx_t_10)(PyObject *);
53504   int __pyx_lineno = 0;
53505   const char *__pyx_filename = NULL;
53506   int __pyx_clineno = 0;
53507   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__other,0};
53508   __Pyx_RefNannySetupContext("update");
53509   __pyx_v_kwds = PyDict_New(); if (unlikely(!__pyx_v_kwds)) return NULL;
53510   __Pyx_GOTREF(__pyx_v_kwds);
53511   {
53512     PyObject* values[1] = {0};
53513     values[0] = ((PyObject *)__pyx_empty_tuple);
53514     if (unlikely(__pyx_kwds)) {
53515       Py_ssize_t kw_args;
53516       switch (PyTuple_GET_SIZE(__pyx_args)) {
53517         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
53518         case  0: break;
53519         default: goto __pyx_L5_argtuple_error;
53520       }
53521       kw_args = PyDict_Size(__pyx_kwds);
53522       switch (PyTuple_GET_SIZE(__pyx_args)) {
53523         case  0:
53524         if (kw_args > 0) {
53525           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__other);
53526           if (value) { values[0] = value; kw_args--; }
53527         }
53528       }
53529       if (unlikely(kw_args > 0)) {
53530         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwds, values, PyTuple_GET_SIZE(__pyx_args), "update") < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
53531       }
53532     } else {
53533       switch (PyTuple_GET_SIZE(__pyx_args)) {
53534         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
53535         case  0: break;
53536         default: goto __pyx_L5_argtuple_error;
53537       }
53538     }
53539     __pyx_v_other = values[0];
53540   }
53541   goto __pyx_L4_argument_unpacking_done;
53542   __pyx_L5_argtuple_error:;
53543   __Pyx_RaiseArgtupleInvalid("update", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
53544   __pyx_L3_error:;
53545   __Pyx_DECREF(__pyx_v_kwds); __pyx_v_kwds = 0;
53546   __Pyx_AddTraceback("mpi4py.MPI.Info.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
53547   __Pyx_RefNannyFinishContext();
53548   return NULL;
53549   __pyx_L4_argument_unpacking_done:;
53550 
53551   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":197
53552  *     def update(self, other=(), **kwds):
53553  *         """info update"""
53554  *         if not self: raise KeyError             # <<<<<<<<<<<<<<
53555  *         cdef object key, value
53556  *         if hasattr(other, 'keys'):
53557  */
53558   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53559   __pyx_t_2 = (!__pyx_t_1);
53560   if (__pyx_t_2) {
53561     __Pyx_Raise(__pyx_builtin_KeyError, 0, 0, 0);
53562     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53563     goto __pyx_L6;
53564   }
53565   __pyx_L6:;
53566 
53567   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":199
53568  *         if not self: raise KeyError
53569  *         cdef object key, value
53570  *         if hasattr(other, 'keys'):             # <<<<<<<<<<<<<<
53571  *             for key in other.keys():
53572  *                 self.Set(key, other[key])
53573  */
53574   __pyx_t_3 = ((PyObject *)__pyx_n_s__keys);
53575   __Pyx_INCREF(__pyx_t_3);
53576   __pyx_t_2 = PyObject_HasAttr(__pyx_v_other, __pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53577   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53578   if (__pyx_t_2) {
53579 
53580     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":200
53581  *         cdef object key, value
53582  *         if hasattr(other, 'keys'):
53583  *             for key in other.keys():             # <<<<<<<<<<<<<<
53584  *                 self.Set(key, other[key])
53585  *         else:
53586  */
53587     __pyx_t_3 = PyObject_GetAttr(__pyx_v_other, __pyx_n_s__keys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53588     __Pyx_GOTREF(__pyx_t_3);
53589     __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53590     __Pyx_GOTREF(__pyx_t_4);
53591     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53592     if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
53593       __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
53594       __pyx_t_6 = NULL;
53595     } else {
53596       __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53597       __Pyx_GOTREF(__pyx_t_3);
53598       __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext;
53599     }
53600     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53601     for (;;) {
53602       if (PyList_CheckExact(__pyx_t_3)) {
53603         if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
53604         __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
53605       } else if (PyTuple_CheckExact(__pyx_t_3)) {
53606         if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
53607         __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
53608       } else {
53609         __pyx_t_4 = __pyx_t_6(__pyx_t_3);
53610         if (unlikely(!__pyx_t_4)) {
53611           if (PyErr_Occurred()) {
53612             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
53613             else {__pyx_filename = __pyx_f[22]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53614           }
53615           break;
53616         }
53617         __Pyx_GOTREF(__pyx_t_4);
53618       }
53619       __Pyx_XDECREF(__pyx_v_key);
53620       __pyx_v_key = __pyx_t_4;
53621       __pyx_t_4 = 0;
53622 
53623       /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":201
53624  *         if hasattr(other, 'keys'):
53625  *             for key in other.keys():
53626  *                 self.Set(key, other[key])             # <<<<<<<<<<<<<<
53627  *         else:
53628  *             for key, value in other:
53629  */
53630       __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53631       __Pyx_GOTREF(__pyx_t_4);
53632       __pyx_t_7 = PyObject_GetItem(__pyx_v_other, __pyx_v_key); if (!__pyx_t_7) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53633       __Pyx_GOTREF(__pyx_t_7);
53634       __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53635       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
53636       __Pyx_INCREF(__pyx_v_key);
53637       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_key);
53638       __Pyx_GIVEREF(__pyx_v_key);
53639       PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7);
53640       __Pyx_GIVEREF(__pyx_t_7);
53641       __pyx_t_7 = 0;
53642       __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53643       __Pyx_GOTREF(__pyx_t_7);
53644       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53645       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
53646       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53647     }
53648     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53649     goto __pyx_L7;
53650   }
53651   /*else*/ {
53652 
53653     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":203
53654  *                 self.Set(key, other[key])
53655  *         else:
53656  *             for key, value in other:             # <<<<<<<<<<<<<<
53657  *                 self.Set(key, value)
53658  *         for key, value in kwds.items():
53659  */
53660     if (PyList_CheckExact(__pyx_v_other) || PyTuple_CheckExact(__pyx_v_other)) {
53661       __pyx_t_3 = __pyx_v_other; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
53662       __pyx_t_6 = NULL;
53663     } else {
53664       __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53665       __Pyx_GOTREF(__pyx_t_3);
53666       __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext;
53667     }
53668     for (;;) {
53669       if (PyList_CheckExact(__pyx_t_3)) {
53670         if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
53671         __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
53672       } else if (PyTuple_CheckExact(__pyx_t_3)) {
53673         if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
53674         __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
53675       } else {
53676         __pyx_t_7 = __pyx_t_6(__pyx_t_3);
53677         if (unlikely(!__pyx_t_7)) {
53678           if (PyErr_Occurred()) {
53679             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
53680             else {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53681           }
53682           break;
53683         }
53684         __Pyx_GOTREF(__pyx_t_7);
53685       }
53686       if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
53687         PyObject* sequence = __pyx_t_7;
53688         if (likely(PyTuple_CheckExact(sequence))) {
53689           if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
53690             if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
53691             else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
53692             {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53693           }
53694           __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0);
53695           __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
53696         } else {
53697           if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
53698             if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
53699             else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
53700             {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53701           }
53702           __pyx_t_8 = PyList_GET_ITEM(sequence, 0);
53703           __pyx_t_4 = PyList_GET_ITEM(sequence, 1);
53704         }
53705         __Pyx_INCREF(__pyx_t_8);
53706         __Pyx_INCREF(__pyx_t_4);
53707         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53708       } else {
53709         Py_ssize_t index = -1;
53710         __pyx_t_9 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53711         __Pyx_GOTREF(__pyx_t_9);
53712         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53713         __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
53714         index = 0; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L12_unpacking_failed;
53715         __Pyx_GOTREF(__pyx_t_8);
53716         index = 1; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed;
53717         __Pyx_GOTREF(__pyx_t_4);
53718         if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53719         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
53720         goto __pyx_L13_unpacking_done;
53721         __pyx_L12_unpacking_failed:;
53722         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
53723         if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
53724         if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
53725         {__pyx_filename = __pyx_f[22]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53726         __pyx_L13_unpacking_done:;
53727       }
53728       __Pyx_XDECREF(__pyx_v_key);
53729       __pyx_v_key = __pyx_t_8;
53730       __pyx_t_8 = 0;
53731       __Pyx_XDECREF(__pyx_v_value);
53732       __pyx_v_value = __pyx_t_4;
53733       __pyx_t_4 = 0;
53734 
53735       /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":204
53736  *         else:
53737  *             for key, value in other:
53738  *                 self.Set(key, value)             # <<<<<<<<<<<<<<
53739  *         for key, value in kwds.items():
53740  *             self.Set(key, value)
53741  */
53742       __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53743       __Pyx_GOTREF(__pyx_t_7);
53744       __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53745       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
53746       __Pyx_INCREF(__pyx_v_key);
53747       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
53748       __Pyx_GIVEREF(__pyx_v_key);
53749       __Pyx_INCREF(__pyx_v_value);
53750       PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_value);
53751       __Pyx_GIVEREF(__pyx_v_value);
53752       __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53753       __Pyx_GOTREF(__pyx_t_8);
53754       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
53755       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
53756       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
53757     }
53758     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53759   }
53760   __pyx_L7:;
53761 
53762   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":205
53763  *             for key, value in other:
53764  *                 self.Set(key, value)
53765  *         for key, value in kwds.items():             # <<<<<<<<<<<<<<
53766  *             self.Set(key, value)
53767  *
53768  */
53769   if (unlikely(((PyObject *)__pyx_v_kwds) == Py_None)) {
53770     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items"); {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53771   }
53772   __pyx_t_3 = PyDict_Items(__pyx_v_kwds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53773   __Pyx_GOTREF(__pyx_t_3);
53774   if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
53775     __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0;
53776     __pyx_t_6 = NULL;
53777   } else {
53778     __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53779     __Pyx_GOTREF(__pyx_t_8);
53780     __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext;
53781   }
53782   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53783   for (;;) {
53784     if (PyList_CheckExact(__pyx_t_8)) {
53785       if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break;
53786       __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
53787     } else if (PyTuple_CheckExact(__pyx_t_8)) {
53788       if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
53789       __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
53790     } else {
53791       __pyx_t_3 = __pyx_t_6(__pyx_t_8);
53792       if (unlikely(!__pyx_t_3)) {
53793         if (PyErr_Occurred()) {
53794           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
53795           else {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53796         }
53797         break;
53798       }
53799       __Pyx_GOTREF(__pyx_t_3);
53800     }
53801     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
53802       PyObject* sequence = __pyx_t_3;
53803       if (likely(PyTuple_CheckExact(sequence))) {
53804         if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
53805           if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
53806           else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
53807           {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53808         }
53809         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
53810         __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);
53811       } else {
53812         if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
53813           if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
53814           else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
53815           {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53816         }
53817         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
53818         __pyx_t_7 = PyList_GET_ITEM(sequence, 1);
53819       }
53820       __Pyx_INCREF(__pyx_t_4);
53821       __Pyx_INCREF(__pyx_t_7);
53822       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53823     } else {
53824       Py_ssize_t index = -1;
53825       __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53826       __Pyx_GOTREF(__pyx_t_9);
53827       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53828       __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
53829       index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L16_unpacking_failed;
53830       __Pyx_GOTREF(__pyx_t_4);
53831       index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L16_unpacking_failed;
53832       __Pyx_GOTREF(__pyx_t_7);
53833       if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53834       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
53835       goto __pyx_L17_unpacking_done;
53836       __pyx_L16_unpacking_failed:;
53837       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
53838       if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
53839       if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
53840       {__pyx_filename = __pyx_f[22]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53841       __pyx_L17_unpacking_done:;
53842     }
53843     __Pyx_XDECREF(__pyx_v_key);
53844     __pyx_v_key = __pyx_t_4;
53845     __pyx_t_4 = 0;
53846     __Pyx_XDECREF(__pyx_v_value);
53847     __pyx_v_value = __pyx_t_7;
53848     __pyx_t_7 = 0;
53849 
53850     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":206
53851  *                 self.Set(key, value)
53852  *         for key, value in kwds.items():
53853  *             self.Set(key, value)             # <<<<<<<<<<<<<<
53854  *
53855  *     def clear(self):
53856  */
53857     __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53858     __Pyx_GOTREF(__pyx_t_3);
53859     __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53860     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
53861     __Pyx_INCREF(__pyx_v_key);
53862     PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_key);
53863     __Pyx_GIVEREF(__pyx_v_key);
53864     __Pyx_INCREF(__pyx_v_value);
53865     PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_value);
53866     __Pyx_GIVEREF(__pyx_v_value);
53867     __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53868     __Pyx_GOTREF(__pyx_t_4);
53869     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53870     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
53871     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53872   }
53873   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
53874 
53875   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
53876   goto __pyx_L0;
53877   __pyx_L1_error:;
53878   __Pyx_XDECREF(__pyx_t_3);
53879   __Pyx_XDECREF(__pyx_t_4);
53880   __Pyx_XDECREF(__pyx_t_7);
53881   __Pyx_XDECREF(__pyx_t_8);
53882   __Pyx_XDECREF(__pyx_t_9);
53883   __Pyx_AddTraceback("mpi4py.MPI.Info.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
53884   __pyx_r = NULL;
53885   __pyx_L0:;
53886   __Pyx_XDECREF(__pyx_v_kwds);
53887   __Pyx_XDECREF(__pyx_v_key);
53888   __Pyx_XDECREF(__pyx_v_value);
53889   __Pyx_XGIVEREF(__pyx_r);
53890   __Pyx_RefNannyFinishContext();
53891   return __pyx_r;
53892 }
53893 
53894 /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":208
53895  *             self.Set(key, value)
53896  *
53897  *     def clear(self):             # <<<<<<<<<<<<<<
53898  *         """info clear"""
53899  *         if not self: return None
53900  */
53901 
53902 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_25clear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53903 static char __pyx_doc_6mpi4py_3MPI_4Info_25clear[] = "Info.clear(self)\ninfo clear";
__pyx_pf_6mpi4py_3MPI_4Info_25clear(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)53904 static PyObject *__pyx_pf_6mpi4py_3MPI_4Info_25clear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53905   int __pyx_v_k;
53906   int __pyx_v_nkeys;
53907   PyObject *__pyx_v_key = 0;
53908   PyObject *__pyx_r = NULL;
53909   __Pyx_RefNannyDeclarations
53910   int __pyx_t_1;
53911   int __pyx_t_2;
53912   PyObject *__pyx_t_3 = NULL;
53913   PyObject *__pyx_t_4 = NULL;
53914   int __pyx_t_5;
53915   PyObject *__pyx_t_6 = NULL;
53916   int __pyx_lineno = 0;
53917   const char *__pyx_filename = NULL;
53918   int __pyx_clineno = 0;
53919   __Pyx_RefNannySetupContext("clear");
53920   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
53921     __Pyx_RaiseArgtupleInvalid("clear", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
53922   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clear", 0))) return NULL;
53923 
53924   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":210
53925  *     def clear(self):
53926  *         """info clear"""
53927  *         if not self: return None             # <<<<<<<<<<<<<<
53928  *         cdef int k = 0, nkeys = self.Get_nkeys()
53929  *         cdef object key
53930  */
53931   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53932   __pyx_t_2 = (!__pyx_t_1);
53933   if (__pyx_t_2) {
53934     __Pyx_XDECREF(__pyx_r);
53935     __Pyx_INCREF(Py_None);
53936     __pyx_r = Py_None;
53937     goto __pyx_L0;
53938     goto __pyx_L5;
53939   }
53940   __pyx_L5:;
53941 
53942   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":211
53943  *         """info clear"""
53944  *         if not self: return None
53945  *         cdef int k = 0, nkeys = self.Get_nkeys()             # <<<<<<<<<<<<<<
53946  *         cdef object key
53947  *         for k from 0 <= k < nkeys:
53948  */
53949   __pyx_v_k = 0;
53950   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nkeys); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53951   __Pyx_GOTREF(__pyx_t_3);
53952   __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53953   __Pyx_GOTREF(__pyx_t_4);
53954   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
53955   __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53956   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53957   __pyx_v_nkeys = __pyx_t_5;
53958 
53959   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":213
53960  *         cdef int k = 0, nkeys = self.Get_nkeys()
53961  *         cdef object key
53962  *         for k from 0 <= k < nkeys:             # <<<<<<<<<<<<<<
53963  *             key = self.Get_nthkey(0)
53964  *             self.Delete(key)
53965  */
53966   __pyx_t_5 = __pyx_v_nkeys;
53967   for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_5; __pyx_v_k++) {
53968 
53969     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":214
53970  *         cdef object key
53971  *         for k from 0 <= k < nkeys:
53972  *             key = self.Get_nthkey(0)             # <<<<<<<<<<<<<<
53973  *             self.Delete(key)
53974  *
53975  */
53976     __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_nthkey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53977     __Pyx_GOTREF(__pyx_t_4);
53978     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_64), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53979     __Pyx_GOTREF(__pyx_t_3);
53980     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
53981     __Pyx_XDECREF(__pyx_v_key);
53982     __pyx_v_key = __pyx_t_3;
53983     __pyx_t_3 = 0;
53984 
53985     /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":215
53986  *         for k from 0 <= k < nkeys:
53987  *             key = self.Get_nthkey(0)
53988  *             self.Delete(key)             # <<<<<<<<<<<<<<
53989  *
53990  *
53991  */
53992     __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Delete); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53993     __Pyx_GOTREF(__pyx_t_3);
53994     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
53995     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
53996     __Pyx_INCREF(__pyx_v_key);
53997     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
53998     __Pyx_GIVEREF(__pyx_v_key);
53999     __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54000     __Pyx_GOTREF(__pyx_t_6);
54001     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54002     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
54003     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
54004   }
54005 
54006   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54007   goto __pyx_L0;
54008   __pyx_L1_error:;
54009   __Pyx_XDECREF(__pyx_t_3);
54010   __Pyx_XDECREF(__pyx_t_4);
54011   __Pyx_XDECREF(__pyx_t_6);
54012   __Pyx_AddTraceback("mpi4py.MPI.Info.clear", __pyx_clineno, __pyx_lineno, __pyx_filename);
54013   __pyx_r = NULL;
54014   __pyx_L0:;
54015   __Pyx_XDECREF(__pyx_v_key);
54016   __Pyx_XGIVEREF(__pyx_r);
54017   __Pyx_RefNannyFinishContext();
54018   return __pyx_r;
54019 }
54020 
54021 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":7
54022  *     """
54023  *
54024  *     def __cinit__(self):             # <<<<<<<<<<<<<<
54025  *         self.ob_mpi = MPI_OP_NULL
54026  *
54027  */
54028 
54029 static int __pyx_pf_6mpi4py_3MPI_2Op___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54030 static int __pyx_pf_6mpi4py_3MPI_2Op___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54031   int __pyx_r;
54032   __Pyx_RefNannyDeclarations
54033   __Pyx_RefNannySetupContext("__cinit__");
54034   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
54035     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
54036   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
54037 
54038   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":8
54039  *
54040  *     def __cinit__(self):
54041  *         self.ob_mpi = MPI_OP_NULL             # <<<<<<<<<<<<<<
54042  *
54043  *     def __dealloc__(self):
54044  */
54045   ((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi = MPI_OP_NULL;
54046 
54047   __pyx_r = 0;
54048   __Pyx_RefNannyFinishContext();
54049   return __pyx_r;
54050 }
54051 
54052 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":10
54053  *         self.ob_mpi = MPI_OP_NULL
54054  *
54055  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
54056  *         if not (self.flags & PyMPI_OWNED): return
54057  *         CHKERR( del_Op(&self.ob_mpi) )
54058  */
54059 
54060 static void __pyx_pf_6mpi4py_3MPI_2Op_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op_1__dealloc__(PyObject * __pyx_v_self)54061 static void __pyx_pf_6mpi4py_3MPI_2Op_1__dealloc__(PyObject *__pyx_v_self) {
54062   __Pyx_RefNannyDeclarations
54063   int __pyx_t_1;
54064   int __pyx_t_2;
54065   int __pyx_lineno = 0;
54066   const char *__pyx_filename = NULL;
54067   int __pyx_clineno = 0;
54068   __Pyx_RefNannySetupContext("__dealloc__");
54069 
54070   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":11
54071  *
54072  *     def __dealloc__(self):
54073  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
54074  *         CHKERR( del_Op(&self.ob_mpi) )
54075  *         op_user_del(&self.ob_usrid)
54076  */
54077   __pyx_t_1 = (!(((struct PyMPIOpObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
54078   if (__pyx_t_1) {
54079     goto __pyx_L0;
54080     goto __pyx_L5;
54081   }
54082   __pyx_L5:;
54083 
54084   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":12
54085  *     def __dealloc__(self):
54086  *         if not (self.flags & PyMPI_OWNED): return
54087  *         CHKERR( del_Op(&self.ob_mpi) )             # <<<<<<<<<<<<<<
54088  *         op_user_del(&self.ob_usrid)
54089  *
54090  */
54091   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Op((&((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54092 
54093   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":13
54094  *         if not (self.flags & PyMPI_OWNED): return
54095  *         CHKERR( del_Op(&self.ob_mpi) )
54096  *         op_user_del(&self.ob_usrid)             # <<<<<<<<<<<<<<
54097  *
54098  *     def __richcmp__(self, other, int op):
54099  */
54100   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_op_user_del((&((struct PyMPIOpObject *)__pyx_v_self)->ob_usrid)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54101 
54102   goto __pyx_L0;
54103   __pyx_L1_error:;
54104   __Pyx_AddTraceback("mpi4py.MPI.Op.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54105   __pyx_L0:;
54106   __Pyx_RefNannyFinishContext();
54107 }
54108 
54109 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":15
54110  *         op_user_del(&self.ob_usrid)
54111  *
54112  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
54113  *         if not isinstance(self,  Op): return NotImplemented
54114  *         if not isinstance(other, Op): return NotImplemented
54115  */
54116 
54117 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)54118 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
54119   struct PyMPIOpObject *__pyx_v_s = 0;
54120   struct PyMPIOpObject *__pyx_v_o = 0;
54121   PyObject *__pyx_r = NULL;
54122   __Pyx_RefNannyDeclarations
54123   PyObject *__pyx_t_1 = NULL;
54124   int __pyx_t_2;
54125   int __pyx_t_3;
54126   int __pyx_lineno = 0;
54127   const char *__pyx_filename = NULL;
54128   int __pyx_clineno = 0;
54129   __Pyx_RefNannySetupContext("__richcmp__");
54130 
54131   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":16
54132  *
54133  *     def __richcmp__(self, other, int op):
54134  *         if not isinstance(self,  Op): return NotImplemented             # <<<<<<<<<<<<<<
54135  *         if not isinstance(other, Op): return NotImplemented
54136  *         cdef Op s = <Op>self, o = <Op>other
54137  */
54138   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Op));
54139   __Pyx_INCREF(__pyx_t_1);
54140   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
54141   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54142   __pyx_t_3 = (!__pyx_t_2);
54143   if (__pyx_t_3) {
54144     __Pyx_XDECREF(__pyx_r);
54145     __Pyx_INCREF(__pyx_builtin_NotImplemented);
54146     __pyx_r = __pyx_builtin_NotImplemented;
54147     goto __pyx_L0;
54148     goto __pyx_L5;
54149   }
54150   __pyx_L5:;
54151 
54152   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":17
54153  *     def __richcmp__(self, other, int op):
54154  *         if not isinstance(self,  Op): return NotImplemented
54155  *         if not isinstance(other, Op): return NotImplemented             # <<<<<<<<<<<<<<
54156  *         cdef Op s = <Op>self, o = <Op>other
54157  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
54158  */
54159   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Op));
54160   __Pyx_INCREF(__pyx_t_1);
54161   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
54162   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54163   __pyx_t_2 = (!__pyx_t_3);
54164   if (__pyx_t_2) {
54165     __Pyx_XDECREF(__pyx_r);
54166     __Pyx_INCREF(__pyx_builtin_NotImplemented);
54167     __pyx_r = __pyx_builtin_NotImplemented;
54168     goto __pyx_L0;
54169     goto __pyx_L6;
54170   }
54171   __pyx_L6:;
54172 
54173   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":18
54174  *         if not isinstance(self,  Op): return NotImplemented
54175  *         if not isinstance(other, Op): return NotImplemented
54176  *         cdef Op s = <Op>self, o = <Op>other             # <<<<<<<<<<<<<<
54177  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
54178  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
54179  */
54180   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_v_self)));
54181   __pyx_v_s = ((struct PyMPIOpObject *)__pyx_v_self);
54182   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_v_other)));
54183   __pyx_v_o = ((struct PyMPIOpObject *)__pyx_v_other);
54184 
54185   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":20
54186  *         cdef Op s = <Op>self, o = <Op>other
54187  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
54188  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
54189  *         else: raise TypeError("only '==' and '!='")
54190  *
54191  */
54192   switch (__pyx_v_op) {
54193 
54194     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":19
54195  *         if not isinstance(other, Op): return NotImplemented
54196  *         cdef Op s = <Op>self, o = <Op>other
54197  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
54198  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
54199  *         else: raise TypeError("only '==' and '!='")
54200  */
54201     case Py_EQ:
54202     __Pyx_XDECREF(__pyx_r);
54203     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54204     __Pyx_GOTREF(__pyx_t_1);
54205     __pyx_r = __pyx_t_1;
54206     __pyx_t_1 = 0;
54207     goto __pyx_L0;
54208     break;
54209 
54210     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":20
54211  *         cdef Op s = <Op>self, o = <Op>other
54212  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
54213  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
54214  *         else: raise TypeError("only '==' and '!='")
54215  *
54216  */
54217     case Py_NE:
54218     __Pyx_XDECREF(__pyx_r);
54219     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54220     __Pyx_GOTREF(__pyx_t_1);
54221     __pyx_r = __pyx_t_1;
54222     __pyx_t_1 = 0;
54223     goto __pyx_L0;
54224     break;
54225     default:
54226 
54227     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":21
54228  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
54229  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
54230  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
54231  *
54232  *     def __bool__(self):
54233  */
54234     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_65), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54235     __Pyx_GOTREF(__pyx_t_1);
54236     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
54237     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54238     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54239     break;
54240   }
54241 
54242   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54243   goto __pyx_L0;
54244   __pyx_L1_error:;
54245   __Pyx_XDECREF(__pyx_t_1);
54246   __Pyx_AddTraceback("mpi4py.MPI.Op.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54247   __pyx_r = NULL;
54248   __pyx_L0:;
54249   __Pyx_XDECREF((PyObject *)__pyx_v_s);
54250   __Pyx_XDECREF((PyObject *)__pyx_v_o);
54251   __Pyx_XGIVEREF(__pyx_r);
54252   __Pyx_RefNannyFinishContext();
54253   return __pyx_r;
54254 }
54255 
54256 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":23
54257  *         else: raise TypeError("only '==' and '!='")
54258  *
54259  *     def __bool__(self):             # <<<<<<<<<<<<<<
54260  *         return self.ob_mpi != MPI_OP_NULL
54261  *
54262  */
54263 
54264 static int __pyx_pf_6mpi4py_3MPI_2Op_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op_3__bool__(PyObject * __pyx_v_self)54265 static int __pyx_pf_6mpi4py_3MPI_2Op_3__bool__(PyObject *__pyx_v_self) {
54266   int __pyx_r;
54267   __Pyx_RefNannyDeclarations
54268   __Pyx_RefNannySetupContext("__bool__");
54269 
54270   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":24
54271  *
54272  *     def __bool__(self):
54273  *         return self.ob_mpi != MPI_OP_NULL             # <<<<<<<<<<<<<<
54274  *
54275  *     def __call__(self, x, y):
54276  */
54277   __pyx_r = (((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi != MPI_OP_NULL);
54278   goto __pyx_L0;
54279 
54280   __pyx_r = 0;
54281   __pyx_L0:;
54282   __Pyx_RefNannyFinishContext();
54283   return __pyx_r;
54284 }
54285 
54286 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":26
54287  *         return self.ob_mpi != MPI_OP_NULL
54288  *
54289  *     def __call__(self, x, y):             # <<<<<<<<<<<<<<
54290  *         if self.ob_func != NULL:
54291  *             return self.ob_func(x, y)
54292  */
54293 
54294 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_4__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op_4__call__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54295 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_4__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54296   PyObject *__pyx_v_x = 0;
54297   PyObject *__pyx_v_y = 0;
54298   PyObject *__pyx_r = NULL;
54299   __Pyx_RefNannyDeclarations
54300   int __pyx_t_1;
54301   PyObject *__pyx_t_2 = NULL;
54302   PyObject *__pyx_t_3 = NULL;
54303   int __pyx_lineno = 0;
54304   const char *__pyx_filename = NULL;
54305   int __pyx_clineno = 0;
54306   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,&__pyx_n_s__y,0};
54307   __Pyx_RefNannySetupContext("__call__");
54308   {
54309     PyObject* values[2] = {0,0};
54310     if (unlikely(__pyx_kwds)) {
54311       Py_ssize_t kw_args;
54312       switch (PyTuple_GET_SIZE(__pyx_args)) {
54313         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54314         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54315         case  0: break;
54316         default: goto __pyx_L5_argtuple_error;
54317       }
54318       kw_args = PyDict_Size(__pyx_kwds);
54319       switch (PyTuple_GET_SIZE(__pyx_args)) {
54320         case  0:
54321         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
54322         if (likely(values[0])) kw_args--;
54323         else goto __pyx_L5_argtuple_error;
54324         case  1:
54325         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
54326         if (likely(values[1])) kw_args--;
54327         else {
54328           __Pyx_RaiseArgtupleInvalid("__call__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54329         }
54330       }
54331       if (unlikely(kw_args > 0)) {
54332         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__call__") < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54333       }
54334     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
54335       goto __pyx_L5_argtuple_error;
54336     } else {
54337       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54338       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54339     }
54340     __pyx_v_x = values[0];
54341     __pyx_v_y = values[1];
54342   }
54343   goto __pyx_L4_argument_unpacking_done;
54344   __pyx_L5_argtuple_error:;
54345   __Pyx_RaiseArgtupleInvalid("__call__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54346   __pyx_L3_error:;
54347   __Pyx_AddTraceback("mpi4py.MPI.Op.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54348   __Pyx_RefNannyFinishContext();
54349   return NULL;
54350   __pyx_L4_argument_unpacking_done:;
54351 
54352   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":27
54353  *
54354  *     def __call__(self, x, y):
54355  *         if self.ob_func != NULL:             # <<<<<<<<<<<<<<
54356  *             return self.ob_func(x, y)
54357  *         else:
54358  */
54359   __pyx_t_1 = (((struct PyMPIOpObject *)__pyx_v_self)->ob_func != NULL);
54360   if (__pyx_t_1) {
54361 
54362     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":28
54363  *     def __call__(self, x, y):
54364  *         if self.ob_func != NULL:
54365  *             return self.ob_func(x, y)             # <<<<<<<<<<<<<<
54366  *         else:
54367  *             return op_user_py(self.ob_usrid, x, y, None)
54368  */
54369     __Pyx_XDECREF(__pyx_r);
54370     __pyx_t_2 = ((struct PyMPIOpObject *)__pyx_v_self)->ob_func(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54371     __Pyx_GOTREF(__pyx_t_2);
54372     __pyx_r = __pyx_t_2;
54373     __pyx_t_2 = 0;
54374     goto __pyx_L0;
54375     goto __pyx_L6;
54376   }
54377   /*else*/ {
54378 
54379     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":30
54380  *             return self.ob_func(x, y)
54381  *         else:
54382  *             return op_user_py(self.ob_usrid, x, y, None)             # <<<<<<<<<<<<<<
54383  *
54384  *     @classmethod
54385  */
54386     __Pyx_XDECREF(__pyx_r);
54387     __pyx_t_2 = Py_None;
54388     __Pyx_INCREF(__pyx_t_2);
54389     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_op_user_py(((struct PyMPIOpObject *)__pyx_v_self)->ob_usrid, __pyx_v_x, __pyx_v_y, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54390     __Pyx_GOTREF(__pyx_t_3);
54391     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
54392     __pyx_r = __pyx_t_3;
54393     __pyx_t_3 = 0;
54394     goto __pyx_L0;
54395   }
54396   __pyx_L6:;
54397 
54398   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54399   goto __pyx_L0;
54400   __pyx_L1_error:;
54401   __Pyx_XDECREF(__pyx_t_2);
54402   __Pyx_XDECREF(__pyx_t_3);
54403   __Pyx_AddTraceback("mpi4py.MPI.Op.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54404   __pyx_r = NULL;
54405   __pyx_L0:;
54406   __Pyx_XGIVEREF(__pyx_r);
54407   __Pyx_RefNannyFinishContext();
54408   return __pyx_r;
54409 }
54410 
54411 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":33
54412  *
54413  *     @classmethod
54414  *     def Create(cls, function, bint commute=False):             # <<<<<<<<<<<<<<
54415  *         """
54416  *         Create a user-defined operation
54417  */
54418 
54419 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_5Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54420 static char __pyx_doc_6mpi4py_3MPI_2Op_5Create[] = "Op.Create(type cls, function, int commute=False)\n\n        Create a user-defined operation\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_5Create(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)54421 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_5Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54422   PyObject *__pyx_v_function = 0;
54423   int __pyx_v_commute;
54424   struct PyMPIOpObject *__pyx_v_op = 0;
54425   MPI_User_function *__pyx_v_cfunction;
54426   PyObject *__pyx_r = NULL;
54427   __Pyx_RefNannyDeclarations
54428   PyObject *__pyx_t_1 = NULL;
54429   int __pyx_t_2;
54430   int __pyx_lineno = 0;
54431   const char *__pyx_filename = NULL;
54432   int __pyx_clineno = 0;
54433   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__function,&__pyx_n_s__commute,0};
54434   __Pyx_RefNannySetupContext("Create");
54435   {
54436     PyObject* values[2] = {0,0};
54437     if (unlikely(__pyx_kwds)) {
54438       Py_ssize_t kw_args;
54439       switch (PyTuple_GET_SIZE(__pyx_args)) {
54440         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54441         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54442         case  0: break;
54443         default: goto __pyx_L5_argtuple_error;
54444       }
54445       kw_args = PyDict_Size(__pyx_kwds);
54446       switch (PyTuple_GET_SIZE(__pyx_args)) {
54447         case  0:
54448         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__function);
54449         if (likely(values[0])) kw_args--;
54450         else goto __pyx_L5_argtuple_error;
54451         case  1:
54452         if (kw_args > 0) {
54453           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__commute);
54454           if (value) { values[1] = value; kw_args--; }
54455         }
54456       }
54457       if (unlikely(kw_args > 0)) {
54458         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create") < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54459       }
54460     } else {
54461       switch (PyTuple_GET_SIZE(__pyx_args)) {
54462         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54463         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54464         break;
54465         default: goto __pyx_L5_argtuple_error;
54466       }
54467     }
54468     __pyx_v_function = values[0];
54469     if (values[1]) {
54470       __pyx_v_commute = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_commute == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54471     } else {
54472       __pyx_v_commute = ((int)0);
54473     }
54474   }
54475   goto __pyx_L4_argument_unpacking_done;
54476   __pyx_L5_argtuple_error:;
54477   __Pyx_RaiseArgtupleInvalid("Create", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54478   __pyx_L3_error:;
54479   __Pyx_AddTraceback("mpi4py.MPI.Op.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
54480   __Pyx_RefNannyFinishContext();
54481   return NULL;
54482   __pyx_L4_argument_unpacking_done:;
54483 
54484   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":37
54485  *         Create a user-defined operation
54486  *         """
54487  *         cdef Op op = <Op>cls()             # <<<<<<<<<<<<<<
54488  *         cdef MPI_User_function *cfunction = NULL
54489  *         op.ob_usrid = op_user_new(function, &cfunction)
54490  */
54491   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54492   __Pyx_GOTREF(__pyx_t_1);
54493   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_t_1)));
54494   __pyx_v_op = ((struct PyMPIOpObject *)__pyx_t_1);
54495   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54496 
54497   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":38
54498  *         """
54499  *         cdef Op op = <Op>cls()
54500  *         cdef MPI_User_function *cfunction = NULL             # <<<<<<<<<<<<<<
54501  *         op.ob_usrid = op_user_new(function, &cfunction)
54502  *         CHKERR( MPI_Op_create(cfunction, commute, &op.ob_mpi) )
54503  */
54504   __pyx_v_cfunction = NULL;
54505 
54506   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":39
54507  *         cdef Op op = <Op>cls()
54508  *         cdef MPI_User_function *cfunction = NULL
54509  *         op.ob_usrid = op_user_new(function, &cfunction)             # <<<<<<<<<<<<<<
54510  *         CHKERR( MPI_Op_create(cfunction, commute, &op.ob_mpi) )
54511  *         return op
54512  */
54513   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_op_user_new(__pyx_v_function, (&__pyx_v_cfunction)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54514   __pyx_v_op->ob_usrid = __pyx_t_2;
54515 
54516   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":40
54517  *         cdef MPI_User_function *cfunction = NULL
54518  *         op.ob_usrid = op_user_new(function, &cfunction)
54519  *         CHKERR( MPI_Op_create(cfunction, commute, &op.ob_mpi) )             # <<<<<<<<<<<<<<
54520  *         return op
54521  *
54522  */
54523   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Op_create(__pyx_v_cfunction, __pyx_v_commute, (&__pyx_v_op->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54524 
54525   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":41
54526  *         op.ob_usrid = op_user_new(function, &cfunction)
54527  *         CHKERR( MPI_Op_create(cfunction, commute, &op.ob_mpi) )
54528  *         return op             # <<<<<<<<<<<<<<
54529  *
54530  *     def Free(self):
54531  */
54532   __Pyx_XDECREF(__pyx_r);
54533   __Pyx_INCREF(((PyObject *)__pyx_v_op));
54534   __pyx_r = ((PyObject *)__pyx_v_op);
54535   goto __pyx_L0;
54536 
54537   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54538   goto __pyx_L0;
54539   __pyx_L1_error:;
54540   __Pyx_XDECREF(__pyx_t_1);
54541   __Pyx_AddTraceback("mpi4py.MPI.Op.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
54542   __pyx_r = NULL;
54543   __pyx_L0:;
54544   __Pyx_XDECREF((PyObject *)__pyx_v_op);
54545   __Pyx_XGIVEREF(__pyx_r);
54546   __Pyx_RefNannyFinishContext();
54547   return __pyx_r;
54548 }
54549 
54550 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":43
54551  *         return op
54552  *
54553  *     def Free(self):             # <<<<<<<<<<<<<<
54554  *         """
54555  *         Free the operation
54556  */
54557 
54558 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_6Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54559 static char __pyx_doc_6mpi4py_3MPI_2Op_6Free[] = "Op.Free(self)\n\n        Free the operation\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_6Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54560 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_6Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54561   PyObject *__pyx_r = NULL;
54562   __Pyx_RefNannyDeclarations
54563   int __pyx_t_1;
54564   int __pyx_lineno = 0;
54565   const char *__pyx_filename = NULL;
54566   int __pyx_clineno = 0;
54567   __Pyx_RefNannySetupContext("Free");
54568   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
54569     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
54570   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
54571 
54572   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":47
54573  *         Free the operation
54574  *         """
54575  *         CHKERR( MPI_Op_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
54576  *         op_user_del(&self.ob_usrid)
54577  *
54578  */
54579   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Op_free((&((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54580 
54581   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":48
54582  *         """
54583  *         CHKERR( MPI_Op_free(&self.ob_mpi) )
54584  *         op_user_del(&self.ob_usrid)             # <<<<<<<<<<<<<<
54585  *
54586  *     # Process-local reduction
54587  */
54588   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_op_user_del((&((struct PyMPIOpObject *)__pyx_v_self)->ob_usrid)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54589 
54590   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54591   goto __pyx_L0;
54592   __pyx_L1_error:;
54593   __Pyx_AddTraceback("mpi4py.MPI.Op.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
54594   __pyx_r = NULL;
54595   __pyx_L0:;
54596   __Pyx_XGIVEREF(__pyx_r);
54597   __Pyx_RefNannyFinishContext();
54598   return __pyx_r;
54599 }
54600 
54601 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":53
54602  *     # -----------------------
54603  *
54604  *     def Is_commutative(self):             # <<<<<<<<<<<<<<
54605  *         """
54606  *         Query reduction operations for their commutativity
54607  */
54608 
54609 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_7Is_commutative(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54610 static char __pyx_doc_6mpi4py_3MPI_2Op_7Is_commutative[] = "Op.Is_commutative(self)\n\n        Query reduction operations for their commutativity\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_7Is_commutative(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54611 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_7Is_commutative(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54612   int __pyx_v_flag;
54613   PyObject *__pyx_r = NULL;
54614   __Pyx_RefNannyDeclarations
54615   int __pyx_t_1;
54616   PyObject *__pyx_t_2 = NULL;
54617   int __pyx_lineno = 0;
54618   const char *__pyx_filename = NULL;
54619   int __pyx_clineno = 0;
54620   __Pyx_RefNannySetupContext("Is_commutative");
54621   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
54622     __Pyx_RaiseArgtupleInvalid("Is_commutative", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
54623   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_commutative", 0))) return NULL;
54624 
54625   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":57
54626  *         Query reduction operations for their commutativity
54627  *         """
54628  *         cdef int flag = 0             # <<<<<<<<<<<<<<
54629  *         CHKERR( MPI_Op_commutative(self.ob_mpi, &flag) )
54630  *         return <bint>flag
54631  */
54632   __pyx_v_flag = 0;
54633 
54634   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":58
54635  *         """
54636  *         cdef int flag = 0
54637  *         CHKERR( MPI_Op_commutative(self.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
54638  *         return <bint>flag
54639  *
54640  */
54641   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Op_commutative(((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54642 
54643   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":59
54644  *         cdef int flag = 0
54645  *         CHKERR( MPI_Op_commutative(self.ob_mpi, &flag) )
54646  *         return <bint>flag             # <<<<<<<<<<<<<<
54647  *
54648  *     property is_commutative:
54649  */
54650   __Pyx_XDECREF(__pyx_r);
54651   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54652   __Pyx_GOTREF(__pyx_t_2);
54653   __pyx_r = __pyx_t_2;
54654   __pyx_t_2 = 0;
54655   goto __pyx_L0;
54656 
54657   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54658   goto __pyx_L0;
54659   __pyx_L1_error:;
54660   __Pyx_XDECREF(__pyx_t_2);
54661   __Pyx_AddTraceback("mpi4py.MPI.Op.Is_commutative", __pyx_clineno, __pyx_lineno, __pyx_filename);
54662   __pyx_r = NULL;
54663   __pyx_L0:;
54664   __Pyx_XGIVEREF(__pyx_r);
54665   __Pyx_RefNannyFinishContext();
54666   return __pyx_r;
54667 }
54668 
54669 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":63
54670  *     property is_commutative:
54671  *         """is commutative"""
54672  *         def __get__(self):             # <<<<<<<<<<<<<<
54673  *             return self.Is_commutative()
54674  *
54675  */
54676 
54677 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_14is_commutative___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_2Op_14is_commutative___get__(PyObject * __pyx_v_self)54678 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_14is_commutative___get__(PyObject *__pyx_v_self) {
54679   PyObject *__pyx_r = NULL;
54680   __Pyx_RefNannyDeclarations
54681   PyObject *__pyx_t_1 = NULL;
54682   PyObject *__pyx_t_2 = NULL;
54683   int __pyx_lineno = 0;
54684   const char *__pyx_filename = NULL;
54685   int __pyx_clineno = 0;
54686   __Pyx_RefNannySetupContext("__get__");
54687 
54688   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":64
54689  *         """is commutative"""
54690  *         def __get__(self):
54691  *             return self.Is_commutative()             # <<<<<<<<<<<<<<
54692  *
54693  *     def Reduce_local(self, inbuf, inoutbuf):
54694  */
54695   __Pyx_XDECREF(__pyx_r);
54696   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Is_commutative); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54697   __Pyx_GOTREF(__pyx_t_1);
54698   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54699   __Pyx_GOTREF(__pyx_t_2);
54700   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54701   __pyx_r = __pyx_t_2;
54702   __pyx_t_2 = 0;
54703   goto __pyx_L0;
54704 
54705   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54706   goto __pyx_L0;
54707   __pyx_L1_error:;
54708   __Pyx_XDECREF(__pyx_t_1);
54709   __Pyx_XDECREF(__pyx_t_2);
54710   __Pyx_AddTraceback("mpi4py.MPI.Op.is_commutative.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54711   __pyx_r = NULL;
54712   __pyx_L0:;
54713   __Pyx_XGIVEREF(__pyx_r);
54714   __Pyx_RefNannyFinishContext();
54715   return __pyx_r;
54716 }
54717 
54718 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":66
54719  *             return self.Is_commutative()
54720  *
54721  *     def Reduce_local(self, inbuf, inoutbuf):             # <<<<<<<<<<<<<<
54722  *         """
54723  *         Apply a reduction operator to local data
54724  */
54725 
54726 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_8Reduce_local(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54727 static char __pyx_doc_6mpi4py_3MPI_2Op_8Reduce_local[] = "Op.Reduce_local(self, inbuf, inoutbuf)\n\n        Apply a reduction operator to local data\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_8Reduce_local(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54728 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_8Reduce_local(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54729   PyObject *__pyx_v_inbuf = 0;
54730   PyObject *__pyx_v_inoutbuf = 0;
54731   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
54732   PyObject *__pyx_r = NULL;
54733   __Pyx_RefNannyDeclarations
54734   PyObject *__pyx_t_1 = NULL;
54735   int __pyx_t_2;
54736   PyObject *__pyx_t_3 = NULL;
54737   PyObject *__pyx_t_4 = NULL;
54738   int __pyx_t_5;
54739   int __pyx_lineno = 0;
54740   const char *__pyx_filename = NULL;
54741   int __pyx_clineno = 0;
54742   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__inbuf,&__pyx_n_s__inoutbuf,0};
54743   __Pyx_RefNannySetupContext("Reduce_local");
54744   {
54745     PyObject* values[2] = {0,0};
54746     if (unlikely(__pyx_kwds)) {
54747       Py_ssize_t kw_args;
54748       switch (PyTuple_GET_SIZE(__pyx_args)) {
54749         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54750         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54751         case  0: break;
54752         default: goto __pyx_L5_argtuple_error;
54753       }
54754       kw_args = PyDict_Size(__pyx_kwds);
54755       switch (PyTuple_GET_SIZE(__pyx_args)) {
54756         case  0:
54757         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inbuf);
54758         if (likely(values[0])) kw_args--;
54759         else goto __pyx_L5_argtuple_error;
54760         case  1:
54761         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inoutbuf);
54762         if (likely(values[1])) kw_args--;
54763         else {
54764           __Pyx_RaiseArgtupleInvalid("Reduce_local", 1, 2, 2, 1); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54765         }
54766       }
54767       if (unlikely(kw_args > 0)) {
54768         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Reduce_local") < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54769       }
54770     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
54771       goto __pyx_L5_argtuple_error;
54772     } else {
54773       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
54774       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
54775     }
54776     __pyx_v_inbuf = values[0];
54777     __pyx_v_inoutbuf = values[1];
54778   }
54779   goto __pyx_L4_argument_unpacking_done;
54780   __pyx_L5_argtuple_error:;
54781   __Pyx_RaiseArgtupleInvalid("Reduce_local", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
54782   __pyx_L3_error:;
54783   __Pyx_AddTraceback("mpi4py.MPI.Op.Reduce_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
54784   __Pyx_RefNannyFinishContext();
54785   return NULL;
54786   __pyx_L4_argument_unpacking_done:;
54787 
54788   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":71
54789  *         """
54790  *         # get *in* and *inout* buffers
54791  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
54792  *         m.for_cro_send(inbuf, 0)
54793  *         m.for_cro_recv(inoutbuf, 0)
54794  */
54795   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54796   __Pyx_GOTREF(__pyx_t_1);
54797   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
54798   __pyx_t_1 = 0;
54799 
54800   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":72
54801  *         # get *in* and *inout* buffers
54802  *         cdef _p_msg_cco m = message_cco()
54803  *         m.for_cro_send(inbuf, 0)             # <<<<<<<<<<<<<<
54804  *         m.for_cro_recv(inoutbuf, 0)
54805  *         # check counts and datatypes
54806  */
54807   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_cro_send(__pyx_v_m, __pyx_v_inbuf, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54808 
54809   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":73
54810  *         cdef _p_msg_cco m = message_cco()
54811  *         m.for_cro_send(inbuf, 0)
54812  *         m.for_cro_recv(inoutbuf, 0)             # <<<<<<<<<<<<<<
54813  *         # check counts and datatypes
54814  *         if self.scount != self.rcount:
54815  */
54816   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_cro_recv(__pyx_v_m, __pyx_v_inoutbuf, 0); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54817 
54818   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":75
54819  *         m.for_cro_recv(inoutbuf, 0)
54820  *         # check counts and datatypes
54821  *         if self.scount != self.rcount:             # <<<<<<<<<<<<<<
54822  *             raise ValueError(
54823  *                 "mismatch in inbuf count %d and inoutbuf count %d" %
54824  */
54825   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scount); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54826   __Pyx_GOTREF(__pyx_t_1);
54827   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rcount); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54828   __Pyx_GOTREF(__pyx_t_3);
54829   __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54830   __Pyx_GOTREF(__pyx_t_4);
54831   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54832   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54833   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54834   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
54835   if (__pyx_t_5) {
54836 
54837     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":78
54838  *             raise ValueError(
54839  *                 "mismatch in inbuf count %d and inoutbuf count %d" %
54840  *                 (self.scount, self.rcount))             # <<<<<<<<<<<<<<
54841  *         if (self.stype != self.rtype):
54842  *             raise ValueError(
54843  */
54844     __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scount); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54845     __Pyx_GOTREF(__pyx_t_4);
54846     __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rcount); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54847     __Pyx_GOTREF(__pyx_t_3);
54848     __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54849     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
54850     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
54851     __Pyx_GIVEREF(__pyx_t_4);
54852     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
54853     __Pyx_GIVEREF(__pyx_t_3);
54854     __pyx_t_4 = 0;
54855     __pyx_t_3 = 0;
54856     __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_66), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54857     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
54858     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
54859     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54860     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
54861     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_3));
54862     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
54863     __pyx_t_3 = 0;
54864     __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54865     __Pyx_GOTREF(__pyx_t_3);
54866     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
54867     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
54868     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54869     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54870     goto __pyx_L6;
54871   }
54872   __pyx_L6:;
54873 
54874   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":79
54875  *                 "mismatch in inbuf count %d and inoutbuf count %d" %
54876  *                 (self.scount, self.rcount))
54877  *         if (self.stype != self.rtype):             # <<<<<<<<<<<<<<
54878  *             raise ValueError(
54879  *                 "mismatch in inbuf and inoutbuf MPI datatypes")
54880  */
54881   __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__stype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54882   __Pyx_GOTREF(__pyx_t_3);
54883   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54884   __Pyx_GOTREF(__pyx_t_1);
54885   __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_NE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54886   __Pyx_GOTREF(__pyx_t_4);
54887   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
54888   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
54889   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54890   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
54891   if (__pyx_t_5) {
54892 
54893     /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":80
54894  *                 (self.scount, self.rcount))
54895  *         if (self.stype != self.rtype):
54896  *             raise ValueError(             # <<<<<<<<<<<<<<
54897  *                 "mismatch in inbuf and inoutbuf MPI datatypes")
54898  *         # do local reduction
54899  */
54900     __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_68), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54901     __Pyx_GOTREF(__pyx_t_4);
54902     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
54903     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
54904     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54905     goto __pyx_L7;
54906   }
54907   __pyx_L7:;
54908 
54909   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":83
54910  *                 "mismatch in inbuf and inoutbuf MPI datatypes")
54911  *         # do local reduction
54912  *         with nogil: CHKERR( MPI_Reduce_local(             # <<<<<<<<<<<<<<
54913  *             m.sbuf, m.rbuf, m.rcount, m.rtype, self.ob_mpi) )
54914  *
54915  */
54916   {
54917       #ifdef WITH_THREAD
54918       PyThreadState *_save = NULL;
54919       #endif
54920       Py_UNBLOCK_THREADS
54921       /*try:*/ {
54922 
54923         /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":84
54924  *         # do local reduction
54925  *         with nogil: CHKERR( MPI_Reduce_local(
54926  *             m.sbuf, m.rbuf, m.rcount, m.rtype, self.ob_mpi) )             # <<<<<<<<<<<<<<
54927  *
54928  *     # Fortran Handle
54929  */
54930         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Reduce_local(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, ((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L9;}
54931       }
54932 
54933       /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":83
54934  *                 "mismatch in inbuf and inoutbuf MPI datatypes")
54935  *         # do local reduction
54936  *         with nogil: CHKERR( MPI_Reduce_local(             # <<<<<<<<<<<<<<
54937  *             m.sbuf, m.rbuf, m.rcount, m.rtype, self.ob_mpi) )
54938  *
54939  */
54940       /*finally:*/ {
54941         int __pyx_why;
54942         __pyx_why = 0; goto __pyx_L10;
54943         __pyx_L9: __pyx_why = 4; goto __pyx_L10;
54944         __pyx_L10:;
54945         Py_BLOCK_THREADS
54946         switch (__pyx_why) {
54947           case 4: goto __pyx_L1_error;
54948         }
54949       }
54950   }
54951 
54952   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
54953   goto __pyx_L0;
54954   __pyx_L1_error:;
54955   __Pyx_XDECREF(__pyx_t_1);
54956   __Pyx_XDECREF(__pyx_t_3);
54957   __Pyx_XDECREF(__pyx_t_4);
54958   __Pyx_AddTraceback("mpi4py.MPI.Op.Reduce_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
54959   __pyx_r = NULL;
54960   __pyx_L0:;
54961   __Pyx_XDECREF((PyObject *)__pyx_v_m);
54962   __Pyx_XGIVEREF(__pyx_r);
54963   __Pyx_RefNannyFinishContext();
54964   return __pyx_r;
54965 }
54966 
54967 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":89
54968  *     # --------------
54969  *
54970  *     def py2f(self):             # <<<<<<<<<<<<<<
54971  *         """
54972  *         """
54973  */
54974 
54975 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_9py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54976 static char __pyx_doc_6mpi4py_3MPI_2Op_9py2f[] = "Op.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_9py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)54977 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_9py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54978   PyObject *__pyx_r = NULL;
54979   __Pyx_RefNannyDeclarations
54980   PyObject *__pyx_t_1 = NULL;
54981   int __pyx_lineno = 0;
54982   const char *__pyx_filename = NULL;
54983   int __pyx_clineno = 0;
54984   __Pyx_RefNannySetupContext("py2f");
54985   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
54986     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
54987   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
54988 
54989   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":92
54990  *         """
54991  *         """
54992  *         return MPI_Op_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
54993  *
54994  *     @classmethod
54995  */
54996   __Pyx_XDECREF(__pyx_r);
54997   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Op_c2f(((struct PyMPIOpObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
54998   __Pyx_GOTREF(__pyx_t_1);
54999   __pyx_r = __pyx_t_1;
55000   __pyx_t_1 = 0;
55001   goto __pyx_L0;
55002 
55003   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55004   goto __pyx_L0;
55005   __pyx_L1_error:;
55006   __Pyx_XDECREF(__pyx_t_1);
55007   __Pyx_AddTraceback("mpi4py.MPI.Op.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
55008   __pyx_r = NULL;
55009   __pyx_L0:;
55010   __Pyx_XGIVEREF(__pyx_r);
55011   __Pyx_RefNannyFinishContext();
55012   return __pyx_r;
55013 }
55014 
55015 /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":95
55016  *
55017  *     @classmethod
55018  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
55019  *         """
55020  *         """
55021  */
55022 
55023 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_10f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55024 static char __pyx_doc_6mpi4py_3MPI_2Op_10f2py[] = "Op.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_2Op_10f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)55025 static PyObject *__pyx_pf_6mpi4py_3MPI_2Op_10f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55026   PyObject *__pyx_v_arg = 0;
55027   struct PyMPIOpObject *__pyx_v_op = 0;
55028   PyObject *__pyx_r = NULL;
55029   __Pyx_RefNannyDeclarations
55030   PyObject *__pyx_t_1 = NULL;
55031   MPI_Fint __pyx_t_2;
55032   int __pyx_lineno = 0;
55033   const char *__pyx_filename = NULL;
55034   int __pyx_clineno = 0;
55035   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
55036   __Pyx_RefNannySetupContext("f2py");
55037   {
55038     PyObject* values[1] = {0};
55039     if (unlikely(__pyx_kwds)) {
55040       Py_ssize_t kw_args;
55041       switch (PyTuple_GET_SIZE(__pyx_args)) {
55042         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55043         case  0: break;
55044         default: goto __pyx_L5_argtuple_error;
55045       }
55046       kw_args = PyDict_Size(__pyx_kwds);
55047       switch (PyTuple_GET_SIZE(__pyx_args)) {
55048         case  0:
55049         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
55050         if (likely(values[0])) kw_args--;
55051         else goto __pyx_L5_argtuple_error;
55052       }
55053       if (unlikely(kw_args > 0)) {
55054         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55055       }
55056     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
55057       goto __pyx_L5_argtuple_error;
55058     } else {
55059       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55060     }
55061     __pyx_v_arg = values[0];
55062   }
55063   goto __pyx_L4_argument_unpacking_done;
55064   __pyx_L5_argtuple_error:;
55065   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[23]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55066   __pyx_L3_error:;
55067   __Pyx_AddTraceback("mpi4py.MPI.Op.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
55068   __Pyx_RefNannyFinishContext();
55069   return NULL;
55070   __pyx_L4_argument_unpacking_done:;
55071 
55072   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":98
55073  *         """
55074  *         """
55075  *         cdef Op op = <Op>cls()             # <<<<<<<<<<<<<<
55076  *         op.ob_mpi = MPI_Op_f2c(arg)
55077  *         return op
55078  */
55079   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55080   __Pyx_GOTREF(__pyx_t_1);
55081   __Pyx_INCREF(((PyObject *)((struct PyMPIOpObject *)__pyx_t_1)));
55082   __pyx_v_op = ((struct PyMPIOpObject *)__pyx_t_1);
55083   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55084 
55085   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":99
55086  *         """
55087  *         cdef Op op = <Op>cls()
55088  *         op.ob_mpi = MPI_Op_f2c(arg)             # <<<<<<<<<<<<<<
55089  *         return op
55090  *
55091  */
55092   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55093   __pyx_v_op->ob_mpi = MPI_Op_f2c(__pyx_t_2);
55094 
55095   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":100
55096  *         cdef Op op = <Op>cls()
55097  *         op.ob_mpi = MPI_Op_f2c(arg)
55098  *         return op             # <<<<<<<<<<<<<<
55099  *
55100  *
55101  */
55102   __Pyx_XDECREF(__pyx_r);
55103   __Pyx_INCREF(((PyObject *)__pyx_v_op));
55104   __pyx_r = ((PyObject *)__pyx_v_op);
55105   goto __pyx_L0;
55106 
55107   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55108   goto __pyx_L0;
55109   __pyx_L1_error:;
55110   __Pyx_XDECREF(__pyx_t_1);
55111   __Pyx_AddTraceback("mpi4py.MPI.Op.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
55112   __pyx_r = NULL;
55113   __pyx_L0:;
55114   __Pyx_XDECREF((PyObject *)__pyx_v_op);
55115   __Pyx_XGIVEREF(__pyx_r);
55116   __Pyx_RefNannyFinishContext();
55117   return __pyx_r;
55118 }
55119 
55120 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":7
55121  *     """
55122  *
55123  *     def __cinit__(self):             # <<<<<<<<<<<<<<
55124  *         self.ob_mpi = MPI_GROUP_NULL
55125  *
55126  */
55127 
55128 static int __pyx_pf_6mpi4py_3MPI_5Group___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)55129 static int __pyx_pf_6mpi4py_3MPI_5Group___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55130   int __pyx_r;
55131   __Pyx_RefNannyDeclarations
55132   __Pyx_RefNannySetupContext("__cinit__");
55133   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
55134     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
55135   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
55136 
55137   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":8
55138  *
55139  *     def __cinit__(self):
55140  *         self.ob_mpi = MPI_GROUP_NULL             # <<<<<<<<<<<<<<
55141  *
55142  *     def __dealloc__(self):
55143  */
55144   ((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi = MPI_GROUP_NULL;
55145 
55146   __pyx_r = 0;
55147   __Pyx_RefNannyFinishContext();
55148   return __pyx_r;
55149 }
55150 
55151 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":10
55152  *         self.ob_mpi = MPI_GROUP_NULL
55153  *
55154  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
55155  *         if not (self.flags & PyMPI_OWNED): return
55156  *         CHKERR( del_Group(&self.ob_mpi) )
55157  */
55158 
55159 static void __pyx_pf_6mpi4py_3MPI_5Group_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group_1__dealloc__(PyObject * __pyx_v_self)55160 static void __pyx_pf_6mpi4py_3MPI_5Group_1__dealloc__(PyObject *__pyx_v_self) {
55161   __Pyx_RefNannyDeclarations
55162   int __pyx_t_1;
55163   int __pyx_t_2;
55164   int __pyx_lineno = 0;
55165   const char *__pyx_filename = NULL;
55166   int __pyx_clineno = 0;
55167   __Pyx_RefNannySetupContext("__dealloc__");
55168 
55169   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":11
55170  *
55171  *     def __dealloc__(self):
55172  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
55173  *         CHKERR( del_Group(&self.ob_mpi) )
55174  *
55175  */
55176   __pyx_t_1 = (!(((struct PyMPIGroupObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
55177   if (__pyx_t_1) {
55178     goto __pyx_L0;
55179     goto __pyx_L5;
55180   }
55181   __pyx_L5:;
55182 
55183   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":12
55184  *     def __dealloc__(self):
55185  *         if not (self.flags & PyMPI_OWNED): return
55186  *         CHKERR( del_Group(&self.ob_mpi) )             # <<<<<<<<<<<<<<
55187  *
55188  *     def __richcmp__(self, other, int op):
55189  */
55190   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Group((&((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55191 
55192   goto __pyx_L0;
55193   __pyx_L1_error:;
55194   __Pyx_AddTraceback("mpi4py.MPI.Group.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55195   __pyx_L0:;
55196   __Pyx_RefNannyFinishContext();
55197 }
55198 
55199 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":14
55200  *         CHKERR( del_Group(&self.ob_mpi) )
55201  *
55202  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
55203  *         if not isinstance(self,  Group): return NotImplemented
55204  *         if not isinstance(other, Group): return NotImplemented
55205  */
55206 
55207 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)55208 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
55209   struct PyMPIGroupObject *__pyx_v_s = 0;
55210   struct PyMPIGroupObject *__pyx_v_o = 0;
55211   PyObject *__pyx_r = NULL;
55212   __Pyx_RefNannyDeclarations
55213   PyObject *__pyx_t_1 = NULL;
55214   int __pyx_t_2;
55215   int __pyx_t_3;
55216   int __pyx_lineno = 0;
55217   const char *__pyx_filename = NULL;
55218   int __pyx_clineno = 0;
55219   __Pyx_RefNannySetupContext("__richcmp__");
55220 
55221   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":15
55222  *
55223  *     def __richcmp__(self, other, int op):
55224  *         if not isinstance(self,  Group): return NotImplemented             # <<<<<<<<<<<<<<
55225  *         if not isinstance(other, Group): return NotImplemented
55226  *         cdef Group s = <Group>self, o = <Group>other
55227  */
55228   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group));
55229   __Pyx_INCREF(__pyx_t_1);
55230   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
55231   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55232   __pyx_t_3 = (!__pyx_t_2);
55233   if (__pyx_t_3) {
55234     __Pyx_XDECREF(__pyx_r);
55235     __Pyx_INCREF(__pyx_builtin_NotImplemented);
55236     __pyx_r = __pyx_builtin_NotImplemented;
55237     goto __pyx_L0;
55238     goto __pyx_L5;
55239   }
55240   __pyx_L5:;
55241 
55242   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":16
55243  *     def __richcmp__(self, other, int op):
55244  *         if not isinstance(self,  Group): return NotImplemented
55245  *         if not isinstance(other, Group): return NotImplemented             # <<<<<<<<<<<<<<
55246  *         cdef Group s = <Group>self, o = <Group>other
55247  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
55248  */
55249   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group));
55250   __Pyx_INCREF(__pyx_t_1);
55251   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
55252   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55253   __pyx_t_2 = (!__pyx_t_3);
55254   if (__pyx_t_2) {
55255     __Pyx_XDECREF(__pyx_r);
55256     __Pyx_INCREF(__pyx_builtin_NotImplemented);
55257     __pyx_r = __pyx_builtin_NotImplemented;
55258     goto __pyx_L0;
55259     goto __pyx_L6;
55260   }
55261   __pyx_L6:;
55262 
55263   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":17
55264  *         if not isinstance(self,  Group): return NotImplemented
55265  *         if not isinstance(other, Group): return NotImplemented
55266  *         cdef Group s = <Group>self, o = <Group>other             # <<<<<<<<<<<<<<
55267  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
55268  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
55269  */
55270   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_v_self)));
55271   __pyx_v_s = ((struct PyMPIGroupObject *)__pyx_v_self);
55272   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_v_other)));
55273   __pyx_v_o = ((struct PyMPIGroupObject *)__pyx_v_other);
55274 
55275   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":19
55276  *         cdef Group s = <Group>self, o = <Group>other
55277  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
55278  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
55279  *         else: raise TypeError("only '==' and '!='")
55280  *
55281  */
55282   switch (__pyx_v_op) {
55283 
55284     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":18
55285  *         if not isinstance(other, Group): return NotImplemented
55286  *         cdef Group s = <Group>self, o = <Group>other
55287  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
55288  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
55289  *         else: raise TypeError("only '==' and '!='")
55290  */
55291     case Py_EQ:
55292     __Pyx_XDECREF(__pyx_r);
55293     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55294     __Pyx_GOTREF(__pyx_t_1);
55295     __pyx_r = __pyx_t_1;
55296     __pyx_t_1 = 0;
55297     goto __pyx_L0;
55298     break;
55299 
55300     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":19
55301  *         cdef Group s = <Group>self, o = <Group>other
55302  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
55303  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
55304  *         else: raise TypeError("only '==' and '!='")
55305  *
55306  */
55307     case Py_NE:
55308     __Pyx_XDECREF(__pyx_r);
55309     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55310     __Pyx_GOTREF(__pyx_t_1);
55311     __pyx_r = __pyx_t_1;
55312     __pyx_t_1 = 0;
55313     goto __pyx_L0;
55314     break;
55315     default:
55316 
55317     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":20
55318  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
55319  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
55320  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
55321  *
55322  *     def __bool__(self):
55323  */
55324     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_69), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55325     __Pyx_GOTREF(__pyx_t_1);
55326     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
55327     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55328     {__pyx_filename = __pyx_f[24]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55329     break;
55330   }
55331 
55332   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55333   goto __pyx_L0;
55334   __pyx_L1_error:;
55335   __Pyx_XDECREF(__pyx_t_1);
55336   __Pyx_AddTraceback("mpi4py.MPI.Group.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55337   __pyx_r = NULL;
55338   __pyx_L0:;
55339   __Pyx_XDECREF((PyObject *)__pyx_v_s);
55340   __Pyx_XDECREF((PyObject *)__pyx_v_o);
55341   __Pyx_XGIVEREF(__pyx_r);
55342   __Pyx_RefNannyFinishContext();
55343   return __pyx_r;
55344 }
55345 
55346 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":22
55347  *         else: raise TypeError("only '==' and '!='")
55348  *
55349  *     def __bool__(self):             # <<<<<<<<<<<<<<
55350  *         return self.ob_mpi != MPI_GROUP_NULL
55351  *
55352  */
55353 
55354 static int __pyx_pf_6mpi4py_3MPI_5Group_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group_3__bool__(PyObject * __pyx_v_self)55355 static int __pyx_pf_6mpi4py_3MPI_5Group_3__bool__(PyObject *__pyx_v_self) {
55356   int __pyx_r;
55357   __Pyx_RefNannyDeclarations
55358   __Pyx_RefNannySetupContext("__bool__");
55359 
55360   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":23
55361  *
55362  *     def __bool__(self):
55363  *         return self.ob_mpi != MPI_GROUP_NULL             # <<<<<<<<<<<<<<
55364  *
55365  *     # Group Accessors
55366  */
55367   __pyx_r = (((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi != MPI_GROUP_NULL);
55368   goto __pyx_L0;
55369 
55370   __pyx_r = 0;
55371   __pyx_L0:;
55372   __Pyx_RefNannyFinishContext();
55373   return __pyx_r;
55374 }
55375 
55376 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":28
55377  *     # ---------------
55378  *
55379  *     def Get_size(self):             # <<<<<<<<<<<<<<
55380  *         """
55381  *         Return the size of a group
55382  */
55383 
55384 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55385 static char __pyx_doc_6mpi4py_3MPI_5Group_4Get_size[] = "Group.Get_size(self)\n\n        Return the size of a group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_4Get_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)55386 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55387   int __pyx_v_size;
55388   PyObject *__pyx_r = NULL;
55389   __Pyx_RefNannyDeclarations
55390   int __pyx_t_1;
55391   PyObject *__pyx_t_2 = NULL;
55392   int __pyx_lineno = 0;
55393   const char *__pyx_filename = NULL;
55394   int __pyx_clineno = 0;
55395   __Pyx_RefNannySetupContext("Get_size");
55396   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
55397     __Pyx_RaiseArgtupleInvalid("Get_size", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
55398   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_size", 0))) return NULL;
55399 
55400   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":32
55401  *         Return the size of a group
55402  *         """
55403  *         cdef int size = -1             # <<<<<<<<<<<<<<
55404  *         CHKERR( MPI_Group_size(self.ob_mpi, &size) )
55405  *         return size
55406  */
55407   __pyx_v_size = -1;
55408 
55409   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":33
55410  *         """
55411  *         cdef int size = -1
55412  *         CHKERR( MPI_Group_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
55413  *         return size
55414  *
55415  */
55416   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_size(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55417 
55418   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":34
55419  *         cdef int size = -1
55420  *         CHKERR( MPI_Group_size(self.ob_mpi, &size) )
55421  *         return size             # <<<<<<<<<<<<<<
55422  *
55423  *     property size:
55424  */
55425   __Pyx_XDECREF(__pyx_r);
55426   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55427   __Pyx_GOTREF(__pyx_t_2);
55428   __pyx_r = __pyx_t_2;
55429   __pyx_t_2 = 0;
55430   goto __pyx_L0;
55431 
55432   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55433   goto __pyx_L0;
55434   __pyx_L1_error:;
55435   __Pyx_XDECREF(__pyx_t_2);
55436   __Pyx_AddTraceback("mpi4py.MPI.Group.Get_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
55437   __pyx_r = NULL;
55438   __pyx_L0:;
55439   __Pyx_XGIVEREF(__pyx_r);
55440   __Pyx_RefNannyFinishContext();
55441   return __pyx_r;
55442 }
55443 
55444 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":38
55445  *     property size:
55446  *         """number of processes in group"""
55447  *         def __get__(self):             # <<<<<<<<<<<<<<
55448  *             return self.Get_size()
55449  *
55450  */
55451 
55452 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4size___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group_4size___get__(PyObject * __pyx_v_self)55453 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4size___get__(PyObject *__pyx_v_self) {
55454   PyObject *__pyx_r = NULL;
55455   __Pyx_RefNannyDeclarations
55456   PyObject *__pyx_t_1 = NULL;
55457   PyObject *__pyx_t_2 = NULL;
55458   int __pyx_lineno = 0;
55459   const char *__pyx_filename = NULL;
55460   int __pyx_clineno = 0;
55461   __Pyx_RefNannySetupContext("__get__");
55462 
55463   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":39
55464  *         """number of processes in group"""
55465  *         def __get__(self):
55466  *             return self.Get_size()             # <<<<<<<<<<<<<<
55467  *
55468  *     def Get_rank(self):
55469  */
55470   __Pyx_XDECREF(__pyx_r);
55471   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55472   __Pyx_GOTREF(__pyx_t_1);
55473   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55474   __Pyx_GOTREF(__pyx_t_2);
55475   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55476   __pyx_r = __pyx_t_2;
55477   __pyx_t_2 = 0;
55478   goto __pyx_L0;
55479 
55480   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55481   goto __pyx_L0;
55482   __pyx_L1_error:;
55483   __Pyx_XDECREF(__pyx_t_1);
55484   __Pyx_XDECREF(__pyx_t_2);
55485   __Pyx_AddTraceback("mpi4py.MPI.Group.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55486   __pyx_r = NULL;
55487   __pyx_L0:;
55488   __Pyx_XGIVEREF(__pyx_r);
55489   __Pyx_RefNannyFinishContext();
55490   return __pyx_r;
55491 }
55492 
55493 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":41
55494  *             return self.Get_size()
55495  *
55496  *     def Get_rank(self):             # <<<<<<<<<<<<<<
55497  *         """
55498  *         Return the rank of this process in a group
55499  */
55500 
55501 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_5Get_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55502 static char __pyx_doc_6mpi4py_3MPI_5Group_5Get_rank[] = "Group.Get_rank(self)\n\n        Return the rank of this process in a group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_5Get_rank(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)55503 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_5Get_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55504   int __pyx_v_rank;
55505   PyObject *__pyx_r = NULL;
55506   __Pyx_RefNannyDeclarations
55507   int __pyx_t_1;
55508   PyObject *__pyx_t_2 = NULL;
55509   int __pyx_lineno = 0;
55510   const char *__pyx_filename = NULL;
55511   int __pyx_clineno = 0;
55512   __Pyx_RefNannySetupContext("Get_rank");
55513   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
55514     __Pyx_RaiseArgtupleInvalid("Get_rank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
55515   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_rank", 0))) return NULL;
55516 
55517   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":45
55518  *         Return the rank of this process in a group
55519  *         """
55520  *         cdef int rank = -1             # <<<<<<<<<<<<<<
55521  *         CHKERR( MPI_Group_rank(self.ob_mpi, &rank) )
55522  *         return rank
55523  */
55524   __pyx_v_rank = -1;
55525 
55526   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":46
55527  *         """
55528  *         cdef int rank = -1
55529  *         CHKERR( MPI_Group_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
55530  *         return rank
55531  *
55532  */
55533   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_rank(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55534 
55535   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":47
55536  *         cdef int rank = -1
55537  *         CHKERR( MPI_Group_rank(self.ob_mpi, &rank) )
55538  *         return rank             # <<<<<<<<<<<<<<
55539  *
55540  *     property rank:
55541  */
55542   __Pyx_XDECREF(__pyx_r);
55543   __pyx_t_2 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55544   __Pyx_GOTREF(__pyx_t_2);
55545   __pyx_r = __pyx_t_2;
55546   __pyx_t_2 = 0;
55547   goto __pyx_L0;
55548 
55549   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55550   goto __pyx_L0;
55551   __pyx_L1_error:;
55552   __Pyx_XDECREF(__pyx_t_2);
55553   __Pyx_AddTraceback("mpi4py.MPI.Group.Get_rank", __pyx_clineno, __pyx_lineno, __pyx_filename);
55554   __pyx_r = NULL;
55555   __pyx_L0:;
55556   __Pyx_XGIVEREF(__pyx_r);
55557   __Pyx_RefNannyFinishContext();
55558   return __pyx_r;
55559 }
55560 
55561 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":51
55562  *     property rank:
55563  *         """rank of this process in group"""
55564  *         def __get__(self):             # <<<<<<<<<<<<<<
55565  *             return self.Get_rank()
55566  *
55567  */
55568 
55569 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4rank___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_5Group_4rank___get__(PyObject * __pyx_v_self)55570 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_4rank___get__(PyObject *__pyx_v_self) {
55571   PyObject *__pyx_r = NULL;
55572   __Pyx_RefNannyDeclarations
55573   PyObject *__pyx_t_1 = NULL;
55574   PyObject *__pyx_t_2 = NULL;
55575   int __pyx_lineno = 0;
55576   const char *__pyx_filename = NULL;
55577   int __pyx_clineno = 0;
55578   __Pyx_RefNannySetupContext("__get__");
55579 
55580   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":52
55581  *         """rank of this process in group"""
55582  *         def __get__(self):
55583  *             return self.Get_rank()             # <<<<<<<<<<<<<<
55584  *
55585  *     @classmethod
55586  */
55587   __Pyx_XDECREF(__pyx_r);
55588   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55589   __Pyx_GOTREF(__pyx_t_1);
55590   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55591   __Pyx_GOTREF(__pyx_t_2);
55592   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
55593   __pyx_r = __pyx_t_2;
55594   __pyx_t_2 = 0;
55595   goto __pyx_L0;
55596 
55597   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55598   goto __pyx_L0;
55599   __pyx_L1_error:;
55600   __Pyx_XDECREF(__pyx_t_1);
55601   __Pyx_XDECREF(__pyx_t_2);
55602   __Pyx_AddTraceback("mpi4py.MPI.Group.rank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
55603   __pyx_r = NULL;
55604   __pyx_L0:;
55605   __Pyx_XGIVEREF(__pyx_r);
55606   __Pyx_RefNannyFinishContext();
55607   return __pyx_r;
55608 }
55609 
55610 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":55
55611  *
55612  *     @classmethod
55613  *     def Translate_ranks(cls,             # <<<<<<<<<<<<<<
55614  *                         Group group1 not None, ranks1,
55615  *                         Group group2=None):
55616  */
55617 
55618 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_6Translate_ranks(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55619 static char __pyx_doc_6mpi4py_3MPI_5Group_6Translate_ranks[] = "Group.Translate_ranks(type cls, Group group1, ranks1, Group group2=None)\n\n        Translate the ranks of processes in\n        one group to those in another group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_6Translate_ranks(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)55620 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_6Translate_ranks(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55621   struct PyMPIGroupObject *__pyx_v_group1 = 0;
55622   PyObject *__pyx_v_ranks1 = 0;
55623   struct PyMPIGroupObject *__pyx_v_group2 = 0;
55624   MPI_Group __pyx_v_grp1;
55625   MPI_Group __pyx_v_grp2;
55626   int __pyx_v_n;
55627   int *__pyx_v_iranks1;
55628   int *__pyx_v_iranks2;
55629   PyObject *__pyx_v_ranks_ = 0;
55630   PyObject *__pyx_v_ranks2 = 0;
55631   PyObject *__pyx_r = NULL;
55632   __Pyx_RefNannyDeclarations
55633   PyObject *__pyx_t_1 = NULL;
55634   int __pyx_t_2;
55635   int __pyx_t_3;
55636   int __pyx_lineno = 0;
55637   const char *__pyx_filename = NULL;
55638   int __pyx_clineno = 0;
55639   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group1,&__pyx_n_s__ranks1,&__pyx_n_s__group2,0};
55640   __Pyx_RefNannySetupContext("Translate_ranks");
55641   {
55642     PyObject* values[3] = {0,0,0};
55643 
55644     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":57
55645  *     def Translate_ranks(cls,
55646  *                         Group group1 not None, ranks1,
55647  *                         Group group2=None):             # <<<<<<<<<<<<<<
55648  *         """
55649  *         Translate the ranks of processes in
55650  */
55651     values[2] = (PyObject *)((struct PyMPIGroupObject *)Py_None);
55652     if (unlikely(__pyx_kwds)) {
55653       Py_ssize_t kw_args;
55654       switch (PyTuple_GET_SIZE(__pyx_args)) {
55655         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
55656         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55657         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55658         case  0: break;
55659         default: goto __pyx_L5_argtuple_error;
55660       }
55661       kw_args = PyDict_Size(__pyx_kwds);
55662       switch (PyTuple_GET_SIZE(__pyx_args)) {
55663         case  0:
55664         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group1);
55665         if (likely(values[0])) kw_args--;
55666         else goto __pyx_L5_argtuple_error;
55667         case  1:
55668         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ranks1);
55669         if (likely(values[1])) kw_args--;
55670         else {
55671           __Pyx_RaiseArgtupleInvalid("Translate_ranks", 0, 2, 3, 1); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55672         }
55673         case  2:
55674         if (kw_args > 0) {
55675           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group2);
55676           if (value) { values[2] = value; kw_args--; }
55677         }
55678       }
55679       if (unlikely(kw_args > 0)) {
55680         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Translate_ranks") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55681       }
55682     } else {
55683       switch (PyTuple_GET_SIZE(__pyx_args)) {
55684         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
55685         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55686         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55687         break;
55688         default: goto __pyx_L5_argtuple_error;
55689       }
55690     }
55691     __pyx_v_group1 = ((struct PyMPIGroupObject *)values[0]);
55692     __pyx_v_ranks1 = values[1];
55693     __pyx_v_group2 = ((struct PyMPIGroupObject *)values[2]);
55694   }
55695   goto __pyx_L4_argument_unpacking_done;
55696   __pyx_L5_argtuple_error:;
55697   __Pyx_RaiseArgtupleInvalid("Translate_ranks", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55698   __pyx_L3_error:;
55699   __Pyx_AddTraceback("mpi4py.MPI.Group.Translate_ranks", __pyx_clineno, __pyx_lineno, __pyx_filename);
55700   __Pyx_RefNannyFinishContext();
55701   return NULL;
55702   __pyx_L4_argument_unpacking_done:;
55703   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group1), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group1", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55704   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group2), __pyx_ptype_6mpi4py_3MPI_Group, 1, "group2", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55705 
55706   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":62
55707  *         one group to those in another group
55708  *         """
55709  *         cdef MPI_Group grp1 = MPI_GROUP_NULL             # <<<<<<<<<<<<<<
55710  *         cdef MPI_Group grp2 = MPI_GROUP_NULL
55711  *         cdef int n = 0, *iranks1 = NULL, *iranks2 = NULL
55712  */
55713   __pyx_v_grp1 = MPI_GROUP_NULL;
55714 
55715   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":63
55716  *         """
55717  *         cdef MPI_Group grp1 = MPI_GROUP_NULL
55718  *         cdef MPI_Group grp2 = MPI_GROUP_NULL             # <<<<<<<<<<<<<<
55719  *         cdef int n = 0, *iranks1 = NULL, *iranks2 = NULL
55720  *         cdef object ranks_ = getarray_int(ranks1, &n, &iranks1)
55721  */
55722   __pyx_v_grp2 = MPI_GROUP_NULL;
55723 
55724   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":64
55725  *         cdef MPI_Group grp1 = MPI_GROUP_NULL
55726  *         cdef MPI_Group grp2 = MPI_GROUP_NULL
55727  *         cdef int n = 0, *iranks1 = NULL, *iranks2 = NULL             # <<<<<<<<<<<<<<
55728  *         cdef object ranks_ = getarray_int(ranks1, &n, &iranks1)
55729  *         cdef object ranks2 = newarray_int(n, &iranks2)
55730  */
55731   __pyx_v_n = 0;
55732   __pyx_v_iranks1 = NULL;
55733   __pyx_v_iranks2 = NULL;
55734 
55735   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":65
55736  *         cdef MPI_Group grp2 = MPI_GROUP_NULL
55737  *         cdef int n = 0, *iranks1 = NULL, *iranks2 = NULL
55738  *         cdef object ranks_ = getarray_int(ranks1, &n, &iranks1)             # <<<<<<<<<<<<<<
55739  *         cdef object ranks2 = newarray_int(n, &iranks2)
55740  *         #
55741  */
55742   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_ranks1, (&__pyx_v_n), (&__pyx_v_iranks1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55743   __Pyx_GOTREF(__pyx_t_1);
55744   __pyx_v_ranks_ = __pyx_t_1;
55745   __pyx_t_1 = 0;
55746 
55747   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":66
55748  *         cdef int n = 0, *iranks1 = NULL, *iranks2 = NULL
55749  *         cdef object ranks_ = getarray_int(ranks1, &n, &iranks1)
55750  *         cdef object ranks2 = newarray_int(n, &iranks2)             # <<<<<<<<<<<<<<
55751  *         #
55752  *         grp1 = group1.ob_mpi
55753  */
55754   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_n, (&__pyx_v_iranks2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55755   __Pyx_GOTREF(__pyx_t_1);
55756   __pyx_v_ranks2 = __pyx_t_1;
55757   __pyx_t_1 = 0;
55758 
55759   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":68
55760  *         cdef object ranks2 = newarray_int(n, &iranks2)
55761  *         #
55762  *         grp1 = group1.ob_mpi             # <<<<<<<<<<<<<<
55763  *         if group2 is not None:
55764  *             grp2 = group2.ob_mpi
55765  */
55766   __pyx_v_grp1 = __pyx_v_group1->ob_mpi;
55767 
55768   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":69
55769  *         #
55770  *         grp1 = group1.ob_mpi
55771  *         if group2 is not None:             # <<<<<<<<<<<<<<
55772  *             grp2 = group2.ob_mpi
55773  *         else:
55774  */
55775   __pyx_t_2 = (((PyObject *)__pyx_v_group2) != Py_None);
55776   if (__pyx_t_2) {
55777 
55778     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":70
55779  *         grp1 = group1.ob_mpi
55780  *         if group2 is not None:
55781  *             grp2 = group2.ob_mpi             # <<<<<<<<<<<<<<
55782  *         else:
55783  *             CHKERR( MPI_Comm_group(MPI_COMM_WORLD, &grp2) )
55784  */
55785     __pyx_v_grp2 = __pyx_v_group2->ob_mpi;
55786     goto __pyx_L6;
55787   }
55788   /*else*/ {
55789 
55790     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":72
55791  *             grp2 = group2.ob_mpi
55792  *         else:
55793  *             CHKERR( MPI_Comm_group(MPI_COMM_WORLD, &grp2) )             # <<<<<<<<<<<<<<
55794  *         try:
55795  *             CHKERR( MPI_Group_translate_ranks(grp1, n, iranks1,
55796  */
55797     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_group(MPI_COMM_WORLD, (&__pyx_v_grp2))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55798   }
55799   __pyx_L6:;
55800 
55801   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":73
55802  *         else:
55803  *             CHKERR( MPI_Comm_group(MPI_COMM_WORLD, &grp2) )
55804  *         try:             # <<<<<<<<<<<<<<
55805  *             CHKERR( MPI_Group_translate_ranks(grp1, n, iranks1,
55806  *                                               grp2, iranks2) )
55807  */
55808   /*try:*/ {
55809 
55810     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":75
55811  *         try:
55812  *             CHKERR( MPI_Group_translate_ranks(grp1, n, iranks1,
55813  *                                               grp2, iranks2) )             # <<<<<<<<<<<<<<
55814  *         finally:
55815  *             if group2 is None:
55816  */
55817     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_translate_ranks(__pyx_v_grp1, __pyx_v_n, __pyx_v_iranks1, __pyx_v_grp2, __pyx_v_iranks2)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L8;}
55818   }
55819 
55820   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":77
55821  *                                               grp2, iranks2) )
55822  *         finally:
55823  *             if group2 is None:             # <<<<<<<<<<<<<<
55824  *                 CHKERR( MPI_Group_free(&grp2) )
55825  *         #
55826  */
55827   /*finally:*/ {
55828     int __pyx_why;
55829     PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
55830     int __pyx_exc_lineno;
55831     __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
55832     __pyx_why = 0; goto __pyx_L9;
55833     __pyx_L8: {
55834       __pyx_why = 4;
55835       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
55836       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
55837       __pyx_exc_lineno = __pyx_lineno;
55838       goto __pyx_L9;
55839     }
55840     __pyx_L9:;
55841     __pyx_t_2 = (((PyObject *)__pyx_v_group2) == Py_None);
55842     if (__pyx_t_2) {
55843 
55844       /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":78
55845  *         finally:
55846  *             if group2 is None:
55847  *                 CHKERR( MPI_Group_free(&grp2) )             # <<<<<<<<<<<<<<
55848  *         #
55849  *         return ranks2
55850  */
55851       __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_free((&__pyx_v_grp2))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
55852       goto __pyx_L11;
55853     }
55854     __pyx_L11:;
55855     goto __pyx_L12;
55856     __pyx_L10_error:;
55857     if (__pyx_why == 4) {
55858       Py_XDECREF(__pyx_exc_type);
55859       Py_XDECREF(__pyx_exc_value);
55860       Py_XDECREF(__pyx_exc_tb);
55861     }
55862     goto __pyx_L1_error;
55863     __pyx_L12:;
55864     switch (__pyx_why) {
55865       case 4: {
55866         __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
55867         __pyx_lineno = __pyx_exc_lineno;
55868         __pyx_exc_type = 0;
55869         __pyx_exc_value = 0;
55870         __pyx_exc_tb = 0;
55871         goto __pyx_L1_error;
55872       }
55873     }
55874   }
55875 
55876   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":80
55877  *                 CHKERR( MPI_Group_free(&grp2) )
55878  *         #
55879  *         return ranks2             # <<<<<<<<<<<<<<
55880  *
55881  *     @classmethod
55882  */
55883   __Pyx_XDECREF(__pyx_r);
55884   __Pyx_INCREF(__pyx_v_ranks2);
55885   __pyx_r = __pyx_v_ranks2;
55886   goto __pyx_L0;
55887 
55888   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
55889   goto __pyx_L0;
55890   __pyx_L1_error:;
55891   __Pyx_XDECREF(__pyx_t_1);
55892   __Pyx_AddTraceback("mpi4py.MPI.Group.Translate_ranks", __pyx_clineno, __pyx_lineno, __pyx_filename);
55893   __pyx_r = NULL;
55894   __pyx_L0:;
55895   __Pyx_XDECREF(__pyx_v_ranks_);
55896   __Pyx_XDECREF(__pyx_v_ranks2);
55897   __Pyx_XGIVEREF(__pyx_r);
55898   __Pyx_RefNannyFinishContext();
55899   return __pyx_r;
55900 }
55901 
55902 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":83
55903  *
55904  *     @classmethod
55905  *     def Compare(cls,             # <<<<<<<<<<<<<<
55906  *                 Group group1 not None,
55907  *                 Group group2 not None):
55908  */
55909 
55910 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_7Compare(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55911 static char __pyx_doc_6mpi4py_3MPI_5Group_7Compare[] = "Group.Compare(type cls, Group group1, Group group2)\n\n        Compare two groups\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_7Compare(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)55912 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_7Compare(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55913   struct PyMPIGroupObject *__pyx_v_group1 = 0;
55914   struct PyMPIGroupObject *__pyx_v_group2 = 0;
55915   int __pyx_v_flag;
55916   PyObject *__pyx_r = NULL;
55917   __Pyx_RefNannyDeclarations
55918   int __pyx_t_1;
55919   PyObject *__pyx_t_2 = NULL;
55920   int __pyx_lineno = 0;
55921   const char *__pyx_filename = NULL;
55922   int __pyx_clineno = 0;
55923   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group1,&__pyx_n_s__group2,0};
55924   __Pyx_RefNannySetupContext("Compare");
55925   {
55926     PyObject* values[2] = {0,0};
55927     if (unlikely(__pyx_kwds)) {
55928       Py_ssize_t kw_args;
55929       switch (PyTuple_GET_SIZE(__pyx_args)) {
55930         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55931         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55932         case  0: break;
55933         default: goto __pyx_L5_argtuple_error;
55934       }
55935       kw_args = PyDict_Size(__pyx_kwds);
55936       switch (PyTuple_GET_SIZE(__pyx_args)) {
55937         case  0:
55938         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group1);
55939         if (likely(values[0])) kw_args--;
55940         else goto __pyx_L5_argtuple_error;
55941         case  1:
55942         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group2);
55943         if (likely(values[1])) kw_args--;
55944         else {
55945           __Pyx_RaiseArgtupleInvalid("Compare", 1, 2, 2, 1); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55946         }
55947       }
55948       if (unlikely(kw_args > 0)) {
55949         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Compare") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55950       }
55951     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
55952       goto __pyx_L5_argtuple_error;
55953     } else {
55954       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
55955       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
55956     }
55957     __pyx_v_group1 = ((struct PyMPIGroupObject *)values[0]);
55958     __pyx_v_group2 = ((struct PyMPIGroupObject *)values[1]);
55959   }
55960   goto __pyx_L4_argument_unpacking_done;
55961   __pyx_L5_argtuple_error:;
55962   __Pyx_RaiseArgtupleInvalid("Compare", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
55963   __pyx_L3_error:;
55964   __Pyx_AddTraceback("mpi4py.MPI.Group.Compare", __pyx_clineno, __pyx_lineno, __pyx_filename);
55965   __Pyx_RefNannyFinishContext();
55966   return NULL;
55967   __pyx_L4_argument_unpacking_done:;
55968   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group1), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group1", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55969   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group2), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group2", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55970 
55971   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":89
55972  *         Compare two groups
55973  *         """
55974  *         cdef int flag = MPI_UNEQUAL             # <<<<<<<<<<<<<<
55975  *         CHKERR( MPI_Group_compare(group1.ob_mpi, group2.ob_mpi, &flag) )
55976  *         return flag
55977  */
55978   __pyx_v_flag = MPI_UNEQUAL;
55979 
55980   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":90
55981  *         """
55982  *         cdef int flag = MPI_UNEQUAL
55983  *         CHKERR( MPI_Group_compare(group1.ob_mpi, group2.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
55984  *         return flag
55985  *
55986  */
55987   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_compare(__pyx_v_group1->ob_mpi, __pyx_v_group2->ob_mpi, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55988 
55989   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":91
55990  *         cdef int flag = MPI_UNEQUAL
55991  *         CHKERR( MPI_Group_compare(group1.ob_mpi, group2.ob_mpi, &flag) )
55992  *         return flag             # <<<<<<<<<<<<<<
55993  *
55994  *     # Group Constructors
55995  */
55996   __Pyx_XDECREF(__pyx_r);
55997   __pyx_t_2 = PyInt_FromLong(__pyx_v_flag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
55998   __Pyx_GOTREF(__pyx_t_2);
55999   __pyx_r = __pyx_t_2;
56000   __pyx_t_2 = 0;
56001   goto __pyx_L0;
56002 
56003   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56004   goto __pyx_L0;
56005   __pyx_L1_error:;
56006   __Pyx_XDECREF(__pyx_t_2);
56007   __Pyx_AddTraceback("mpi4py.MPI.Group.Compare", __pyx_clineno, __pyx_lineno, __pyx_filename);
56008   __pyx_r = NULL;
56009   __pyx_L0:;
56010   __Pyx_XGIVEREF(__pyx_r);
56011   __Pyx_RefNannyFinishContext();
56012   return __pyx_r;
56013 }
56014 
56015 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":96
56016  *     # ------------------
56017  *
56018  *     def Dup(self):             # <<<<<<<<<<<<<<
56019  *         """
56020  *         Duplicate a group
56021  */
56022 
56023 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_8Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56024 static char __pyx_doc_6mpi4py_3MPI_5Group_8Dup[] = "Group.Dup(self)\n\n        Duplicate a group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_8Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)56025 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_8Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56026   struct PyMPIGroupObject *__pyx_v_group = 0;
56027   PyObject *__pyx_r = NULL;
56028   __Pyx_RefNannyDeclarations
56029   PyObject *__pyx_t_1 = NULL;
56030   int __pyx_t_2;
56031   int __pyx_lineno = 0;
56032   const char *__pyx_filename = NULL;
56033   int __pyx_clineno = 0;
56034   __Pyx_RefNannySetupContext("Dup");
56035   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
56036     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
56037   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
56038 
56039   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":100
56040  *         Duplicate a group
56041  *         """
56042  *         cdef Group group = <Group>type(self)()             # <<<<<<<<<<<<<<
56043  *         CHKERR( MPI_Group_union(self.ob_mpi, MPI_GROUP_EMPTY, &group.ob_mpi) )
56044  *         return group
56045  */
56046   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56047   __Pyx_GOTREF(__pyx_t_1);
56048   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56049   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56050   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56051 
56052   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":101
56053  *         """
56054  *         cdef Group group = <Group>type(self)()
56055  *         CHKERR( MPI_Group_union(self.ob_mpi, MPI_GROUP_EMPTY, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56056  *         return group
56057  *
56058  */
56059   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_union(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, MPI_GROUP_EMPTY, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56060 
56061   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":102
56062  *         cdef Group group = <Group>type(self)()
56063  *         CHKERR( MPI_Group_union(self.ob_mpi, MPI_GROUP_EMPTY, &group.ob_mpi) )
56064  *         return group             # <<<<<<<<<<<<<<
56065  *
56066  *     @classmethod
56067  */
56068   __Pyx_XDECREF(__pyx_r);
56069   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56070   __pyx_r = ((PyObject *)__pyx_v_group);
56071   goto __pyx_L0;
56072 
56073   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56074   goto __pyx_L0;
56075   __pyx_L1_error:;
56076   __Pyx_XDECREF(__pyx_t_1);
56077   __Pyx_AddTraceback("mpi4py.MPI.Group.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
56078   __pyx_r = NULL;
56079   __pyx_L0:;
56080   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56081   __Pyx_XGIVEREF(__pyx_r);
56082   __Pyx_RefNannyFinishContext();
56083   return __pyx_r;
56084 }
56085 
56086 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":105
56087  *
56088  *     @classmethod
56089  *     def Union(cls,             # <<<<<<<<<<<<<<
56090  *               Group group1 not None,
56091  *               Group group2 not None):
56092  */
56093 
56094 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_9Union(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56095 static char __pyx_doc_6mpi4py_3MPI_5Group_9Union[] = "Group.Union(type cls, Group group1, Group group2)\n\n        Produce a group by combining\n        two existing groups\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_9Union(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)56096 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_9Union(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56097   struct PyMPIGroupObject *__pyx_v_group1 = 0;
56098   struct PyMPIGroupObject *__pyx_v_group2 = 0;
56099   struct PyMPIGroupObject *__pyx_v_group = 0;
56100   PyObject *__pyx_r = NULL;
56101   __Pyx_RefNannyDeclarations
56102   PyObject *__pyx_t_1 = NULL;
56103   int __pyx_t_2;
56104   int __pyx_lineno = 0;
56105   const char *__pyx_filename = NULL;
56106   int __pyx_clineno = 0;
56107   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group1,&__pyx_n_s__group2,0};
56108   __Pyx_RefNannySetupContext("Union");
56109   {
56110     PyObject* values[2] = {0,0};
56111     if (unlikely(__pyx_kwds)) {
56112       Py_ssize_t kw_args;
56113       switch (PyTuple_GET_SIZE(__pyx_args)) {
56114         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56115         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56116         case  0: break;
56117         default: goto __pyx_L5_argtuple_error;
56118       }
56119       kw_args = PyDict_Size(__pyx_kwds);
56120       switch (PyTuple_GET_SIZE(__pyx_args)) {
56121         case  0:
56122         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group1);
56123         if (likely(values[0])) kw_args--;
56124         else goto __pyx_L5_argtuple_error;
56125         case  1:
56126         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group2);
56127         if (likely(values[1])) kw_args--;
56128         else {
56129           __Pyx_RaiseArgtupleInvalid("Union", 1, 2, 2, 1); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56130         }
56131       }
56132       if (unlikely(kw_args > 0)) {
56133         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Union") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56134       }
56135     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
56136       goto __pyx_L5_argtuple_error;
56137     } else {
56138       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56139       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56140     }
56141     __pyx_v_group1 = ((struct PyMPIGroupObject *)values[0]);
56142     __pyx_v_group2 = ((struct PyMPIGroupObject *)values[1]);
56143   }
56144   goto __pyx_L4_argument_unpacking_done;
56145   __pyx_L5_argtuple_error:;
56146   __Pyx_RaiseArgtupleInvalid("Union", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56147   __pyx_L3_error:;
56148   __Pyx_AddTraceback("mpi4py.MPI.Group.Union", __pyx_clineno, __pyx_lineno, __pyx_filename);
56149   __Pyx_RefNannyFinishContext();
56150   return NULL;
56151   __pyx_L4_argument_unpacking_done:;
56152   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group1), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group1", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56153   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group2), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group2", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56154 
56155   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":112
56156  *         two existing groups
56157  *         """
56158  *         cdef Group group = <Group>cls()             # <<<<<<<<<<<<<<
56159  *         CHKERR( MPI_Group_union(
56160  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56161  */
56162   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56163   __Pyx_GOTREF(__pyx_t_1);
56164   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56165   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56166   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56167 
56168   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":114
56169  *         cdef Group group = <Group>cls()
56170  *         CHKERR( MPI_Group_union(
56171  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56172  *         return group
56173  *
56174  */
56175   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_union(__pyx_v_group1->ob_mpi, __pyx_v_group2->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56176 
56177   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":115
56178  *         CHKERR( MPI_Group_union(
56179  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56180  *         return group             # <<<<<<<<<<<<<<
56181  *
56182  *     @classmethod
56183  */
56184   __Pyx_XDECREF(__pyx_r);
56185   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56186   __pyx_r = ((PyObject *)__pyx_v_group);
56187   goto __pyx_L0;
56188 
56189   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56190   goto __pyx_L0;
56191   __pyx_L1_error:;
56192   __Pyx_XDECREF(__pyx_t_1);
56193   __Pyx_AddTraceback("mpi4py.MPI.Group.Union", __pyx_clineno, __pyx_lineno, __pyx_filename);
56194   __pyx_r = NULL;
56195   __pyx_L0:;
56196   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56197   __Pyx_XGIVEREF(__pyx_r);
56198   __Pyx_RefNannyFinishContext();
56199   return __pyx_r;
56200 }
56201 
56202 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":118
56203  *
56204  *     @classmethod
56205  *     def Intersect(cls,             # <<<<<<<<<<<<<<
56206  *                   Group group1 not None,
56207  *                   Group group2 not None):
56208  */
56209 
56210 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_10Intersect(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56211 static char __pyx_doc_6mpi4py_3MPI_5Group_10Intersect[] = "Group.Intersect(type cls, Group group1, Group group2)\n\n        Produce a group as the intersection\n        of two existing groups\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_10Intersect(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)56212 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_10Intersect(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56213   struct PyMPIGroupObject *__pyx_v_group1 = 0;
56214   struct PyMPIGroupObject *__pyx_v_group2 = 0;
56215   struct PyMPIGroupObject *__pyx_v_group = 0;
56216   PyObject *__pyx_r = NULL;
56217   __Pyx_RefNannyDeclarations
56218   PyObject *__pyx_t_1 = NULL;
56219   int __pyx_t_2;
56220   int __pyx_lineno = 0;
56221   const char *__pyx_filename = NULL;
56222   int __pyx_clineno = 0;
56223   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group1,&__pyx_n_s__group2,0};
56224   __Pyx_RefNannySetupContext("Intersect");
56225   {
56226     PyObject* values[2] = {0,0};
56227     if (unlikely(__pyx_kwds)) {
56228       Py_ssize_t kw_args;
56229       switch (PyTuple_GET_SIZE(__pyx_args)) {
56230         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56231         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56232         case  0: break;
56233         default: goto __pyx_L5_argtuple_error;
56234       }
56235       kw_args = PyDict_Size(__pyx_kwds);
56236       switch (PyTuple_GET_SIZE(__pyx_args)) {
56237         case  0:
56238         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group1);
56239         if (likely(values[0])) kw_args--;
56240         else goto __pyx_L5_argtuple_error;
56241         case  1:
56242         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group2);
56243         if (likely(values[1])) kw_args--;
56244         else {
56245           __Pyx_RaiseArgtupleInvalid("Intersect", 1, 2, 2, 1); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56246         }
56247       }
56248       if (unlikely(kw_args > 0)) {
56249         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Intersect") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56250       }
56251     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
56252       goto __pyx_L5_argtuple_error;
56253     } else {
56254       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56255       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56256     }
56257     __pyx_v_group1 = ((struct PyMPIGroupObject *)values[0]);
56258     __pyx_v_group2 = ((struct PyMPIGroupObject *)values[1]);
56259   }
56260   goto __pyx_L4_argument_unpacking_done;
56261   __pyx_L5_argtuple_error:;
56262   __Pyx_RaiseArgtupleInvalid("Intersect", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56263   __pyx_L3_error:;
56264   __Pyx_AddTraceback("mpi4py.MPI.Group.Intersect", __pyx_clineno, __pyx_lineno, __pyx_filename);
56265   __Pyx_RefNannyFinishContext();
56266   return NULL;
56267   __pyx_L4_argument_unpacking_done:;
56268   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group1), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group1", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56269   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group2), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group2", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56270 
56271   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":125
56272  *         of two existing groups
56273  *         """
56274  *         cdef Group group = <Group>cls()             # <<<<<<<<<<<<<<
56275  *         CHKERR( MPI_Group_intersection(
56276  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56277  */
56278   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56279   __Pyx_GOTREF(__pyx_t_1);
56280   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56281   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56282   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56283 
56284   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":127
56285  *         cdef Group group = <Group>cls()
56286  *         CHKERR( MPI_Group_intersection(
56287  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56288  *         return group
56289  *
56290  */
56291   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_intersection(__pyx_v_group1->ob_mpi, __pyx_v_group2->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56292 
56293   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":128
56294  *         CHKERR( MPI_Group_intersection(
56295  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56296  *         return group             # <<<<<<<<<<<<<<
56297  *
56298  *     @classmethod
56299  */
56300   __Pyx_XDECREF(__pyx_r);
56301   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56302   __pyx_r = ((PyObject *)__pyx_v_group);
56303   goto __pyx_L0;
56304 
56305   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56306   goto __pyx_L0;
56307   __pyx_L1_error:;
56308   __Pyx_XDECREF(__pyx_t_1);
56309   __Pyx_AddTraceback("mpi4py.MPI.Group.Intersect", __pyx_clineno, __pyx_lineno, __pyx_filename);
56310   __pyx_r = NULL;
56311   __pyx_L0:;
56312   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56313   __Pyx_XGIVEREF(__pyx_r);
56314   __Pyx_RefNannyFinishContext();
56315   return __pyx_r;
56316 }
56317 
56318 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":131
56319  *
56320  *     @classmethod
56321  *     def Difference(cls,             # <<<<<<<<<<<<<<
56322  *                    Group group1 not None,
56323  *                    Group group2 not None):
56324  */
56325 
56326 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_11Difference(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56327 static char __pyx_doc_6mpi4py_3MPI_5Group_11Difference[] = "Group.Difference(type cls, Group group1, Group group2)\n\n        Produce a group from the difference\n        of two existing groups\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_11Difference(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)56328 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_11Difference(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56329   struct PyMPIGroupObject *__pyx_v_group1 = 0;
56330   struct PyMPIGroupObject *__pyx_v_group2 = 0;
56331   struct PyMPIGroupObject *__pyx_v_group = 0;
56332   PyObject *__pyx_r = NULL;
56333   __Pyx_RefNannyDeclarations
56334   PyObject *__pyx_t_1 = NULL;
56335   int __pyx_t_2;
56336   int __pyx_lineno = 0;
56337   const char *__pyx_filename = NULL;
56338   int __pyx_clineno = 0;
56339   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group1,&__pyx_n_s__group2,0};
56340   __Pyx_RefNannySetupContext("Difference");
56341   {
56342     PyObject* values[2] = {0,0};
56343     if (unlikely(__pyx_kwds)) {
56344       Py_ssize_t kw_args;
56345       switch (PyTuple_GET_SIZE(__pyx_args)) {
56346         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56347         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56348         case  0: break;
56349         default: goto __pyx_L5_argtuple_error;
56350       }
56351       kw_args = PyDict_Size(__pyx_kwds);
56352       switch (PyTuple_GET_SIZE(__pyx_args)) {
56353         case  0:
56354         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group1);
56355         if (likely(values[0])) kw_args--;
56356         else goto __pyx_L5_argtuple_error;
56357         case  1:
56358         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group2);
56359         if (likely(values[1])) kw_args--;
56360         else {
56361           __Pyx_RaiseArgtupleInvalid("Difference", 1, 2, 2, 1); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56362         }
56363       }
56364       if (unlikely(kw_args > 0)) {
56365         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Difference") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56366       }
56367     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
56368       goto __pyx_L5_argtuple_error;
56369     } else {
56370       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56371       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
56372     }
56373     __pyx_v_group1 = ((struct PyMPIGroupObject *)values[0]);
56374     __pyx_v_group2 = ((struct PyMPIGroupObject *)values[1]);
56375   }
56376   goto __pyx_L4_argument_unpacking_done;
56377   __pyx_L5_argtuple_error:;
56378   __Pyx_RaiseArgtupleInvalid("Difference", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56379   __pyx_L3_error:;
56380   __Pyx_AddTraceback("mpi4py.MPI.Group.Difference", __pyx_clineno, __pyx_lineno, __pyx_filename);
56381   __Pyx_RefNannyFinishContext();
56382   return NULL;
56383   __pyx_L4_argument_unpacking_done:;
56384   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group1), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group1", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56385   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group2), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group2", 0))) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56386 
56387   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":138
56388  *         of two existing groups
56389  *         """
56390  *         cdef Group group = <Group>cls()             # <<<<<<<<<<<<<<
56391  *         CHKERR( MPI_Group_difference(
56392  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56393  */
56394   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56395   __Pyx_GOTREF(__pyx_t_1);
56396   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56397   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56398   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56399 
56400   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":140
56401  *         cdef Group group = <Group>cls()
56402  *         CHKERR( MPI_Group_difference(
56403  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56404  *         return group
56405  *
56406  */
56407   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_difference(__pyx_v_group1->ob_mpi, __pyx_v_group2->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56408 
56409   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":141
56410  *         CHKERR( MPI_Group_difference(
56411  *                 group1.ob_mpi, group2.ob_mpi, &group.ob_mpi) )
56412  *         return group             # <<<<<<<<<<<<<<
56413  *
56414  *     def Incl(self, ranks):
56415  */
56416   __Pyx_XDECREF(__pyx_r);
56417   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56418   __pyx_r = ((PyObject *)__pyx_v_group);
56419   goto __pyx_L0;
56420 
56421   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56422   goto __pyx_L0;
56423   __pyx_L1_error:;
56424   __Pyx_XDECREF(__pyx_t_1);
56425   __Pyx_AddTraceback("mpi4py.MPI.Group.Difference", __pyx_clineno, __pyx_lineno, __pyx_filename);
56426   __pyx_r = NULL;
56427   __pyx_L0:;
56428   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56429   __Pyx_XGIVEREF(__pyx_r);
56430   __Pyx_RefNannyFinishContext();
56431   return __pyx_r;
56432 }
56433 
56434 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":143
56435  *         return group
56436  *
56437  *     def Incl(self, ranks):             # <<<<<<<<<<<<<<
56438  *         """
56439  *         Produce a group by reordering an existing
56440  */
56441 
56442 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_12Incl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56443 static char __pyx_doc_6mpi4py_3MPI_5Group_12Incl[] = "Group.Incl(self, ranks)\n\n        Produce a group by reordering an existing\n        group and taking only listed members\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_12Incl(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)56444 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_12Incl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56445   PyObject *__pyx_v_ranks = 0;
56446   int __pyx_v_n;
56447   int *__pyx_v_iranks;
56448   struct PyMPIGroupObject *__pyx_v_group = 0;
56449   PyObject *__pyx_r = NULL;
56450   __Pyx_RefNannyDeclarations
56451   PyObject *__pyx_t_1 = NULL;
56452   int __pyx_t_2;
56453   int __pyx_lineno = 0;
56454   const char *__pyx_filename = NULL;
56455   int __pyx_clineno = 0;
56456   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ranks,0};
56457   __Pyx_RefNannySetupContext("Incl");
56458   {
56459     PyObject* values[1] = {0};
56460     if (unlikely(__pyx_kwds)) {
56461       Py_ssize_t kw_args;
56462       switch (PyTuple_GET_SIZE(__pyx_args)) {
56463         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56464         case  0: break;
56465         default: goto __pyx_L5_argtuple_error;
56466       }
56467       kw_args = PyDict_Size(__pyx_kwds);
56468       switch (PyTuple_GET_SIZE(__pyx_args)) {
56469         case  0:
56470         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ranks);
56471         if (likely(values[0])) kw_args--;
56472         else goto __pyx_L5_argtuple_error;
56473       }
56474       if (unlikely(kw_args > 0)) {
56475         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Incl") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56476       }
56477     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
56478       goto __pyx_L5_argtuple_error;
56479     } else {
56480       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56481     }
56482     __pyx_v_ranks = values[0];
56483   }
56484   goto __pyx_L4_argument_unpacking_done;
56485   __pyx_L5_argtuple_error:;
56486   __Pyx_RaiseArgtupleInvalid("Incl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56487   __pyx_L3_error:;
56488   __Pyx_AddTraceback("mpi4py.MPI.Group.Incl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56489   __Pyx_RefNannyFinishContext();
56490   return NULL;
56491   __pyx_L4_argument_unpacking_done:;
56492   __Pyx_INCREF(__pyx_v_ranks);
56493 
56494   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":148
56495  *         group and taking only listed members
56496  *         """
56497  *         cdef int n = 0, *iranks = NULL             # <<<<<<<<<<<<<<
56498  *         ranks = getarray_int(ranks, &n, &iranks)
56499  *         cdef Group group = <Group>type(self)()
56500  */
56501   __pyx_v_n = 0;
56502   __pyx_v_iranks = NULL;
56503 
56504   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":149
56505  *         """
56506  *         cdef int n = 0, *iranks = NULL
56507  *         ranks = getarray_int(ranks, &n, &iranks)             # <<<<<<<<<<<<<<
56508  *         cdef Group group = <Group>type(self)()
56509  *         CHKERR( MPI_Group_incl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56510  */
56511   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_ranks, (&__pyx_v_n), (&__pyx_v_iranks)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56512   __Pyx_GOTREF(__pyx_t_1);
56513   __Pyx_DECREF(__pyx_v_ranks);
56514   __pyx_v_ranks = __pyx_t_1;
56515   __pyx_t_1 = 0;
56516 
56517   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":150
56518  *         cdef int n = 0, *iranks = NULL
56519  *         ranks = getarray_int(ranks, &n, &iranks)
56520  *         cdef Group group = <Group>type(self)()             # <<<<<<<<<<<<<<
56521  *         CHKERR( MPI_Group_incl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56522  *         return group
56523  */
56524   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56525   __Pyx_GOTREF(__pyx_t_1);
56526   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56527   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56528   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56529 
56530   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":151
56531  *         ranks = getarray_int(ranks, &n, &iranks)
56532  *         cdef Group group = <Group>type(self)()
56533  *         CHKERR( MPI_Group_incl(self.ob_mpi, n, iranks, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56534  *         return group
56535  *
56536  */
56537   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_incl(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, __pyx_v_n, __pyx_v_iranks, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56538 
56539   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":152
56540  *         cdef Group group = <Group>type(self)()
56541  *         CHKERR( MPI_Group_incl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56542  *         return group             # <<<<<<<<<<<<<<
56543  *
56544  *     def Excl(self, ranks):
56545  */
56546   __Pyx_XDECREF(__pyx_r);
56547   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56548   __pyx_r = ((PyObject *)__pyx_v_group);
56549   goto __pyx_L0;
56550 
56551   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56552   goto __pyx_L0;
56553   __pyx_L1_error:;
56554   __Pyx_XDECREF(__pyx_t_1);
56555   __Pyx_AddTraceback("mpi4py.MPI.Group.Incl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56556   __pyx_r = NULL;
56557   __pyx_L0:;
56558   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56559   __Pyx_XDECREF(__pyx_v_ranks);
56560   __Pyx_XGIVEREF(__pyx_r);
56561   __Pyx_RefNannyFinishContext();
56562   return __pyx_r;
56563 }
56564 
56565 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":154
56566  *         return group
56567  *
56568  *     def Excl(self, ranks):             # <<<<<<<<<<<<<<
56569  *         """
56570  *         Produce a group by reordering an existing
56571  */
56572 
56573 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_13Excl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56574 static char __pyx_doc_6mpi4py_3MPI_5Group_13Excl[] = "Group.Excl(self, ranks)\n\n        Produce a group by reordering an existing\n        group and taking only unlisted members\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_13Excl(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)56575 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_13Excl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56576   PyObject *__pyx_v_ranks = 0;
56577   int __pyx_v_n;
56578   int *__pyx_v_iranks;
56579   struct PyMPIGroupObject *__pyx_v_group = 0;
56580   PyObject *__pyx_r = NULL;
56581   __Pyx_RefNannyDeclarations
56582   PyObject *__pyx_t_1 = NULL;
56583   int __pyx_t_2;
56584   int __pyx_lineno = 0;
56585   const char *__pyx_filename = NULL;
56586   int __pyx_clineno = 0;
56587   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ranks,0};
56588   __Pyx_RefNannySetupContext("Excl");
56589   {
56590     PyObject* values[1] = {0};
56591     if (unlikely(__pyx_kwds)) {
56592       Py_ssize_t kw_args;
56593       switch (PyTuple_GET_SIZE(__pyx_args)) {
56594         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56595         case  0: break;
56596         default: goto __pyx_L5_argtuple_error;
56597       }
56598       kw_args = PyDict_Size(__pyx_kwds);
56599       switch (PyTuple_GET_SIZE(__pyx_args)) {
56600         case  0:
56601         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ranks);
56602         if (likely(values[0])) kw_args--;
56603         else goto __pyx_L5_argtuple_error;
56604       }
56605       if (unlikely(kw_args > 0)) {
56606         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Excl") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56607       }
56608     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
56609       goto __pyx_L5_argtuple_error;
56610     } else {
56611       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56612     }
56613     __pyx_v_ranks = values[0];
56614   }
56615   goto __pyx_L4_argument_unpacking_done;
56616   __pyx_L5_argtuple_error:;
56617   __Pyx_RaiseArgtupleInvalid("Excl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56618   __pyx_L3_error:;
56619   __Pyx_AddTraceback("mpi4py.MPI.Group.Excl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56620   __Pyx_RefNannyFinishContext();
56621   return NULL;
56622   __pyx_L4_argument_unpacking_done:;
56623   __Pyx_INCREF(__pyx_v_ranks);
56624 
56625   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":159
56626  *         group and taking only unlisted members
56627  *         """
56628  *         cdef int n = 0, *iranks = NULL             # <<<<<<<<<<<<<<
56629  *         ranks = getarray_int(ranks, &n, &iranks)
56630  *         cdef Group group = <Group>type(self)()
56631  */
56632   __pyx_v_n = 0;
56633   __pyx_v_iranks = NULL;
56634 
56635   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":160
56636  *         """
56637  *         cdef int n = 0, *iranks = NULL
56638  *         ranks = getarray_int(ranks, &n, &iranks)             # <<<<<<<<<<<<<<
56639  *         cdef Group group = <Group>type(self)()
56640  *         CHKERR( MPI_Group_excl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56641  */
56642   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_ranks, (&__pyx_v_n), (&__pyx_v_iranks)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56643   __Pyx_GOTREF(__pyx_t_1);
56644   __Pyx_DECREF(__pyx_v_ranks);
56645   __pyx_v_ranks = __pyx_t_1;
56646   __pyx_t_1 = 0;
56647 
56648   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":161
56649  *         cdef int n = 0, *iranks = NULL
56650  *         ranks = getarray_int(ranks, &n, &iranks)
56651  *         cdef Group group = <Group>type(self)()             # <<<<<<<<<<<<<<
56652  *         CHKERR( MPI_Group_excl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56653  *         return group
56654  */
56655   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56656   __Pyx_GOTREF(__pyx_t_1);
56657   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
56658   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
56659   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
56660 
56661   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":162
56662  *         ranks = getarray_int(ranks, &n, &iranks)
56663  *         cdef Group group = <Group>type(self)()
56664  *         CHKERR( MPI_Group_excl(self.ob_mpi, n, iranks, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56665  *         return group
56666  *
56667  */
56668   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_excl(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, __pyx_v_n, __pyx_v_iranks, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56669 
56670   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":163
56671  *         cdef Group group = <Group>type(self)()
56672  *         CHKERR( MPI_Group_excl(self.ob_mpi, n, iranks, &group.ob_mpi) )
56673  *         return group             # <<<<<<<<<<<<<<
56674  *
56675  *     def Range_incl(self, ranks):
56676  */
56677   __Pyx_XDECREF(__pyx_r);
56678   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56679   __pyx_r = ((PyObject *)__pyx_v_group);
56680   goto __pyx_L0;
56681 
56682   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56683   goto __pyx_L0;
56684   __pyx_L1_error:;
56685   __Pyx_XDECREF(__pyx_t_1);
56686   __Pyx_AddTraceback("mpi4py.MPI.Group.Excl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56687   __pyx_r = NULL;
56688   __pyx_L0:;
56689   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56690   __Pyx_XDECREF(__pyx_v_ranks);
56691   __Pyx_XGIVEREF(__pyx_r);
56692   __Pyx_RefNannyFinishContext();
56693   return __pyx_r;
56694 }
56695 
56696 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":165
56697  *         return group
56698  *
56699  *     def Range_incl(self, ranks):             # <<<<<<<<<<<<<<
56700  *         """
56701  *         Create a new group from ranges of
56702  */
56703 
56704 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_14Range_incl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56705 static char __pyx_doc_6mpi4py_3MPI_5Group_14Range_incl[] = "Group.Range_incl(self, ranks)\n\n        Create a new group from ranges of\n        of ranks in an existing group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_14Range_incl(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)56706 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_14Range_incl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56707   PyObject *__pyx_v_ranks = 0;
56708   int *__pyx_v_p;
56709   int (*__pyx_v_ranges)[3];
56710   int __pyx_v_i;
56711   int __pyx_v_n;
56712   PyObject *__pyx_v_tmp1 = 0;
56713   struct PyMPIGroupObject *__pyx_v_group = 0;
56714   PyObject *__pyx_r = NULL;
56715   __Pyx_RefNannyDeclarations
56716   Py_ssize_t __pyx_t_1;
56717   PyObject *__pyx_t_2 = NULL;
56718   int __pyx_t_3;
56719   PyObject *__pyx_t_4 = NULL;
56720   PyObject *__pyx_t_5 = NULL;
56721   PyObject *__pyx_t_6 = NULL;
56722   PyObject *__pyx_t_7 = NULL;
56723   PyObject *(*__pyx_t_8)(PyObject *);
56724   int __pyx_t_9;
56725   int __pyx_t_10;
56726   int __pyx_t_11;
56727   int __pyx_lineno = 0;
56728   const char *__pyx_filename = NULL;
56729   int __pyx_clineno = 0;
56730   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ranks,0};
56731   __Pyx_RefNannySetupContext("Range_incl");
56732   {
56733     PyObject* values[1] = {0};
56734     if (unlikely(__pyx_kwds)) {
56735       Py_ssize_t kw_args;
56736       switch (PyTuple_GET_SIZE(__pyx_args)) {
56737         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56738         case  0: break;
56739         default: goto __pyx_L5_argtuple_error;
56740       }
56741       kw_args = PyDict_Size(__pyx_kwds);
56742       switch (PyTuple_GET_SIZE(__pyx_args)) {
56743         case  0:
56744         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ranks);
56745         if (likely(values[0])) kw_args--;
56746         else goto __pyx_L5_argtuple_error;
56747       }
56748       if (unlikely(kw_args > 0)) {
56749         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Range_incl") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56750       }
56751     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
56752       goto __pyx_L5_argtuple_error;
56753     } else {
56754       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56755     }
56756     __pyx_v_ranks = values[0];
56757   }
56758   goto __pyx_L4_argument_unpacking_done;
56759   __pyx_L5_argtuple_error:;
56760   __Pyx_RaiseArgtupleInvalid("Range_incl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
56761   __pyx_L3_error:;
56762   __Pyx_AddTraceback("mpi4py.MPI.Group.Range_incl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56763   __Pyx_RefNannyFinishContext();
56764   return NULL;
56765   __pyx_L4_argument_unpacking_done:;
56766 
56767   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":170
56768  *         of ranks in an existing group
56769  *         """
56770  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails             # <<<<<<<<<<<<<<
56771  *         ranges = NULL
56772  *         cdef int i = 0, n = <int>len(ranks)
56773  */
56774   __pyx_v_p = NULL;
56775 
56776   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":171
56777  *         """
56778  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails
56779  *         ranges = NULL             # <<<<<<<<<<<<<<
56780  *         cdef int i = 0, n = <int>len(ranks)
56781  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
56782  */
56783   __pyx_v_ranges = NULL;
56784 
56785   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":172
56786  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails
56787  *         ranges = NULL
56788  *         cdef int i = 0, n = <int>len(ranks)             # <<<<<<<<<<<<<<
56789  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
56790  *         for i from 0 <= i < n:
56791  */
56792   __pyx_v_i = 0;
56793   __pyx_t_1 = PyObject_Length(__pyx_v_ranks); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56794   __pyx_v_n = ((int)__pyx_t_1);
56795 
56796   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":173
56797  *         ranges = NULL
56798  *         cdef int i = 0, n = <int>len(ranks)
56799  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)             # <<<<<<<<<<<<<<
56800  *         for i from 0 <= i < n:
56801  *             p = <int*> ranges[i]
56802  */
56803   __pyx_t_2 = PyMPI_Allocate(__pyx_v_n, (sizeof(int [3])), ((void **)(&__pyx_v_ranges))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56804   __Pyx_GOTREF(__pyx_t_2);
56805   __pyx_v_tmp1 = __pyx_t_2;
56806   __pyx_t_2 = 0;
56807 
56808   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":174
56809  *         cdef int i = 0, n = <int>len(ranks)
56810  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
56811  *         for i from 0 <= i < n:             # <<<<<<<<<<<<<<
56812  *             p = <int*> ranges[i]
56813  *             p[0], p[1], p[2] = ranks[i]
56814  */
56815   __pyx_t_3 = __pyx_v_n;
56816   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
56817 
56818     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":175
56819  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
56820  *         for i from 0 <= i < n:
56821  *             p = <int*> ranges[i]             # <<<<<<<<<<<<<<
56822  *             p[0], p[1], p[2] = ranks[i]
56823  *         cdef Group group = <Group>type(self)()
56824  */
56825     __pyx_v_p = ((int *)(__pyx_v_ranges[__pyx_v_i]));
56826 
56827     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":176
56828  *         for i from 0 <= i < n:
56829  *             p = <int*> ranges[i]
56830  *             p[0], p[1], p[2] = ranks[i]             # <<<<<<<<<<<<<<
56831  *         cdef Group group = <Group>type(self)()
56832  *         CHKERR( MPI_Group_range_incl(self.ob_mpi, n, ranges, &group.ob_mpi) )
56833  */
56834     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ranks, __pyx_v_i, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56835     __Pyx_GOTREF(__pyx_t_2);
56836     if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
56837       PyObject* sequence = __pyx_t_2;
56838       if (likely(PyTuple_CheckExact(sequence))) {
56839         if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) {
56840           if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
56841           else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
56842           {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56843         }
56844         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
56845         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
56846         __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
56847       } else {
56848         if (unlikely(PyList_GET_SIZE(sequence) != 3)) {
56849           if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
56850           else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
56851           {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56852         }
56853         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
56854         __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
56855         __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
56856       }
56857       __Pyx_INCREF(__pyx_t_4);
56858       __Pyx_INCREF(__pyx_t_5);
56859       __Pyx_INCREF(__pyx_t_6);
56860       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56861     } else {
56862       Py_ssize_t index = -1;
56863       __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56864       __Pyx_GOTREF(__pyx_t_7);
56865       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56866       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
56867       index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed;
56868       __Pyx_GOTREF(__pyx_t_4);
56869       index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
56870       __Pyx_GOTREF(__pyx_t_5);
56871       index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;
56872       __Pyx_GOTREF(__pyx_t_6);
56873       if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56874       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
56875       goto __pyx_L9_unpacking_done;
56876       __pyx_L8_unpacking_failed:;
56877       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
56878       if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
56879       if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
56880       {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56881       __pyx_L9_unpacking_done:;
56882     }
56883     __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56884     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
56885     __pyx_t_10 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56886     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
56887     __pyx_t_11 = __Pyx_PyInt_AsInt(__pyx_t_6); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56888     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
56889     (__pyx_v_p[0]) = __pyx_t_9;
56890     (__pyx_v_p[1]) = __pyx_t_10;
56891     (__pyx_v_p[2]) = __pyx_t_11;
56892   }
56893 
56894   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":177
56895  *             p = <int*> ranges[i]
56896  *             p[0], p[1], p[2] = ranks[i]
56897  *         cdef Group group = <Group>type(self)()             # <<<<<<<<<<<<<<
56898  *         CHKERR( MPI_Group_range_incl(self.ob_mpi, n, ranges, &group.ob_mpi) )
56899  *         return group
56900  */
56901   __pyx_t_2 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56902   __Pyx_GOTREF(__pyx_t_2);
56903   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_2)));
56904   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_2);
56905   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
56906 
56907   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":178
56908  *             p[0], p[1], p[2] = ranks[i]
56909  *         cdef Group group = <Group>type(self)()
56910  *         CHKERR( MPI_Group_range_incl(self.ob_mpi, n, ranges, &group.ob_mpi) )             # <<<<<<<<<<<<<<
56911  *         return group
56912  *
56913  */
56914   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_range_incl(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, __pyx_v_n, __pyx_v_ranges, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
56915 
56916   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":179
56917  *         cdef Group group = <Group>type(self)()
56918  *         CHKERR( MPI_Group_range_incl(self.ob_mpi, n, ranges, &group.ob_mpi) )
56919  *         return group             # <<<<<<<<<<<<<<
56920  *
56921  *     def Range_excl(self, ranks):
56922  */
56923   __Pyx_XDECREF(__pyx_r);
56924   __Pyx_INCREF(((PyObject *)__pyx_v_group));
56925   __pyx_r = ((PyObject *)__pyx_v_group);
56926   goto __pyx_L0;
56927 
56928   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
56929   goto __pyx_L0;
56930   __pyx_L1_error:;
56931   __Pyx_XDECREF(__pyx_t_2);
56932   __Pyx_XDECREF(__pyx_t_4);
56933   __Pyx_XDECREF(__pyx_t_5);
56934   __Pyx_XDECREF(__pyx_t_6);
56935   __Pyx_XDECREF(__pyx_t_7);
56936   __Pyx_AddTraceback("mpi4py.MPI.Group.Range_incl", __pyx_clineno, __pyx_lineno, __pyx_filename);
56937   __pyx_r = NULL;
56938   __pyx_L0:;
56939   __Pyx_XDECREF(__pyx_v_tmp1);
56940   __Pyx_XDECREF((PyObject *)__pyx_v_group);
56941   __Pyx_XGIVEREF(__pyx_r);
56942   __Pyx_RefNannyFinishContext();
56943   return __pyx_r;
56944 }
56945 
56946 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":181
56947  *         return group
56948  *
56949  *     def Range_excl(self, ranks):             # <<<<<<<<<<<<<<
56950  *         """
56951  *         Create a new group by excluding ranges
56952  */
56953 
56954 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_15Range_excl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56955 static char __pyx_doc_6mpi4py_3MPI_5Group_15Range_excl[] = "Group.Range_excl(self, ranks)\n\n        Create a new group by excluding ranges\n        of processes from an existing group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_15Range_excl(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)56956 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_15Range_excl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56957   PyObject *__pyx_v_ranks = 0;
56958   int *__pyx_v_p;
56959   int (*__pyx_v_ranges)[3];
56960   int __pyx_v_i;
56961   int __pyx_v_n;
56962   PyObject *__pyx_v_tmp1 = 0;
56963   struct PyMPIGroupObject *__pyx_v_group = 0;
56964   PyObject *__pyx_r = NULL;
56965   __Pyx_RefNannyDeclarations
56966   Py_ssize_t __pyx_t_1;
56967   PyObject *__pyx_t_2 = NULL;
56968   int __pyx_t_3;
56969   PyObject *__pyx_t_4 = NULL;
56970   PyObject *__pyx_t_5 = NULL;
56971   PyObject *__pyx_t_6 = NULL;
56972   PyObject *__pyx_t_7 = NULL;
56973   PyObject *(*__pyx_t_8)(PyObject *);
56974   int __pyx_t_9;
56975   int __pyx_t_10;
56976   int __pyx_t_11;
56977   int __pyx_lineno = 0;
56978   const char *__pyx_filename = NULL;
56979   int __pyx_clineno = 0;
56980   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ranks,0};
56981   __Pyx_RefNannySetupContext("Range_excl");
56982   {
56983     PyObject* values[1] = {0};
56984     if (unlikely(__pyx_kwds)) {
56985       Py_ssize_t kw_args;
56986       switch (PyTuple_GET_SIZE(__pyx_args)) {
56987         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
56988         case  0: break;
56989         default: goto __pyx_L5_argtuple_error;
56990       }
56991       kw_args = PyDict_Size(__pyx_kwds);
56992       switch (PyTuple_GET_SIZE(__pyx_args)) {
56993         case  0:
56994         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ranks);
56995         if (likely(values[0])) kw_args--;
56996         else goto __pyx_L5_argtuple_error;
56997       }
56998       if (unlikely(kw_args > 0)) {
56999         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Range_excl") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57000       }
57001     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
57002       goto __pyx_L5_argtuple_error;
57003     } else {
57004       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
57005     }
57006     __pyx_v_ranks = values[0];
57007   }
57008   goto __pyx_L4_argument_unpacking_done;
57009   __pyx_L5_argtuple_error:;
57010   __Pyx_RaiseArgtupleInvalid("Range_excl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57011   __pyx_L3_error:;
57012   __Pyx_AddTraceback("mpi4py.MPI.Group.Range_excl", __pyx_clineno, __pyx_lineno, __pyx_filename);
57013   __Pyx_RefNannyFinishContext();
57014   return NULL;
57015   __pyx_L4_argument_unpacking_done:;
57016 
57017   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":186
57018  *         of processes from an existing group
57019  *         """
57020  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails             # <<<<<<<<<<<<<<
57021  *         ranges = NULL
57022  *         cdef int i = 0, n = <int>len(ranks)
57023  */
57024   __pyx_v_p = NULL;
57025 
57026   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":187
57027  *         """
57028  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails
57029  *         ranges = NULL             # <<<<<<<<<<<<<<
57030  *         cdef int i = 0, n = <int>len(ranks)
57031  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
57032  */
57033   __pyx_v_ranges = NULL;
57034 
57035   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":188
57036  *         cdef int *p = NULL, (*ranges)[3]# = NULL ## XXX cython fails
57037  *         ranges = NULL
57038  *         cdef int i = 0, n = <int>len(ranks)             # <<<<<<<<<<<<<<
57039  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
57040  *         for i from 0 <= i < n:
57041  */
57042   __pyx_v_i = 0;
57043   __pyx_t_1 = PyObject_Length(__pyx_v_ranks); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57044   __pyx_v_n = ((int)__pyx_t_1);
57045 
57046   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":189
57047  *         ranges = NULL
57048  *         cdef int i = 0, n = <int>len(ranks)
57049  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)             # <<<<<<<<<<<<<<
57050  *         for i from 0 <= i < n:
57051  *             p = <int*> ranges[i]
57052  */
57053   __pyx_t_2 = PyMPI_Allocate(__pyx_v_n, (sizeof(int [3])), ((void **)(&__pyx_v_ranges))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57054   __Pyx_GOTREF(__pyx_t_2);
57055   __pyx_v_tmp1 = __pyx_t_2;
57056   __pyx_t_2 = 0;
57057 
57058   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":190
57059  *         cdef int i = 0, n = <int>len(ranks)
57060  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
57061  *         for i from 0 <= i < n:             # <<<<<<<<<<<<<<
57062  *             p = <int*> ranges[i]
57063  *             p[0], p[1], p[2] = ranks[i]
57064  */
57065   __pyx_t_3 = __pyx_v_n;
57066   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
57067 
57068     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":191
57069  *         cdef tmp1 = allocate(n, sizeof(int[3]), <void**>&ranges)
57070  *         for i from 0 <= i < n:
57071  *             p = <int*> ranges[i]             # <<<<<<<<<<<<<<
57072  *             p[0], p[1], p[2] = ranks[i]
57073  *         cdef Group group = <Group>type(self)()
57074  */
57075     __pyx_v_p = ((int *)(__pyx_v_ranges[__pyx_v_i]));
57076 
57077     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":192
57078  *         for i from 0 <= i < n:
57079  *             p = <int*> ranges[i]
57080  *             p[0], p[1], p[2] = ranks[i]             # <<<<<<<<<<<<<<
57081  *         cdef Group group = <Group>type(self)()
57082  *         CHKERR( MPI_Group_range_excl(self.ob_mpi, n, ranges, &group.ob_mpi) )
57083  */
57084     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ranks, __pyx_v_i, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57085     __Pyx_GOTREF(__pyx_t_2);
57086     if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
57087       PyObject* sequence = __pyx_t_2;
57088       if (likely(PyTuple_CheckExact(sequence))) {
57089         if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) {
57090           if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
57091           else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
57092           {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57093         }
57094         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
57095         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
57096         __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
57097       } else {
57098         if (unlikely(PyList_GET_SIZE(sequence) != 3)) {
57099           if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
57100           else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
57101           {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57102         }
57103         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
57104         __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
57105         __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
57106       }
57107       __Pyx_INCREF(__pyx_t_4);
57108       __Pyx_INCREF(__pyx_t_5);
57109       __Pyx_INCREF(__pyx_t_6);
57110       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
57111     } else {
57112       Py_ssize_t index = -1;
57113       __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57114       __Pyx_GOTREF(__pyx_t_7);
57115       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
57116       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
57117       index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed;
57118       __Pyx_GOTREF(__pyx_t_4);
57119       index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
57120       __Pyx_GOTREF(__pyx_t_5);
57121       index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;
57122       __Pyx_GOTREF(__pyx_t_6);
57123       if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57124       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
57125       goto __pyx_L9_unpacking_done;
57126       __pyx_L8_unpacking_failed:;
57127       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
57128       if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
57129       if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
57130       {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57131       __pyx_L9_unpacking_done:;
57132     }
57133     __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57134     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
57135     __pyx_t_10 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57136     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
57137     __pyx_t_11 = __Pyx_PyInt_AsInt(__pyx_t_6); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57138     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
57139     (__pyx_v_p[0]) = __pyx_t_9;
57140     (__pyx_v_p[1]) = __pyx_t_10;
57141     (__pyx_v_p[2]) = __pyx_t_11;
57142   }
57143 
57144   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":193
57145  *             p = <int*> ranges[i]
57146  *             p[0], p[1], p[2] = ranks[i]
57147  *         cdef Group group = <Group>type(self)()             # <<<<<<<<<<<<<<
57148  *         CHKERR( MPI_Group_range_excl(self.ob_mpi, n, ranges, &group.ob_mpi) )
57149  *         return group
57150  */
57151   __pyx_t_2 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57152   __Pyx_GOTREF(__pyx_t_2);
57153   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_2)));
57154   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_2);
57155   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
57156 
57157   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":194
57158  *             p[0], p[1], p[2] = ranks[i]
57159  *         cdef Group group = <Group>type(self)()
57160  *         CHKERR( MPI_Group_range_excl(self.ob_mpi, n, ranges, &group.ob_mpi) )             # <<<<<<<<<<<<<<
57161  *         return group
57162  *
57163  */
57164   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_range_excl(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi, __pyx_v_n, __pyx_v_ranges, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57165 
57166   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":195
57167  *         cdef Group group = <Group>type(self)()
57168  *         CHKERR( MPI_Group_range_excl(self.ob_mpi, n, ranges, &group.ob_mpi) )
57169  *         return group             # <<<<<<<<<<<<<<
57170  *
57171  *     # Group Destructor
57172  */
57173   __Pyx_XDECREF(__pyx_r);
57174   __Pyx_INCREF(((PyObject *)__pyx_v_group));
57175   __pyx_r = ((PyObject *)__pyx_v_group);
57176   goto __pyx_L0;
57177 
57178   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57179   goto __pyx_L0;
57180   __pyx_L1_error:;
57181   __Pyx_XDECREF(__pyx_t_2);
57182   __Pyx_XDECREF(__pyx_t_4);
57183   __Pyx_XDECREF(__pyx_t_5);
57184   __Pyx_XDECREF(__pyx_t_6);
57185   __Pyx_XDECREF(__pyx_t_7);
57186   __Pyx_AddTraceback("mpi4py.MPI.Group.Range_excl", __pyx_clineno, __pyx_lineno, __pyx_filename);
57187   __pyx_r = NULL;
57188   __pyx_L0:;
57189   __Pyx_XDECREF(__pyx_v_tmp1);
57190   __Pyx_XDECREF((PyObject *)__pyx_v_group);
57191   __Pyx_XGIVEREF(__pyx_r);
57192   __Pyx_RefNannyFinishContext();
57193   return __pyx_r;
57194 }
57195 
57196 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":200
57197  *     # ----------------
57198  *
57199  *     def Free(self):             # <<<<<<<<<<<<<<
57200  *         """
57201  *         Free a group
57202  */
57203 
57204 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_16Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
57205 static char __pyx_doc_6mpi4py_3MPI_5Group_16Free[] = "Group.Free(self)\n\n        Free a group\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_16Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)57206 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_16Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57207   PyObject *__pyx_r = NULL;
57208   __Pyx_RefNannyDeclarations
57209   int __pyx_t_1;
57210   int __pyx_t_2;
57211   int __pyx_lineno = 0;
57212   const char *__pyx_filename = NULL;
57213   int __pyx_clineno = 0;
57214   __Pyx_RefNannySetupContext("Free");
57215   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
57216     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
57217   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
57218 
57219   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":204
57220  *         Free a group
57221  *         """
57222  *         if self.ob_mpi != MPI_GROUP_EMPTY:             # <<<<<<<<<<<<<<
57223  *             CHKERR( MPI_Group_free(&self.ob_mpi) )
57224  *         elif self is not __GROUP_EMPTY__:
57225  */
57226   __pyx_t_1 = (((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi != MPI_GROUP_EMPTY);
57227   if (__pyx_t_1) {
57228 
57229     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":205
57230  *         """
57231  *         if self.ob_mpi != MPI_GROUP_EMPTY:
57232  *             CHKERR( MPI_Group_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
57233  *         elif self is not __GROUP_EMPTY__:
57234  *             self.ob_mpi = MPI_GROUP_NULL
57235  */
57236     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Group_free((&((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57237     goto __pyx_L5;
57238   }
57239 
57240   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":206
57241  *         if self.ob_mpi != MPI_GROUP_EMPTY:
57242  *             CHKERR( MPI_Group_free(&self.ob_mpi) )
57243  *         elif self is not __GROUP_EMPTY__:             # <<<<<<<<<<<<<<
57244  *             self.ob_mpi = MPI_GROUP_NULL
57245  *         else: CHKERR( MPI_ERR_GROUP )
57246  */
57247   __pyx_t_1 = (((struct PyMPIGroupObject *)__pyx_v_self) != __pyx_v_6mpi4py_3MPI___GROUP_EMPTY__);
57248   if (__pyx_t_1) {
57249 
57250     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":207
57251  *             CHKERR( MPI_Group_free(&self.ob_mpi) )
57252  *         elif self is not __GROUP_EMPTY__:
57253  *             self.ob_mpi = MPI_GROUP_NULL             # <<<<<<<<<<<<<<
57254  *         else: CHKERR( MPI_ERR_GROUP )
57255  *
57256  */
57257     ((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi = MPI_GROUP_NULL;
57258     goto __pyx_L5;
57259   }
57260   /*else*/ {
57261 
57262     /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":208
57263  *         elif self is not __GROUP_EMPTY__:
57264  *             self.ob_mpi = MPI_GROUP_NULL
57265  *         else: CHKERR( MPI_ERR_GROUP )             # <<<<<<<<<<<<<<
57266  *
57267  *     # Fortran Handle
57268  */
57269     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_ERR_GROUP); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57270   }
57271   __pyx_L5:;
57272 
57273   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57274   goto __pyx_L0;
57275   __pyx_L1_error:;
57276   __Pyx_AddTraceback("mpi4py.MPI.Group.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
57277   __pyx_r = NULL;
57278   __pyx_L0:;
57279   __Pyx_XGIVEREF(__pyx_r);
57280   __Pyx_RefNannyFinishContext();
57281   return __pyx_r;
57282 }
57283 
57284 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":213
57285  *     # --------------
57286  *
57287  *     def py2f(self):             # <<<<<<<<<<<<<<
57288  *         """
57289  *         """
57290  */
57291 
57292 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_17py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
57293 static char __pyx_doc_6mpi4py_3MPI_5Group_17py2f[] = "Group.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_17py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)57294 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_17py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57295   PyObject *__pyx_r = NULL;
57296   __Pyx_RefNannyDeclarations
57297   PyObject *__pyx_t_1 = NULL;
57298   int __pyx_lineno = 0;
57299   const char *__pyx_filename = NULL;
57300   int __pyx_clineno = 0;
57301   __Pyx_RefNannySetupContext("py2f");
57302   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
57303     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
57304   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
57305 
57306   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":216
57307  *         """
57308  *         """
57309  *         return MPI_Group_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
57310  *
57311  *     @classmethod
57312  */
57313   __Pyx_XDECREF(__pyx_r);
57314   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Group_c2f(((struct PyMPIGroupObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57315   __Pyx_GOTREF(__pyx_t_1);
57316   __pyx_r = __pyx_t_1;
57317   __pyx_t_1 = 0;
57318   goto __pyx_L0;
57319 
57320   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57321   goto __pyx_L0;
57322   __pyx_L1_error:;
57323   __Pyx_XDECREF(__pyx_t_1);
57324   __Pyx_AddTraceback("mpi4py.MPI.Group.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
57325   __pyx_r = NULL;
57326   __pyx_L0:;
57327   __Pyx_XGIVEREF(__pyx_r);
57328   __Pyx_RefNannyFinishContext();
57329   return __pyx_r;
57330 }
57331 
57332 /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":219
57333  *
57334  *     @classmethod
57335  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
57336  *         """
57337  *         """
57338  */
57339 
57340 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_18f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
57341 static char __pyx_doc_6mpi4py_3MPI_5Group_18f2py[] = "Group.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_5Group_18f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)57342 static PyObject *__pyx_pf_6mpi4py_3MPI_5Group_18f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57343   PyObject *__pyx_v_arg = 0;
57344   struct PyMPIGroupObject *__pyx_v_group = 0;
57345   PyObject *__pyx_r = NULL;
57346   __Pyx_RefNannyDeclarations
57347   PyObject *__pyx_t_1 = NULL;
57348   MPI_Fint __pyx_t_2;
57349   int __pyx_lineno = 0;
57350   const char *__pyx_filename = NULL;
57351   int __pyx_clineno = 0;
57352   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
57353   __Pyx_RefNannySetupContext("f2py");
57354   {
57355     PyObject* values[1] = {0};
57356     if (unlikely(__pyx_kwds)) {
57357       Py_ssize_t kw_args;
57358       switch (PyTuple_GET_SIZE(__pyx_args)) {
57359         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
57360         case  0: break;
57361         default: goto __pyx_L5_argtuple_error;
57362       }
57363       kw_args = PyDict_Size(__pyx_kwds);
57364       switch (PyTuple_GET_SIZE(__pyx_args)) {
57365         case  0:
57366         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
57367         if (likely(values[0])) kw_args--;
57368         else goto __pyx_L5_argtuple_error;
57369       }
57370       if (unlikely(kw_args > 0)) {
57371         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57372       }
57373     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
57374       goto __pyx_L5_argtuple_error;
57375     } else {
57376       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
57377     }
57378     __pyx_v_arg = values[0];
57379   }
57380   goto __pyx_L4_argument_unpacking_done;
57381   __pyx_L5_argtuple_error:;
57382   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[24]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57383   __pyx_L3_error:;
57384   __Pyx_AddTraceback("mpi4py.MPI.Group.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
57385   __Pyx_RefNannyFinishContext();
57386   return NULL;
57387   __pyx_L4_argument_unpacking_done:;
57388 
57389   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":222
57390  *         """
57391  *         """
57392  *         cdef Group group = <Group>cls()             # <<<<<<<<<<<<<<
57393  *         group.ob_mpi = MPI_Group_f2c(arg)
57394  *         return group
57395  */
57396   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57397   __Pyx_GOTREF(__pyx_t_1);
57398   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
57399   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
57400   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57401 
57402   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":223
57403  *         """
57404  *         cdef Group group = <Group>cls()
57405  *         group.ob_mpi = MPI_Group_f2c(arg)             # <<<<<<<<<<<<<<
57406  *         return group
57407  *
57408  */
57409   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57410   __pyx_v_group->ob_mpi = MPI_Group_f2c(__pyx_t_2);
57411 
57412   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":224
57413  *         cdef Group group = <Group>cls()
57414  *         group.ob_mpi = MPI_Group_f2c(arg)
57415  *         return group             # <<<<<<<<<<<<<<
57416  *
57417  *
57418  */
57419   __Pyx_XDECREF(__pyx_r);
57420   __Pyx_INCREF(((PyObject *)__pyx_v_group));
57421   __pyx_r = ((PyObject *)__pyx_v_group);
57422   goto __pyx_L0;
57423 
57424   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57425   goto __pyx_L0;
57426   __pyx_L1_error:;
57427   __Pyx_XDECREF(__pyx_t_1);
57428   __Pyx_AddTraceback("mpi4py.MPI.Group.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
57429   __pyx_r = NULL;
57430   __pyx_L0:;
57431   __Pyx_XDECREF((PyObject *)__pyx_v_group);
57432   __Pyx_XGIVEREF(__pyx_r);
57433   __Pyx_RefNannyFinishContext();
57434   return __pyx_r;
57435 }
57436 
57437 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":24
57438  *     """
57439  *
57440  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
57441  *         self.ob_mpi = MPI_COMM_NULL
57442  *         if comm is not None:
57443  */
57444 
57445 static int __pyx_pf_6mpi4py_3MPI_4Comm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)57446 static int __pyx_pf_6mpi4py_3MPI_4Comm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57447   struct PyMPICommObject *__pyx_v_comm = 0;
57448   int __pyx_r;
57449   __Pyx_RefNannyDeclarations
57450   int __pyx_t_1;
57451   int __pyx_lineno = 0;
57452   const char *__pyx_filename = NULL;
57453   int __pyx_clineno = 0;
57454   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
57455   __Pyx_RefNannySetupContext("__cinit__");
57456   {
57457     PyObject* values[1] = {0};
57458     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
57459     if (unlikely(__pyx_kwds)) {
57460       Py_ssize_t kw_args;
57461       switch (PyTuple_GET_SIZE(__pyx_args)) {
57462         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
57463         case  0: break;
57464         default: goto __pyx_L5_argtuple_error;
57465       }
57466       kw_args = PyDict_Size(__pyx_kwds);
57467       switch (PyTuple_GET_SIZE(__pyx_args)) {
57468         case  0:
57469         if (kw_args > 0) {
57470           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
57471           if (value) { values[0] = value; kw_args--; }
57472         }
57473       }
57474       if (unlikely(kw_args > 0)) {
57475         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57476       }
57477     } else {
57478       switch (PyTuple_GET_SIZE(__pyx_args)) {
57479         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
57480         case  0: break;
57481         default: goto __pyx_L5_argtuple_error;
57482       }
57483     }
57484     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
57485   }
57486   goto __pyx_L4_argument_unpacking_done;
57487   __pyx_L5_argtuple_error:;
57488   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
57489   __pyx_L3_error:;
57490   __Pyx_AddTraceback("mpi4py.MPI.Comm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
57491   __Pyx_RefNannyFinishContext();
57492   return -1;
57493   __pyx_L4_argument_unpacking_done:;
57494   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57495 
57496   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":25
57497  *
57498  *     def __cinit__(self, Comm comm=None):
57499  *         self.ob_mpi = MPI_COMM_NULL             # <<<<<<<<<<<<<<
57500  *         if comm is not None:
57501  *             self.ob_mpi = comm.ob_mpi
57502  */
57503   ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi = MPI_COMM_NULL;
57504 
57505   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":26
57506  *     def __cinit__(self, Comm comm=None):
57507  *         self.ob_mpi = MPI_COMM_NULL
57508  *         if comm is not None:             # <<<<<<<<<<<<<<
57509  *             self.ob_mpi = comm.ob_mpi
57510  *
57511  */
57512   __pyx_t_1 = (((PyObject *)__pyx_v_comm) != Py_None);
57513   if (__pyx_t_1) {
57514 
57515     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":27
57516  *         self.ob_mpi = MPI_COMM_NULL
57517  *         if comm is not None:
57518  *             self.ob_mpi = comm.ob_mpi             # <<<<<<<<<<<<<<
57519  *
57520  *     def __dealloc__(self):
57521  */
57522     ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi = __pyx_v_comm->ob_mpi;
57523     goto __pyx_L6;
57524   }
57525   __pyx_L6:;
57526 
57527   __pyx_r = 0;
57528   goto __pyx_L0;
57529   __pyx_L1_error:;
57530   __Pyx_AddTraceback("mpi4py.MPI.Comm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
57531   __pyx_r = -1;
57532   __pyx_L0:;
57533   __Pyx_RefNannyFinishContext();
57534   return __pyx_r;
57535 }
57536 
57537 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":29
57538  *             self.ob_mpi = comm.ob_mpi
57539  *
57540  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
57541  *         if not (self.flags & PyMPI_OWNED): return
57542  *         CHKERR( del_Comm(&self.ob_mpi) )
57543  */
57544 
57545 static void __pyx_pf_6mpi4py_3MPI_4Comm_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_1__dealloc__(PyObject * __pyx_v_self)57546 static void __pyx_pf_6mpi4py_3MPI_4Comm_1__dealloc__(PyObject *__pyx_v_self) {
57547   __Pyx_RefNannyDeclarations
57548   int __pyx_t_1;
57549   int __pyx_t_2;
57550   int __pyx_lineno = 0;
57551   const char *__pyx_filename = NULL;
57552   int __pyx_clineno = 0;
57553   __Pyx_RefNannySetupContext("__dealloc__");
57554 
57555   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":30
57556  *
57557  *     def __dealloc__(self):
57558  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
57559  *         CHKERR( del_Comm(&self.ob_mpi) )
57560  *
57561  */
57562   __pyx_t_1 = (!(((struct PyMPICommObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
57563   if (__pyx_t_1) {
57564     goto __pyx_L0;
57565     goto __pyx_L5;
57566   }
57567   __pyx_L5:;
57568 
57569   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":31
57570  *     def __dealloc__(self):
57571  *         if not (self.flags & PyMPI_OWNED): return
57572  *         CHKERR( del_Comm(&self.ob_mpi) )             # <<<<<<<<<<<<<<
57573  *
57574  *     def __richcmp__(self, other, int op):
57575  */
57576   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Comm((&((struct PyMPICommObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57577 
57578   goto __pyx_L0;
57579   __pyx_L1_error:;
57580   __Pyx_AddTraceback("mpi4py.MPI.Comm.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
57581   __pyx_L0:;
57582   __Pyx_RefNannyFinishContext();
57583 }
57584 
57585 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":33
57586  *         CHKERR( del_Comm(&self.ob_mpi) )
57587  *
57588  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
57589  *         if not isinstance(self,  Comm): return NotImplemented
57590  *         if not isinstance(other, Comm): return NotImplemented
57591  */
57592 
57593 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)57594 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
57595   struct PyMPICommObject *__pyx_v_s = 0;
57596   struct PyMPICommObject *__pyx_v_o = 0;
57597   PyObject *__pyx_r = NULL;
57598   __Pyx_RefNannyDeclarations
57599   PyObject *__pyx_t_1 = NULL;
57600   int __pyx_t_2;
57601   int __pyx_t_3;
57602   int __pyx_lineno = 0;
57603   const char *__pyx_filename = NULL;
57604   int __pyx_clineno = 0;
57605   __Pyx_RefNannySetupContext("__richcmp__");
57606 
57607   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":34
57608  *
57609  *     def __richcmp__(self, other, int op):
57610  *         if not isinstance(self,  Comm): return NotImplemented             # <<<<<<<<<<<<<<
57611  *         if not isinstance(other, Comm): return NotImplemented
57612  *         cdef Comm s = <Comm>self, o = <Comm>other
57613  */
57614   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Comm));
57615   __Pyx_INCREF(__pyx_t_1);
57616   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
57617   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57618   __pyx_t_3 = (!__pyx_t_2);
57619   if (__pyx_t_3) {
57620     __Pyx_XDECREF(__pyx_r);
57621     __Pyx_INCREF(__pyx_builtin_NotImplemented);
57622     __pyx_r = __pyx_builtin_NotImplemented;
57623     goto __pyx_L0;
57624     goto __pyx_L5;
57625   }
57626   __pyx_L5:;
57627 
57628   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":35
57629  *     def __richcmp__(self, other, int op):
57630  *         if not isinstance(self,  Comm): return NotImplemented
57631  *         if not isinstance(other, Comm): return NotImplemented             # <<<<<<<<<<<<<<
57632  *         cdef Comm s = <Comm>self, o = <Comm>other
57633  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
57634  */
57635   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Comm));
57636   __Pyx_INCREF(__pyx_t_1);
57637   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
57638   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57639   __pyx_t_2 = (!__pyx_t_3);
57640   if (__pyx_t_2) {
57641     __Pyx_XDECREF(__pyx_r);
57642     __Pyx_INCREF(__pyx_builtin_NotImplemented);
57643     __pyx_r = __pyx_builtin_NotImplemented;
57644     goto __pyx_L0;
57645     goto __pyx_L6;
57646   }
57647   __pyx_L6:;
57648 
57649   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":36
57650  *         if not isinstance(self,  Comm): return NotImplemented
57651  *         if not isinstance(other, Comm): return NotImplemented
57652  *         cdef Comm s = <Comm>self, o = <Comm>other             # <<<<<<<<<<<<<<
57653  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
57654  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
57655  */
57656   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_v_self)));
57657   __pyx_v_s = ((struct PyMPICommObject *)__pyx_v_self);
57658   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_v_other)));
57659   __pyx_v_o = ((struct PyMPICommObject *)__pyx_v_other);
57660 
57661   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":38
57662  *         cdef Comm s = <Comm>self, o = <Comm>other
57663  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
57664  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
57665  *         else: raise TypeError("only '==' and '!='")
57666  *
57667  */
57668   switch (__pyx_v_op) {
57669 
57670     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":37
57671  *         if not isinstance(other, Comm): return NotImplemented
57672  *         cdef Comm s = <Comm>self, o = <Comm>other
57673  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
57674  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
57675  *         else: raise TypeError("only '==' and '!='")
57676  */
57677     case Py_EQ:
57678     __Pyx_XDECREF(__pyx_r);
57679     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57680     __Pyx_GOTREF(__pyx_t_1);
57681     __pyx_r = __pyx_t_1;
57682     __pyx_t_1 = 0;
57683     goto __pyx_L0;
57684     break;
57685 
57686     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":38
57687  *         cdef Comm s = <Comm>self, o = <Comm>other
57688  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
57689  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
57690  *         else: raise TypeError("only '==' and '!='")
57691  *
57692  */
57693     case Py_NE:
57694     __Pyx_XDECREF(__pyx_r);
57695     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57696     __Pyx_GOTREF(__pyx_t_1);
57697     __pyx_r = __pyx_t_1;
57698     __pyx_t_1 = 0;
57699     goto __pyx_L0;
57700     break;
57701     default:
57702 
57703     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":39
57704  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
57705  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
57706  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
57707  *
57708  *     def __bool__(self):
57709  */
57710     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_70), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57711     __Pyx_GOTREF(__pyx_t_1);
57712     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
57713     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57714     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57715     break;
57716   }
57717 
57718   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57719   goto __pyx_L0;
57720   __pyx_L1_error:;
57721   __Pyx_XDECREF(__pyx_t_1);
57722   __Pyx_AddTraceback("mpi4py.MPI.Comm.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
57723   __pyx_r = NULL;
57724   __pyx_L0:;
57725   __Pyx_XDECREF((PyObject *)__pyx_v_s);
57726   __Pyx_XDECREF((PyObject *)__pyx_v_o);
57727   __Pyx_XGIVEREF(__pyx_r);
57728   __Pyx_RefNannyFinishContext();
57729   return __pyx_r;
57730 }
57731 
57732 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":41
57733  *         else: raise TypeError("only '==' and '!='")
57734  *
57735  *     def __bool__(self):             # <<<<<<<<<<<<<<
57736  *         return self.ob_mpi != MPI_COMM_NULL
57737  *
57738  */
57739 
57740 static int __pyx_pf_6mpi4py_3MPI_4Comm_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_3__bool__(PyObject * __pyx_v_self)57741 static int __pyx_pf_6mpi4py_3MPI_4Comm_3__bool__(PyObject *__pyx_v_self) {
57742   int __pyx_r;
57743   __Pyx_RefNannyDeclarations
57744   __Pyx_RefNannySetupContext("__bool__");
57745 
57746   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":42
57747  *
57748  *     def __bool__(self):
57749  *         return self.ob_mpi != MPI_COMM_NULL             # <<<<<<<<<<<<<<
57750  *
57751  *     # Group
57752  */
57753   __pyx_r = (((struct PyMPICommObject *)__pyx_v_self)->ob_mpi != MPI_COMM_NULL);
57754   goto __pyx_L0;
57755 
57756   __pyx_r = 0;
57757   __pyx_L0:;
57758   __Pyx_RefNannyFinishContext();
57759   return __pyx_r;
57760 }
57761 
57762 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":47
57763  *     # -----
57764  *
57765  *     def Get_group(self):             # <<<<<<<<<<<<<<
57766  *         """
57767  *         Access the group associated with a communicator
57768  */
57769 
57770 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
57771 static char __pyx_doc_6mpi4py_3MPI_4Comm_4Get_group[] = "Comm.Get_group(self)\n\n        Access the group associated with a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_4Get_group(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)57772 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57773   struct PyMPIGroupObject *__pyx_v_group = 0;
57774   PyObject *__pyx_r = NULL;
57775   __Pyx_RefNannyDeclarations
57776   PyObject *__pyx_t_1 = NULL;
57777   int __pyx_t_2;
57778   int __pyx_lineno = 0;
57779   const char *__pyx_filename = NULL;
57780   int __pyx_clineno = 0;
57781   __Pyx_RefNannySetupContext("Get_group");
57782   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
57783     __Pyx_RaiseArgtupleInvalid("Get_group", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
57784   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_group", 0))) return NULL;
57785 
57786   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":51
57787  *         Access the group associated with a communicator
57788  *         """
57789  *         cdef Group group = <Group>Group.__new__(Group)             # <<<<<<<<<<<<<<
57790  *         with nogil: CHKERR( MPI_Comm_group(self.ob_mpi, &group.ob_mpi) )
57791  *         return group
57792  */
57793   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57794   __Pyx_GOTREF(__pyx_t_1);
57795   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
57796   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
57797   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57798 
57799   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":52
57800  *         """
57801  *         cdef Group group = <Group>Group.__new__(Group)
57802  *         with nogil: CHKERR( MPI_Comm_group(self.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
57803  *         return group
57804  *
57805  */
57806   {
57807       #ifdef WITH_THREAD
57808       PyThreadState *_save = NULL;
57809       #endif
57810       Py_UNBLOCK_THREADS
57811       /*try:*/ {
57812         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_group(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L6;}
57813       }
57814       /*finally:*/ {
57815         int __pyx_why;
57816         __pyx_why = 0; goto __pyx_L7;
57817         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
57818         __pyx_L7:;
57819         Py_BLOCK_THREADS
57820         switch (__pyx_why) {
57821           case 4: goto __pyx_L1_error;
57822         }
57823       }
57824   }
57825 
57826   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":53
57827  *         cdef Group group = <Group>Group.__new__(Group)
57828  *         with nogil: CHKERR( MPI_Comm_group(self.ob_mpi, &group.ob_mpi) )
57829  *         return group             # <<<<<<<<<<<<<<
57830  *
57831  *     property group:
57832  */
57833   __Pyx_XDECREF(__pyx_r);
57834   __Pyx_INCREF(((PyObject *)__pyx_v_group));
57835   __pyx_r = ((PyObject *)__pyx_v_group);
57836   goto __pyx_L0;
57837 
57838   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57839   goto __pyx_L0;
57840   __pyx_L1_error:;
57841   __Pyx_XDECREF(__pyx_t_1);
57842   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
57843   __pyx_r = NULL;
57844   __pyx_L0:;
57845   __Pyx_XDECREF((PyObject *)__pyx_v_group);
57846   __Pyx_XGIVEREF(__pyx_r);
57847   __Pyx_RefNannyFinishContext();
57848   return __pyx_r;
57849 }
57850 
57851 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":57
57852  *     property group:
57853  *         """communicator group"""
57854  *         def __get__(self):             # <<<<<<<<<<<<<<
57855  *             return self.Get_group()
57856  *
57857  */
57858 
57859 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_5group___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_5group___get__(PyObject * __pyx_v_self)57860 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_5group___get__(PyObject *__pyx_v_self) {
57861   PyObject *__pyx_r = NULL;
57862   __Pyx_RefNannyDeclarations
57863   PyObject *__pyx_t_1 = NULL;
57864   PyObject *__pyx_t_2 = NULL;
57865   int __pyx_lineno = 0;
57866   const char *__pyx_filename = NULL;
57867   int __pyx_clineno = 0;
57868   __Pyx_RefNannySetupContext("__get__");
57869 
57870   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":58
57871  *         """communicator group"""
57872  *         def __get__(self):
57873  *             return self.Get_group()             # <<<<<<<<<<<<<<
57874  *
57875  *     # Communicator Accessors
57876  */
57877   __Pyx_XDECREF(__pyx_r);
57878   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_group); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57879   __Pyx_GOTREF(__pyx_t_1);
57880   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57881   __Pyx_GOTREF(__pyx_t_2);
57882   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
57883   __pyx_r = __pyx_t_2;
57884   __pyx_t_2 = 0;
57885   goto __pyx_L0;
57886 
57887   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57888   goto __pyx_L0;
57889   __pyx_L1_error:;
57890   __Pyx_XDECREF(__pyx_t_1);
57891   __Pyx_XDECREF(__pyx_t_2);
57892   __Pyx_AddTraceback("mpi4py.MPI.Comm.group.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
57893   __pyx_r = NULL;
57894   __pyx_L0:;
57895   __Pyx_XGIVEREF(__pyx_r);
57896   __Pyx_RefNannyFinishContext();
57897   return __pyx_r;
57898 }
57899 
57900 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":63
57901  *     # ----------------------
57902  *
57903  *     def Get_size(self):             # <<<<<<<<<<<<<<
57904  *         """
57905  *         Return the number of processes in a communicator
57906  */
57907 
57908 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_5Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
57909 static char __pyx_doc_6mpi4py_3MPI_4Comm_5Get_size[] = "Comm.Get_size(self)\n\n        Return the number of processes in a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_5Get_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)57910 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_5Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
57911   int __pyx_v_size;
57912   PyObject *__pyx_r = NULL;
57913   __Pyx_RefNannyDeclarations
57914   int __pyx_t_1;
57915   PyObject *__pyx_t_2 = NULL;
57916   int __pyx_lineno = 0;
57917   const char *__pyx_filename = NULL;
57918   int __pyx_clineno = 0;
57919   __Pyx_RefNannySetupContext("Get_size");
57920   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
57921     __Pyx_RaiseArgtupleInvalid("Get_size", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
57922   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_size", 0))) return NULL;
57923 
57924   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":67
57925  *         Return the number of processes in a communicator
57926  *         """
57927  *         cdef int size = -1             # <<<<<<<<<<<<<<
57928  *         CHKERR( MPI_Comm_size(self.ob_mpi, &size) )
57929  *         return size
57930  */
57931   __pyx_v_size = -1;
57932 
57933   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":68
57934  *         """
57935  *         cdef int size = -1
57936  *         CHKERR( MPI_Comm_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
57937  *         return size
57938  *
57939  */
57940   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_size(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57941 
57942   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":69
57943  *         cdef int size = -1
57944  *         CHKERR( MPI_Comm_size(self.ob_mpi, &size) )
57945  *         return size             # <<<<<<<<<<<<<<
57946  *
57947  *     property size:
57948  */
57949   __Pyx_XDECREF(__pyx_r);
57950   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57951   __Pyx_GOTREF(__pyx_t_2);
57952   __pyx_r = __pyx_t_2;
57953   __pyx_t_2 = 0;
57954   goto __pyx_L0;
57955 
57956   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
57957   goto __pyx_L0;
57958   __pyx_L1_error:;
57959   __Pyx_XDECREF(__pyx_t_2);
57960   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
57961   __pyx_r = NULL;
57962   __pyx_L0:;
57963   __Pyx_XGIVEREF(__pyx_r);
57964   __Pyx_RefNannyFinishContext();
57965   return __pyx_r;
57966 }
57967 
57968 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":73
57969  *     property size:
57970  *         """number of processes in communicator"""
57971  *         def __get__(self):             # <<<<<<<<<<<<<<
57972  *             return self.Get_size()
57973  *
57974  */
57975 
57976 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4size___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_4size___get__(PyObject * __pyx_v_self)57977 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4size___get__(PyObject *__pyx_v_self) {
57978   PyObject *__pyx_r = NULL;
57979   __Pyx_RefNannyDeclarations
57980   PyObject *__pyx_t_1 = NULL;
57981   PyObject *__pyx_t_2 = NULL;
57982   int __pyx_lineno = 0;
57983   const char *__pyx_filename = NULL;
57984   int __pyx_clineno = 0;
57985   __Pyx_RefNannySetupContext("__get__");
57986 
57987   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":74
57988  *         """number of processes in communicator"""
57989  *         def __get__(self):
57990  *             return self.Get_size()             # <<<<<<<<<<<<<<
57991  *
57992  *     def Get_rank(self):
57993  */
57994   __Pyx_XDECREF(__pyx_r);
57995   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57996   __Pyx_GOTREF(__pyx_t_1);
57997   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
57998   __Pyx_GOTREF(__pyx_t_2);
57999   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58000   __pyx_r = __pyx_t_2;
58001   __pyx_t_2 = 0;
58002   goto __pyx_L0;
58003 
58004   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58005   goto __pyx_L0;
58006   __pyx_L1_error:;
58007   __Pyx_XDECREF(__pyx_t_1);
58008   __Pyx_XDECREF(__pyx_t_2);
58009   __Pyx_AddTraceback("mpi4py.MPI.Comm.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58010   __pyx_r = NULL;
58011   __pyx_L0:;
58012   __Pyx_XGIVEREF(__pyx_r);
58013   __Pyx_RefNannyFinishContext();
58014   return __pyx_r;
58015 }
58016 
58017 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":76
58018  *             return self.Get_size()
58019  *
58020  *     def Get_rank(self):             # <<<<<<<<<<<<<<
58021  *         """
58022  *         Return the rank of this process in a communicator
58023  */
58024 
58025 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_6Get_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58026 static char __pyx_doc_6mpi4py_3MPI_4Comm_6Get_rank[] = "Comm.Get_rank(self)\n\n        Return the rank of this process in a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_6Get_rank(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58027 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_6Get_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58028   int __pyx_v_rank;
58029   PyObject *__pyx_r = NULL;
58030   __Pyx_RefNannyDeclarations
58031   int __pyx_t_1;
58032   PyObject *__pyx_t_2 = NULL;
58033   int __pyx_lineno = 0;
58034   const char *__pyx_filename = NULL;
58035   int __pyx_clineno = 0;
58036   __Pyx_RefNannySetupContext("Get_rank");
58037   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
58038     __Pyx_RaiseArgtupleInvalid("Get_rank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
58039   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_rank", 0))) return NULL;
58040 
58041   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":80
58042  *         Return the rank of this process in a communicator
58043  *         """
58044  *         cdef int rank = MPI_PROC_NULL             # <<<<<<<<<<<<<<
58045  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
58046  *         return rank
58047  */
58048   __pyx_v_rank = MPI_PROC_NULL;
58049 
58050   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":81
58051  *         """
58052  *         cdef int rank = MPI_PROC_NULL
58053  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
58054  *         return rank
58055  *
58056  */
58057   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58058 
58059   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":82
58060  *         cdef int rank = MPI_PROC_NULL
58061  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
58062  *         return rank             # <<<<<<<<<<<<<<
58063  *
58064  *     property rank:
58065  */
58066   __Pyx_XDECREF(__pyx_r);
58067   __pyx_t_2 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58068   __Pyx_GOTREF(__pyx_t_2);
58069   __pyx_r = __pyx_t_2;
58070   __pyx_t_2 = 0;
58071   goto __pyx_L0;
58072 
58073   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58074   goto __pyx_L0;
58075   __pyx_L1_error:;
58076   __Pyx_XDECREF(__pyx_t_2);
58077   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_rank", __pyx_clineno, __pyx_lineno, __pyx_filename);
58078   __pyx_r = NULL;
58079   __pyx_L0:;
58080   __Pyx_XGIVEREF(__pyx_r);
58081   __Pyx_RefNannyFinishContext();
58082   return __pyx_r;
58083 }
58084 
58085 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":86
58086  *     property rank:
58087  *         """rank of this process in communicator"""
58088  *         def __get__(self):             # <<<<<<<<<<<<<<
58089  *             return self.Get_rank()
58090  *
58091  */
58092 
58093 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4rank___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_4rank___get__(PyObject * __pyx_v_self)58094 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4rank___get__(PyObject *__pyx_v_self) {
58095   PyObject *__pyx_r = NULL;
58096   __Pyx_RefNannyDeclarations
58097   PyObject *__pyx_t_1 = NULL;
58098   PyObject *__pyx_t_2 = NULL;
58099   int __pyx_lineno = 0;
58100   const char *__pyx_filename = NULL;
58101   int __pyx_clineno = 0;
58102   __Pyx_RefNannySetupContext("__get__");
58103 
58104   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":87
58105  *         """rank of this process in communicator"""
58106  *         def __get__(self):
58107  *             return self.Get_rank()             # <<<<<<<<<<<<<<
58108  *
58109  *     @classmethod
58110  */
58111   __Pyx_XDECREF(__pyx_r);
58112   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58113   __Pyx_GOTREF(__pyx_t_1);
58114   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58115   __Pyx_GOTREF(__pyx_t_2);
58116   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58117   __pyx_r = __pyx_t_2;
58118   __pyx_t_2 = 0;
58119   goto __pyx_L0;
58120 
58121   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58122   goto __pyx_L0;
58123   __pyx_L1_error:;
58124   __Pyx_XDECREF(__pyx_t_1);
58125   __Pyx_XDECREF(__pyx_t_2);
58126   __Pyx_AddTraceback("mpi4py.MPI.Comm.rank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
58127   __pyx_r = NULL;
58128   __pyx_L0:;
58129   __Pyx_XGIVEREF(__pyx_r);
58130   __Pyx_RefNannyFinishContext();
58131   return __pyx_r;
58132 }
58133 
58134 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":90
58135  *
58136  *     @classmethod
58137  *     def Compare(cls, Comm comm1 not None, Comm comm2 not None):             # <<<<<<<<<<<<<<
58138  *         """
58139  *         Compare two communicators
58140  */
58141 
58142 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_7Compare(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58143 static char __pyx_doc_6mpi4py_3MPI_4Comm_7Compare[] = "Comm.Compare(type cls, Comm comm1, Comm comm2)\n\n        Compare two communicators\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_7Compare(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)58144 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_7Compare(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58145   struct PyMPICommObject *__pyx_v_comm1 = 0;
58146   struct PyMPICommObject *__pyx_v_comm2 = 0;
58147   int __pyx_v_flag;
58148   PyObject *__pyx_r = NULL;
58149   __Pyx_RefNannyDeclarations
58150   int __pyx_t_1;
58151   PyObject *__pyx_t_2 = NULL;
58152   int __pyx_lineno = 0;
58153   const char *__pyx_filename = NULL;
58154   int __pyx_clineno = 0;
58155   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm1,&__pyx_n_s__comm2,0};
58156   __Pyx_RefNannySetupContext("Compare");
58157   {
58158     PyObject* values[2] = {0,0};
58159     if (unlikely(__pyx_kwds)) {
58160       Py_ssize_t kw_args;
58161       switch (PyTuple_GET_SIZE(__pyx_args)) {
58162         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58163         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58164         case  0: break;
58165         default: goto __pyx_L5_argtuple_error;
58166       }
58167       kw_args = PyDict_Size(__pyx_kwds);
58168       switch (PyTuple_GET_SIZE(__pyx_args)) {
58169         case  0:
58170         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm1);
58171         if (likely(values[0])) kw_args--;
58172         else goto __pyx_L5_argtuple_error;
58173         case  1:
58174         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm2);
58175         if (likely(values[1])) kw_args--;
58176         else {
58177           __Pyx_RaiseArgtupleInvalid("Compare", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58178         }
58179       }
58180       if (unlikely(kw_args > 0)) {
58181         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Compare") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58182       }
58183     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
58184       goto __pyx_L5_argtuple_error;
58185     } else {
58186       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58187       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58188     }
58189     __pyx_v_comm1 = ((struct PyMPICommObject *)values[0]);
58190     __pyx_v_comm2 = ((struct PyMPICommObject *)values[1]);
58191   }
58192   goto __pyx_L4_argument_unpacking_done;
58193   __pyx_L5_argtuple_error:;
58194   __Pyx_RaiseArgtupleInvalid("Compare", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58195   __pyx_L3_error:;
58196   __Pyx_AddTraceback("mpi4py.MPI.Comm.Compare", __pyx_clineno, __pyx_lineno, __pyx_filename);
58197   __Pyx_RefNannyFinishContext();
58198   return NULL;
58199   __pyx_L4_argument_unpacking_done:;
58200   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm1), __pyx_ptype_6mpi4py_3MPI_Comm, 0, "comm1", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58201   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm2), __pyx_ptype_6mpi4py_3MPI_Comm, 0, "comm2", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58202 
58203   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":94
58204  *         Compare two communicators
58205  *         """
58206  *         cdef int flag = MPI_UNEQUAL             # <<<<<<<<<<<<<<
58207  *         with nogil: CHKERR( MPI_Comm_compare(comm1.ob_mpi, comm2.ob_mpi, &flag) )
58208  *         return flag
58209  */
58210   __pyx_v_flag = MPI_UNEQUAL;
58211 
58212   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":95
58213  *         """
58214  *         cdef int flag = MPI_UNEQUAL
58215  *         with nogil: CHKERR( MPI_Comm_compare(comm1.ob_mpi, comm2.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
58216  *         return flag
58217  *
58218  */
58219   {
58220       #ifdef WITH_THREAD
58221       PyThreadState *_save = NULL;
58222       #endif
58223       Py_UNBLOCK_THREADS
58224       /*try:*/ {
58225         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_compare(__pyx_v_comm1->ob_mpi, __pyx_v_comm2->ob_mpi, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L7;}
58226       }
58227       /*finally:*/ {
58228         int __pyx_why;
58229         __pyx_why = 0; goto __pyx_L8;
58230         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
58231         __pyx_L8:;
58232         Py_BLOCK_THREADS
58233         switch (__pyx_why) {
58234           case 4: goto __pyx_L1_error;
58235         }
58236       }
58237   }
58238 
58239   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":96
58240  *         cdef int flag = MPI_UNEQUAL
58241  *         with nogil: CHKERR( MPI_Comm_compare(comm1.ob_mpi, comm2.ob_mpi, &flag) )
58242  *         return flag             # <<<<<<<<<<<<<<
58243  *
58244  *     # Communicator Constructors
58245  */
58246   __Pyx_XDECREF(__pyx_r);
58247   __pyx_t_2 = PyInt_FromLong(__pyx_v_flag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58248   __Pyx_GOTREF(__pyx_t_2);
58249   __pyx_r = __pyx_t_2;
58250   __pyx_t_2 = 0;
58251   goto __pyx_L0;
58252 
58253   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58254   goto __pyx_L0;
58255   __pyx_L1_error:;
58256   __Pyx_XDECREF(__pyx_t_2);
58257   __Pyx_AddTraceback("mpi4py.MPI.Comm.Compare", __pyx_clineno, __pyx_lineno, __pyx_filename);
58258   __pyx_r = NULL;
58259   __pyx_L0:;
58260   __Pyx_XGIVEREF(__pyx_r);
58261   __Pyx_RefNannyFinishContext();
58262   return __pyx_r;
58263 }
58264 
58265 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":101
58266  *     # -------------------------
58267  *
58268  *     def Clone(self):             # <<<<<<<<<<<<<<
58269  *         """
58270  *         Clone an existing communicator
58271  */
58272 
58273 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8Clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58274 static char __pyx_doc_6mpi4py_3MPI_4Comm_8Clone[] = "Comm.Clone(self)\n\n        Clone an existing communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_8Clone(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58275 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8Clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58276   struct PyMPICommObject *__pyx_v_comm = 0;
58277   PyObject *__pyx_r = NULL;
58278   __Pyx_RefNannyDeclarations
58279   PyObject *__pyx_t_1 = NULL;
58280   int __pyx_t_2;
58281   int __pyx_lineno = 0;
58282   const char *__pyx_filename = NULL;
58283   int __pyx_clineno = 0;
58284   __Pyx_RefNannySetupContext("Clone");
58285   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
58286     __Pyx_RaiseArgtupleInvalid("Clone", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
58287   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Clone", 0))) return NULL;
58288 
58289   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":105
58290  *         Clone an existing communicator
58291  *         """
58292  *         cdef Comm comm = <Comm>type(self)()             # <<<<<<<<<<<<<<
58293  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
58294  *         return comm
58295  */
58296   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58297   __Pyx_GOTREF(__pyx_t_1);
58298   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_t_1)));
58299   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_t_1);
58300   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58301 
58302   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":106
58303  *         """
58304  *         cdef Comm comm = <Comm>type(self)()
58305  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
58306  *         return comm
58307  *
58308  */
58309   {
58310       #ifdef WITH_THREAD
58311       PyThreadState *_save = NULL;
58312       #endif
58313       Py_UNBLOCK_THREADS
58314       /*try:*/ {
58315         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_comm->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L6;}
58316       }
58317       /*finally:*/ {
58318         int __pyx_why;
58319         __pyx_why = 0; goto __pyx_L7;
58320         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
58321         __pyx_L7:;
58322         Py_BLOCK_THREADS
58323         switch (__pyx_why) {
58324           case 4: goto __pyx_L1_error;
58325         }
58326       }
58327   }
58328 
58329   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":107
58330  *         cdef Comm comm = <Comm>type(self)()
58331  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
58332  *         return comm             # <<<<<<<<<<<<<<
58333  *
58334  *     # Communicator Destructor
58335  */
58336   __Pyx_XDECREF(__pyx_r);
58337   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
58338   __pyx_r = ((PyObject *)__pyx_v_comm);
58339   goto __pyx_L0;
58340 
58341   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58342   goto __pyx_L0;
58343   __pyx_L1_error:;
58344   __Pyx_XDECREF(__pyx_t_1);
58345   __Pyx_AddTraceback("mpi4py.MPI.Comm.Clone", __pyx_clineno, __pyx_lineno, __pyx_filename);
58346   __pyx_r = NULL;
58347   __pyx_L0:;
58348   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
58349   __Pyx_XGIVEREF(__pyx_r);
58350   __Pyx_RefNannyFinishContext();
58351   return __pyx_r;
58352 }
58353 
58354 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":112
58355  *     # -----------------------
58356  *
58357  *     def Free(self):             # <<<<<<<<<<<<<<
58358  *         """
58359  *         Free a communicator
58360  */
58361 
58362 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_9Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58363 static char __pyx_doc_6mpi4py_3MPI_4Comm_9Free[] = "Comm.Free(self)\n\n        Free a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_9Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58364 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_9Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58365   PyObject *__pyx_r = NULL;
58366   __Pyx_RefNannyDeclarations
58367   int __pyx_t_1;
58368   int __pyx_lineno = 0;
58369   const char *__pyx_filename = NULL;
58370   int __pyx_clineno = 0;
58371   __Pyx_RefNannySetupContext("Free");
58372   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
58373     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
58374   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
58375 
58376   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":116
58377  *         Free a communicator
58378  *         """
58379  *         with nogil: CHKERR( MPI_Comm_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
58380  *
58381  *     # Point to Point communication
58382  */
58383   {
58384       #ifdef WITH_THREAD
58385       PyThreadState *_save = NULL;
58386       #endif
58387       Py_UNBLOCK_THREADS
58388       /*try:*/ {
58389         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_free((&((struct PyMPICommObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L6;}
58390       }
58391       /*finally:*/ {
58392         int __pyx_why;
58393         __pyx_why = 0; goto __pyx_L7;
58394         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
58395         __pyx_L7:;
58396         Py_BLOCK_THREADS
58397         switch (__pyx_why) {
58398           case 4: goto __pyx_L1_error;
58399         }
58400       }
58401   }
58402 
58403   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58404   goto __pyx_L0;
58405   __pyx_L1_error:;
58406   __Pyx_AddTraceback("mpi4py.MPI.Comm.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
58407   __pyx_r = NULL;
58408   __pyx_L0:;
58409   __Pyx_XGIVEREF(__pyx_r);
58410   __Pyx_RefNannyFinishContext();
58411   return __pyx_r;
58412 }
58413 
58414 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":124
58415  *     # ------------------------------------
58416  *
58417  *     def Send(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
58418  *         """
58419  *         Blocking send
58420  */
58421 
58422 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_10Send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58423 static char __pyx_doc_6mpi4py_3MPI_4Comm_10Send[] = "Comm.Send(self, buf, int dest=0, int tag=0)\n\n        Blocking send\n\n        .. note:: This function may block until the message is\n           received. Whether or not `Send` blocks depends on\n           several factors and is implementation dependent\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_10Send(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58424 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_10Send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58425   PyObject *__pyx_v_buf = 0;
58426   int __pyx_v_dest;
58427   int __pyx_v_tag;
58428   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
58429   PyObject *__pyx_r = NULL;
58430   __Pyx_RefNannyDeclarations
58431   PyObject *__pyx_t_1 = NULL;
58432   int __pyx_t_2;
58433   int __pyx_lineno = 0;
58434   const char *__pyx_filename = NULL;
58435   int __pyx_clineno = 0;
58436   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
58437   __Pyx_RefNannySetupContext("Send");
58438   {
58439     PyObject* values[3] = {0,0,0};
58440     if (unlikely(__pyx_kwds)) {
58441       Py_ssize_t kw_args;
58442       switch (PyTuple_GET_SIZE(__pyx_args)) {
58443         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58444         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58445         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58446         case  0: break;
58447         default: goto __pyx_L5_argtuple_error;
58448       }
58449       kw_args = PyDict_Size(__pyx_kwds);
58450       switch (PyTuple_GET_SIZE(__pyx_args)) {
58451         case  0:
58452         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
58453         if (likely(values[0])) kw_args--;
58454         else goto __pyx_L5_argtuple_error;
58455         case  1:
58456         if (kw_args > 0) {
58457           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
58458           if (value) { values[1] = value; kw_args--; }
58459         }
58460         case  2:
58461         if (kw_args > 0) {
58462           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
58463           if (value) { values[2] = value; kw_args--; }
58464         }
58465       }
58466       if (unlikely(kw_args > 0)) {
58467         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Send") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58468       }
58469     } else {
58470       switch (PyTuple_GET_SIZE(__pyx_args)) {
58471         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58472         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58473         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58474         break;
58475         default: goto __pyx_L5_argtuple_error;
58476       }
58477     }
58478     __pyx_v_buf = values[0];
58479     if (values[1]) {
58480       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58481     } else {
58482       __pyx_v_dest = ((int)0);
58483     }
58484     if (values[2]) {
58485       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58486     } else {
58487       __pyx_v_tag = ((int)0);
58488     }
58489   }
58490   goto __pyx_L4_argument_unpacking_done;
58491   __pyx_L5_argtuple_error:;
58492   __Pyx_RaiseArgtupleInvalid("Send", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58493   __pyx_L3_error:;
58494   __Pyx_AddTraceback("mpi4py.MPI.Comm.Send", __pyx_clineno, __pyx_lineno, __pyx_filename);
58495   __Pyx_RefNannyFinishContext();
58496   return NULL;
58497   __pyx_L4_argument_unpacking_done:;
58498 
58499   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":132
58500  *            several factors and is implementation dependent
58501  *         """
58502  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
58503  *         with nogil: CHKERR( MPI_Send(
58504  *             smsg.buf, smsg.count, smsg.dtype,
58505  */
58506   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58507   __Pyx_GOTREF(__pyx_t_1);
58508   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
58509   __pyx_t_1 = 0;
58510 
58511   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":133
58512  *         """
58513  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
58514  *         with nogil: CHKERR( MPI_Send(             # <<<<<<<<<<<<<<
58515  *             smsg.buf, smsg.count, smsg.dtype,
58516  *             dest, tag, self.ob_mpi) )
58517  */
58518   {
58519       #ifdef WITH_THREAD
58520       PyThreadState *_save = NULL;
58521       #endif
58522       Py_UNBLOCK_THREADS
58523       /*try:*/ {
58524 
58525         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":135
58526  *         with nogil: CHKERR( MPI_Send(
58527  *             smsg.buf, smsg.count, smsg.dtype,
58528  *             dest, tag, self.ob_mpi) )             # <<<<<<<<<<<<<<
58529  *
58530  *     def Recv(self, buf, int source=0, int tag=0, Status status=None):
58531  */
58532         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Send(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L7;}
58533       }
58534 
58535       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":133
58536  *         """
58537  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
58538  *         with nogil: CHKERR( MPI_Send(             # <<<<<<<<<<<<<<
58539  *             smsg.buf, smsg.count, smsg.dtype,
58540  *             dest, tag, self.ob_mpi) )
58541  */
58542       /*finally:*/ {
58543         int __pyx_why;
58544         __pyx_why = 0; goto __pyx_L8;
58545         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
58546         __pyx_L8:;
58547         Py_BLOCK_THREADS
58548         switch (__pyx_why) {
58549           case 4: goto __pyx_L1_error;
58550         }
58551       }
58552   }
58553 
58554   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58555   goto __pyx_L0;
58556   __pyx_L1_error:;
58557   __Pyx_XDECREF(__pyx_t_1);
58558   __Pyx_AddTraceback("mpi4py.MPI.Comm.Send", __pyx_clineno, __pyx_lineno, __pyx_filename);
58559   __pyx_r = NULL;
58560   __pyx_L0:;
58561   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
58562   __Pyx_XGIVEREF(__pyx_r);
58563   __Pyx_RefNannyFinishContext();
58564   return __pyx_r;
58565 }
58566 
58567 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":137
58568  *             dest, tag, self.ob_mpi) )
58569  *
58570  *     def Recv(self, buf, int source=0, int tag=0, Status status=None):             # <<<<<<<<<<<<<<
58571  *         """
58572  *         Blocking receive
58573  */
58574 
58575 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_11Recv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58576 static char __pyx_doc_6mpi4py_3MPI_4Comm_11Recv[] = "Comm.Recv(self, buf, int source=0, int tag=0, Status status=None)\n\n        Blocking receive\n\n        .. note:: This function blocks until the message is received\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_11Recv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58577 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_11Recv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58578   PyObject *__pyx_v_buf = 0;
58579   int __pyx_v_source;
58580   int __pyx_v_tag;
58581   struct PyMPIStatusObject *__pyx_v_status = 0;
58582   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_rmsg = 0;
58583   MPI_Status *__pyx_v_statusp;
58584   PyObject *__pyx_r = NULL;
58585   __Pyx_RefNannyDeclarations
58586   PyObject *__pyx_t_1 = NULL;
58587   int __pyx_t_2;
58588   int __pyx_lineno = 0;
58589   const char *__pyx_filename = NULL;
58590   int __pyx_clineno = 0;
58591   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__source,&__pyx_n_s__tag,&__pyx_n_s__status,0};
58592   __Pyx_RefNannySetupContext("Recv");
58593   {
58594     PyObject* values[4] = {0,0,0,0};
58595     values[3] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
58596     if (unlikely(__pyx_kwds)) {
58597       Py_ssize_t kw_args;
58598       switch (PyTuple_GET_SIZE(__pyx_args)) {
58599         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
58600         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58601         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58602         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58603         case  0: break;
58604         default: goto __pyx_L5_argtuple_error;
58605       }
58606       kw_args = PyDict_Size(__pyx_kwds);
58607       switch (PyTuple_GET_SIZE(__pyx_args)) {
58608         case  0:
58609         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
58610         if (likely(values[0])) kw_args--;
58611         else goto __pyx_L5_argtuple_error;
58612         case  1:
58613         if (kw_args > 0) {
58614           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
58615           if (value) { values[1] = value; kw_args--; }
58616         }
58617         case  2:
58618         if (kw_args > 0) {
58619           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
58620           if (value) { values[2] = value; kw_args--; }
58621         }
58622         case  3:
58623         if (kw_args > 0) {
58624           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
58625           if (value) { values[3] = value; kw_args--; }
58626         }
58627       }
58628       if (unlikely(kw_args > 0)) {
58629         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Recv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58630       }
58631     } else {
58632       switch (PyTuple_GET_SIZE(__pyx_args)) {
58633         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
58634         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58635         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58636         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58637         break;
58638         default: goto __pyx_L5_argtuple_error;
58639       }
58640     }
58641     __pyx_v_buf = values[0];
58642     if (values[1]) {
58643       __pyx_v_source = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58644     } else {
58645       __pyx_v_source = ((int)0);
58646     }
58647     if (values[2]) {
58648       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58649     } else {
58650       __pyx_v_tag = ((int)0);
58651     }
58652     __pyx_v_status = ((struct PyMPIStatusObject *)values[3]);
58653   }
58654   goto __pyx_L4_argument_unpacking_done;
58655   __pyx_L5_argtuple_error:;
58656   __Pyx_RaiseArgtupleInvalid("Recv", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58657   __pyx_L3_error:;
58658   __Pyx_AddTraceback("mpi4py.MPI.Comm.Recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
58659   __Pyx_RefNannyFinishContext();
58660   return NULL;
58661   __pyx_L4_argument_unpacking_done:;
58662   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58663 
58664   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":143
58665  *         .. note:: This function blocks until the message is received
58666  *         """
58667  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)             # <<<<<<<<<<<<<<
58668  *         cdef MPI_Status *statusp = arg_Status(status)
58669  *         with nogil: CHKERR( MPI_Recv(
58670  */
58671   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_recv(__pyx_v_buf, __pyx_v_source)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58672   __Pyx_GOTREF(__pyx_t_1);
58673   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
58674   __pyx_t_1 = 0;
58675 
58676   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":144
58677  *         """
58678  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
58679  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
58680  *         with nogil: CHKERR( MPI_Recv(
58681  *             rmsg.buf, rmsg.count, rmsg.dtype,
58682  */
58683   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
58684 
58685   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":145
58686  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
58687  *         cdef MPI_Status *statusp = arg_Status(status)
58688  *         with nogil: CHKERR( MPI_Recv(             # <<<<<<<<<<<<<<
58689  *             rmsg.buf, rmsg.count, rmsg.dtype,
58690  *             source, tag, self.ob_mpi, statusp) )
58691  */
58692   {
58693       #ifdef WITH_THREAD
58694       PyThreadState *_save = NULL;
58695       #endif
58696       Py_UNBLOCK_THREADS
58697       /*try:*/ {
58698 
58699         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":147
58700  *         with nogil: CHKERR( MPI_Recv(
58701  *             rmsg.buf, rmsg.count, rmsg.dtype,
58702  *             source, tag, self.ob_mpi, statusp) )             # <<<<<<<<<<<<<<
58703  *
58704  *     # Send-Receive
58705  */
58706         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Recv(__pyx_v_rmsg->buf, __pyx_v_rmsg->count, __pyx_v_rmsg->dtype, __pyx_v_source, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L7;}
58707       }
58708 
58709       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":145
58710  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
58711  *         cdef MPI_Status *statusp = arg_Status(status)
58712  *         with nogil: CHKERR( MPI_Recv(             # <<<<<<<<<<<<<<
58713  *             rmsg.buf, rmsg.count, rmsg.dtype,
58714  *             source, tag, self.ob_mpi, statusp) )
58715  */
58716       /*finally:*/ {
58717         int __pyx_why;
58718         __pyx_why = 0; goto __pyx_L8;
58719         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
58720         __pyx_L8:;
58721         Py_BLOCK_THREADS
58722         switch (__pyx_why) {
58723           case 4: goto __pyx_L1_error;
58724         }
58725       }
58726   }
58727 
58728   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58729   goto __pyx_L0;
58730   __pyx_L1_error:;
58731   __Pyx_XDECREF(__pyx_t_1);
58732   __Pyx_AddTraceback("mpi4py.MPI.Comm.Recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
58733   __pyx_r = NULL;
58734   __pyx_L0:;
58735   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
58736   __Pyx_XGIVEREF(__pyx_r);
58737   __Pyx_RefNannyFinishContext();
58738   return __pyx_r;
58739 }
58740 
58741 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":152
58742  *     # ------------
58743  *
58744  *     def Sendrecv(self, sendbuf, int dest=0, int sendtag=0,             # <<<<<<<<<<<<<<
58745  *                  recvbuf=None, int source=0, int recvtag=0,
58746  *                  Status status=None):
58747  */
58748 
58749 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_12Sendrecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58750 static char __pyx_doc_6mpi4py_3MPI_4Comm_12Sendrecv[] = "Comm.Sendrecv(self, sendbuf, int dest=0, int sendtag=0, recvbuf=None, int source=0, int recvtag=0, Status status=None)\n\n        Send and receive a message\n\n        .. note:: This function is guaranteed not to deadlock in\n           situations where pairs of blocking sends and receives may\n           deadlock.\n\n        .. caution:: A common mistake when using this function is to\n           mismatch the tags with the source and destination ranks,\n           which can result in deadlock.\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_12Sendrecv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58751 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_12Sendrecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58752   PyObject *__pyx_v_sendbuf = 0;
58753   int __pyx_v_dest;
58754   int __pyx_v_sendtag;
58755   PyObject *__pyx_v_recvbuf = 0;
58756   int __pyx_v_source;
58757   int __pyx_v_recvtag;
58758   struct PyMPIStatusObject *__pyx_v_status = 0;
58759   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
58760   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_rmsg = 0;
58761   MPI_Status *__pyx_v_statusp;
58762   PyObject *__pyx_r = NULL;
58763   __Pyx_RefNannyDeclarations
58764   PyObject *__pyx_t_1 = NULL;
58765   int __pyx_t_2;
58766   int __pyx_lineno = 0;
58767   const char *__pyx_filename = NULL;
58768   int __pyx_clineno = 0;
58769   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__dest,&__pyx_n_s__sendtag,&__pyx_n_s__recvbuf,&__pyx_n_s__source,&__pyx_n_s__recvtag,&__pyx_n_s__status,0};
58770   __Pyx_RefNannySetupContext("Sendrecv");
58771   {
58772     PyObject* values[7] = {0,0,0,0,0,0,0};
58773 
58774     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":153
58775  *
58776  *     def Sendrecv(self, sendbuf, int dest=0, int sendtag=0,
58777  *                  recvbuf=None, int source=0, int recvtag=0,             # <<<<<<<<<<<<<<
58778  *                  Status status=None):
58779  *         """
58780  */
58781     values[3] = ((PyObject *)Py_None);
58782 
58783     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":154
58784  *     def Sendrecv(self, sendbuf, int dest=0, int sendtag=0,
58785  *                  recvbuf=None, int source=0, int recvtag=0,
58786  *                  Status status=None):             # <<<<<<<<<<<<<<
58787  *         """
58788  *         Send and receive a message
58789  */
58790     values[6] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
58791     if (unlikely(__pyx_kwds)) {
58792       Py_ssize_t kw_args;
58793       switch (PyTuple_GET_SIZE(__pyx_args)) {
58794         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
58795         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
58796         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
58797         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
58798         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58799         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58800         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58801         case  0: break;
58802         default: goto __pyx_L5_argtuple_error;
58803       }
58804       kw_args = PyDict_Size(__pyx_kwds);
58805       switch (PyTuple_GET_SIZE(__pyx_args)) {
58806         case  0:
58807         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
58808         if (likely(values[0])) kw_args--;
58809         else goto __pyx_L5_argtuple_error;
58810         case  1:
58811         if (kw_args > 0) {
58812           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
58813           if (value) { values[1] = value; kw_args--; }
58814         }
58815         case  2:
58816         if (kw_args > 0) {
58817           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendtag);
58818           if (value) { values[2] = value; kw_args--; }
58819         }
58820         case  3:
58821         if (kw_args > 0) {
58822           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
58823           if (value) { values[3] = value; kw_args--; }
58824         }
58825         case  4:
58826         if (kw_args > 0) {
58827           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
58828           if (value) { values[4] = value; kw_args--; }
58829         }
58830         case  5:
58831         if (kw_args > 0) {
58832           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvtag);
58833           if (value) { values[5] = value; kw_args--; }
58834         }
58835         case  6:
58836         if (kw_args > 0) {
58837           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
58838           if (value) { values[6] = value; kw_args--; }
58839         }
58840       }
58841       if (unlikely(kw_args > 0)) {
58842         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Sendrecv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58843       }
58844     } else {
58845       switch (PyTuple_GET_SIZE(__pyx_args)) {
58846         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
58847         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
58848         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
58849         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
58850         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
58851         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
58852         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
58853         break;
58854         default: goto __pyx_L5_argtuple_error;
58855       }
58856     }
58857     __pyx_v_sendbuf = values[0];
58858     if (values[1]) {
58859       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58860     } else {
58861       __pyx_v_dest = ((int)0);
58862     }
58863     if (values[2]) {
58864       __pyx_v_sendtag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_sendtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58865     } else {
58866       __pyx_v_sendtag = ((int)0);
58867     }
58868     __pyx_v_recvbuf = values[3];
58869     if (values[4]) {
58870       __pyx_v_source = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58871     } else {
58872       __pyx_v_source = ((int)0);
58873     }
58874     if (values[5]) {
58875       __pyx_v_recvtag = __Pyx_PyInt_AsInt(values[5]); if (unlikely((__pyx_v_recvtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58876     } else {
58877       __pyx_v_recvtag = ((int)0);
58878     }
58879     __pyx_v_status = ((struct PyMPIStatusObject *)values[6]);
58880   }
58881   goto __pyx_L4_argument_unpacking_done;
58882   __pyx_L5_argtuple_error:;
58883   __Pyx_RaiseArgtupleInvalid("Sendrecv", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
58884   __pyx_L3_error:;
58885   __Pyx_AddTraceback("mpi4py.MPI.Comm.Sendrecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
58886   __Pyx_RefNannyFinishContext();
58887   return NULL;
58888   __pyx_L4_argument_unpacking_done:;
58889   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58890 
58891   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":166
58892  *            which can result in deadlock.
58893  *         """
58894  *         cdef _p_msg_p2p smsg = message_p2p_send(sendbuf, dest)             # <<<<<<<<<<<<<<
58895  *         cdef _p_msg_p2p rmsg = message_p2p_recv(recvbuf, source)
58896  *         cdef MPI_Status *statusp = arg_Status(status)
58897  */
58898   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_sendbuf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58899   __Pyx_GOTREF(__pyx_t_1);
58900   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
58901   __pyx_t_1 = 0;
58902 
58903   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":167
58904  *         """
58905  *         cdef _p_msg_p2p smsg = message_p2p_send(sendbuf, dest)
58906  *         cdef _p_msg_p2p rmsg = message_p2p_recv(recvbuf, source)             # <<<<<<<<<<<<<<
58907  *         cdef MPI_Status *statusp = arg_Status(status)
58908  *         with nogil: CHKERR( MPI_Sendrecv(
58909  */
58910   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_recv(__pyx_v_recvbuf, __pyx_v_source)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
58911   __Pyx_GOTREF(__pyx_t_1);
58912   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
58913   __pyx_t_1 = 0;
58914 
58915   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":168
58916  *         cdef _p_msg_p2p smsg = message_p2p_send(sendbuf, dest)
58917  *         cdef _p_msg_p2p rmsg = message_p2p_recv(recvbuf, source)
58918  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
58919  *         with nogil: CHKERR( MPI_Sendrecv(
58920  *             smsg.buf, smsg.count, smsg.dtype, dest,   sendtag,
58921  */
58922   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
58923 
58924   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":169
58925  *         cdef _p_msg_p2p rmsg = message_p2p_recv(recvbuf, source)
58926  *         cdef MPI_Status *statusp = arg_Status(status)
58927  *         with nogil: CHKERR( MPI_Sendrecv(             # <<<<<<<<<<<<<<
58928  *             smsg.buf, smsg.count, smsg.dtype, dest,   sendtag,
58929  *             rmsg.buf, rmsg.count, rmsg.dtype, source, recvtag,
58930  */
58931   {
58932       #ifdef WITH_THREAD
58933       PyThreadState *_save = NULL;
58934       #endif
58935       Py_UNBLOCK_THREADS
58936       /*try:*/ {
58937 
58938         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":172
58939  *             smsg.buf, smsg.count, smsg.dtype, dest,   sendtag,
58940  *             rmsg.buf, rmsg.count, rmsg.dtype, source, recvtag,
58941  *             self.ob_mpi, statusp) )             # <<<<<<<<<<<<<<
58942  *
58943  *     def Sendrecv_replace(self, buf,
58944  */
58945         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Sendrecv(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_sendtag, __pyx_v_rmsg->buf, __pyx_v_rmsg->count, __pyx_v_rmsg->dtype, __pyx_v_source, __pyx_v_recvtag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L7;}
58946       }
58947 
58948       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":169
58949  *         cdef _p_msg_p2p rmsg = message_p2p_recv(recvbuf, source)
58950  *         cdef MPI_Status *statusp = arg_Status(status)
58951  *         with nogil: CHKERR( MPI_Sendrecv(             # <<<<<<<<<<<<<<
58952  *             smsg.buf, smsg.count, smsg.dtype, dest,   sendtag,
58953  *             rmsg.buf, rmsg.count, rmsg.dtype, source, recvtag,
58954  */
58955       /*finally:*/ {
58956         int __pyx_why;
58957         __pyx_why = 0; goto __pyx_L8;
58958         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
58959         __pyx_L8:;
58960         Py_BLOCK_THREADS
58961         switch (__pyx_why) {
58962           case 4: goto __pyx_L1_error;
58963         }
58964       }
58965   }
58966 
58967   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
58968   goto __pyx_L0;
58969   __pyx_L1_error:;
58970   __Pyx_XDECREF(__pyx_t_1);
58971   __Pyx_AddTraceback("mpi4py.MPI.Comm.Sendrecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
58972   __pyx_r = NULL;
58973   __pyx_L0:;
58974   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
58975   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
58976   __Pyx_XGIVEREF(__pyx_r);
58977   __Pyx_RefNannyFinishContext();
58978   return __pyx_r;
58979 }
58980 
58981 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":174
58982  *             self.ob_mpi, statusp) )
58983  *
58984  *     def Sendrecv_replace(self, buf,             # <<<<<<<<<<<<<<
58985  *                          int dest=0,  int sendtag=0,
58986  *                          int source=0, int recvtag=0,
58987  */
58988 
58989 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_13Sendrecv_replace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
58990 static char __pyx_doc_6mpi4py_3MPI_4Comm_13Sendrecv_replace[] = "Comm.Sendrecv_replace(self, buf, int dest=0, int sendtag=0, int source=0, int recvtag=0, Status status=None)\n\n        Send and receive a message\n\n        .. note:: This function is guaranteed not to deadlock in\n           situations where pairs of blocking sends and receives may\n           deadlock.\n\n        .. caution:: A common mistake when using this function is to\n           mismatch the tags with the source and destination ranks,\n           which can result in deadlock.\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_13Sendrecv_replace(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)58991 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_13Sendrecv_replace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
58992   PyObject *__pyx_v_buf = 0;
58993   int __pyx_v_dest;
58994   int __pyx_v_sendtag;
58995   int __pyx_v_source;
58996   int __pyx_v_recvtag;
58997   struct PyMPIStatusObject *__pyx_v_status = 0;
58998   int __pyx_v_rank;
58999   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_rmsg = 0;
59000   MPI_Status *__pyx_v_statusp;
59001   PyObject *__pyx_r = NULL;
59002   __Pyx_RefNannyDeclarations
59003   int __pyx_t_1;
59004   PyObject *__pyx_t_2 = NULL;
59005   int __pyx_t_3;
59006   int __pyx_lineno = 0;
59007   const char *__pyx_filename = NULL;
59008   int __pyx_clineno = 0;
59009   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__sendtag,&__pyx_n_s__source,&__pyx_n_s__recvtag,&__pyx_n_s__status,0};
59010   __Pyx_RefNannySetupContext("Sendrecv_replace");
59011   {
59012     PyObject* values[6] = {0,0,0,0,0,0};
59013 
59014     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":177
59015  *                          int dest=0,  int sendtag=0,
59016  *                          int source=0, int recvtag=0,
59017  *                          Status status=None):             # <<<<<<<<<<<<<<
59018  *         """
59019  *         Send and receive a message
59020  */
59021     values[5] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
59022     if (unlikely(__pyx_kwds)) {
59023       Py_ssize_t kw_args;
59024       switch (PyTuple_GET_SIZE(__pyx_args)) {
59025         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
59026         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
59027         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
59028         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59029         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59030         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59031         case  0: break;
59032         default: goto __pyx_L5_argtuple_error;
59033       }
59034       kw_args = PyDict_Size(__pyx_kwds);
59035       switch (PyTuple_GET_SIZE(__pyx_args)) {
59036         case  0:
59037         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
59038         if (likely(values[0])) kw_args--;
59039         else goto __pyx_L5_argtuple_error;
59040         case  1:
59041         if (kw_args > 0) {
59042           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
59043           if (value) { values[1] = value; kw_args--; }
59044         }
59045         case  2:
59046         if (kw_args > 0) {
59047           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendtag);
59048           if (value) { values[2] = value; kw_args--; }
59049         }
59050         case  3:
59051         if (kw_args > 0) {
59052           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
59053           if (value) { values[3] = value; kw_args--; }
59054         }
59055         case  4:
59056         if (kw_args > 0) {
59057           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvtag);
59058           if (value) { values[4] = value; kw_args--; }
59059         }
59060         case  5:
59061         if (kw_args > 0) {
59062           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
59063           if (value) { values[5] = value; kw_args--; }
59064         }
59065       }
59066       if (unlikely(kw_args > 0)) {
59067         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Sendrecv_replace") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59068       }
59069     } else {
59070       switch (PyTuple_GET_SIZE(__pyx_args)) {
59071         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
59072         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
59073         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
59074         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59075         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59076         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59077         break;
59078         default: goto __pyx_L5_argtuple_error;
59079       }
59080     }
59081     __pyx_v_buf = values[0];
59082     if (values[1]) {
59083       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59084     } else {
59085       __pyx_v_dest = ((int)0);
59086     }
59087     if (values[2]) {
59088       __pyx_v_sendtag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_sendtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59089     } else {
59090       __pyx_v_sendtag = ((int)0);
59091     }
59092     if (values[3]) {
59093       __pyx_v_source = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59094     } else {
59095       __pyx_v_source = ((int)0);
59096     }
59097     if (values[4]) {
59098       __pyx_v_recvtag = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_recvtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59099     } else {
59100       __pyx_v_recvtag = ((int)0);
59101     }
59102     __pyx_v_status = ((struct PyMPIStatusObject *)values[5]);
59103   }
59104   goto __pyx_L4_argument_unpacking_done;
59105   __pyx_L5_argtuple_error:;
59106   __Pyx_RaiseArgtupleInvalid("Sendrecv_replace", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59107   __pyx_L3_error:;
59108   __Pyx_AddTraceback("mpi4py.MPI.Comm.Sendrecv_replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
59109   __Pyx_RefNannyFinishContext();
59110   return NULL;
59111   __pyx_L4_argument_unpacking_done:;
59112   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59113 
59114   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":189
59115  *            which can result in deadlock.
59116  *         """
59117  *         cdef int rank = MPI_PROC_NULL             # <<<<<<<<<<<<<<
59118  *         if dest   != MPI_PROC_NULL: rank = dest
59119  *         if source != MPI_PROC_NULL: rank = source
59120  */
59121   __pyx_v_rank = MPI_PROC_NULL;
59122 
59123   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":190
59124  *         """
59125  *         cdef int rank = MPI_PROC_NULL
59126  *         if dest   != MPI_PROC_NULL: rank = dest             # <<<<<<<<<<<<<<
59127  *         if source != MPI_PROC_NULL: rank = source
59128  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)
59129  */
59130   __pyx_t_1 = (__pyx_v_dest != MPI_PROC_NULL);
59131   if (__pyx_t_1) {
59132     __pyx_v_rank = __pyx_v_dest;
59133     goto __pyx_L6;
59134   }
59135   __pyx_L6:;
59136 
59137   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":191
59138  *         cdef int rank = MPI_PROC_NULL
59139  *         if dest   != MPI_PROC_NULL: rank = dest
59140  *         if source != MPI_PROC_NULL: rank = source             # <<<<<<<<<<<<<<
59141  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)
59142  *         cdef MPI_Status *statusp = arg_Status(status)
59143  */
59144   __pyx_t_1 = (__pyx_v_source != MPI_PROC_NULL);
59145   if (__pyx_t_1) {
59146     __pyx_v_rank = __pyx_v_source;
59147     goto __pyx_L7;
59148   }
59149   __pyx_L7:;
59150 
59151   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":192
59152  *         if dest   != MPI_PROC_NULL: rank = dest
59153  *         if source != MPI_PROC_NULL: rank = source
59154  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)             # <<<<<<<<<<<<<<
59155  *         cdef MPI_Status *statusp = arg_Status(status)
59156  *         with nogil: CHKERR( MPI_Sendrecv_replace(
59157  */
59158   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_recv(__pyx_v_buf, __pyx_v_rank)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59159   __Pyx_GOTREF(__pyx_t_2);
59160   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_2);
59161   __pyx_t_2 = 0;
59162 
59163   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":193
59164  *         if source != MPI_PROC_NULL: rank = source
59165  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)
59166  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
59167  *         with nogil: CHKERR( MPI_Sendrecv_replace(
59168  *                 rmsg.buf, rmsg.count, rmsg.dtype,
59169  */
59170   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
59171 
59172   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":194
59173  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)
59174  *         cdef MPI_Status *statusp = arg_Status(status)
59175  *         with nogil: CHKERR( MPI_Sendrecv_replace(             # <<<<<<<<<<<<<<
59176  *                 rmsg.buf, rmsg.count, rmsg.dtype,
59177  *                 dest, sendtag, source, recvtag,
59178  */
59179   {
59180       #ifdef WITH_THREAD
59181       PyThreadState *_save = NULL;
59182       #endif
59183       Py_UNBLOCK_THREADS
59184       /*try:*/ {
59185 
59186         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":197
59187  *                 rmsg.buf, rmsg.count, rmsg.dtype,
59188  *                 dest, sendtag, source, recvtag,
59189  *                 self.ob_mpi, statusp) )             # <<<<<<<<<<<<<<
59190  *
59191  *     # Nonblocking Communications
59192  */
59193         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Sendrecv_replace(__pyx_v_rmsg->buf, __pyx_v_rmsg->count, __pyx_v_rmsg->dtype, __pyx_v_dest, __pyx_v_sendtag, __pyx_v_source, __pyx_v_recvtag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_statusp)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L9;}
59194       }
59195 
59196       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":194
59197  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, rank)
59198  *         cdef MPI_Status *statusp = arg_Status(status)
59199  *         with nogil: CHKERR( MPI_Sendrecv_replace(             # <<<<<<<<<<<<<<
59200  *                 rmsg.buf, rmsg.count, rmsg.dtype,
59201  *                 dest, sendtag, source, recvtag,
59202  */
59203       /*finally:*/ {
59204         int __pyx_why;
59205         __pyx_why = 0; goto __pyx_L10;
59206         __pyx_L9: __pyx_why = 4; goto __pyx_L10;
59207         __pyx_L10:;
59208         Py_BLOCK_THREADS
59209         switch (__pyx_why) {
59210           case 4: goto __pyx_L1_error;
59211         }
59212       }
59213   }
59214 
59215   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
59216   goto __pyx_L0;
59217   __pyx_L1_error:;
59218   __Pyx_XDECREF(__pyx_t_2);
59219   __Pyx_AddTraceback("mpi4py.MPI.Comm.Sendrecv_replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
59220   __pyx_r = NULL;
59221   __pyx_L0:;
59222   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
59223   __Pyx_XGIVEREF(__pyx_r);
59224   __Pyx_RefNannyFinishContext();
59225   return __pyx_r;
59226 }
59227 
59228 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":202
59229  *     # --------------------------
59230  *
59231  *     def Isend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
59232  *         """
59233  *         Nonblocking send
59234  */
59235 
59236 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_14Isend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
59237 static char __pyx_doc_6mpi4py_3MPI_4Comm_14Isend[] = "Comm.Isend(self, buf, int dest=0, int tag=0)\n\n        Nonblocking send\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_14Isend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)59238 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_14Isend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
59239   PyObject *__pyx_v_buf = 0;
59240   int __pyx_v_dest;
59241   int __pyx_v_tag;
59242   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
59243   struct PyMPIRequestObject *__pyx_v_request = 0;
59244   PyObject *__pyx_r = NULL;
59245   __Pyx_RefNannyDeclarations
59246   PyObject *__pyx_t_1 = NULL;
59247   int __pyx_t_2;
59248   int __pyx_lineno = 0;
59249   const char *__pyx_filename = NULL;
59250   int __pyx_clineno = 0;
59251   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
59252   __Pyx_RefNannySetupContext("Isend");
59253   {
59254     PyObject* values[3] = {0,0,0};
59255     if (unlikely(__pyx_kwds)) {
59256       Py_ssize_t kw_args;
59257       switch (PyTuple_GET_SIZE(__pyx_args)) {
59258         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59259         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59260         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59261         case  0: break;
59262         default: goto __pyx_L5_argtuple_error;
59263       }
59264       kw_args = PyDict_Size(__pyx_kwds);
59265       switch (PyTuple_GET_SIZE(__pyx_args)) {
59266         case  0:
59267         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
59268         if (likely(values[0])) kw_args--;
59269         else goto __pyx_L5_argtuple_error;
59270         case  1:
59271         if (kw_args > 0) {
59272           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
59273           if (value) { values[1] = value; kw_args--; }
59274         }
59275         case  2:
59276         if (kw_args > 0) {
59277           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
59278           if (value) { values[2] = value; kw_args--; }
59279         }
59280       }
59281       if (unlikely(kw_args > 0)) {
59282         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Isend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59283       }
59284     } else {
59285       switch (PyTuple_GET_SIZE(__pyx_args)) {
59286         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59287         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59288         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59289         break;
59290         default: goto __pyx_L5_argtuple_error;
59291       }
59292     }
59293     __pyx_v_buf = values[0];
59294     if (values[1]) {
59295       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59296     } else {
59297       __pyx_v_dest = ((int)0);
59298     }
59299     if (values[2]) {
59300       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59301     } else {
59302       __pyx_v_tag = ((int)0);
59303     }
59304   }
59305   goto __pyx_L4_argument_unpacking_done;
59306   __pyx_L5_argtuple_error:;
59307   __Pyx_RaiseArgtupleInvalid("Isend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59308   __pyx_L3_error:;
59309   __Pyx_AddTraceback("mpi4py.MPI.Comm.Isend", __pyx_clineno, __pyx_lineno, __pyx_filename);
59310   __Pyx_RefNannyFinishContext();
59311   return NULL;
59312   __pyx_L4_argument_unpacking_done:;
59313 
59314   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":206
59315  *         Nonblocking send
59316  *         """
59317  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
59318  *         cdef Request request = <Request>Request.__new__(Request)
59319  *         with nogil: CHKERR( MPI_Isend(
59320  */
59321   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59322   __Pyx_GOTREF(__pyx_t_1);
59323   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
59324   __pyx_t_1 = 0;
59325 
59326   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":207
59327  *         """
59328  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
59329  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
59330  *         with nogil: CHKERR( MPI_Isend(
59331  *             smsg.buf, smsg.count, smsg.dtype,
59332  */
59333   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59334   __Pyx_GOTREF(__pyx_t_1);
59335   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
59336   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
59337   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59338 
59339   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":208
59340  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
59341  *         cdef Request request = <Request>Request.__new__(Request)
59342  *         with nogil: CHKERR( MPI_Isend(             # <<<<<<<<<<<<<<
59343  *             smsg.buf, smsg.count, smsg.dtype,
59344  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
59345  */
59346   {
59347       #ifdef WITH_THREAD
59348       PyThreadState *_save = NULL;
59349       #endif
59350       Py_UNBLOCK_THREADS
59351       /*try:*/ {
59352 
59353         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":210
59354  *         with nogil: CHKERR( MPI_Isend(
59355  *             smsg.buf, smsg.count, smsg.dtype,
59356  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
59357  *         request.ob_buf = smsg
59358  *         return request
59359  */
59360         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Isend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L7;}
59361       }
59362 
59363       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":208
59364  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
59365  *         cdef Request request = <Request>Request.__new__(Request)
59366  *         with nogil: CHKERR( MPI_Isend(             # <<<<<<<<<<<<<<
59367  *             smsg.buf, smsg.count, smsg.dtype,
59368  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
59369  */
59370       /*finally:*/ {
59371         int __pyx_why;
59372         __pyx_why = 0; goto __pyx_L8;
59373         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
59374         __pyx_L8:;
59375         Py_BLOCK_THREADS
59376         switch (__pyx_why) {
59377           case 4: goto __pyx_L1_error;
59378         }
59379       }
59380   }
59381 
59382   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":211
59383  *             smsg.buf, smsg.count, smsg.dtype,
59384  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
59385  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
59386  *         return request
59387  *
59388  */
59389   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
59390   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
59391   __Pyx_GOTREF(__pyx_v_request->ob_buf);
59392   __Pyx_DECREF(__pyx_v_request->ob_buf);
59393   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_smsg);
59394 
59395   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":212
59396  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
59397  *         request.ob_buf = smsg
59398  *         return request             # <<<<<<<<<<<<<<
59399  *
59400  *     def Irecv(self, buf, int source=0, int tag=0):
59401  */
59402   __Pyx_XDECREF(__pyx_r);
59403   __Pyx_INCREF(((PyObject *)__pyx_v_request));
59404   __pyx_r = ((PyObject *)__pyx_v_request);
59405   goto __pyx_L0;
59406 
59407   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
59408   goto __pyx_L0;
59409   __pyx_L1_error:;
59410   __Pyx_XDECREF(__pyx_t_1);
59411   __Pyx_AddTraceback("mpi4py.MPI.Comm.Isend", __pyx_clineno, __pyx_lineno, __pyx_filename);
59412   __pyx_r = NULL;
59413   __pyx_L0:;
59414   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
59415   __Pyx_XDECREF((PyObject *)__pyx_v_request);
59416   __Pyx_XGIVEREF(__pyx_r);
59417   __Pyx_RefNannyFinishContext();
59418   return __pyx_r;
59419 }
59420 
59421 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":214
59422  *         return request
59423  *
59424  *     def Irecv(self, buf, int source=0, int tag=0):             # <<<<<<<<<<<<<<
59425  *         """
59426  *         Nonblocking receive
59427  */
59428 
59429 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_15Irecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
59430 static char __pyx_doc_6mpi4py_3MPI_4Comm_15Irecv[] = "Comm.Irecv(self, buf, int source=0, int tag=0)\n\n        Nonblocking receive\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_15Irecv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)59431 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_15Irecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
59432   PyObject *__pyx_v_buf = 0;
59433   int __pyx_v_source;
59434   int __pyx_v_tag;
59435   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_rmsg = 0;
59436   struct PyMPIRequestObject *__pyx_v_request = 0;
59437   PyObject *__pyx_r = NULL;
59438   __Pyx_RefNannyDeclarations
59439   PyObject *__pyx_t_1 = NULL;
59440   int __pyx_t_2;
59441   int __pyx_lineno = 0;
59442   const char *__pyx_filename = NULL;
59443   int __pyx_clineno = 0;
59444   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__source,&__pyx_n_s__tag,0};
59445   __Pyx_RefNannySetupContext("Irecv");
59446   {
59447     PyObject* values[3] = {0,0,0};
59448     if (unlikely(__pyx_kwds)) {
59449       Py_ssize_t kw_args;
59450       switch (PyTuple_GET_SIZE(__pyx_args)) {
59451         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59452         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59453         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59454         case  0: break;
59455         default: goto __pyx_L5_argtuple_error;
59456       }
59457       kw_args = PyDict_Size(__pyx_kwds);
59458       switch (PyTuple_GET_SIZE(__pyx_args)) {
59459         case  0:
59460         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
59461         if (likely(values[0])) kw_args--;
59462         else goto __pyx_L5_argtuple_error;
59463         case  1:
59464         if (kw_args > 0) {
59465           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
59466           if (value) { values[1] = value; kw_args--; }
59467         }
59468         case  2:
59469         if (kw_args > 0) {
59470           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
59471           if (value) { values[2] = value; kw_args--; }
59472         }
59473       }
59474       if (unlikely(kw_args > 0)) {
59475         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Irecv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59476       }
59477     } else {
59478       switch (PyTuple_GET_SIZE(__pyx_args)) {
59479         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59480         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59481         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59482         break;
59483         default: goto __pyx_L5_argtuple_error;
59484       }
59485     }
59486     __pyx_v_buf = values[0];
59487     if (values[1]) {
59488       __pyx_v_source = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59489     } else {
59490       __pyx_v_source = ((int)0);
59491     }
59492     if (values[2]) {
59493       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59494     } else {
59495       __pyx_v_tag = ((int)0);
59496     }
59497   }
59498   goto __pyx_L4_argument_unpacking_done;
59499   __pyx_L5_argtuple_error:;
59500   __Pyx_RaiseArgtupleInvalid("Irecv", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59501   __pyx_L3_error:;
59502   __Pyx_AddTraceback("mpi4py.MPI.Comm.Irecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
59503   __Pyx_RefNannyFinishContext();
59504   return NULL;
59505   __pyx_L4_argument_unpacking_done:;
59506 
59507   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":218
59508  *         Nonblocking receive
59509  *         """
59510  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)             # <<<<<<<<<<<<<<
59511  *         cdef Request request = <Request>Request.__new__(Request)
59512  *         with nogil: CHKERR( MPI_Irecv(
59513  */
59514   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_recv(__pyx_v_buf, __pyx_v_source)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59515   __Pyx_GOTREF(__pyx_t_1);
59516   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
59517   __pyx_t_1 = 0;
59518 
59519   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":219
59520  *         """
59521  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
59522  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
59523  *         with nogil: CHKERR( MPI_Irecv(
59524  *             rmsg.buf, rmsg.count, rmsg.dtype,
59525  */
59526   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59527   __Pyx_GOTREF(__pyx_t_1);
59528   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
59529   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
59530   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
59531 
59532   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":220
59533  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
59534  *         cdef Request request = <Request>Request.__new__(Request)
59535  *         with nogil: CHKERR( MPI_Irecv(             # <<<<<<<<<<<<<<
59536  *             rmsg.buf, rmsg.count, rmsg.dtype,
59537  *             source, tag, self.ob_mpi, &request.ob_mpi) )
59538  */
59539   {
59540       #ifdef WITH_THREAD
59541       PyThreadState *_save = NULL;
59542       #endif
59543       Py_UNBLOCK_THREADS
59544       /*try:*/ {
59545 
59546         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":222
59547  *         with nogil: CHKERR( MPI_Irecv(
59548  *             rmsg.buf, rmsg.count, rmsg.dtype,
59549  *             source, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
59550  *         request.ob_buf = rmsg
59551  *         return request
59552  */
59553         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Irecv(__pyx_v_rmsg->buf, __pyx_v_rmsg->count, __pyx_v_rmsg->dtype, __pyx_v_source, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L7;}
59554       }
59555 
59556       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":220
59557  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
59558  *         cdef Request request = <Request>Request.__new__(Request)
59559  *         with nogil: CHKERR( MPI_Irecv(             # <<<<<<<<<<<<<<
59560  *             rmsg.buf, rmsg.count, rmsg.dtype,
59561  *             source, tag, self.ob_mpi, &request.ob_mpi) )
59562  */
59563       /*finally:*/ {
59564         int __pyx_why;
59565         __pyx_why = 0; goto __pyx_L8;
59566         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
59567         __pyx_L8:;
59568         Py_BLOCK_THREADS
59569         switch (__pyx_why) {
59570           case 4: goto __pyx_L1_error;
59571         }
59572       }
59573   }
59574 
59575   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":223
59576  *             rmsg.buf, rmsg.count, rmsg.dtype,
59577  *             source, tag, self.ob_mpi, &request.ob_mpi) )
59578  *         request.ob_buf = rmsg             # <<<<<<<<<<<<<<
59579  *         return request
59580  *
59581  */
59582   __Pyx_INCREF(((PyObject *)__pyx_v_rmsg));
59583   __Pyx_GIVEREF(((PyObject *)__pyx_v_rmsg));
59584   __Pyx_GOTREF(__pyx_v_request->ob_buf);
59585   __Pyx_DECREF(__pyx_v_request->ob_buf);
59586   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_rmsg);
59587 
59588   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":224
59589  *             source, tag, self.ob_mpi, &request.ob_mpi) )
59590  *         request.ob_buf = rmsg
59591  *         return request             # <<<<<<<<<<<<<<
59592  *
59593  *     # Probe
59594  */
59595   __Pyx_XDECREF(__pyx_r);
59596   __Pyx_INCREF(((PyObject *)__pyx_v_request));
59597   __pyx_r = ((PyObject *)__pyx_v_request);
59598   goto __pyx_L0;
59599 
59600   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
59601   goto __pyx_L0;
59602   __pyx_L1_error:;
59603   __Pyx_XDECREF(__pyx_t_1);
59604   __Pyx_AddTraceback("mpi4py.MPI.Comm.Irecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
59605   __pyx_r = NULL;
59606   __pyx_L0:;
59607   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
59608   __Pyx_XDECREF((PyObject *)__pyx_v_request);
59609   __Pyx_XGIVEREF(__pyx_r);
59610   __Pyx_RefNannyFinishContext();
59611   return __pyx_r;
59612 }
59613 
59614 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":229
59615  *     # -----
59616  *
59617  *     def Probe(self, int source=0, int tag=0, Status status=None):             # <<<<<<<<<<<<<<
59618  *         """
59619  *         Blocking test for a message
59620  */
59621 
59622 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_16Probe(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
59623 static char __pyx_doc_6mpi4py_3MPI_4Comm_16Probe[] = "Comm.Probe(self, int source=0, int tag=0, Status status=None)\n\n        Blocking test for a message\n\n        .. note:: This function blocks until the message arrives.\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_16Probe(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)59624 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_16Probe(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
59625   int __pyx_v_source;
59626   int __pyx_v_tag;
59627   struct PyMPIStatusObject *__pyx_v_status = 0;
59628   MPI_Status *__pyx_v_statusp;
59629   PyObject *__pyx_r = NULL;
59630   __Pyx_RefNannyDeclarations
59631   int __pyx_t_1;
59632   int __pyx_lineno = 0;
59633   const char *__pyx_filename = NULL;
59634   int __pyx_clineno = 0;
59635   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,&__pyx_n_s__tag,&__pyx_n_s__status,0};
59636   __Pyx_RefNannySetupContext("Probe");
59637   {
59638     PyObject* values[3] = {0,0,0};
59639     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
59640     if (unlikely(__pyx_kwds)) {
59641       Py_ssize_t kw_args;
59642       switch (PyTuple_GET_SIZE(__pyx_args)) {
59643         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59644         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59645         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59646         case  0: break;
59647         default: goto __pyx_L5_argtuple_error;
59648       }
59649       kw_args = PyDict_Size(__pyx_kwds);
59650       switch (PyTuple_GET_SIZE(__pyx_args)) {
59651         case  0:
59652         if (kw_args > 0) {
59653           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
59654           if (value) { values[0] = value; kw_args--; }
59655         }
59656         case  1:
59657         if (kw_args > 0) {
59658           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
59659           if (value) { values[1] = value; kw_args--; }
59660         }
59661         case  2:
59662         if (kw_args > 0) {
59663           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
59664           if (value) { values[2] = value; kw_args--; }
59665         }
59666       }
59667       if (unlikely(kw_args > 0)) {
59668         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Probe") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59669       }
59670     } else {
59671       switch (PyTuple_GET_SIZE(__pyx_args)) {
59672         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59673         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59674         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59675         case  0: break;
59676         default: goto __pyx_L5_argtuple_error;
59677       }
59678     }
59679     if (values[0]) {
59680       __pyx_v_source = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59681     } else {
59682       __pyx_v_source = ((int)0);
59683     }
59684     if (values[1]) {
59685       __pyx_v_tag = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59686     } else {
59687       __pyx_v_tag = ((int)0);
59688     }
59689     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
59690   }
59691   goto __pyx_L4_argument_unpacking_done;
59692   __pyx_L5_argtuple_error:;
59693   __Pyx_RaiseArgtupleInvalid("Probe", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59694   __pyx_L3_error:;
59695   __Pyx_AddTraceback("mpi4py.MPI.Comm.Probe", __pyx_clineno, __pyx_lineno, __pyx_filename);
59696   __Pyx_RefNannyFinishContext();
59697   return NULL;
59698   __pyx_L4_argument_unpacking_done:;
59699   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59700 
59701   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":235
59702  *         .. note:: This function blocks until the message arrives.
59703  *         """
59704  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
59705  *         with nogil: CHKERR( MPI_Probe(
59706  *             source, tag, self.ob_mpi, statusp) )
59707  */
59708   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
59709 
59710   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":236
59711  *         """
59712  *         cdef MPI_Status *statusp = arg_Status(status)
59713  *         with nogil: CHKERR( MPI_Probe(             # <<<<<<<<<<<<<<
59714  *             source, tag, self.ob_mpi, statusp) )
59715  *
59716  */
59717   {
59718       #ifdef WITH_THREAD
59719       PyThreadState *_save = NULL;
59720       #endif
59721       Py_UNBLOCK_THREADS
59722       /*try:*/ {
59723 
59724         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":237
59725  *         cdef MPI_Status *statusp = arg_Status(status)
59726  *         with nogil: CHKERR( MPI_Probe(
59727  *             source, tag, self.ob_mpi, statusp) )             # <<<<<<<<<<<<<<
59728  *
59729  *     def Iprobe(self, int source=0, int tag=0, Status status=None):
59730  */
59731         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Probe(__pyx_v_source, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_statusp)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L7;}
59732       }
59733 
59734       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":236
59735  *         """
59736  *         cdef MPI_Status *statusp = arg_Status(status)
59737  *         with nogil: CHKERR( MPI_Probe(             # <<<<<<<<<<<<<<
59738  *             source, tag, self.ob_mpi, statusp) )
59739  *
59740  */
59741       /*finally:*/ {
59742         int __pyx_why;
59743         __pyx_why = 0; goto __pyx_L8;
59744         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
59745         __pyx_L8:;
59746         Py_BLOCK_THREADS
59747         switch (__pyx_why) {
59748           case 4: goto __pyx_L1_error;
59749         }
59750       }
59751   }
59752 
59753   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
59754   goto __pyx_L0;
59755   __pyx_L1_error:;
59756   __Pyx_AddTraceback("mpi4py.MPI.Comm.Probe", __pyx_clineno, __pyx_lineno, __pyx_filename);
59757   __pyx_r = NULL;
59758   __pyx_L0:;
59759   __Pyx_XGIVEREF(__pyx_r);
59760   __Pyx_RefNannyFinishContext();
59761   return __pyx_r;
59762 }
59763 
59764 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":239
59765  *             source, tag, self.ob_mpi, statusp) )
59766  *
59767  *     def Iprobe(self, int source=0, int tag=0, Status status=None):             # <<<<<<<<<<<<<<
59768  *         """
59769  *         Nonblocking test for a message
59770  */
59771 
59772 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_17Iprobe(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
59773 static char __pyx_doc_6mpi4py_3MPI_4Comm_17Iprobe[] = "Comm.Iprobe(self, int source=0, int tag=0, Status status=None)\n\n        Nonblocking test for a message\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_17Iprobe(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)59774 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_17Iprobe(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
59775   int __pyx_v_source;
59776   int __pyx_v_tag;
59777   struct PyMPIStatusObject *__pyx_v_status = 0;
59778   int __pyx_v_flag;
59779   MPI_Status *__pyx_v_statusp;
59780   PyObject *__pyx_r = NULL;
59781   __Pyx_RefNannyDeclarations
59782   int __pyx_t_1;
59783   PyObject *__pyx_t_2 = NULL;
59784   int __pyx_lineno = 0;
59785   const char *__pyx_filename = NULL;
59786   int __pyx_clineno = 0;
59787   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,&__pyx_n_s__tag,&__pyx_n_s__status,0};
59788   __Pyx_RefNannySetupContext("Iprobe");
59789   {
59790     PyObject* values[3] = {0,0,0};
59791     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
59792     if (unlikely(__pyx_kwds)) {
59793       Py_ssize_t kw_args;
59794       switch (PyTuple_GET_SIZE(__pyx_args)) {
59795         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59796         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59797         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59798         case  0: break;
59799         default: goto __pyx_L5_argtuple_error;
59800       }
59801       kw_args = PyDict_Size(__pyx_kwds);
59802       switch (PyTuple_GET_SIZE(__pyx_args)) {
59803         case  0:
59804         if (kw_args > 0) {
59805           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
59806           if (value) { values[0] = value; kw_args--; }
59807         }
59808         case  1:
59809         if (kw_args > 0) {
59810           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
59811           if (value) { values[1] = value; kw_args--; }
59812         }
59813         case  2:
59814         if (kw_args > 0) {
59815           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
59816           if (value) { values[2] = value; kw_args--; }
59817         }
59818       }
59819       if (unlikely(kw_args > 0)) {
59820         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iprobe") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59821       }
59822     } else {
59823       switch (PyTuple_GET_SIZE(__pyx_args)) {
59824         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59825         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59826         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59827         case  0: break;
59828         default: goto __pyx_L5_argtuple_error;
59829       }
59830     }
59831     if (values[0]) {
59832       __pyx_v_source = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59833     } else {
59834       __pyx_v_source = ((int)0);
59835     }
59836     if (values[1]) {
59837       __pyx_v_tag = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59838     } else {
59839       __pyx_v_tag = ((int)0);
59840     }
59841     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
59842   }
59843   goto __pyx_L4_argument_unpacking_done;
59844   __pyx_L5_argtuple_error:;
59845   __Pyx_RaiseArgtupleInvalid("Iprobe", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59846   __pyx_L3_error:;
59847   __Pyx_AddTraceback("mpi4py.MPI.Comm.Iprobe", __pyx_clineno, __pyx_lineno, __pyx_filename);
59848   __Pyx_RefNannyFinishContext();
59849   return NULL;
59850   __pyx_L4_argument_unpacking_done:;
59851   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59852 
59853   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":243
59854  *         Nonblocking test for a message
59855  *         """
59856  *         cdef int flag = 0             # <<<<<<<<<<<<<<
59857  *         cdef MPI_Status *statusp = arg_Status(status)
59858  *         with nogil: CHKERR( MPI_Iprobe(
59859  */
59860   __pyx_v_flag = 0;
59861 
59862   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":244
59863  *         """
59864  *         cdef int flag = 0
59865  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
59866  *         with nogil: CHKERR( MPI_Iprobe(
59867  *             source, tag, self.ob_mpi, &flag, statusp) )
59868  */
59869   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
59870 
59871   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":245
59872  *         cdef int flag = 0
59873  *         cdef MPI_Status *statusp = arg_Status(status)
59874  *         with nogil: CHKERR( MPI_Iprobe(             # <<<<<<<<<<<<<<
59875  *             source, tag, self.ob_mpi, &flag, statusp) )
59876  *         return <bint>flag
59877  */
59878   {
59879       #ifdef WITH_THREAD
59880       PyThreadState *_save = NULL;
59881       #endif
59882       Py_UNBLOCK_THREADS
59883       /*try:*/ {
59884 
59885         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":246
59886  *         cdef MPI_Status *statusp = arg_Status(status)
59887  *         with nogil: CHKERR( MPI_Iprobe(
59888  *             source, tag, self.ob_mpi, &flag, statusp) )             # <<<<<<<<<<<<<<
59889  *         return <bint>flag
59890  *
59891  */
59892         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Iprobe(__pyx_v_source, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_flag), __pyx_v_statusp)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L7;}
59893       }
59894 
59895       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":245
59896  *         cdef int flag = 0
59897  *         cdef MPI_Status *statusp = arg_Status(status)
59898  *         with nogil: CHKERR( MPI_Iprobe(             # <<<<<<<<<<<<<<
59899  *             source, tag, self.ob_mpi, &flag, statusp) )
59900  *         return <bint>flag
59901  */
59902       /*finally:*/ {
59903         int __pyx_why;
59904         __pyx_why = 0; goto __pyx_L8;
59905         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
59906         __pyx_L8:;
59907         Py_BLOCK_THREADS
59908         switch (__pyx_why) {
59909           case 4: goto __pyx_L1_error;
59910         }
59911       }
59912   }
59913 
59914   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":247
59915  *         with nogil: CHKERR( MPI_Iprobe(
59916  *             source, tag, self.ob_mpi, &flag, statusp) )
59917  *         return <bint>flag             # <<<<<<<<<<<<<<
59918  *
59919  *     # Persistent Communication
59920  */
59921   __Pyx_XDECREF(__pyx_r);
59922   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
59923   __Pyx_GOTREF(__pyx_t_2);
59924   __pyx_r = __pyx_t_2;
59925   __pyx_t_2 = 0;
59926   goto __pyx_L0;
59927 
59928   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
59929   goto __pyx_L0;
59930   __pyx_L1_error:;
59931   __Pyx_XDECREF(__pyx_t_2);
59932   __Pyx_AddTraceback("mpi4py.MPI.Comm.Iprobe", __pyx_clineno, __pyx_lineno, __pyx_filename);
59933   __pyx_r = NULL;
59934   __pyx_L0:;
59935   __Pyx_XGIVEREF(__pyx_r);
59936   __Pyx_RefNannyFinishContext();
59937   return __pyx_r;
59938 }
59939 
59940 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":252
59941  *     # ------------------------
59942  *
59943  *     def Send_init(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
59944  *         """
59945  *         Create a persistent request for a standard send
59946  */
59947 
59948 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_18Send_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
59949 static char __pyx_doc_6mpi4py_3MPI_4Comm_18Send_init[] = "Comm.Send_init(self, buf, int dest=0, int tag=0)\n\n        Create a persistent request for a standard send\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_18Send_init(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)59950 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_18Send_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
59951   PyObject *__pyx_v_buf = 0;
59952   int __pyx_v_dest;
59953   int __pyx_v_tag;
59954   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
59955   struct PyMPIPrequestObject *__pyx_v_request = 0;
59956   PyObject *__pyx_r = NULL;
59957   __Pyx_RefNannyDeclarations
59958   PyObject *__pyx_t_1 = NULL;
59959   int __pyx_t_2;
59960   int __pyx_lineno = 0;
59961   const char *__pyx_filename = NULL;
59962   int __pyx_clineno = 0;
59963   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
59964   __Pyx_RefNannySetupContext("Send_init");
59965   {
59966     PyObject* values[3] = {0,0,0};
59967     if (unlikely(__pyx_kwds)) {
59968       Py_ssize_t kw_args;
59969       switch (PyTuple_GET_SIZE(__pyx_args)) {
59970         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59971         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
59972         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
59973         case  0: break;
59974         default: goto __pyx_L5_argtuple_error;
59975       }
59976       kw_args = PyDict_Size(__pyx_kwds);
59977       switch (PyTuple_GET_SIZE(__pyx_args)) {
59978         case  0:
59979         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
59980         if (likely(values[0])) kw_args--;
59981         else goto __pyx_L5_argtuple_error;
59982         case  1:
59983         if (kw_args > 0) {
59984           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
59985           if (value) { values[1] = value; kw_args--; }
59986         }
59987         case  2:
59988         if (kw_args > 0) {
59989           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
59990           if (value) { values[2] = value; kw_args--; }
59991         }
59992       }
59993       if (unlikely(kw_args > 0)) {
59994         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Send_init") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
59995       }
59996     } else {
59997       switch (PyTuple_GET_SIZE(__pyx_args)) {
59998         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
59999         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60000         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60001         break;
60002         default: goto __pyx_L5_argtuple_error;
60003       }
60004     }
60005     __pyx_v_buf = values[0];
60006     if (values[1]) {
60007       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60008     } else {
60009       __pyx_v_dest = ((int)0);
60010     }
60011     if (values[2]) {
60012       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60013     } else {
60014       __pyx_v_tag = ((int)0);
60015     }
60016   }
60017   goto __pyx_L4_argument_unpacking_done;
60018   __pyx_L5_argtuple_error:;
60019   __Pyx_RaiseArgtupleInvalid("Send_init", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60020   __pyx_L3_error:;
60021   __Pyx_AddTraceback("mpi4py.MPI.Comm.Send_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
60022   __Pyx_RefNannyFinishContext();
60023   return NULL;
60024   __pyx_L4_argument_unpacking_done:;
60025 
60026   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":256
60027  *         Create a persistent request for a standard send
60028  *         """
60029  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
60030  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60031  *         with nogil: CHKERR( MPI_Send_init(
60032  */
60033   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60034   __Pyx_GOTREF(__pyx_t_1);
60035   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60036   __pyx_t_1 = 0;
60037 
60038   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":257
60039  *         """
60040  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60041  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)             # <<<<<<<<<<<<<<
60042  *         with nogil: CHKERR( MPI_Send_init(
60043  *             smsg.buf, smsg.count, smsg.dtype,
60044  */
60045   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Prequest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60046   __Pyx_GOTREF(__pyx_t_1);
60047   __Pyx_INCREF(((PyObject *)((struct PyMPIPrequestObject *)__pyx_t_1)));
60048   __pyx_v_request = ((struct PyMPIPrequestObject *)__pyx_t_1);
60049   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
60050 
60051   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":258
60052  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60053  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60054  *         with nogil: CHKERR( MPI_Send_init(             # <<<<<<<<<<<<<<
60055  *             smsg.buf, smsg.count, smsg.dtype,
60056  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60057  */
60058   {
60059       #ifdef WITH_THREAD
60060       PyThreadState *_save = NULL;
60061       #endif
60062       Py_UNBLOCK_THREADS
60063       /*try:*/ {
60064 
60065         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":260
60066  *         with nogil: CHKERR( MPI_Send_init(
60067  *             smsg.buf, smsg.count, smsg.dtype,
60068  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
60069  *         request.ob_buf = smsg
60070  *         return request
60071  */
60072         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Send_init(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L7;}
60073       }
60074 
60075       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":258
60076  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60077  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60078  *         with nogil: CHKERR( MPI_Send_init(             # <<<<<<<<<<<<<<
60079  *             smsg.buf, smsg.count, smsg.dtype,
60080  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60081  */
60082       /*finally:*/ {
60083         int __pyx_why;
60084         __pyx_why = 0; goto __pyx_L8;
60085         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60086         __pyx_L8:;
60087         Py_BLOCK_THREADS
60088         switch (__pyx_why) {
60089           case 4: goto __pyx_L1_error;
60090         }
60091       }
60092   }
60093 
60094   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":261
60095  *             smsg.buf, smsg.count, smsg.dtype,
60096  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60097  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
60098  *         return request
60099  *
60100  */
60101   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
60102   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
60103   __Pyx_GOTREF(__pyx_v_request->__pyx_base.ob_buf);
60104   __Pyx_DECREF(__pyx_v_request->__pyx_base.ob_buf);
60105   __pyx_v_request->__pyx_base.ob_buf = ((PyObject *)__pyx_v_smsg);
60106 
60107   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":262
60108  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60109  *         request.ob_buf = smsg
60110  *         return request             # <<<<<<<<<<<<<<
60111  *
60112  *     def Recv_init(self, buf, int source=0, int tag=0):
60113  */
60114   __Pyx_XDECREF(__pyx_r);
60115   __Pyx_INCREF(((PyObject *)__pyx_v_request));
60116   __pyx_r = ((PyObject *)__pyx_v_request);
60117   goto __pyx_L0;
60118 
60119   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60120   goto __pyx_L0;
60121   __pyx_L1_error:;
60122   __Pyx_XDECREF(__pyx_t_1);
60123   __Pyx_AddTraceback("mpi4py.MPI.Comm.Send_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
60124   __pyx_r = NULL;
60125   __pyx_L0:;
60126   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
60127   __Pyx_XDECREF((PyObject *)__pyx_v_request);
60128   __Pyx_XGIVEREF(__pyx_r);
60129   __Pyx_RefNannyFinishContext();
60130   return __pyx_r;
60131 }
60132 
60133 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":264
60134  *         return request
60135  *
60136  *     def Recv_init(self, buf, int source=0, int tag=0):             # <<<<<<<<<<<<<<
60137  *         """
60138  *         Create a persistent request for a receive
60139  */
60140 
60141 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_19Recv_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60142 static char __pyx_doc_6mpi4py_3MPI_4Comm_19Recv_init[] = "Comm.Recv_init(self, buf, int source=0, int tag=0)\n\n        Create a persistent request for a receive\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_19Recv_init(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60143 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_19Recv_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60144   PyObject *__pyx_v_buf = 0;
60145   int __pyx_v_source;
60146   int __pyx_v_tag;
60147   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_rmsg = 0;
60148   struct PyMPIPrequestObject *__pyx_v_request = 0;
60149   PyObject *__pyx_r = NULL;
60150   __Pyx_RefNannyDeclarations
60151   PyObject *__pyx_t_1 = NULL;
60152   int __pyx_t_2;
60153   int __pyx_lineno = 0;
60154   const char *__pyx_filename = NULL;
60155   int __pyx_clineno = 0;
60156   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__source,&__pyx_n_s__tag,0};
60157   __Pyx_RefNannySetupContext("Recv_init");
60158   {
60159     PyObject* values[3] = {0,0,0};
60160     if (unlikely(__pyx_kwds)) {
60161       Py_ssize_t kw_args;
60162       switch (PyTuple_GET_SIZE(__pyx_args)) {
60163         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60164         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60165         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60166         case  0: break;
60167         default: goto __pyx_L5_argtuple_error;
60168       }
60169       kw_args = PyDict_Size(__pyx_kwds);
60170       switch (PyTuple_GET_SIZE(__pyx_args)) {
60171         case  0:
60172         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
60173         if (likely(values[0])) kw_args--;
60174         else goto __pyx_L5_argtuple_error;
60175         case  1:
60176         if (kw_args > 0) {
60177           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
60178           if (value) { values[1] = value; kw_args--; }
60179         }
60180         case  2:
60181         if (kw_args > 0) {
60182           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
60183           if (value) { values[2] = value; kw_args--; }
60184         }
60185       }
60186       if (unlikely(kw_args > 0)) {
60187         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Recv_init") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60188       }
60189     } else {
60190       switch (PyTuple_GET_SIZE(__pyx_args)) {
60191         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60192         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60193         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60194         break;
60195         default: goto __pyx_L5_argtuple_error;
60196       }
60197     }
60198     __pyx_v_buf = values[0];
60199     if (values[1]) {
60200       __pyx_v_source = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60201     } else {
60202       __pyx_v_source = ((int)0);
60203     }
60204     if (values[2]) {
60205       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60206     } else {
60207       __pyx_v_tag = ((int)0);
60208     }
60209   }
60210   goto __pyx_L4_argument_unpacking_done;
60211   __pyx_L5_argtuple_error:;
60212   __Pyx_RaiseArgtupleInvalid("Recv_init", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60213   __pyx_L3_error:;
60214   __Pyx_AddTraceback("mpi4py.MPI.Comm.Recv_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
60215   __Pyx_RefNannyFinishContext();
60216   return NULL;
60217   __pyx_L4_argument_unpacking_done:;
60218 
60219   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":268
60220  *         Create a persistent request for a receive
60221  *         """
60222  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)             # <<<<<<<<<<<<<<
60223  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60224  *         with nogil: CHKERR( MPI_Recv_init(
60225  */
60226   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_recv(__pyx_v_buf, __pyx_v_source)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60227   __Pyx_GOTREF(__pyx_t_1);
60228   __pyx_v_rmsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60229   __pyx_t_1 = 0;
60230 
60231   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":269
60232  *         """
60233  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
60234  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)             # <<<<<<<<<<<<<<
60235  *         with nogil: CHKERR( MPI_Recv_init(
60236  *             rmsg.buf, rmsg.count, rmsg.dtype,
60237  */
60238   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Prequest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60239   __Pyx_GOTREF(__pyx_t_1);
60240   __Pyx_INCREF(((PyObject *)((struct PyMPIPrequestObject *)__pyx_t_1)));
60241   __pyx_v_request = ((struct PyMPIPrequestObject *)__pyx_t_1);
60242   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
60243 
60244   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":270
60245  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
60246  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60247  *         with nogil: CHKERR( MPI_Recv_init(             # <<<<<<<<<<<<<<
60248  *             rmsg.buf, rmsg.count, rmsg.dtype,
60249  *             source, tag, self.ob_mpi, &request.ob_mpi) )
60250  */
60251   {
60252       #ifdef WITH_THREAD
60253       PyThreadState *_save = NULL;
60254       #endif
60255       Py_UNBLOCK_THREADS
60256       /*try:*/ {
60257 
60258         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":272
60259  *         with nogil: CHKERR( MPI_Recv_init(
60260  *             rmsg.buf, rmsg.count, rmsg.dtype,
60261  *             source, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
60262  *         request.ob_buf = rmsg
60263  *         return request
60264  */
60265         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Recv_init(__pyx_v_rmsg->buf, __pyx_v_rmsg->count, __pyx_v_rmsg->dtype, __pyx_v_source, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L7;}
60266       }
60267 
60268       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":270
60269  *         cdef _p_msg_p2p rmsg = message_p2p_recv(buf, source)
60270  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
60271  *         with nogil: CHKERR( MPI_Recv_init(             # <<<<<<<<<<<<<<
60272  *             rmsg.buf, rmsg.count, rmsg.dtype,
60273  *             source, tag, self.ob_mpi, &request.ob_mpi) )
60274  */
60275       /*finally:*/ {
60276         int __pyx_why;
60277         __pyx_why = 0; goto __pyx_L8;
60278         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60279         __pyx_L8:;
60280         Py_BLOCK_THREADS
60281         switch (__pyx_why) {
60282           case 4: goto __pyx_L1_error;
60283         }
60284       }
60285   }
60286 
60287   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":273
60288  *             rmsg.buf, rmsg.count, rmsg.dtype,
60289  *             source, tag, self.ob_mpi, &request.ob_mpi) )
60290  *         request.ob_buf = rmsg             # <<<<<<<<<<<<<<
60291  *         return request
60292  *
60293  */
60294   __Pyx_INCREF(((PyObject *)__pyx_v_rmsg));
60295   __Pyx_GIVEREF(((PyObject *)__pyx_v_rmsg));
60296   __Pyx_GOTREF(__pyx_v_request->__pyx_base.ob_buf);
60297   __Pyx_DECREF(__pyx_v_request->__pyx_base.ob_buf);
60298   __pyx_v_request->__pyx_base.ob_buf = ((PyObject *)__pyx_v_rmsg);
60299 
60300   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":274
60301  *             source, tag, self.ob_mpi, &request.ob_mpi) )
60302  *         request.ob_buf = rmsg
60303  *         return request             # <<<<<<<<<<<<<<
60304  *
60305  *     # Communication Modes
60306  */
60307   __Pyx_XDECREF(__pyx_r);
60308   __Pyx_INCREF(((PyObject *)__pyx_v_request));
60309   __pyx_r = ((PyObject *)__pyx_v_request);
60310   goto __pyx_L0;
60311 
60312   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60313   goto __pyx_L0;
60314   __pyx_L1_error:;
60315   __Pyx_XDECREF(__pyx_t_1);
60316   __Pyx_AddTraceback("mpi4py.MPI.Comm.Recv_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
60317   __pyx_r = NULL;
60318   __pyx_L0:;
60319   __Pyx_XDECREF((PyObject *)__pyx_v_rmsg);
60320   __Pyx_XDECREF((PyObject *)__pyx_v_request);
60321   __Pyx_XGIVEREF(__pyx_r);
60322   __Pyx_RefNannyFinishContext();
60323   return __pyx_r;
60324 }
60325 
60326 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":281
60327  *     # Blocking calls
60328  *
60329  *     def Bsend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
60330  *         """
60331  *         Blocking send in buffered mode
60332  */
60333 
60334 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_20Bsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60335 static char __pyx_doc_6mpi4py_3MPI_4Comm_20Bsend[] = "Comm.Bsend(self, buf, int dest=0, int tag=0)\n\n        Blocking send in buffered mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_20Bsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60336 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_20Bsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60337   PyObject *__pyx_v_buf = 0;
60338   int __pyx_v_dest;
60339   int __pyx_v_tag;
60340   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
60341   PyObject *__pyx_r = NULL;
60342   __Pyx_RefNannyDeclarations
60343   PyObject *__pyx_t_1 = NULL;
60344   int __pyx_t_2;
60345   int __pyx_lineno = 0;
60346   const char *__pyx_filename = NULL;
60347   int __pyx_clineno = 0;
60348   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
60349   __Pyx_RefNannySetupContext("Bsend");
60350   {
60351     PyObject* values[3] = {0,0,0};
60352     if (unlikely(__pyx_kwds)) {
60353       Py_ssize_t kw_args;
60354       switch (PyTuple_GET_SIZE(__pyx_args)) {
60355         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60356         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60357         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60358         case  0: break;
60359         default: goto __pyx_L5_argtuple_error;
60360       }
60361       kw_args = PyDict_Size(__pyx_kwds);
60362       switch (PyTuple_GET_SIZE(__pyx_args)) {
60363         case  0:
60364         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
60365         if (likely(values[0])) kw_args--;
60366         else goto __pyx_L5_argtuple_error;
60367         case  1:
60368         if (kw_args > 0) {
60369           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
60370           if (value) { values[1] = value; kw_args--; }
60371         }
60372         case  2:
60373         if (kw_args > 0) {
60374           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
60375           if (value) { values[2] = value; kw_args--; }
60376         }
60377       }
60378       if (unlikely(kw_args > 0)) {
60379         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Bsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60380       }
60381     } else {
60382       switch (PyTuple_GET_SIZE(__pyx_args)) {
60383         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60384         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60385         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60386         break;
60387         default: goto __pyx_L5_argtuple_error;
60388       }
60389     }
60390     __pyx_v_buf = values[0];
60391     if (values[1]) {
60392       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60393     } else {
60394       __pyx_v_dest = ((int)0);
60395     }
60396     if (values[2]) {
60397       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60398     } else {
60399       __pyx_v_tag = ((int)0);
60400     }
60401   }
60402   goto __pyx_L4_argument_unpacking_done;
60403   __pyx_L5_argtuple_error:;
60404   __Pyx_RaiseArgtupleInvalid("Bsend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60405   __pyx_L3_error:;
60406   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60407   __Pyx_RefNannyFinishContext();
60408   return NULL;
60409   __pyx_L4_argument_unpacking_done:;
60410 
60411   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":285
60412  *         Blocking send in buffered mode
60413  *         """
60414  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
60415  *         with nogil: CHKERR( MPI_Bsend(
60416  *             smsg.buf, smsg.count, smsg.dtype,
60417  */
60418   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60419   __Pyx_GOTREF(__pyx_t_1);
60420   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60421   __pyx_t_1 = 0;
60422 
60423   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":286
60424  *         """
60425  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60426  *         with nogil: CHKERR( MPI_Bsend(             # <<<<<<<<<<<<<<
60427  *             smsg.buf, smsg.count, smsg.dtype,
60428  *             dest, tag, self.ob_mpi) )
60429  */
60430   {
60431       #ifdef WITH_THREAD
60432       PyThreadState *_save = NULL;
60433       #endif
60434       Py_UNBLOCK_THREADS
60435       /*try:*/ {
60436 
60437         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":288
60438  *         with nogil: CHKERR( MPI_Bsend(
60439  *             smsg.buf, smsg.count, smsg.dtype,
60440  *             dest, tag, self.ob_mpi) )             # <<<<<<<<<<<<<<
60441  *
60442  *     def Ssend(self, buf, int dest=0, int tag=0):
60443  */
60444         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bsend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7;}
60445       }
60446 
60447       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":286
60448  *         """
60449  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60450  *         with nogil: CHKERR( MPI_Bsend(             # <<<<<<<<<<<<<<
60451  *             smsg.buf, smsg.count, smsg.dtype,
60452  *             dest, tag, self.ob_mpi) )
60453  */
60454       /*finally:*/ {
60455         int __pyx_why;
60456         __pyx_why = 0; goto __pyx_L8;
60457         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60458         __pyx_L8:;
60459         Py_BLOCK_THREADS
60460         switch (__pyx_why) {
60461           case 4: goto __pyx_L1_error;
60462         }
60463       }
60464   }
60465 
60466   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60467   goto __pyx_L0;
60468   __pyx_L1_error:;
60469   __Pyx_XDECREF(__pyx_t_1);
60470   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60471   __pyx_r = NULL;
60472   __pyx_L0:;
60473   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
60474   __Pyx_XGIVEREF(__pyx_r);
60475   __Pyx_RefNannyFinishContext();
60476   return __pyx_r;
60477 }
60478 
60479 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":290
60480  *             dest, tag, self.ob_mpi) )
60481  *
60482  *     def Ssend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
60483  *         """
60484  *         Blocking send in synchronous mode
60485  */
60486 
60487 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_21Ssend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60488 static char __pyx_doc_6mpi4py_3MPI_4Comm_21Ssend[] = "Comm.Ssend(self, buf, int dest=0, int tag=0)\n\n        Blocking send in synchronous mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_21Ssend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60489 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_21Ssend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60490   PyObject *__pyx_v_buf = 0;
60491   int __pyx_v_dest;
60492   int __pyx_v_tag;
60493   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
60494   PyObject *__pyx_r = NULL;
60495   __Pyx_RefNannyDeclarations
60496   PyObject *__pyx_t_1 = NULL;
60497   int __pyx_t_2;
60498   int __pyx_lineno = 0;
60499   const char *__pyx_filename = NULL;
60500   int __pyx_clineno = 0;
60501   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
60502   __Pyx_RefNannySetupContext("Ssend");
60503   {
60504     PyObject* values[3] = {0,0,0};
60505     if (unlikely(__pyx_kwds)) {
60506       Py_ssize_t kw_args;
60507       switch (PyTuple_GET_SIZE(__pyx_args)) {
60508         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60509         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60510         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60511         case  0: break;
60512         default: goto __pyx_L5_argtuple_error;
60513       }
60514       kw_args = PyDict_Size(__pyx_kwds);
60515       switch (PyTuple_GET_SIZE(__pyx_args)) {
60516         case  0:
60517         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
60518         if (likely(values[0])) kw_args--;
60519         else goto __pyx_L5_argtuple_error;
60520         case  1:
60521         if (kw_args > 0) {
60522           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
60523           if (value) { values[1] = value; kw_args--; }
60524         }
60525         case  2:
60526         if (kw_args > 0) {
60527           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
60528           if (value) { values[2] = value; kw_args--; }
60529         }
60530       }
60531       if (unlikely(kw_args > 0)) {
60532         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Ssend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60533       }
60534     } else {
60535       switch (PyTuple_GET_SIZE(__pyx_args)) {
60536         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60537         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60538         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60539         break;
60540         default: goto __pyx_L5_argtuple_error;
60541       }
60542     }
60543     __pyx_v_buf = values[0];
60544     if (values[1]) {
60545       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60546     } else {
60547       __pyx_v_dest = ((int)0);
60548     }
60549     if (values[2]) {
60550       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60551     } else {
60552       __pyx_v_tag = ((int)0);
60553     }
60554   }
60555   goto __pyx_L4_argument_unpacking_done;
60556   __pyx_L5_argtuple_error:;
60557   __Pyx_RaiseArgtupleInvalid("Ssend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60558   __pyx_L3_error:;
60559   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ssend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60560   __Pyx_RefNannyFinishContext();
60561   return NULL;
60562   __pyx_L4_argument_unpacking_done:;
60563 
60564   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":294
60565  *         Blocking send in synchronous mode
60566  *         """
60567  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
60568  *         with nogil: CHKERR( MPI_Ssend(
60569  *             smsg.buf, smsg.count, smsg.dtype,
60570  */
60571   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60572   __Pyx_GOTREF(__pyx_t_1);
60573   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60574   __pyx_t_1 = 0;
60575 
60576   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":295
60577  *         """
60578  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60579  *         with nogil: CHKERR( MPI_Ssend(             # <<<<<<<<<<<<<<
60580  *             smsg.buf, smsg.count, smsg.dtype,
60581  *             dest, tag, self.ob_mpi) )
60582  */
60583   {
60584       #ifdef WITH_THREAD
60585       PyThreadState *_save = NULL;
60586       #endif
60587       Py_UNBLOCK_THREADS
60588       /*try:*/ {
60589 
60590         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":297
60591  *         with nogil: CHKERR( MPI_Ssend(
60592  *             smsg.buf, smsg.count, smsg.dtype,
60593  *             dest, tag, self.ob_mpi) )             # <<<<<<<<<<<<<<
60594  *
60595  *     def Rsend(self, buf, int dest=0, int tag=0):
60596  */
60597         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Ssend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L7;}
60598       }
60599 
60600       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":295
60601  *         """
60602  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60603  *         with nogil: CHKERR( MPI_Ssend(             # <<<<<<<<<<<<<<
60604  *             smsg.buf, smsg.count, smsg.dtype,
60605  *             dest, tag, self.ob_mpi) )
60606  */
60607       /*finally:*/ {
60608         int __pyx_why;
60609         __pyx_why = 0; goto __pyx_L8;
60610         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60611         __pyx_L8:;
60612         Py_BLOCK_THREADS
60613         switch (__pyx_why) {
60614           case 4: goto __pyx_L1_error;
60615         }
60616       }
60617   }
60618 
60619   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60620   goto __pyx_L0;
60621   __pyx_L1_error:;
60622   __Pyx_XDECREF(__pyx_t_1);
60623   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ssend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60624   __pyx_r = NULL;
60625   __pyx_L0:;
60626   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
60627   __Pyx_XGIVEREF(__pyx_r);
60628   __Pyx_RefNannyFinishContext();
60629   return __pyx_r;
60630 }
60631 
60632 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":299
60633  *             dest, tag, self.ob_mpi) )
60634  *
60635  *     def Rsend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
60636  *         """
60637  *         Blocking send in ready mode
60638  */
60639 
60640 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_22Rsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60641 static char __pyx_doc_6mpi4py_3MPI_4Comm_22Rsend[] = "Comm.Rsend(self, buf, int dest=0, int tag=0)\n\n        Blocking send in ready mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_22Rsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60642 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_22Rsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60643   PyObject *__pyx_v_buf = 0;
60644   int __pyx_v_dest;
60645   int __pyx_v_tag;
60646   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
60647   PyObject *__pyx_r = NULL;
60648   __Pyx_RefNannyDeclarations
60649   PyObject *__pyx_t_1 = NULL;
60650   int __pyx_t_2;
60651   int __pyx_lineno = 0;
60652   const char *__pyx_filename = NULL;
60653   int __pyx_clineno = 0;
60654   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
60655   __Pyx_RefNannySetupContext("Rsend");
60656   {
60657     PyObject* values[3] = {0,0,0};
60658     if (unlikely(__pyx_kwds)) {
60659       Py_ssize_t kw_args;
60660       switch (PyTuple_GET_SIZE(__pyx_args)) {
60661         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60662         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60663         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60664         case  0: break;
60665         default: goto __pyx_L5_argtuple_error;
60666       }
60667       kw_args = PyDict_Size(__pyx_kwds);
60668       switch (PyTuple_GET_SIZE(__pyx_args)) {
60669         case  0:
60670         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
60671         if (likely(values[0])) kw_args--;
60672         else goto __pyx_L5_argtuple_error;
60673         case  1:
60674         if (kw_args > 0) {
60675           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
60676           if (value) { values[1] = value; kw_args--; }
60677         }
60678         case  2:
60679         if (kw_args > 0) {
60680           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
60681           if (value) { values[2] = value; kw_args--; }
60682         }
60683       }
60684       if (unlikely(kw_args > 0)) {
60685         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Rsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60686       }
60687     } else {
60688       switch (PyTuple_GET_SIZE(__pyx_args)) {
60689         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60690         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60691         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60692         break;
60693         default: goto __pyx_L5_argtuple_error;
60694       }
60695     }
60696     __pyx_v_buf = values[0];
60697     if (values[1]) {
60698       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60699     } else {
60700       __pyx_v_dest = ((int)0);
60701     }
60702     if (values[2]) {
60703       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60704     } else {
60705       __pyx_v_tag = ((int)0);
60706     }
60707   }
60708   goto __pyx_L4_argument_unpacking_done;
60709   __pyx_L5_argtuple_error:;
60710   __Pyx_RaiseArgtupleInvalid("Rsend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60711   __pyx_L3_error:;
60712   __Pyx_AddTraceback("mpi4py.MPI.Comm.Rsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60713   __Pyx_RefNannyFinishContext();
60714   return NULL;
60715   __pyx_L4_argument_unpacking_done:;
60716 
60717   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":303
60718  *         Blocking send in ready mode
60719  *         """
60720  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
60721  *         with nogil: CHKERR( MPI_Rsend(
60722  *             smsg.buf, smsg.count, smsg.dtype,
60723  */
60724   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60725   __Pyx_GOTREF(__pyx_t_1);
60726   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60727   __pyx_t_1 = 0;
60728 
60729   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":304
60730  *         """
60731  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60732  *         with nogil: CHKERR( MPI_Rsend(             # <<<<<<<<<<<<<<
60733  *             smsg.buf, smsg.count, smsg.dtype,
60734  *             dest, tag, self.ob_mpi) )
60735  */
60736   {
60737       #ifdef WITH_THREAD
60738       PyThreadState *_save = NULL;
60739       #endif
60740       Py_UNBLOCK_THREADS
60741       /*try:*/ {
60742 
60743         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":306
60744  *         with nogil: CHKERR( MPI_Rsend(
60745  *             smsg.buf, smsg.count, smsg.dtype,
60746  *             dest, tag, self.ob_mpi) )             # <<<<<<<<<<<<<<
60747  *
60748  *     # Nonblocking calls
60749  */
60750         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Rsend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L7;}
60751       }
60752 
60753       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":304
60754  *         """
60755  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60756  *         with nogil: CHKERR( MPI_Rsend(             # <<<<<<<<<<<<<<
60757  *             smsg.buf, smsg.count, smsg.dtype,
60758  *             dest, tag, self.ob_mpi) )
60759  */
60760       /*finally:*/ {
60761         int __pyx_why;
60762         __pyx_why = 0; goto __pyx_L8;
60763         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60764         __pyx_L8:;
60765         Py_BLOCK_THREADS
60766         switch (__pyx_why) {
60767           case 4: goto __pyx_L1_error;
60768         }
60769       }
60770   }
60771 
60772   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60773   goto __pyx_L0;
60774   __pyx_L1_error:;
60775   __Pyx_XDECREF(__pyx_t_1);
60776   __Pyx_AddTraceback("mpi4py.MPI.Comm.Rsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60777   __pyx_r = NULL;
60778   __pyx_L0:;
60779   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
60780   __Pyx_XGIVEREF(__pyx_r);
60781   __Pyx_RefNannyFinishContext();
60782   return __pyx_r;
60783 }
60784 
60785 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":310
60786  *     # Nonblocking calls
60787  *
60788  *     def Ibsend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
60789  *         """
60790  *         Nonblocking send in buffered mode
60791  */
60792 
60793 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_23Ibsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60794 static char __pyx_doc_6mpi4py_3MPI_4Comm_23Ibsend[] = "Comm.Ibsend(self, buf, int dest=0, int tag=0)\n\n        Nonblocking send in buffered mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_23Ibsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60795 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_23Ibsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60796   PyObject *__pyx_v_buf = 0;
60797   int __pyx_v_dest;
60798   int __pyx_v_tag;
60799   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
60800   struct PyMPIRequestObject *__pyx_v_request = 0;
60801   PyObject *__pyx_r = NULL;
60802   __Pyx_RefNannyDeclarations
60803   PyObject *__pyx_t_1 = NULL;
60804   int __pyx_t_2;
60805   int __pyx_lineno = 0;
60806   const char *__pyx_filename = NULL;
60807   int __pyx_clineno = 0;
60808   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
60809   __Pyx_RefNannySetupContext("Ibsend");
60810   {
60811     PyObject* values[3] = {0,0,0};
60812     if (unlikely(__pyx_kwds)) {
60813       Py_ssize_t kw_args;
60814       switch (PyTuple_GET_SIZE(__pyx_args)) {
60815         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60816         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60817         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60818         case  0: break;
60819         default: goto __pyx_L5_argtuple_error;
60820       }
60821       kw_args = PyDict_Size(__pyx_kwds);
60822       switch (PyTuple_GET_SIZE(__pyx_args)) {
60823         case  0:
60824         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
60825         if (likely(values[0])) kw_args--;
60826         else goto __pyx_L5_argtuple_error;
60827         case  1:
60828         if (kw_args > 0) {
60829           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
60830           if (value) { values[1] = value; kw_args--; }
60831         }
60832         case  2:
60833         if (kw_args > 0) {
60834           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
60835           if (value) { values[2] = value; kw_args--; }
60836         }
60837       }
60838       if (unlikely(kw_args > 0)) {
60839         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Ibsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60840       }
60841     } else {
60842       switch (PyTuple_GET_SIZE(__pyx_args)) {
60843         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
60844         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
60845         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
60846         break;
60847         default: goto __pyx_L5_argtuple_error;
60848       }
60849     }
60850     __pyx_v_buf = values[0];
60851     if (values[1]) {
60852       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60853     } else {
60854       __pyx_v_dest = ((int)0);
60855     }
60856     if (values[2]) {
60857       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60858     } else {
60859       __pyx_v_tag = ((int)0);
60860     }
60861   }
60862   goto __pyx_L4_argument_unpacking_done;
60863   __pyx_L5_argtuple_error:;
60864   __Pyx_RaiseArgtupleInvalid("Ibsend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
60865   __pyx_L3_error:;
60866   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ibsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60867   __Pyx_RefNannyFinishContext();
60868   return NULL;
60869   __pyx_L4_argument_unpacking_done:;
60870 
60871   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":314
60872  *         Nonblocking send in buffered mode
60873  *         """
60874  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
60875  *         cdef Request request = <Request>Request.__new__(Request)
60876  *         with nogil: CHKERR( MPI_Ibsend(
60877  */
60878   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60879   __Pyx_GOTREF(__pyx_t_1);
60880   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
60881   __pyx_t_1 = 0;
60882 
60883   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":315
60884  *         """
60885  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60886  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
60887  *         with nogil: CHKERR( MPI_Ibsend(
60888  *             smsg.buf, smsg.count, smsg.dtype,
60889  */
60890   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
60891   __Pyx_GOTREF(__pyx_t_1);
60892   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
60893   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
60894   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
60895 
60896   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":316
60897  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60898  *         cdef Request request = <Request>Request.__new__(Request)
60899  *         with nogil: CHKERR( MPI_Ibsend(             # <<<<<<<<<<<<<<
60900  *             smsg.buf, smsg.count, smsg.dtype,
60901  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60902  */
60903   {
60904       #ifdef WITH_THREAD
60905       PyThreadState *_save = NULL;
60906       #endif
60907       Py_UNBLOCK_THREADS
60908       /*try:*/ {
60909 
60910         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":318
60911  *         with nogil: CHKERR( MPI_Ibsend(
60912  *             smsg.buf, smsg.count, smsg.dtype,
60913  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
60914  *         request.ob_buf = smsg
60915  *         return request
60916  */
60917         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Ibsend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L7;}
60918       }
60919 
60920       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":316
60921  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
60922  *         cdef Request request = <Request>Request.__new__(Request)
60923  *         with nogil: CHKERR( MPI_Ibsend(             # <<<<<<<<<<<<<<
60924  *             smsg.buf, smsg.count, smsg.dtype,
60925  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60926  */
60927       /*finally:*/ {
60928         int __pyx_why;
60929         __pyx_why = 0; goto __pyx_L8;
60930         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
60931         __pyx_L8:;
60932         Py_BLOCK_THREADS
60933         switch (__pyx_why) {
60934           case 4: goto __pyx_L1_error;
60935         }
60936       }
60937   }
60938 
60939   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":319
60940  *             smsg.buf, smsg.count, smsg.dtype,
60941  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60942  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
60943  *         return request
60944  *
60945  */
60946   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
60947   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
60948   __Pyx_GOTREF(__pyx_v_request->ob_buf);
60949   __Pyx_DECREF(__pyx_v_request->ob_buf);
60950   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_smsg);
60951 
60952   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":320
60953  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
60954  *         request.ob_buf = smsg
60955  *         return request             # <<<<<<<<<<<<<<
60956  *
60957  *     def Issend(self, buf, int dest=0, int tag=0):
60958  */
60959   __Pyx_XDECREF(__pyx_r);
60960   __Pyx_INCREF(((PyObject *)__pyx_v_request));
60961   __pyx_r = ((PyObject *)__pyx_v_request);
60962   goto __pyx_L0;
60963 
60964   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
60965   goto __pyx_L0;
60966   __pyx_L1_error:;
60967   __Pyx_XDECREF(__pyx_t_1);
60968   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ibsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
60969   __pyx_r = NULL;
60970   __pyx_L0:;
60971   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
60972   __Pyx_XDECREF((PyObject *)__pyx_v_request);
60973   __Pyx_XGIVEREF(__pyx_r);
60974   __Pyx_RefNannyFinishContext();
60975   return __pyx_r;
60976 }
60977 
60978 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":322
60979  *         return request
60980  *
60981  *     def Issend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
60982  *         """
60983  *         Nonblocking send in synchronous mode
60984  */
60985 
60986 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_24Issend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60987 static char __pyx_doc_6mpi4py_3MPI_4Comm_24Issend[] = "Comm.Issend(self, buf, int dest=0, int tag=0)\n\n        Nonblocking send in synchronous mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_24Issend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)60988 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_24Issend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
60989   PyObject *__pyx_v_buf = 0;
60990   int __pyx_v_dest;
60991   int __pyx_v_tag;
60992   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
60993   struct PyMPIRequestObject *__pyx_v_request = 0;
60994   PyObject *__pyx_r = NULL;
60995   __Pyx_RefNannyDeclarations
60996   PyObject *__pyx_t_1 = NULL;
60997   int __pyx_t_2;
60998   int __pyx_lineno = 0;
60999   const char *__pyx_filename = NULL;
61000   int __pyx_clineno = 0;
61001   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
61002   __Pyx_RefNannySetupContext("Issend");
61003   {
61004     PyObject* values[3] = {0,0,0};
61005     if (unlikely(__pyx_kwds)) {
61006       Py_ssize_t kw_args;
61007       switch (PyTuple_GET_SIZE(__pyx_args)) {
61008         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61009         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61010         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61011         case  0: break;
61012         default: goto __pyx_L5_argtuple_error;
61013       }
61014       kw_args = PyDict_Size(__pyx_kwds);
61015       switch (PyTuple_GET_SIZE(__pyx_args)) {
61016         case  0:
61017         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
61018         if (likely(values[0])) kw_args--;
61019         else goto __pyx_L5_argtuple_error;
61020         case  1:
61021         if (kw_args > 0) {
61022           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
61023           if (value) { values[1] = value; kw_args--; }
61024         }
61025         case  2:
61026         if (kw_args > 0) {
61027           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
61028           if (value) { values[2] = value; kw_args--; }
61029         }
61030       }
61031       if (unlikely(kw_args > 0)) {
61032         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Issend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61033       }
61034     } else {
61035       switch (PyTuple_GET_SIZE(__pyx_args)) {
61036         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61037         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61038         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61039         break;
61040         default: goto __pyx_L5_argtuple_error;
61041       }
61042     }
61043     __pyx_v_buf = values[0];
61044     if (values[1]) {
61045       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61046     } else {
61047       __pyx_v_dest = ((int)0);
61048     }
61049     if (values[2]) {
61050       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61051     } else {
61052       __pyx_v_tag = ((int)0);
61053     }
61054   }
61055   goto __pyx_L4_argument_unpacking_done;
61056   __pyx_L5_argtuple_error:;
61057   __Pyx_RaiseArgtupleInvalid("Issend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61058   __pyx_L3_error:;
61059   __Pyx_AddTraceback("mpi4py.MPI.Comm.Issend", __pyx_clineno, __pyx_lineno, __pyx_filename);
61060   __Pyx_RefNannyFinishContext();
61061   return NULL;
61062   __pyx_L4_argument_unpacking_done:;
61063 
61064   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":326
61065  *         Nonblocking send in synchronous mode
61066  *         """
61067  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
61068  *         cdef Request request = <Request>Request.__new__(Request)
61069  *         with nogil: CHKERR( MPI_Issend(
61070  */
61071   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61072   __Pyx_GOTREF(__pyx_t_1);
61073   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
61074   __pyx_t_1 = 0;
61075 
61076   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":327
61077  *         """
61078  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61079  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
61080  *         with nogil: CHKERR( MPI_Issend(
61081  *             smsg.buf, smsg.count, smsg.dtype,
61082  */
61083   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61084   __Pyx_GOTREF(__pyx_t_1);
61085   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
61086   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
61087   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
61088 
61089   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":328
61090  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61091  *         cdef Request request = <Request>Request.__new__(Request)
61092  *         with nogil: CHKERR( MPI_Issend(             # <<<<<<<<<<<<<<
61093  *             smsg.buf, smsg.count, smsg.dtype,
61094  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61095  */
61096   {
61097       #ifdef WITH_THREAD
61098       PyThreadState *_save = NULL;
61099       #endif
61100       Py_UNBLOCK_THREADS
61101       /*try:*/ {
61102 
61103         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":330
61104  *         with nogil: CHKERR( MPI_Issend(
61105  *             smsg.buf, smsg.count, smsg.dtype,
61106  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
61107  *         request.ob_buf = smsg
61108  *         return request
61109  */
61110         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Issend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L7;}
61111       }
61112 
61113       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":328
61114  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61115  *         cdef Request request = <Request>Request.__new__(Request)
61116  *         with nogil: CHKERR( MPI_Issend(             # <<<<<<<<<<<<<<
61117  *             smsg.buf, smsg.count, smsg.dtype,
61118  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61119  */
61120       /*finally:*/ {
61121         int __pyx_why;
61122         __pyx_why = 0; goto __pyx_L8;
61123         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
61124         __pyx_L8:;
61125         Py_BLOCK_THREADS
61126         switch (__pyx_why) {
61127           case 4: goto __pyx_L1_error;
61128         }
61129       }
61130   }
61131 
61132   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":331
61133  *             smsg.buf, smsg.count, smsg.dtype,
61134  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61135  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
61136  *         return request
61137  *
61138  */
61139   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
61140   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
61141   __Pyx_GOTREF(__pyx_v_request->ob_buf);
61142   __Pyx_DECREF(__pyx_v_request->ob_buf);
61143   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_smsg);
61144 
61145   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":332
61146  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61147  *         request.ob_buf = smsg
61148  *         return request             # <<<<<<<<<<<<<<
61149  *
61150  *     def Irsend(self, buf, int dest=0, int tag=0):
61151  */
61152   __Pyx_XDECREF(__pyx_r);
61153   __Pyx_INCREF(((PyObject *)__pyx_v_request));
61154   __pyx_r = ((PyObject *)__pyx_v_request);
61155   goto __pyx_L0;
61156 
61157   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61158   goto __pyx_L0;
61159   __pyx_L1_error:;
61160   __Pyx_XDECREF(__pyx_t_1);
61161   __Pyx_AddTraceback("mpi4py.MPI.Comm.Issend", __pyx_clineno, __pyx_lineno, __pyx_filename);
61162   __pyx_r = NULL;
61163   __pyx_L0:;
61164   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
61165   __Pyx_XDECREF((PyObject *)__pyx_v_request);
61166   __Pyx_XGIVEREF(__pyx_r);
61167   __Pyx_RefNannyFinishContext();
61168   return __pyx_r;
61169 }
61170 
61171 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":334
61172  *         return request
61173  *
61174  *     def Irsend(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
61175  *         """
61176  *         Nonblocking send in ready mode
61177  */
61178 
61179 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_25Irsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
61180 static char __pyx_doc_6mpi4py_3MPI_4Comm_25Irsend[] = "Comm.Irsend(self, buf, int dest=0, int tag=0)\n\n        Nonblocking send in ready mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_25Irsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)61181 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_25Irsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61182   PyObject *__pyx_v_buf = 0;
61183   int __pyx_v_dest;
61184   int __pyx_v_tag;
61185   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
61186   struct PyMPIRequestObject *__pyx_v_request = 0;
61187   PyObject *__pyx_r = NULL;
61188   __Pyx_RefNannyDeclarations
61189   PyObject *__pyx_t_1 = NULL;
61190   int __pyx_t_2;
61191   int __pyx_lineno = 0;
61192   const char *__pyx_filename = NULL;
61193   int __pyx_clineno = 0;
61194   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
61195   __Pyx_RefNannySetupContext("Irsend");
61196   {
61197     PyObject* values[3] = {0,0,0};
61198     if (unlikely(__pyx_kwds)) {
61199       Py_ssize_t kw_args;
61200       switch (PyTuple_GET_SIZE(__pyx_args)) {
61201         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61202         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61203         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61204         case  0: break;
61205         default: goto __pyx_L5_argtuple_error;
61206       }
61207       kw_args = PyDict_Size(__pyx_kwds);
61208       switch (PyTuple_GET_SIZE(__pyx_args)) {
61209         case  0:
61210         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
61211         if (likely(values[0])) kw_args--;
61212         else goto __pyx_L5_argtuple_error;
61213         case  1:
61214         if (kw_args > 0) {
61215           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
61216           if (value) { values[1] = value; kw_args--; }
61217         }
61218         case  2:
61219         if (kw_args > 0) {
61220           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
61221           if (value) { values[2] = value; kw_args--; }
61222         }
61223       }
61224       if (unlikely(kw_args > 0)) {
61225         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Irsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61226       }
61227     } else {
61228       switch (PyTuple_GET_SIZE(__pyx_args)) {
61229         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61230         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61231         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61232         break;
61233         default: goto __pyx_L5_argtuple_error;
61234       }
61235     }
61236     __pyx_v_buf = values[0];
61237     if (values[1]) {
61238       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61239     } else {
61240       __pyx_v_dest = ((int)0);
61241     }
61242     if (values[2]) {
61243       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61244     } else {
61245       __pyx_v_tag = ((int)0);
61246     }
61247   }
61248   goto __pyx_L4_argument_unpacking_done;
61249   __pyx_L5_argtuple_error:;
61250   __Pyx_RaiseArgtupleInvalid("Irsend", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61251   __pyx_L3_error:;
61252   __Pyx_AddTraceback("mpi4py.MPI.Comm.Irsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
61253   __Pyx_RefNannyFinishContext();
61254   return NULL;
61255   __pyx_L4_argument_unpacking_done:;
61256 
61257   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":338
61258  *         Nonblocking send in ready mode
61259  *         """
61260  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
61261  *         cdef Request request = <Request>Request.__new__(Request)
61262  *         with nogil: CHKERR( MPI_Irsend(
61263  */
61264   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61265   __Pyx_GOTREF(__pyx_t_1);
61266   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
61267   __pyx_t_1 = 0;
61268 
61269   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":339
61270  *         """
61271  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61272  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
61273  *         with nogil: CHKERR( MPI_Irsend(
61274  *             smsg.buf, smsg.count, smsg.dtype,
61275  */
61276   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61277   __Pyx_GOTREF(__pyx_t_1);
61278   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
61279   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
61280   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
61281 
61282   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":340
61283  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61284  *         cdef Request request = <Request>Request.__new__(Request)
61285  *         with nogil: CHKERR( MPI_Irsend(             # <<<<<<<<<<<<<<
61286  *             smsg.buf, smsg.count, smsg.dtype,
61287  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61288  */
61289   {
61290       #ifdef WITH_THREAD
61291       PyThreadState *_save = NULL;
61292       #endif
61293       Py_UNBLOCK_THREADS
61294       /*try:*/ {
61295 
61296         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":342
61297  *         with nogil: CHKERR( MPI_Irsend(
61298  *             smsg.buf, smsg.count, smsg.dtype,
61299  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
61300  *         request.ob_buf = smsg
61301  *         return request
61302  */
61303         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Irsend(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L7;}
61304       }
61305 
61306       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":340
61307  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61308  *         cdef Request request = <Request>Request.__new__(Request)
61309  *         with nogil: CHKERR( MPI_Irsend(             # <<<<<<<<<<<<<<
61310  *             smsg.buf, smsg.count, smsg.dtype,
61311  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61312  */
61313       /*finally:*/ {
61314         int __pyx_why;
61315         __pyx_why = 0; goto __pyx_L8;
61316         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
61317         __pyx_L8:;
61318         Py_BLOCK_THREADS
61319         switch (__pyx_why) {
61320           case 4: goto __pyx_L1_error;
61321         }
61322       }
61323   }
61324 
61325   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":343
61326  *             smsg.buf, smsg.count, smsg.dtype,
61327  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61328  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
61329  *         return request
61330  *
61331  */
61332   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
61333   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
61334   __Pyx_GOTREF(__pyx_v_request->ob_buf);
61335   __Pyx_DECREF(__pyx_v_request->ob_buf);
61336   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_smsg);
61337 
61338   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":344
61339  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61340  *         request.ob_buf = smsg
61341  *         return request             # <<<<<<<<<<<<<<
61342  *
61343  *     # Persistent Requests
61344  */
61345   __Pyx_XDECREF(__pyx_r);
61346   __Pyx_INCREF(((PyObject *)__pyx_v_request));
61347   __pyx_r = ((PyObject *)__pyx_v_request);
61348   goto __pyx_L0;
61349 
61350   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61351   goto __pyx_L0;
61352   __pyx_L1_error:;
61353   __Pyx_XDECREF(__pyx_t_1);
61354   __Pyx_AddTraceback("mpi4py.MPI.Comm.Irsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
61355   __pyx_r = NULL;
61356   __pyx_L0:;
61357   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
61358   __Pyx_XDECREF((PyObject *)__pyx_v_request);
61359   __Pyx_XGIVEREF(__pyx_r);
61360   __Pyx_RefNannyFinishContext();
61361   return __pyx_r;
61362 }
61363 
61364 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":348
61365  *     # Persistent Requests
61366  *
61367  *     def Bsend_init(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
61368  *         """
61369  *         Persistent request for a send in buffered mode
61370  */
61371 
61372 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_26Bsend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
61373 static char __pyx_doc_6mpi4py_3MPI_4Comm_26Bsend_init[] = "Comm.Bsend_init(self, buf, int dest=0, int tag=0)\n\n        Persistent request for a send in buffered mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_26Bsend_init(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)61374 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_26Bsend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61375   PyObject *__pyx_v_buf = 0;
61376   int __pyx_v_dest;
61377   int __pyx_v_tag;
61378   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
61379   struct PyMPIPrequestObject *__pyx_v_request = 0;
61380   PyObject *__pyx_r = NULL;
61381   __Pyx_RefNannyDeclarations
61382   PyObject *__pyx_t_1 = NULL;
61383   int __pyx_t_2;
61384   int __pyx_lineno = 0;
61385   const char *__pyx_filename = NULL;
61386   int __pyx_clineno = 0;
61387   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
61388   __Pyx_RefNannySetupContext("Bsend_init");
61389   {
61390     PyObject* values[3] = {0,0,0};
61391     if (unlikely(__pyx_kwds)) {
61392       Py_ssize_t kw_args;
61393       switch (PyTuple_GET_SIZE(__pyx_args)) {
61394         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61395         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61396         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61397         case  0: break;
61398         default: goto __pyx_L5_argtuple_error;
61399       }
61400       kw_args = PyDict_Size(__pyx_kwds);
61401       switch (PyTuple_GET_SIZE(__pyx_args)) {
61402         case  0:
61403         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
61404         if (likely(values[0])) kw_args--;
61405         else goto __pyx_L5_argtuple_error;
61406         case  1:
61407         if (kw_args > 0) {
61408           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
61409           if (value) { values[1] = value; kw_args--; }
61410         }
61411         case  2:
61412         if (kw_args > 0) {
61413           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
61414           if (value) { values[2] = value; kw_args--; }
61415         }
61416       }
61417       if (unlikely(kw_args > 0)) {
61418         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Bsend_init") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61419       }
61420     } else {
61421       switch (PyTuple_GET_SIZE(__pyx_args)) {
61422         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61423         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61424         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61425         break;
61426         default: goto __pyx_L5_argtuple_error;
61427       }
61428     }
61429     __pyx_v_buf = values[0];
61430     if (values[1]) {
61431       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61432     } else {
61433       __pyx_v_dest = ((int)0);
61434     }
61435     if (values[2]) {
61436       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61437     } else {
61438       __pyx_v_tag = ((int)0);
61439     }
61440   }
61441   goto __pyx_L4_argument_unpacking_done;
61442   __pyx_L5_argtuple_error:;
61443   __Pyx_RaiseArgtupleInvalid("Bsend_init", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61444   __pyx_L3_error:;
61445   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bsend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61446   __Pyx_RefNannyFinishContext();
61447   return NULL;
61448   __pyx_L4_argument_unpacking_done:;
61449 
61450   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":352
61451  *         Persistent request for a send in buffered mode
61452  *         """
61453  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
61454  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61455  *         with nogil: CHKERR( MPI_Bsend_init(
61456  */
61457   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61458   __Pyx_GOTREF(__pyx_t_1);
61459   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
61460   __pyx_t_1 = 0;
61461 
61462   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":353
61463  *         """
61464  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61465  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)             # <<<<<<<<<<<<<<
61466  *         with nogil: CHKERR( MPI_Bsend_init(
61467  *             smsg.buf, smsg.count, smsg.dtype,
61468  */
61469   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Prequest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61470   __Pyx_GOTREF(__pyx_t_1);
61471   __Pyx_INCREF(((PyObject *)((struct PyMPIPrequestObject *)__pyx_t_1)));
61472   __pyx_v_request = ((struct PyMPIPrequestObject *)__pyx_t_1);
61473   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
61474 
61475   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":354
61476  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61477  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61478  *         with nogil: CHKERR( MPI_Bsend_init(             # <<<<<<<<<<<<<<
61479  *             smsg.buf, smsg.count, smsg.dtype,
61480  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61481  */
61482   {
61483       #ifdef WITH_THREAD
61484       PyThreadState *_save = NULL;
61485       #endif
61486       Py_UNBLOCK_THREADS
61487       /*try:*/ {
61488 
61489         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":356
61490  *         with nogil: CHKERR( MPI_Bsend_init(
61491  *             smsg.buf, smsg.count, smsg.dtype,
61492  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
61493  *         request.ob_buf = smsg
61494  *         return request
61495  */
61496         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bsend_init(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L7;}
61497       }
61498 
61499       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":354
61500  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61501  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61502  *         with nogil: CHKERR( MPI_Bsend_init(             # <<<<<<<<<<<<<<
61503  *             smsg.buf, smsg.count, smsg.dtype,
61504  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61505  */
61506       /*finally:*/ {
61507         int __pyx_why;
61508         __pyx_why = 0; goto __pyx_L8;
61509         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
61510         __pyx_L8:;
61511         Py_BLOCK_THREADS
61512         switch (__pyx_why) {
61513           case 4: goto __pyx_L1_error;
61514         }
61515       }
61516   }
61517 
61518   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":357
61519  *             smsg.buf, smsg.count, smsg.dtype,
61520  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61521  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
61522  *         return request
61523  *
61524  */
61525   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
61526   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
61527   __Pyx_GOTREF(__pyx_v_request->__pyx_base.ob_buf);
61528   __Pyx_DECREF(__pyx_v_request->__pyx_base.ob_buf);
61529   __pyx_v_request->__pyx_base.ob_buf = ((PyObject *)__pyx_v_smsg);
61530 
61531   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":358
61532  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61533  *         request.ob_buf = smsg
61534  *         return request             # <<<<<<<<<<<<<<
61535  *
61536  *     def Ssend_init(self, buf, int dest=0, int tag=0):
61537  */
61538   __Pyx_XDECREF(__pyx_r);
61539   __Pyx_INCREF(((PyObject *)__pyx_v_request));
61540   __pyx_r = ((PyObject *)__pyx_v_request);
61541   goto __pyx_L0;
61542 
61543   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61544   goto __pyx_L0;
61545   __pyx_L1_error:;
61546   __Pyx_XDECREF(__pyx_t_1);
61547   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bsend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61548   __pyx_r = NULL;
61549   __pyx_L0:;
61550   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
61551   __Pyx_XDECREF((PyObject *)__pyx_v_request);
61552   __Pyx_XGIVEREF(__pyx_r);
61553   __Pyx_RefNannyFinishContext();
61554   return __pyx_r;
61555 }
61556 
61557 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":360
61558  *         return request
61559  *
61560  *     def Ssend_init(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
61561  *         """
61562  *         Persistent request for a send in synchronous mode
61563  */
61564 
61565 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_27Ssend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
61566 static char __pyx_doc_6mpi4py_3MPI_4Comm_27Ssend_init[] = "Comm.Ssend_init(self, buf, int dest=0, int tag=0)\n\n        Persistent request for a send in synchronous mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_27Ssend_init(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)61567 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_27Ssend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61568   PyObject *__pyx_v_buf = 0;
61569   int __pyx_v_dest;
61570   int __pyx_v_tag;
61571   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
61572   struct PyMPIPrequestObject *__pyx_v_request = 0;
61573   PyObject *__pyx_r = NULL;
61574   __Pyx_RefNannyDeclarations
61575   PyObject *__pyx_t_1 = NULL;
61576   int __pyx_t_2;
61577   int __pyx_lineno = 0;
61578   const char *__pyx_filename = NULL;
61579   int __pyx_clineno = 0;
61580   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
61581   __Pyx_RefNannySetupContext("Ssend_init");
61582   {
61583     PyObject* values[3] = {0,0,0};
61584     if (unlikely(__pyx_kwds)) {
61585       Py_ssize_t kw_args;
61586       switch (PyTuple_GET_SIZE(__pyx_args)) {
61587         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61588         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61589         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61590         case  0: break;
61591         default: goto __pyx_L5_argtuple_error;
61592       }
61593       kw_args = PyDict_Size(__pyx_kwds);
61594       switch (PyTuple_GET_SIZE(__pyx_args)) {
61595         case  0:
61596         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
61597         if (likely(values[0])) kw_args--;
61598         else goto __pyx_L5_argtuple_error;
61599         case  1:
61600         if (kw_args > 0) {
61601           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
61602           if (value) { values[1] = value; kw_args--; }
61603         }
61604         case  2:
61605         if (kw_args > 0) {
61606           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
61607           if (value) { values[2] = value; kw_args--; }
61608         }
61609       }
61610       if (unlikely(kw_args > 0)) {
61611         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Ssend_init") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61612       }
61613     } else {
61614       switch (PyTuple_GET_SIZE(__pyx_args)) {
61615         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61616         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61617         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61618         break;
61619         default: goto __pyx_L5_argtuple_error;
61620       }
61621     }
61622     __pyx_v_buf = values[0];
61623     if (values[1]) {
61624       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61625     } else {
61626       __pyx_v_dest = ((int)0);
61627     }
61628     if (values[2]) {
61629       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61630     } else {
61631       __pyx_v_tag = ((int)0);
61632     }
61633   }
61634   goto __pyx_L4_argument_unpacking_done;
61635   __pyx_L5_argtuple_error:;
61636   __Pyx_RaiseArgtupleInvalid("Ssend_init", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61637   __pyx_L3_error:;
61638   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ssend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61639   __Pyx_RefNannyFinishContext();
61640   return NULL;
61641   __pyx_L4_argument_unpacking_done:;
61642 
61643   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":364
61644  *         Persistent request for a send in synchronous mode
61645  *         """
61646  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
61647  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61648  *         with nogil: CHKERR( MPI_Ssend_init(
61649  */
61650   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61651   __Pyx_GOTREF(__pyx_t_1);
61652   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
61653   __pyx_t_1 = 0;
61654 
61655   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":365
61656  *         """
61657  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61658  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)             # <<<<<<<<<<<<<<
61659  *         with nogil: CHKERR( MPI_Ssend_init(
61660  *             smsg.buf, smsg.count, smsg.dtype,
61661  */
61662   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Prequest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61663   __Pyx_GOTREF(__pyx_t_1);
61664   __Pyx_INCREF(((PyObject *)((struct PyMPIPrequestObject *)__pyx_t_1)));
61665   __pyx_v_request = ((struct PyMPIPrequestObject *)__pyx_t_1);
61666   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
61667 
61668   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":366
61669  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61670  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61671  *         with nogil: CHKERR( MPI_Ssend_init(             # <<<<<<<<<<<<<<
61672  *             smsg.buf, smsg.count, smsg.dtype,
61673  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61674  */
61675   {
61676       #ifdef WITH_THREAD
61677       PyThreadState *_save = NULL;
61678       #endif
61679       Py_UNBLOCK_THREADS
61680       /*try:*/ {
61681 
61682         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":368
61683  *         with nogil: CHKERR( MPI_Ssend_init(
61684  *             smsg.buf, smsg.count, smsg.dtype,
61685  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
61686  *         request.ob_buf = smsg
61687  *         return request
61688  */
61689         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Ssend_init(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7;}
61690       }
61691 
61692       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":366
61693  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61694  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61695  *         with nogil: CHKERR( MPI_Ssend_init(             # <<<<<<<<<<<<<<
61696  *             smsg.buf, smsg.count, smsg.dtype,
61697  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61698  */
61699       /*finally:*/ {
61700         int __pyx_why;
61701         __pyx_why = 0; goto __pyx_L8;
61702         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
61703         __pyx_L8:;
61704         Py_BLOCK_THREADS
61705         switch (__pyx_why) {
61706           case 4: goto __pyx_L1_error;
61707         }
61708       }
61709   }
61710 
61711   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":369
61712  *             smsg.buf, smsg.count, smsg.dtype,
61713  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61714  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
61715  *         return request
61716  *
61717  */
61718   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
61719   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
61720   __Pyx_GOTREF(__pyx_v_request->__pyx_base.ob_buf);
61721   __Pyx_DECREF(__pyx_v_request->__pyx_base.ob_buf);
61722   __pyx_v_request->__pyx_base.ob_buf = ((PyObject *)__pyx_v_smsg);
61723 
61724   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":370
61725  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61726  *         request.ob_buf = smsg
61727  *         return request             # <<<<<<<<<<<<<<
61728  *
61729  *     def Rsend_init(self, buf, int dest=0, int tag=0):
61730  */
61731   __Pyx_XDECREF(__pyx_r);
61732   __Pyx_INCREF(((PyObject *)__pyx_v_request));
61733   __pyx_r = ((PyObject *)__pyx_v_request);
61734   goto __pyx_L0;
61735 
61736   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61737   goto __pyx_L0;
61738   __pyx_L1_error:;
61739   __Pyx_XDECREF(__pyx_t_1);
61740   __Pyx_AddTraceback("mpi4py.MPI.Comm.Ssend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61741   __pyx_r = NULL;
61742   __pyx_L0:;
61743   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
61744   __Pyx_XDECREF((PyObject *)__pyx_v_request);
61745   __Pyx_XGIVEREF(__pyx_r);
61746   __Pyx_RefNannyFinishContext();
61747   return __pyx_r;
61748 }
61749 
61750 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":372
61751  *         return request
61752  *
61753  *     def Rsend_init(self, buf, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
61754  *         """
61755  *         Persistent request for a send in ready mode
61756  */
61757 
61758 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_28Rsend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
61759 static char __pyx_doc_6mpi4py_3MPI_4Comm_28Rsend_init[] = "Comm.Rsend_init(self, buf, int dest=0, int tag=0)\n\n        Persistent request for a send in ready mode\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_28Rsend_init(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)61760 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_28Rsend_init(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61761   PyObject *__pyx_v_buf = 0;
61762   int __pyx_v_dest;
61763   int __pyx_v_tag;
61764   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *__pyx_v_smsg = 0;
61765   struct PyMPIPrequestObject *__pyx_v_request = 0;
61766   PyObject *__pyx_r = NULL;
61767   __Pyx_RefNannyDeclarations
61768   PyObject *__pyx_t_1 = NULL;
61769   int __pyx_t_2;
61770   int __pyx_lineno = 0;
61771   const char *__pyx_filename = NULL;
61772   int __pyx_clineno = 0;
61773   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
61774   __Pyx_RefNannySetupContext("Rsend_init");
61775   {
61776     PyObject* values[3] = {0,0,0};
61777     if (unlikely(__pyx_kwds)) {
61778       Py_ssize_t kw_args;
61779       switch (PyTuple_GET_SIZE(__pyx_args)) {
61780         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61781         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61782         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61783         case  0: break;
61784         default: goto __pyx_L5_argtuple_error;
61785       }
61786       kw_args = PyDict_Size(__pyx_kwds);
61787       switch (PyTuple_GET_SIZE(__pyx_args)) {
61788         case  0:
61789         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
61790         if (likely(values[0])) kw_args--;
61791         else goto __pyx_L5_argtuple_error;
61792         case  1:
61793         if (kw_args > 0) {
61794           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
61795           if (value) { values[1] = value; kw_args--; }
61796         }
61797         case  2:
61798         if (kw_args > 0) {
61799           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
61800           if (value) { values[2] = value; kw_args--; }
61801         }
61802       }
61803       if (unlikely(kw_args > 0)) {
61804         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Rsend_init") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61805       }
61806     } else {
61807       switch (PyTuple_GET_SIZE(__pyx_args)) {
61808         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
61809         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
61810         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
61811         break;
61812         default: goto __pyx_L5_argtuple_error;
61813       }
61814     }
61815     __pyx_v_buf = values[0];
61816     if (values[1]) {
61817       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61818     } else {
61819       __pyx_v_dest = ((int)0);
61820     }
61821     if (values[2]) {
61822       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61823     } else {
61824       __pyx_v_tag = ((int)0);
61825     }
61826   }
61827   goto __pyx_L4_argument_unpacking_done;
61828   __pyx_L5_argtuple_error:;
61829   __Pyx_RaiseArgtupleInvalid("Rsend_init", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
61830   __pyx_L3_error:;
61831   __Pyx_AddTraceback("mpi4py.MPI.Comm.Rsend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61832   __Pyx_RefNannyFinishContext();
61833   return NULL;
61834   __pyx_L4_argument_unpacking_done:;
61835 
61836   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":376
61837  *         Persistent request for a send in ready mode
61838  *         """
61839  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)             # <<<<<<<<<<<<<<
61840  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61841  *         with nogil: CHKERR( MPI_Rsend_init(
61842  */
61843   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_p2p_send(__pyx_v_buf, __pyx_v_dest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61844   __Pyx_GOTREF(__pyx_t_1);
61845   __pyx_v_smsg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)__pyx_t_1);
61846   __pyx_t_1 = 0;
61847 
61848   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":377
61849  *         """
61850  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61851  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)             # <<<<<<<<<<<<<<
61852  *         with nogil: CHKERR( MPI_Rsend_init(
61853  *             smsg.buf, smsg.count, smsg.dtype,
61854  */
61855   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Prequest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
61856   __Pyx_GOTREF(__pyx_t_1);
61857   __Pyx_INCREF(((PyObject *)((struct PyMPIPrequestObject *)__pyx_t_1)));
61858   __pyx_v_request = ((struct PyMPIPrequestObject *)__pyx_t_1);
61859   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
61860 
61861   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":378
61862  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61863  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61864  *         with nogil: CHKERR( MPI_Rsend_init(             # <<<<<<<<<<<<<<
61865  *             smsg.buf, smsg.count, smsg.dtype,
61866  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61867  */
61868   {
61869       #ifdef WITH_THREAD
61870       PyThreadState *_save = NULL;
61871       #endif
61872       Py_UNBLOCK_THREADS
61873       /*try:*/ {
61874 
61875         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":380
61876  *         with nogil: CHKERR( MPI_Rsend_init(
61877  *             smsg.buf, smsg.count, smsg.dtype,
61878  *             dest, tag, self.ob_mpi, &request.ob_mpi) )             # <<<<<<<<<<<<<<
61879  *         request.ob_buf = smsg
61880  *         return request
61881  */
61882         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Rsend_init(__pyx_v_smsg->buf, __pyx_v_smsg->count, __pyx_v_smsg->dtype, __pyx_v_dest, __pyx_v_tag, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_request->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L7;}
61883       }
61884 
61885       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":378
61886  *         cdef _p_msg_p2p smsg = message_p2p_send(buf, dest)
61887  *         cdef Prequest request = <Prequest>Prequest.__new__(Prequest)
61888  *         with nogil: CHKERR( MPI_Rsend_init(             # <<<<<<<<<<<<<<
61889  *             smsg.buf, smsg.count, smsg.dtype,
61890  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61891  */
61892       /*finally:*/ {
61893         int __pyx_why;
61894         __pyx_why = 0; goto __pyx_L8;
61895         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
61896         __pyx_L8:;
61897         Py_BLOCK_THREADS
61898         switch (__pyx_why) {
61899           case 4: goto __pyx_L1_error;
61900         }
61901       }
61902   }
61903 
61904   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":381
61905  *             smsg.buf, smsg.count, smsg.dtype,
61906  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61907  *         request.ob_buf = smsg             # <<<<<<<<<<<<<<
61908  *         return request
61909  *
61910  */
61911   __Pyx_INCREF(((PyObject *)__pyx_v_smsg));
61912   __Pyx_GIVEREF(((PyObject *)__pyx_v_smsg));
61913   __Pyx_GOTREF(__pyx_v_request->__pyx_base.ob_buf);
61914   __Pyx_DECREF(__pyx_v_request->__pyx_base.ob_buf);
61915   __pyx_v_request->__pyx_base.ob_buf = ((PyObject *)__pyx_v_smsg);
61916 
61917   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":382
61918  *             dest, tag, self.ob_mpi, &request.ob_mpi) )
61919  *         request.ob_buf = smsg
61920  *         return request             # <<<<<<<<<<<<<<
61921  *
61922  *     # Collective Communications
61923  */
61924   __Pyx_XDECREF(__pyx_r);
61925   __Pyx_INCREF(((PyObject *)__pyx_v_request));
61926   __pyx_r = ((PyObject *)__pyx_v_request);
61927   goto __pyx_L0;
61928 
61929   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61930   goto __pyx_L0;
61931   __pyx_L1_error:;
61932   __Pyx_XDECREF(__pyx_t_1);
61933   __Pyx_AddTraceback("mpi4py.MPI.Comm.Rsend_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
61934   __pyx_r = NULL;
61935   __pyx_L0:;
61936   __Pyx_XDECREF((PyObject *)__pyx_v_smsg);
61937   __Pyx_XDECREF((PyObject *)__pyx_v_request);
61938   __Pyx_XGIVEREF(__pyx_r);
61939   __Pyx_RefNannyFinishContext();
61940   return __pyx_r;
61941 }
61942 
61943 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":390
61944  *     # -----------------------
61945  *
61946  *     def Barrier(self):             # <<<<<<<<<<<<<<
61947  *         """
61948  *         Barrier synchronization
61949  */
61950 
61951 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_29Barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
61952 static char __pyx_doc_6mpi4py_3MPI_4Comm_29Barrier[] = "Comm.Barrier(self)\n\n        Barrier synchronization\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_29Barrier(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)61953 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_29Barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61954   PyObject *__pyx_r = NULL;
61955   __Pyx_RefNannyDeclarations
61956   int __pyx_t_1;
61957   int __pyx_lineno = 0;
61958   const char *__pyx_filename = NULL;
61959   int __pyx_clineno = 0;
61960   __Pyx_RefNannySetupContext("Barrier");
61961   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
61962     __Pyx_RaiseArgtupleInvalid("Barrier", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
61963   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Barrier", 0))) return NULL;
61964 
61965   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":394
61966  *         Barrier synchronization
61967  *         """
61968  *         with nogil: CHKERR( MPI_Barrier(self.ob_mpi) )             # <<<<<<<<<<<<<<
61969  *
61970  *     # Global Communication Functions
61971  */
61972   {
61973       #ifdef WITH_THREAD
61974       PyThreadState *_save = NULL;
61975       #endif
61976       Py_UNBLOCK_THREADS
61977       /*try:*/ {
61978         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Barrier(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L6;}
61979       }
61980       /*finally:*/ {
61981         int __pyx_why;
61982         __pyx_why = 0; goto __pyx_L7;
61983         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
61984         __pyx_L7:;
61985         Py_BLOCK_THREADS
61986         switch (__pyx_why) {
61987           case 4: goto __pyx_L1_error;
61988         }
61989       }
61990   }
61991 
61992   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
61993   goto __pyx_L0;
61994   __pyx_L1_error:;
61995   __Pyx_AddTraceback("mpi4py.MPI.Comm.Barrier", __pyx_clineno, __pyx_lineno, __pyx_filename);
61996   __pyx_r = NULL;
61997   __pyx_L0:;
61998   __Pyx_XGIVEREF(__pyx_r);
61999   __Pyx_RefNannyFinishContext();
62000   return __pyx_r;
62001 }
62002 
62003 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":399
62004  *     # ------------------------------
62005  *
62006  *     def Bcast(self, buf, int root=0):             # <<<<<<<<<<<<<<
62007  *         """
62008  *         Broadcast a message from one process
62009  */
62010 
62011 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_30Bcast(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62012 static char __pyx_doc_6mpi4py_3MPI_4Comm_30Bcast[] = "Comm.Bcast(self, buf, int root=0)\n\n        Broadcast a message from one process\n        to all other processes in a group\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_30Bcast(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62013 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_30Bcast(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62014   PyObject *__pyx_v_buf = 0;
62015   int __pyx_v_root;
62016   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62017   PyObject *__pyx_r = NULL;
62018   __Pyx_RefNannyDeclarations
62019   PyObject *__pyx_t_1 = NULL;
62020   int __pyx_t_2;
62021   int __pyx_lineno = 0;
62022   const char *__pyx_filename = NULL;
62023   int __pyx_clineno = 0;
62024   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__root,0};
62025   __Pyx_RefNannySetupContext("Bcast");
62026   {
62027     PyObject* values[2] = {0,0};
62028     if (unlikely(__pyx_kwds)) {
62029       Py_ssize_t kw_args;
62030       switch (PyTuple_GET_SIZE(__pyx_args)) {
62031         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62032         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62033         case  0: break;
62034         default: goto __pyx_L5_argtuple_error;
62035       }
62036       kw_args = PyDict_Size(__pyx_kwds);
62037       switch (PyTuple_GET_SIZE(__pyx_args)) {
62038         case  0:
62039         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
62040         if (likely(values[0])) kw_args--;
62041         else goto __pyx_L5_argtuple_error;
62042         case  1:
62043         if (kw_args > 0) {
62044           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
62045           if (value) { values[1] = value; kw_args--; }
62046         }
62047       }
62048       if (unlikely(kw_args > 0)) {
62049         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Bcast") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62050       }
62051     } else {
62052       switch (PyTuple_GET_SIZE(__pyx_args)) {
62053         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62054         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62055         break;
62056         default: goto __pyx_L5_argtuple_error;
62057       }
62058     }
62059     __pyx_v_buf = values[0];
62060     if (values[1]) {
62061       __pyx_v_root = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62062     } else {
62063       __pyx_v_root = ((int)0);
62064     }
62065   }
62066   goto __pyx_L4_argument_unpacking_done;
62067   __pyx_L5_argtuple_error:;
62068   __Pyx_RaiseArgtupleInvalid("Bcast", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62069   __pyx_L3_error:;
62070   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
62071   __Pyx_RefNannyFinishContext();
62072   return NULL;
62073   __pyx_L4_argument_unpacking_done:;
62074 
62075   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":404
62076  *         to all other processes in a group
62077  *         """
62078  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62079  *         m.for_bcast(buf, root, self.ob_mpi)
62080  *         with nogil: CHKERR( MPI_Bcast(
62081  */
62082   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62083   __Pyx_GOTREF(__pyx_t_1);
62084   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62085   __pyx_t_1 = 0;
62086 
62087   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":405
62088  *         """
62089  *         cdef _p_msg_cco m = message_cco()
62090  *         m.for_bcast(buf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
62091  *         with nogil: CHKERR( MPI_Bcast(
62092  *             m.sbuf, m.scount, m.stype,
62093  */
62094   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_bcast(__pyx_v_m, __pyx_v_buf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62095 
62096   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":406
62097  *         cdef _p_msg_cco m = message_cco()
62098  *         m.for_bcast(buf, root, self.ob_mpi)
62099  *         with nogil: CHKERR( MPI_Bcast(             # <<<<<<<<<<<<<<
62100  *             m.sbuf, m.scount, m.stype,
62101  *             root, self.ob_mpi) )
62102  */
62103   {
62104       #ifdef WITH_THREAD
62105       PyThreadState *_save = NULL;
62106       #endif
62107       Py_UNBLOCK_THREADS
62108       /*try:*/ {
62109 
62110         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":408
62111  *         with nogil: CHKERR( MPI_Bcast(
62112  *             m.sbuf, m.scount, m.stype,
62113  *             root, self.ob_mpi) )             # <<<<<<<<<<<<<<
62114  *
62115  *     def Gather(self, sendbuf, recvbuf, int root=0):
62116  */
62117         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Bcast(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L7;}
62118       }
62119 
62120       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":406
62121  *         cdef _p_msg_cco m = message_cco()
62122  *         m.for_bcast(buf, root, self.ob_mpi)
62123  *         with nogil: CHKERR( MPI_Bcast(             # <<<<<<<<<<<<<<
62124  *             m.sbuf, m.scount, m.stype,
62125  *             root, self.ob_mpi) )
62126  */
62127       /*finally:*/ {
62128         int __pyx_why;
62129         __pyx_why = 0; goto __pyx_L8;
62130         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62131         __pyx_L8:;
62132         Py_BLOCK_THREADS
62133         switch (__pyx_why) {
62134           case 4: goto __pyx_L1_error;
62135         }
62136       }
62137   }
62138 
62139   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62140   goto __pyx_L0;
62141   __pyx_L1_error:;
62142   __Pyx_XDECREF(__pyx_t_1);
62143   __Pyx_AddTraceback("mpi4py.MPI.Comm.Bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
62144   __pyx_r = NULL;
62145   __pyx_L0:;
62146   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62147   __Pyx_XGIVEREF(__pyx_r);
62148   __Pyx_RefNannyFinishContext();
62149   return __pyx_r;
62150 }
62151 
62152 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":410
62153  *             root, self.ob_mpi) )
62154  *
62155  *     def Gather(self, sendbuf, recvbuf, int root=0):             # <<<<<<<<<<<<<<
62156  *         """
62157  *         Gather together values from a group of processes
62158  */
62159 
62160 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_31Gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62161 static char __pyx_doc_6mpi4py_3MPI_4Comm_31Gather[] = "Comm.Gather(self, sendbuf, recvbuf, int root=0)\n\n        Gather together values from a group of processes\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_31Gather(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62162 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_31Gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62163   PyObject *__pyx_v_sendbuf = 0;
62164   PyObject *__pyx_v_recvbuf = 0;
62165   int __pyx_v_root;
62166   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62167   PyObject *__pyx_r = NULL;
62168   __Pyx_RefNannyDeclarations
62169   PyObject *__pyx_t_1 = NULL;
62170   int __pyx_t_2;
62171   int __pyx_lineno = 0;
62172   const char *__pyx_filename = NULL;
62173   int __pyx_clineno = 0;
62174   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__root,0};
62175   __Pyx_RefNannySetupContext("Gather");
62176   {
62177     PyObject* values[3] = {0,0,0};
62178     if (unlikely(__pyx_kwds)) {
62179       Py_ssize_t kw_args;
62180       switch (PyTuple_GET_SIZE(__pyx_args)) {
62181         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62182         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62183         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62184         case  0: break;
62185         default: goto __pyx_L5_argtuple_error;
62186       }
62187       kw_args = PyDict_Size(__pyx_kwds);
62188       switch (PyTuple_GET_SIZE(__pyx_args)) {
62189         case  0:
62190         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62191         if (likely(values[0])) kw_args--;
62192         else goto __pyx_L5_argtuple_error;
62193         case  1:
62194         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62195         if (likely(values[1])) kw_args--;
62196         else {
62197           __Pyx_RaiseArgtupleInvalid("Gather", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62198         }
62199         case  2:
62200         if (kw_args > 0) {
62201           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
62202           if (value) { values[2] = value; kw_args--; }
62203         }
62204       }
62205       if (unlikely(kw_args > 0)) {
62206         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Gather") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62207       }
62208     } else {
62209       switch (PyTuple_GET_SIZE(__pyx_args)) {
62210         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62211         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62212         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62213         break;
62214         default: goto __pyx_L5_argtuple_error;
62215       }
62216     }
62217     __pyx_v_sendbuf = values[0];
62218     __pyx_v_recvbuf = values[1];
62219     if (values[2]) {
62220       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62221     } else {
62222       __pyx_v_root = ((int)0);
62223     }
62224   }
62225   goto __pyx_L4_argument_unpacking_done;
62226   __pyx_L5_argtuple_error:;
62227   __Pyx_RaiseArgtupleInvalid("Gather", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62228   __pyx_L3_error:;
62229   __Pyx_AddTraceback("mpi4py.MPI.Comm.Gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
62230   __Pyx_RefNannyFinishContext();
62231   return NULL;
62232   __pyx_L4_argument_unpacking_done:;
62233 
62234   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":414
62235  *         Gather together values from a group of processes
62236  *         """
62237  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62238  *         m.for_gather(0, sendbuf, recvbuf, root, self.ob_mpi)
62239  *         with nogil: CHKERR( MPI_Gather(
62240  */
62241   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62242   __Pyx_GOTREF(__pyx_t_1);
62243   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62244   __pyx_t_1 = 0;
62245 
62246   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":415
62247  *         """
62248  *         cdef _p_msg_cco m = message_cco()
62249  *         m.for_gather(0, sendbuf, recvbuf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
62250  *         with nogil: CHKERR( MPI_Gather(
62251  *             m.sbuf, m.scount, m.stype,
62252  */
62253   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_gather(__pyx_v_m, 0, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62254 
62255   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":416
62256  *         cdef _p_msg_cco m = message_cco()
62257  *         m.for_gather(0, sendbuf, recvbuf, root, self.ob_mpi)
62258  *         with nogil: CHKERR( MPI_Gather(             # <<<<<<<<<<<<<<
62259  *             m.sbuf, m.scount, m.stype,
62260  *             m.rbuf, m.rcount, m.rtype,
62261  */
62262   {
62263       #ifdef WITH_THREAD
62264       PyThreadState *_save = NULL;
62265       #endif
62266       Py_UNBLOCK_THREADS
62267       /*try:*/ {
62268 
62269         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":419
62270  *             m.sbuf, m.scount, m.stype,
62271  *             m.rbuf, m.rcount, m.rtype,
62272  *             root, self.ob_mpi) )             # <<<<<<<<<<<<<<
62273  *
62274  *     def Gatherv(self, sendbuf, recvbuf, int root=0):
62275  */
62276         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Gather(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L7;}
62277       }
62278 
62279       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":416
62280  *         cdef _p_msg_cco m = message_cco()
62281  *         m.for_gather(0, sendbuf, recvbuf, root, self.ob_mpi)
62282  *         with nogil: CHKERR( MPI_Gather(             # <<<<<<<<<<<<<<
62283  *             m.sbuf, m.scount, m.stype,
62284  *             m.rbuf, m.rcount, m.rtype,
62285  */
62286       /*finally:*/ {
62287         int __pyx_why;
62288         __pyx_why = 0; goto __pyx_L8;
62289         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62290         __pyx_L8:;
62291         Py_BLOCK_THREADS
62292         switch (__pyx_why) {
62293           case 4: goto __pyx_L1_error;
62294         }
62295       }
62296   }
62297 
62298   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62299   goto __pyx_L0;
62300   __pyx_L1_error:;
62301   __Pyx_XDECREF(__pyx_t_1);
62302   __Pyx_AddTraceback("mpi4py.MPI.Comm.Gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
62303   __pyx_r = NULL;
62304   __pyx_L0:;
62305   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62306   __Pyx_XGIVEREF(__pyx_r);
62307   __Pyx_RefNannyFinishContext();
62308   return __pyx_r;
62309 }
62310 
62311 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":421
62312  *             root, self.ob_mpi) )
62313  *
62314  *     def Gatherv(self, sendbuf, recvbuf, int root=0):             # <<<<<<<<<<<<<<
62315  *         """
62316  *         Gather Vector, gather data to one process from all other
62317  */
62318 
62319 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_32Gatherv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62320 static char __pyx_doc_6mpi4py_3MPI_4Comm_32Gatherv[] = "Comm.Gatherv(self, sendbuf, recvbuf, int root=0)\n\n        Gather Vector, gather data to one process from all other\n        processes in a group providing different amount of data and\n        displacements at the receiving sides\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_32Gatherv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62321 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_32Gatherv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62322   PyObject *__pyx_v_sendbuf = 0;
62323   PyObject *__pyx_v_recvbuf = 0;
62324   int __pyx_v_root;
62325   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62326   PyObject *__pyx_r = NULL;
62327   __Pyx_RefNannyDeclarations
62328   PyObject *__pyx_t_1 = NULL;
62329   int __pyx_t_2;
62330   int __pyx_lineno = 0;
62331   const char *__pyx_filename = NULL;
62332   int __pyx_clineno = 0;
62333   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__root,0};
62334   __Pyx_RefNannySetupContext("Gatherv");
62335   {
62336     PyObject* values[3] = {0,0,0};
62337     if (unlikely(__pyx_kwds)) {
62338       Py_ssize_t kw_args;
62339       switch (PyTuple_GET_SIZE(__pyx_args)) {
62340         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62341         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62342         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62343         case  0: break;
62344         default: goto __pyx_L5_argtuple_error;
62345       }
62346       kw_args = PyDict_Size(__pyx_kwds);
62347       switch (PyTuple_GET_SIZE(__pyx_args)) {
62348         case  0:
62349         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62350         if (likely(values[0])) kw_args--;
62351         else goto __pyx_L5_argtuple_error;
62352         case  1:
62353         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62354         if (likely(values[1])) kw_args--;
62355         else {
62356           __Pyx_RaiseArgtupleInvalid("Gatherv", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62357         }
62358         case  2:
62359         if (kw_args > 0) {
62360           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
62361           if (value) { values[2] = value; kw_args--; }
62362         }
62363       }
62364       if (unlikely(kw_args > 0)) {
62365         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Gatherv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62366       }
62367     } else {
62368       switch (PyTuple_GET_SIZE(__pyx_args)) {
62369         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62370         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62371         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62372         break;
62373         default: goto __pyx_L5_argtuple_error;
62374       }
62375     }
62376     __pyx_v_sendbuf = values[0];
62377     __pyx_v_recvbuf = values[1];
62378     if (values[2]) {
62379       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62380     } else {
62381       __pyx_v_root = ((int)0);
62382     }
62383   }
62384   goto __pyx_L4_argument_unpacking_done;
62385   __pyx_L5_argtuple_error:;
62386   __Pyx_RaiseArgtupleInvalid("Gatherv", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62387   __pyx_L3_error:;
62388   __Pyx_AddTraceback("mpi4py.MPI.Comm.Gatherv", __pyx_clineno, __pyx_lineno, __pyx_filename);
62389   __Pyx_RefNannyFinishContext();
62390   return NULL;
62391   __pyx_L4_argument_unpacking_done:;
62392 
62393   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":427
62394  *         displacements at the receiving sides
62395  *         """
62396  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62397  *         m.for_gather(1, sendbuf, recvbuf, root, self.ob_mpi)
62398  *         with nogil: CHKERR( MPI_Gatherv(
62399  */
62400   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62401   __Pyx_GOTREF(__pyx_t_1);
62402   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62403   __pyx_t_1 = 0;
62404 
62405   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":428
62406  *         """
62407  *         cdef _p_msg_cco m = message_cco()
62408  *         m.for_gather(1, sendbuf, recvbuf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
62409  *         with nogil: CHKERR( MPI_Gatherv(
62410  *             m.sbuf, m.scount,             m.stype,
62411  */
62412   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_gather(__pyx_v_m, 1, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62413 
62414   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":429
62415  *         cdef _p_msg_cco m = message_cco()
62416  *         m.for_gather(1, sendbuf, recvbuf, root, self.ob_mpi)
62417  *         with nogil: CHKERR( MPI_Gatherv(             # <<<<<<<<<<<<<<
62418  *             m.sbuf, m.scount,             m.stype,
62419  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
62420  */
62421   {
62422       #ifdef WITH_THREAD
62423       PyThreadState *_save = NULL;
62424       #endif
62425       Py_UNBLOCK_THREADS
62426       /*try:*/ {
62427 
62428         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":432
62429  *             m.sbuf, m.scount,             m.stype,
62430  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
62431  *             root, self.ob_mpi) )             # <<<<<<<<<<<<<<
62432  *
62433  *     def Scatter(self, sendbuf, recvbuf, int root=0):
62434  */
62435         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Gatherv(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcounts, __pyx_v_m->rdispls, __pyx_v_m->rtype, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L7;}
62436       }
62437 
62438       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":429
62439  *         cdef _p_msg_cco m = message_cco()
62440  *         m.for_gather(1, sendbuf, recvbuf, root, self.ob_mpi)
62441  *         with nogil: CHKERR( MPI_Gatherv(             # <<<<<<<<<<<<<<
62442  *             m.sbuf, m.scount,             m.stype,
62443  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
62444  */
62445       /*finally:*/ {
62446         int __pyx_why;
62447         __pyx_why = 0; goto __pyx_L8;
62448         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62449         __pyx_L8:;
62450         Py_BLOCK_THREADS
62451         switch (__pyx_why) {
62452           case 4: goto __pyx_L1_error;
62453         }
62454       }
62455   }
62456 
62457   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62458   goto __pyx_L0;
62459   __pyx_L1_error:;
62460   __Pyx_XDECREF(__pyx_t_1);
62461   __Pyx_AddTraceback("mpi4py.MPI.Comm.Gatherv", __pyx_clineno, __pyx_lineno, __pyx_filename);
62462   __pyx_r = NULL;
62463   __pyx_L0:;
62464   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62465   __Pyx_XGIVEREF(__pyx_r);
62466   __Pyx_RefNannyFinishContext();
62467   return __pyx_r;
62468 }
62469 
62470 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":434
62471  *             root, self.ob_mpi) )
62472  *
62473  *     def Scatter(self, sendbuf, recvbuf, int root=0):             # <<<<<<<<<<<<<<
62474  *         """
62475  *         Scatter data from one process
62476  */
62477 
62478 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_33Scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62479 static char __pyx_doc_6mpi4py_3MPI_4Comm_33Scatter[] = "Comm.Scatter(self, sendbuf, recvbuf, int root=0)\n\n        Scatter data from one process\n        to all other processes in a group\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_33Scatter(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62480 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_33Scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62481   PyObject *__pyx_v_sendbuf = 0;
62482   PyObject *__pyx_v_recvbuf = 0;
62483   int __pyx_v_root;
62484   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62485   PyObject *__pyx_r = NULL;
62486   __Pyx_RefNannyDeclarations
62487   PyObject *__pyx_t_1 = NULL;
62488   int __pyx_t_2;
62489   int __pyx_lineno = 0;
62490   const char *__pyx_filename = NULL;
62491   int __pyx_clineno = 0;
62492   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__root,0};
62493   __Pyx_RefNannySetupContext("Scatter");
62494   {
62495     PyObject* values[3] = {0,0,0};
62496     if (unlikely(__pyx_kwds)) {
62497       Py_ssize_t kw_args;
62498       switch (PyTuple_GET_SIZE(__pyx_args)) {
62499         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62500         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62501         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62502         case  0: break;
62503         default: goto __pyx_L5_argtuple_error;
62504       }
62505       kw_args = PyDict_Size(__pyx_kwds);
62506       switch (PyTuple_GET_SIZE(__pyx_args)) {
62507         case  0:
62508         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62509         if (likely(values[0])) kw_args--;
62510         else goto __pyx_L5_argtuple_error;
62511         case  1:
62512         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62513         if (likely(values[1])) kw_args--;
62514         else {
62515           __Pyx_RaiseArgtupleInvalid("Scatter", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62516         }
62517         case  2:
62518         if (kw_args > 0) {
62519           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
62520           if (value) { values[2] = value; kw_args--; }
62521         }
62522       }
62523       if (unlikely(kw_args > 0)) {
62524         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Scatter") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62525       }
62526     } else {
62527       switch (PyTuple_GET_SIZE(__pyx_args)) {
62528         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62529         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62530         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62531         break;
62532         default: goto __pyx_L5_argtuple_error;
62533       }
62534     }
62535     __pyx_v_sendbuf = values[0];
62536     __pyx_v_recvbuf = values[1];
62537     if (values[2]) {
62538       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62539     } else {
62540       __pyx_v_root = ((int)0);
62541     }
62542   }
62543   goto __pyx_L4_argument_unpacking_done;
62544   __pyx_L5_argtuple_error:;
62545   __Pyx_RaiseArgtupleInvalid("Scatter", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62546   __pyx_L3_error:;
62547   __Pyx_AddTraceback("mpi4py.MPI.Comm.Scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
62548   __Pyx_RefNannyFinishContext();
62549   return NULL;
62550   __pyx_L4_argument_unpacking_done:;
62551 
62552   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":439
62553  *         to all other processes in a group
62554  *         """
62555  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62556  *         m.for_scatter(0, sendbuf, recvbuf, root, self.ob_mpi)
62557  *         with nogil: CHKERR( MPI_Scatter(
62558  */
62559   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62560   __Pyx_GOTREF(__pyx_t_1);
62561   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62562   __pyx_t_1 = 0;
62563 
62564   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":440
62565  *         """
62566  *         cdef _p_msg_cco m = message_cco()
62567  *         m.for_scatter(0, sendbuf, recvbuf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
62568  *         with nogil: CHKERR( MPI_Scatter(
62569  *             m.sbuf, m.scount, m.stype,
62570  */
62571   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_scatter(__pyx_v_m, 0, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62572 
62573   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":441
62574  *         cdef _p_msg_cco m = message_cco()
62575  *         m.for_scatter(0, sendbuf, recvbuf, root, self.ob_mpi)
62576  *         with nogil: CHKERR( MPI_Scatter(             # <<<<<<<<<<<<<<
62577  *             m.sbuf, m.scount, m.stype,
62578  *             m.rbuf, m.rcount, m.rtype,
62579  */
62580   {
62581       #ifdef WITH_THREAD
62582       PyThreadState *_save = NULL;
62583       #endif
62584       Py_UNBLOCK_THREADS
62585       /*try:*/ {
62586 
62587         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":444
62588  *             m.sbuf, m.scount, m.stype,
62589  *             m.rbuf, m.rcount, m.rtype,
62590  *             root, self.ob_mpi) )             # <<<<<<<<<<<<<<
62591  *
62592  *     def Scatterv(self, sendbuf, recvbuf, int root=0):
62593  */
62594         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Scatter(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L7;}
62595       }
62596 
62597       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":441
62598  *         cdef _p_msg_cco m = message_cco()
62599  *         m.for_scatter(0, sendbuf, recvbuf, root, self.ob_mpi)
62600  *         with nogil: CHKERR( MPI_Scatter(             # <<<<<<<<<<<<<<
62601  *             m.sbuf, m.scount, m.stype,
62602  *             m.rbuf, m.rcount, m.rtype,
62603  */
62604       /*finally:*/ {
62605         int __pyx_why;
62606         __pyx_why = 0; goto __pyx_L8;
62607         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62608         __pyx_L8:;
62609         Py_BLOCK_THREADS
62610         switch (__pyx_why) {
62611           case 4: goto __pyx_L1_error;
62612         }
62613       }
62614   }
62615 
62616   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62617   goto __pyx_L0;
62618   __pyx_L1_error:;
62619   __Pyx_XDECREF(__pyx_t_1);
62620   __Pyx_AddTraceback("mpi4py.MPI.Comm.Scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
62621   __pyx_r = NULL;
62622   __pyx_L0:;
62623   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62624   __Pyx_XGIVEREF(__pyx_r);
62625   __Pyx_RefNannyFinishContext();
62626   return __pyx_r;
62627 }
62628 
62629 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":446
62630  *             root, self.ob_mpi) )
62631  *
62632  *     def Scatterv(self, sendbuf, recvbuf, int root=0):             # <<<<<<<<<<<<<<
62633  *         """
62634  *         Scatter Vector, scatter data from one process to all other
62635  */
62636 
62637 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_34Scatterv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62638 static char __pyx_doc_6mpi4py_3MPI_4Comm_34Scatterv[] = "Comm.Scatterv(self, sendbuf, recvbuf, int root=0)\n\n        Scatter Vector, scatter data from one process to all other\n        processes in a group providing different amount of data and\n        displacements at the sending side\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_34Scatterv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62639 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_34Scatterv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62640   PyObject *__pyx_v_sendbuf = 0;
62641   PyObject *__pyx_v_recvbuf = 0;
62642   int __pyx_v_root;
62643   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62644   PyObject *__pyx_r = NULL;
62645   __Pyx_RefNannyDeclarations
62646   PyObject *__pyx_t_1 = NULL;
62647   int __pyx_t_2;
62648   int __pyx_lineno = 0;
62649   const char *__pyx_filename = NULL;
62650   int __pyx_clineno = 0;
62651   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__root,0};
62652   __Pyx_RefNannySetupContext("Scatterv");
62653   {
62654     PyObject* values[3] = {0,0,0};
62655     if (unlikely(__pyx_kwds)) {
62656       Py_ssize_t kw_args;
62657       switch (PyTuple_GET_SIZE(__pyx_args)) {
62658         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62659         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62660         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62661         case  0: break;
62662         default: goto __pyx_L5_argtuple_error;
62663       }
62664       kw_args = PyDict_Size(__pyx_kwds);
62665       switch (PyTuple_GET_SIZE(__pyx_args)) {
62666         case  0:
62667         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62668         if (likely(values[0])) kw_args--;
62669         else goto __pyx_L5_argtuple_error;
62670         case  1:
62671         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62672         if (likely(values[1])) kw_args--;
62673         else {
62674           __Pyx_RaiseArgtupleInvalid("Scatterv", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62675         }
62676         case  2:
62677         if (kw_args > 0) {
62678           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
62679           if (value) { values[2] = value; kw_args--; }
62680         }
62681       }
62682       if (unlikely(kw_args > 0)) {
62683         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Scatterv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62684       }
62685     } else {
62686       switch (PyTuple_GET_SIZE(__pyx_args)) {
62687         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
62688         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62689         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62690         break;
62691         default: goto __pyx_L5_argtuple_error;
62692       }
62693     }
62694     __pyx_v_sendbuf = values[0];
62695     __pyx_v_recvbuf = values[1];
62696     if (values[2]) {
62697       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62698     } else {
62699       __pyx_v_root = ((int)0);
62700     }
62701   }
62702   goto __pyx_L4_argument_unpacking_done;
62703   __pyx_L5_argtuple_error:;
62704   __Pyx_RaiseArgtupleInvalid("Scatterv", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62705   __pyx_L3_error:;
62706   __Pyx_AddTraceback("mpi4py.MPI.Comm.Scatterv", __pyx_clineno, __pyx_lineno, __pyx_filename);
62707   __Pyx_RefNannyFinishContext();
62708   return NULL;
62709   __pyx_L4_argument_unpacking_done:;
62710 
62711   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":452
62712  *         displacements at the sending side
62713  *         """
62714  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62715  *         m.for_scatter(1, sendbuf, recvbuf, root, self.ob_mpi)
62716  *         with nogil: CHKERR( MPI_Scatterv(
62717  */
62718   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62719   __Pyx_GOTREF(__pyx_t_1);
62720   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62721   __pyx_t_1 = 0;
62722 
62723   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":453
62724  *         """
62725  *         cdef _p_msg_cco m = message_cco()
62726  *         m.for_scatter(1, sendbuf, recvbuf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
62727  *         with nogil: CHKERR( MPI_Scatterv(
62728  *             m.sbuf, m.scounts, m.sdispls, m.stype,
62729  */
62730   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_scatter(__pyx_v_m, 1, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62731 
62732   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":454
62733  *         cdef _p_msg_cco m = message_cco()
62734  *         m.for_scatter(1, sendbuf, recvbuf, root, self.ob_mpi)
62735  *         with nogil: CHKERR( MPI_Scatterv(             # <<<<<<<<<<<<<<
62736  *             m.sbuf, m.scounts, m.sdispls, m.stype,
62737  *             m.rbuf, m.rcount,             m.rtype,
62738  */
62739   {
62740       #ifdef WITH_THREAD
62741       PyThreadState *_save = NULL;
62742       #endif
62743       Py_UNBLOCK_THREADS
62744       /*try:*/ {
62745 
62746         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":457
62747  *             m.sbuf, m.scounts, m.sdispls, m.stype,
62748  *             m.rbuf, m.rcount,             m.rtype,
62749  *             root, self.ob_mpi) )             # <<<<<<<<<<<<<<
62750  *
62751  *     def Allgather(self, sendbuf, recvbuf):
62752  */
62753         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Scatterv(__pyx_v_m->sbuf, __pyx_v_m->scounts, __pyx_v_m->sdispls, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L7;}
62754       }
62755 
62756       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":454
62757  *         cdef _p_msg_cco m = message_cco()
62758  *         m.for_scatter(1, sendbuf, recvbuf, root, self.ob_mpi)
62759  *         with nogil: CHKERR( MPI_Scatterv(             # <<<<<<<<<<<<<<
62760  *             m.sbuf, m.scounts, m.sdispls, m.stype,
62761  *             m.rbuf, m.rcount,             m.rtype,
62762  */
62763       /*finally:*/ {
62764         int __pyx_why;
62765         __pyx_why = 0; goto __pyx_L8;
62766         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62767         __pyx_L8:;
62768         Py_BLOCK_THREADS
62769         switch (__pyx_why) {
62770           case 4: goto __pyx_L1_error;
62771         }
62772       }
62773   }
62774 
62775   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62776   goto __pyx_L0;
62777   __pyx_L1_error:;
62778   __Pyx_XDECREF(__pyx_t_1);
62779   __Pyx_AddTraceback("mpi4py.MPI.Comm.Scatterv", __pyx_clineno, __pyx_lineno, __pyx_filename);
62780   __pyx_r = NULL;
62781   __pyx_L0:;
62782   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62783   __Pyx_XGIVEREF(__pyx_r);
62784   __Pyx_RefNannyFinishContext();
62785   return __pyx_r;
62786 }
62787 
62788 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":459
62789  *             root, self.ob_mpi) )
62790  *
62791  *     def Allgather(self, sendbuf, recvbuf):             # <<<<<<<<<<<<<<
62792  *         """
62793  *         Gather to All, gather data from all processes and
62794  */
62795 
62796 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_35Allgather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62797 static char __pyx_doc_6mpi4py_3MPI_4Comm_35Allgather[] = "Comm.Allgather(self, sendbuf, recvbuf)\n\n        Gather to All, gather data from all processes and\n        distribute it to all other processes in a group\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_35Allgather(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62798 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_35Allgather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62799   PyObject *__pyx_v_sendbuf = 0;
62800   PyObject *__pyx_v_recvbuf = 0;
62801   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62802   PyObject *__pyx_r = NULL;
62803   __Pyx_RefNannyDeclarations
62804   PyObject *__pyx_t_1 = NULL;
62805   int __pyx_t_2;
62806   int __pyx_lineno = 0;
62807   const char *__pyx_filename = NULL;
62808   int __pyx_clineno = 0;
62809   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,0};
62810   __Pyx_RefNannySetupContext("Allgather");
62811   {
62812     PyObject* values[2] = {0,0};
62813     if (unlikely(__pyx_kwds)) {
62814       Py_ssize_t kw_args;
62815       switch (PyTuple_GET_SIZE(__pyx_args)) {
62816         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62817         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62818         case  0: break;
62819         default: goto __pyx_L5_argtuple_error;
62820       }
62821       kw_args = PyDict_Size(__pyx_kwds);
62822       switch (PyTuple_GET_SIZE(__pyx_args)) {
62823         case  0:
62824         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62825         if (likely(values[0])) kw_args--;
62826         else goto __pyx_L5_argtuple_error;
62827         case  1:
62828         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62829         if (likely(values[1])) kw_args--;
62830         else {
62831           __Pyx_RaiseArgtupleInvalid("Allgather", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62832         }
62833       }
62834       if (unlikely(kw_args > 0)) {
62835         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Allgather") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62836       }
62837     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
62838       goto __pyx_L5_argtuple_error;
62839     } else {
62840       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62841       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62842     }
62843     __pyx_v_sendbuf = values[0];
62844     __pyx_v_recvbuf = values[1];
62845   }
62846   goto __pyx_L4_argument_unpacking_done;
62847   __pyx_L5_argtuple_error:;
62848   __Pyx_RaiseArgtupleInvalid("Allgather", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62849   __pyx_L3_error:;
62850   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
62851   __Pyx_RefNannyFinishContext();
62852   return NULL;
62853   __pyx_L4_argument_unpacking_done:;
62854 
62855   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":464
62856  *         distribute it to all other processes in a group
62857  *         """
62858  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
62859  *         m.for_allgather(0, sendbuf, recvbuf, self.ob_mpi)
62860  *         with nogil: CHKERR( MPI_Allgather(
62861  */
62862   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62863   __Pyx_GOTREF(__pyx_t_1);
62864   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
62865   __pyx_t_1 = 0;
62866 
62867   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":465
62868  *         """
62869  *         cdef _p_msg_cco m = message_cco()
62870  *         m.for_allgather(0, sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
62871  *         with nogil: CHKERR( MPI_Allgather(
62872  *             m.sbuf, m.scount, m.stype,
62873  */
62874   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_allgather(__pyx_v_m, 0, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
62875 
62876   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":466
62877  *         cdef _p_msg_cco m = message_cco()
62878  *         m.for_allgather(0, sendbuf, recvbuf, self.ob_mpi)
62879  *         with nogil: CHKERR( MPI_Allgather(             # <<<<<<<<<<<<<<
62880  *             m.sbuf, m.scount, m.stype,
62881  *             m.rbuf, m.rcount, m.rtype,
62882  */
62883   {
62884       #ifdef WITH_THREAD
62885       PyThreadState *_save = NULL;
62886       #endif
62887       Py_UNBLOCK_THREADS
62888       /*try:*/ {
62889 
62890         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":469
62891  *             m.sbuf, m.scount, m.stype,
62892  *             m.rbuf, m.rcount, m.rtype,
62893  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
62894  *
62895  *     def Allgatherv(self, sendbuf, recvbuf):
62896  */
62897         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allgather(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L7;}
62898       }
62899 
62900       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":466
62901  *         cdef _p_msg_cco m = message_cco()
62902  *         m.for_allgather(0, sendbuf, recvbuf, self.ob_mpi)
62903  *         with nogil: CHKERR( MPI_Allgather(             # <<<<<<<<<<<<<<
62904  *             m.sbuf, m.scount, m.stype,
62905  *             m.rbuf, m.rcount, m.rtype,
62906  */
62907       /*finally:*/ {
62908         int __pyx_why;
62909         __pyx_why = 0; goto __pyx_L8;
62910         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
62911         __pyx_L8:;
62912         Py_BLOCK_THREADS
62913         switch (__pyx_why) {
62914           case 4: goto __pyx_L1_error;
62915         }
62916       }
62917   }
62918 
62919   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
62920   goto __pyx_L0;
62921   __pyx_L1_error:;
62922   __Pyx_XDECREF(__pyx_t_1);
62923   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
62924   __pyx_r = NULL;
62925   __pyx_L0:;
62926   __Pyx_XDECREF((PyObject *)__pyx_v_m);
62927   __Pyx_XGIVEREF(__pyx_r);
62928   __Pyx_RefNannyFinishContext();
62929   return __pyx_r;
62930 }
62931 
62932 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":471
62933  *             self.ob_mpi) )
62934  *
62935  *     def Allgatherv(self, sendbuf, recvbuf):             # <<<<<<<<<<<<<<
62936  *         """
62937  *         Gather to All Vector, gather data from all processes and
62938  */
62939 
62940 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_36Allgatherv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
62941 static char __pyx_doc_6mpi4py_3MPI_4Comm_36Allgatherv[] = "Comm.Allgatherv(self, sendbuf, recvbuf)\n\n        Gather to All Vector, gather data from all processes and\n        distribute it to all other processes in a group providing\n        different amount of data and displacements\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_36Allgatherv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)62942 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_36Allgatherv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62943   PyObject *__pyx_v_sendbuf = 0;
62944   PyObject *__pyx_v_recvbuf = 0;
62945   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
62946   PyObject *__pyx_r = NULL;
62947   __Pyx_RefNannyDeclarations
62948   PyObject *__pyx_t_1 = NULL;
62949   int __pyx_t_2;
62950   int __pyx_lineno = 0;
62951   const char *__pyx_filename = NULL;
62952   int __pyx_clineno = 0;
62953   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,0};
62954   __Pyx_RefNannySetupContext("Allgatherv");
62955   {
62956     PyObject* values[2] = {0,0};
62957     if (unlikely(__pyx_kwds)) {
62958       Py_ssize_t kw_args;
62959       switch (PyTuple_GET_SIZE(__pyx_args)) {
62960         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62961         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62962         case  0: break;
62963         default: goto __pyx_L5_argtuple_error;
62964       }
62965       kw_args = PyDict_Size(__pyx_kwds);
62966       switch (PyTuple_GET_SIZE(__pyx_args)) {
62967         case  0:
62968         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
62969         if (likely(values[0])) kw_args--;
62970         else goto __pyx_L5_argtuple_error;
62971         case  1:
62972         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
62973         if (likely(values[1])) kw_args--;
62974         else {
62975           __Pyx_RaiseArgtupleInvalid("Allgatherv", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62976         }
62977       }
62978       if (unlikely(kw_args > 0)) {
62979         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Allgatherv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62980       }
62981     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
62982       goto __pyx_L5_argtuple_error;
62983     } else {
62984       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
62985       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
62986     }
62987     __pyx_v_sendbuf = values[0];
62988     __pyx_v_recvbuf = values[1];
62989   }
62990   goto __pyx_L4_argument_unpacking_done;
62991   __pyx_L5_argtuple_error:;
62992   __Pyx_RaiseArgtupleInvalid("Allgatherv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
62993   __pyx_L3_error:;
62994   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allgatherv", __pyx_clineno, __pyx_lineno, __pyx_filename);
62995   __Pyx_RefNannyFinishContext();
62996   return NULL;
62997   __pyx_L4_argument_unpacking_done:;
62998 
62999   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":477
63000  *         different amount of data and displacements
63001  *         """
63002  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63003  *         m.for_allgather(1, sendbuf, recvbuf, self.ob_mpi)
63004  *         with nogil: CHKERR( MPI_Allgatherv(
63005  */
63006   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63007   __Pyx_GOTREF(__pyx_t_1);
63008   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63009   __pyx_t_1 = 0;
63010 
63011   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":478
63012  *         """
63013  *         cdef _p_msg_cco m = message_cco()
63014  *         m.for_allgather(1, sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
63015  *         with nogil: CHKERR( MPI_Allgatherv(
63016  *             m.sbuf, m.scount,             m.stype,
63017  */
63018   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_allgather(__pyx_v_m, 1, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63019 
63020   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":479
63021  *         cdef _p_msg_cco m = message_cco()
63022  *         m.for_allgather(1, sendbuf, recvbuf, self.ob_mpi)
63023  *         with nogil: CHKERR( MPI_Allgatherv(             # <<<<<<<<<<<<<<
63024  *             m.sbuf, m.scount,             m.stype,
63025  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63026  */
63027   {
63028       #ifdef WITH_THREAD
63029       PyThreadState *_save = NULL;
63030       #endif
63031       Py_UNBLOCK_THREADS
63032       /*try:*/ {
63033 
63034         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":482
63035  *             m.sbuf, m.scount,             m.stype,
63036  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63037  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
63038  *
63039  *     def Alltoall(self, sendbuf, recvbuf):
63040  */
63041         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allgatherv(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcounts, __pyx_v_m->rdispls, __pyx_v_m->rtype, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L7;}
63042       }
63043 
63044       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":479
63045  *         cdef _p_msg_cco m = message_cco()
63046  *         m.for_allgather(1, sendbuf, recvbuf, self.ob_mpi)
63047  *         with nogil: CHKERR( MPI_Allgatherv(             # <<<<<<<<<<<<<<
63048  *             m.sbuf, m.scount,             m.stype,
63049  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63050  */
63051       /*finally:*/ {
63052         int __pyx_why;
63053         __pyx_why = 0; goto __pyx_L8;
63054         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63055         __pyx_L8:;
63056         Py_BLOCK_THREADS
63057         switch (__pyx_why) {
63058           case 4: goto __pyx_L1_error;
63059         }
63060       }
63061   }
63062 
63063   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63064   goto __pyx_L0;
63065   __pyx_L1_error:;
63066   __Pyx_XDECREF(__pyx_t_1);
63067   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allgatherv", __pyx_clineno, __pyx_lineno, __pyx_filename);
63068   __pyx_r = NULL;
63069   __pyx_L0:;
63070   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63071   __Pyx_XGIVEREF(__pyx_r);
63072   __Pyx_RefNannyFinishContext();
63073   return __pyx_r;
63074 }
63075 
63076 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":484
63077  *             self.ob_mpi) )
63078  *
63079  *     def Alltoall(self, sendbuf, recvbuf):             # <<<<<<<<<<<<<<
63080  *         """
63081  *         All to All Scatter/Gather, send data from all to all
63082  */
63083 
63084 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_37Alltoall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63085 static char __pyx_doc_6mpi4py_3MPI_4Comm_37Alltoall[] = "Comm.Alltoall(self, sendbuf, recvbuf)\n\n        All to All Scatter/Gather, send data from all to all\n        processes in a group\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_37Alltoall(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63086 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_37Alltoall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63087   PyObject *__pyx_v_sendbuf = 0;
63088   PyObject *__pyx_v_recvbuf = 0;
63089   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63090   PyObject *__pyx_r = NULL;
63091   __Pyx_RefNannyDeclarations
63092   PyObject *__pyx_t_1 = NULL;
63093   int __pyx_t_2;
63094   int __pyx_lineno = 0;
63095   const char *__pyx_filename = NULL;
63096   int __pyx_clineno = 0;
63097   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,0};
63098   __Pyx_RefNannySetupContext("Alltoall");
63099   {
63100     PyObject* values[2] = {0,0};
63101     if (unlikely(__pyx_kwds)) {
63102       Py_ssize_t kw_args;
63103       switch (PyTuple_GET_SIZE(__pyx_args)) {
63104         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63105         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63106         case  0: break;
63107         default: goto __pyx_L5_argtuple_error;
63108       }
63109       kw_args = PyDict_Size(__pyx_kwds);
63110       switch (PyTuple_GET_SIZE(__pyx_args)) {
63111         case  0:
63112         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63113         if (likely(values[0])) kw_args--;
63114         else goto __pyx_L5_argtuple_error;
63115         case  1:
63116         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63117         if (likely(values[1])) kw_args--;
63118         else {
63119           __Pyx_RaiseArgtupleInvalid("Alltoall", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63120         }
63121       }
63122       if (unlikely(kw_args > 0)) {
63123         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Alltoall") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63124       }
63125     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
63126       goto __pyx_L5_argtuple_error;
63127     } else {
63128       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63129       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63130     }
63131     __pyx_v_sendbuf = values[0];
63132     __pyx_v_recvbuf = values[1];
63133   }
63134   goto __pyx_L4_argument_unpacking_done;
63135   __pyx_L5_argtuple_error:;
63136   __Pyx_RaiseArgtupleInvalid("Alltoall", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63137   __pyx_L3_error:;
63138   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
63139   __Pyx_RefNannyFinishContext();
63140   return NULL;
63141   __pyx_L4_argument_unpacking_done:;
63142 
63143   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":489
63144  *         processes in a group
63145  *         """
63146  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63147  *         m.for_alltoall(0, sendbuf, recvbuf, self.ob_mpi)
63148  *         with nogil: CHKERR( MPI_Alltoall(
63149  */
63150   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63151   __Pyx_GOTREF(__pyx_t_1);
63152   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63153   __pyx_t_1 = 0;
63154 
63155   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":490
63156  *         """
63157  *         cdef _p_msg_cco m = message_cco()
63158  *         m.for_alltoall(0, sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
63159  *         with nogil: CHKERR( MPI_Alltoall(
63160  *             m.sbuf, m.scount, m.stype,
63161  */
63162   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_alltoall(__pyx_v_m, 0, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63163 
63164   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":491
63165  *         cdef _p_msg_cco m = message_cco()
63166  *         m.for_alltoall(0, sendbuf, recvbuf, self.ob_mpi)
63167  *         with nogil: CHKERR( MPI_Alltoall(             # <<<<<<<<<<<<<<
63168  *             m.sbuf, m.scount, m.stype,
63169  *             m.rbuf, m.rcount, m.rtype,
63170  */
63171   {
63172       #ifdef WITH_THREAD
63173       PyThreadState *_save = NULL;
63174       #endif
63175       Py_UNBLOCK_THREADS
63176       /*try:*/ {
63177 
63178         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":494
63179  *             m.sbuf, m.scount, m.stype,
63180  *             m.rbuf, m.rcount, m.rtype,
63181  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
63182  *
63183  *     def Alltoallv(self, sendbuf, recvbuf):
63184  */
63185         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Alltoall(__pyx_v_m->sbuf, __pyx_v_m->scount, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L7;}
63186       }
63187 
63188       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":491
63189  *         cdef _p_msg_cco m = message_cco()
63190  *         m.for_alltoall(0, sendbuf, recvbuf, self.ob_mpi)
63191  *         with nogil: CHKERR( MPI_Alltoall(             # <<<<<<<<<<<<<<
63192  *             m.sbuf, m.scount, m.stype,
63193  *             m.rbuf, m.rcount, m.rtype,
63194  */
63195       /*finally:*/ {
63196         int __pyx_why;
63197         __pyx_why = 0; goto __pyx_L8;
63198         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63199         __pyx_L8:;
63200         Py_BLOCK_THREADS
63201         switch (__pyx_why) {
63202           case 4: goto __pyx_L1_error;
63203         }
63204       }
63205   }
63206 
63207   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63208   goto __pyx_L0;
63209   __pyx_L1_error:;
63210   __Pyx_XDECREF(__pyx_t_1);
63211   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
63212   __pyx_r = NULL;
63213   __pyx_L0:;
63214   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63215   __Pyx_XGIVEREF(__pyx_r);
63216   __Pyx_RefNannyFinishContext();
63217   return __pyx_r;
63218 }
63219 
63220 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":496
63221  *             self.ob_mpi) )
63222  *
63223  *     def Alltoallv(self, sendbuf, recvbuf):             # <<<<<<<<<<<<<<
63224  *         """
63225  *         All to All Scatter/Gather Vector, send data from all to all
63226  */
63227 
63228 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_38Alltoallv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63229 static char __pyx_doc_6mpi4py_3MPI_4Comm_38Alltoallv[] = "Comm.Alltoallv(self, sendbuf, recvbuf)\n\n        All to All Scatter/Gather Vector, send data from all to all\n        processes in a group providing different amount of data and\n        displacements\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_38Alltoallv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63230 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_38Alltoallv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63231   PyObject *__pyx_v_sendbuf = 0;
63232   PyObject *__pyx_v_recvbuf = 0;
63233   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63234   PyObject *__pyx_r = NULL;
63235   __Pyx_RefNannyDeclarations
63236   PyObject *__pyx_t_1 = NULL;
63237   int __pyx_t_2;
63238   int __pyx_lineno = 0;
63239   const char *__pyx_filename = NULL;
63240   int __pyx_clineno = 0;
63241   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,0};
63242   __Pyx_RefNannySetupContext("Alltoallv");
63243   {
63244     PyObject* values[2] = {0,0};
63245     if (unlikely(__pyx_kwds)) {
63246       Py_ssize_t kw_args;
63247       switch (PyTuple_GET_SIZE(__pyx_args)) {
63248         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63249         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63250         case  0: break;
63251         default: goto __pyx_L5_argtuple_error;
63252       }
63253       kw_args = PyDict_Size(__pyx_kwds);
63254       switch (PyTuple_GET_SIZE(__pyx_args)) {
63255         case  0:
63256         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63257         if (likely(values[0])) kw_args--;
63258         else goto __pyx_L5_argtuple_error;
63259         case  1:
63260         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63261         if (likely(values[1])) kw_args--;
63262         else {
63263           __Pyx_RaiseArgtupleInvalid("Alltoallv", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63264         }
63265       }
63266       if (unlikely(kw_args > 0)) {
63267         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Alltoallv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63268       }
63269     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
63270       goto __pyx_L5_argtuple_error;
63271     } else {
63272       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63273       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63274     }
63275     __pyx_v_sendbuf = values[0];
63276     __pyx_v_recvbuf = values[1];
63277   }
63278   goto __pyx_L4_argument_unpacking_done;
63279   __pyx_L5_argtuple_error:;
63280   __Pyx_RaiseArgtupleInvalid("Alltoallv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63281   __pyx_L3_error:;
63282   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoallv", __pyx_clineno, __pyx_lineno, __pyx_filename);
63283   __Pyx_RefNannyFinishContext();
63284   return NULL;
63285   __pyx_L4_argument_unpacking_done:;
63286 
63287   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":502
63288  *         displacements
63289  *         """
63290  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63291  *         m.for_alltoall(1, sendbuf, recvbuf, self.ob_mpi)
63292  *         with nogil: CHKERR( MPI_Alltoallv(
63293  */
63294   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63295   __Pyx_GOTREF(__pyx_t_1);
63296   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63297   __pyx_t_1 = 0;
63298 
63299   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":503
63300  *         """
63301  *         cdef _p_msg_cco m = message_cco()
63302  *         m.for_alltoall(1, sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
63303  *         with nogil: CHKERR( MPI_Alltoallv(
63304  *             m.sbuf, m.scounts, m.sdispls, m.stype,
63305  */
63306   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_alltoall(__pyx_v_m, 1, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63307 
63308   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":504
63309  *         cdef _p_msg_cco m = message_cco()
63310  *         m.for_alltoall(1, sendbuf, recvbuf, self.ob_mpi)
63311  *         with nogil: CHKERR( MPI_Alltoallv(             # <<<<<<<<<<<<<<
63312  *             m.sbuf, m.scounts, m.sdispls, m.stype,
63313  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63314  */
63315   {
63316       #ifdef WITH_THREAD
63317       PyThreadState *_save = NULL;
63318       #endif
63319       Py_UNBLOCK_THREADS
63320       /*try:*/ {
63321 
63322         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":507
63323  *             m.sbuf, m.scounts, m.sdispls, m.stype,
63324  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63325  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
63326  *
63327  *     def Alltoallw(self, sendbuf, recvbuf):
63328  */
63329         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Alltoallv(__pyx_v_m->sbuf, __pyx_v_m->scounts, __pyx_v_m->sdispls, __pyx_v_m->stype, __pyx_v_m->rbuf, __pyx_v_m->rcounts, __pyx_v_m->rdispls, __pyx_v_m->rtype, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L7;}
63330       }
63331 
63332       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":504
63333  *         cdef _p_msg_cco m = message_cco()
63334  *         m.for_alltoall(1, sendbuf, recvbuf, self.ob_mpi)
63335  *         with nogil: CHKERR( MPI_Alltoallv(             # <<<<<<<<<<<<<<
63336  *             m.sbuf, m.scounts, m.sdispls, m.stype,
63337  *             m.rbuf, m.rcounts, m.rdispls, m.rtype,
63338  */
63339       /*finally:*/ {
63340         int __pyx_why;
63341         __pyx_why = 0; goto __pyx_L8;
63342         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63343         __pyx_L8:;
63344         Py_BLOCK_THREADS
63345         switch (__pyx_why) {
63346           case 4: goto __pyx_L1_error;
63347         }
63348       }
63349   }
63350 
63351   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63352   goto __pyx_L0;
63353   __pyx_L1_error:;
63354   __Pyx_XDECREF(__pyx_t_1);
63355   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoallv", __pyx_clineno, __pyx_lineno, __pyx_filename);
63356   __pyx_r = NULL;
63357   __pyx_L0:;
63358   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63359   __Pyx_XGIVEREF(__pyx_r);
63360   __Pyx_RefNannyFinishContext();
63361   return __pyx_r;
63362 }
63363 
63364 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":509
63365  *             self.ob_mpi) )
63366  *
63367  *     def Alltoallw(self, sendbuf, recvbuf):             # <<<<<<<<<<<<<<
63368  *         """
63369  *         Generalized All-to-All communication allowing different
63370  */
63371 
63372 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_39Alltoallw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63373 static char __pyx_doc_6mpi4py_3MPI_4Comm_39Alltoallw[] = "Comm.Alltoallw(self, sendbuf, recvbuf)\n\n        Generalized All-to-All communication allowing different\n        counts, displacements and datatypes for each partner\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_39Alltoallw(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63374 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_39Alltoallw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63375   PyObject *__pyx_v_sendbuf = 0;
63376   PyObject *__pyx_v_recvbuf = 0;
63377   PyObject *__pyx_r = NULL;
63378   __Pyx_RefNannyDeclarations
63379   int __pyx_lineno = 0;
63380   const char *__pyx_filename = NULL;
63381   int __pyx_clineno = 0;
63382   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,0};
63383   __Pyx_RefNannySetupContext("Alltoallw");
63384   {
63385     PyObject* values[2] = {0,0};
63386     if (unlikely(__pyx_kwds)) {
63387       Py_ssize_t kw_args;
63388       switch (PyTuple_GET_SIZE(__pyx_args)) {
63389         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63390         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63391         case  0: break;
63392         default: goto __pyx_L5_argtuple_error;
63393       }
63394       kw_args = PyDict_Size(__pyx_kwds);
63395       switch (PyTuple_GET_SIZE(__pyx_args)) {
63396         case  0:
63397         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63398         if (likely(values[0])) kw_args--;
63399         else goto __pyx_L5_argtuple_error;
63400         case  1:
63401         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63402         if (likely(values[1])) kw_args--;
63403         else {
63404           __Pyx_RaiseArgtupleInvalid("Alltoallw", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63405         }
63406       }
63407       if (unlikely(kw_args > 0)) {
63408         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Alltoallw") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63409       }
63410     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
63411       goto __pyx_L5_argtuple_error;
63412     } else {
63413       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63414       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63415     }
63416     __pyx_v_sendbuf = values[0];
63417     __pyx_v_recvbuf = values[1];
63418   }
63419   goto __pyx_L4_argument_unpacking_done;
63420   __pyx_L5_argtuple_error:;
63421   __Pyx_RaiseArgtupleInvalid("Alltoallw", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63422   __pyx_L3_error:;
63423   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoallw", __pyx_clineno, __pyx_lineno, __pyx_filename);
63424   __Pyx_RefNannyFinishContext();
63425   return NULL;
63426   __pyx_L4_argument_unpacking_done:;
63427   __Pyx_INCREF(__pyx_v_sendbuf);
63428   __Pyx_INCREF(__pyx_v_recvbuf);
63429 
63430   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":514
63431  *         counts, displacements and datatypes for each partner
63432  *         """
63433  *         sendbuf = recvbuf = None             # <<<<<<<<<<<<<<
63434  *         raise NotImplementedError # XXX implement!
63435  *         cdef void *sbuf = NULL, *rbuf = NULL
63436  */
63437   __Pyx_INCREF(Py_None);
63438   __Pyx_DECREF(__pyx_v_sendbuf);
63439   __pyx_v_sendbuf = Py_None;
63440   __Pyx_INCREF(Py_None);
63441   __Pyx_DECREF(__pyx_v_recvbuf);
63442   __pyx_v_recvbuf = Py_None;
63443 
63444   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":515
63445  *         """
63446  *         sendbuf = recvbuf = None
63447  *         raise NotImplementedError # XXX implement!             # <<<<<<<<<<<<<<
63448  *         cdef void *sbuf = NULL, *rbuf = NULL
63449  *         cdef int  *scounts = NULL, *rcounts = NULL
63450  */
63451   __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
63452   {__pyx_filename = __pyx_f[6]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63453 
63454   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63455   goto __pyx_L0;
63456   __pyx_L1_error:;
63457   __Pyx_AddTraceback("mpi4py.MPI.Comm.Alltoallw", __pyx_clineno, __pyx_lineno, __pyx_filename);
63458   __pyx_r = NULL;
63459   __pyx_L0:;
63460   __Pyx_XDECREF(__pyx_v_sendbuf);
63461   __Pyx_XDECREF(__pyx_v_recvbuf);
63462   __Pyx_XGIVEREF(__pyx_r);
63463   __Pyx_RefNannyFinishContext();
63464   return __pyx_r;
63465 }
63466 
63467 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":529
63468  *     # ---------------------------
63469  *
63470  *     def Reduce(self, sendbuf, recvbuf, Op op not None=SUM, int root=0):             # <<<<<<<<<<<<<<
63471  *         """
63472  *         Reduce
63473  */
63474 
63475 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_40Reduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63476 static char __pyx_doc_6mpi4py_3MPI_4Comm_40Reduce[] = "Comm.Reduce(self, sendbuf, recvbuf, Op op=SUM, int root=0)\n\n        Reduce\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_40Reduce(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63477 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_40Reduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63478   PyObject *__pyx_v_sendbuf = 0;
63479   PyObject *__pyx_v_recvbuf = 0;
63480   struct PyMPIOpObject *__pyx_v_op = 0;
63481   int __pyx_v_root;
63482   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63483   PyObject *__pyx_r = NULL;
63484   __Pyx_RefNannyDeclarations
63485   PyObject *__pyx_t_1 = NULL;
63486   int __pyx_t_2;
63487   int __pyx_lineno = 0;
63488   const char *__pyx_filename = NULL;
63489   int __pyx_clineno = 0;
63490   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__op,&__pyx_n_s__root,0};
63491   __Pyx_RefNannySetupContext("Reduce");
63492   {
63493     PyObject* values[4] = {0,0,0,0};
63494     values[2] = (PyObject *)__pyx_k_71;
63495     if (unlikely(__pyx_kwds)) {
63496       Py_ssize_t kw_args;
63497       switch (PyTuple_GET_SIZE(__pyx_args)) {
63498         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
63499         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63500         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63501         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63502         case  0: break;
63503         default: goto __pyx_L5_argtuple_error;
63504       }
63505       kw_args = PyDict_Size(__pyx_kwds);
63506       switch (PyTuple_GET_SIZE(__pyx_args)) {
63507         case  0:
63508         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63509         if (likely(values[0])) kw_args--;
63510         else goto __pyx_L5_argtuple_error;
63511         case  1:
63512         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63513         if (likely(values[1])) kw_args--;
63514         else {
63515           __Pyx_RaiseArgtupleInvalid("Reduce", 0, 2, 4, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63516         }
63517         case  2:
63518         if (kw_args > 0) {
63519           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
63520           if (value) { values[2] = value; kw_args--; }
63521         }
63522         case  3:
63523         if (kw_args > 0) {
63524           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
63525           if (value) { values[3] = value; kw_args--; }
63526         }
63527       }
63528       if (unlikely(kw_args > 0)) {
63529         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Reduce") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63530       }
63531     } else {
63532       switch (PyTuple_GET_SIZE(__pyx_args)) {
63533         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
63534         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63535         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63536         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63537         break;
63538         default: goto __pyx_L5_argtuple_error;
63539       }
63540     }
63541     __pyx_v_sendbuf = values[0];
63542     __pyx_v_recvbuf = values[1];
63543     __pyx_v_op = ((struct PyMPIOpObject *)values[2]);
63544     if (values[3]) {
63545       __pyx_v_root = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63546     } else {
63547       __pyx_v_root = ((int)0);
63548     }
63549   }
63550   goto __pyx_L4_argument_unpacking_done;
63551   __pyx_L5_argtuple_error:;
63552   __Pyx_RaiseArgtupleInvalid("Reduce", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63553   __pyx_L3_error:;
63554   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
63555   __Pyx_RefNannyFinishContext();
63556   return NULL;
63557   __pyx_L4_argument_unpacking_done:;
63558   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63559 
63560   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":533
63561  *         Reduce
63562  *         """
63563  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63564  *         m.for_reduce(sendbuf, recvbuf, root, self.ob_mpi)
63565  *         with nogil: CHKERR( MPI_Reduce(
63566  */
63567   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63568   __Pyx_GOTREF(__pyx_t_1);
63569   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63570   __pyx_t_1 = 0;
63571 
63572   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":534
63573  *         """
63574  *         cdef _p_msg_cco m = message_cco()
63575  *         m.for_reduce(sendbuf, recvbuf, root, self.ob_mpi)             # <<<<<<<<<<<<<<
63576  *         with nogil: CHKERR( MPI_Reduce(
63577  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63578  */
63579   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_reduce(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63580 
63581   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":535
63582  *         cdef _p_msg_cco m = message_cco()
63583  *         m.for_reduce(sendbuf, recvbuf, root, self.ob_mpi)
63584  *         with nogil: CHKERR( MPI_Reduce(             # <<<<<<<<<<<<<<
63585  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63586  *             op.ob_mpi, root, self.ob_mpi) )
63587  */
63588   {
63589       #ifdef WITH_THREAD
63590       PyThreadState *_save = NULL;
63591       #endif
63592       Py_UNBLOCK_THREADS
63593       /*try:*/ {
63594 
63595         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":537
63596  *         with nogil: CHKERR( MPI_Reduce(
63597  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63598  *             op.ob_mpi, root, self.ob_mpi) )             # <<<<<<<<<<<<<<
63599  *
63600  *     def Allreduce(self, sendbuf, recvbuf, Op op not None=SUM):
63601  */
63602         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Reduce(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, __pyx_v_root, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L7;}
63603       }
63604 
63605       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":535
63606  *         cdef _p_msg_cco m = message_cco()
63607  *         m.for_reduce(sendbuf, recvbuf, root, self.ob_mpi)
63608  *         with nogil: CHKERR( MPI_Reduce(             # <<<<<<<<<<<<<<
63609  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63610  *             op.ob_mpi, root, self.ob_mpi) )
63611  */
63612       /*finally:*/ {
63613         int __pyx_why;
63614         __pyx_why = 0; goto __pyx_L8;
63615         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63616         __pyx_L8:;
63617         Py_BLOCK_THREADS
63618         switch (__pyx_why) {
63619           case 4: goto __pyx_L1_error;
63620         }
63621       }
63622   }
63623 
63624   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63625   goto __pyx_L0;
63626   __pyx_L1_error:;
63627   __Pyx_XDECREF(__pyx_t_1);
63628   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
63629   __pyx_r = NULL;
63630   __pyx_L0:;
63631   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63632   __Pyx_XGIVEREF(__pyx_r);
63633   __Pyx_RefNannyFinishContext();
63634   return __pyx_r;
63635 }
63636 
63637 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":539
63638  *             op.ob_mpi, root, self.ob_mpi) )
63639  *
63640  *     def Allreduce(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
63641  *         """
63642  *         All Reduce
63643  */
63644 
63645 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_41Allreduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63646 static char __pyx_doc_6mpi4py_3MPI_4Comm_41Allreduce[] = "Comm.Allreduce(self, sendbuf, recvbuf, Op op=SUM)\n\n        All Reduce\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_41Allreduce(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63647 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_41Allreduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63648   PyObject *__pyx_v_sendbuf = 0;
63649   PyObject *__pyx_v_recvbuf = 0;
63650   struct PyMPIOpObject *__pyx_v_op = 0;
63651   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63652   PyObject *__pyx_r = NULL;
63653   __Pyx_RefNannyDeclarations
63654   PyObject *__pyx_t_1 = NULL;
63655   int __pyx_t_2;
63656   int __pyx_lineno = 0;
63657   const char *__pyx_filename = NULL;
63658   int __pyx_clineno = 0;
63659   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__op,0};
63660   __Pyx_RefNannySetupContext("Allreduce");
63661   {
63662     PyObject* values[3] = {0,0,0};
63663     values[2] = (PyObject *)__pyx_k_72;
63664     if (unlikely(__pyx_kwds)) {
63665       Py_ssize_t kw_args;
63666       switch (PyTuple_GET_SIZE(__pyx_args)) {
63667         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63668         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63669         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63670         case  0: break;
63671         default: goto __pyx_L5_argtuple_error;
63672       }
63673       kw_args = PyDict_Size(__pyx_kwds);
63674       switch (PyTuple_GET_SIZE(__pyx_args)) {
63675         case  0:
63676         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63677         if (likely(values[0])) kw_args--;
63678         else goto __pyx_L5_argtuple_error;
63679         case  1:
63680         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63681         if (likely(values[1])) kw_args--;
63682         else {
63683           __Pyx_RaiseArgtupleInvalid("Allreduce", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63684         }
63685         case  2:
63686         if (kw_args > 0) {
63687           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
63688           if (value) { values[2] = value; kw_args--; }
63689         }
63690       }
63691       if (unlikely(kw_args > 0)) {
63692         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Allreduce") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63693       }
63694     } else {
63695       switch (PyTuple_GET_SIZE(__pyx_args)) {
63696         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63697         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63698         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63699         break;
63700         default: goto __pyx_L5_argtuple_error;
63701       }
63702     }
63703     __pyx_v_sendbuf = values[0];
63704     __pyx_v_recvbuf = values[1];
63705     __pyx_v_op = ((struct PyMPIOpObject *)values[2]);
63706   }
63707   goto __pyx_L4_argument_unpacking_done;
63708   __pyx_L5_argtuple_error:;
63709   __Pyx_RaiseArgtupleInvalid("Allreduce", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63710   __pyx_L3_error:;
63711   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
63712   __Pyx_RefNannyFinishContext();
63713   return NULL;
63714   __pyx_L4_argument_unpacking_done:;
63715   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63716 
63717   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":543
63718  *         All Reduce
63719  *         """
63720  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63721  *         m.for_allreduce(sendbuf, recvbuf, self.ob_mpi)
63722  *         with nogil: CHKERR( MPI_Allreduce(
63723  */
63724   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63725   __Pyx_GOTREF(__pyx_t_1);
63726   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63727   __pyx_t_1 = 0;
63728 
63729   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":544
63730  *         """
63731  *         cdef _p_msg_cco m = message_cco()
63732  *         m.for_allreduce(sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
63733  *         with nogil: CHKERR( MPI_Allreduce(
63734  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63735  */
63736   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_allreduce(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63737 
63738   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":545
63739  *         cdef _p_msg_cco m = message_cco()
63740  *         m.for_allreduce(sendbuf, recvbuf, self.ob_mpi)
63741  *         with nogil: CHKERR( MPI_Allreduce(             # <<<<<<<<<<<<<<
63742  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63743  *             op.ob_mpi, self.ob_mpi) )
63744  */
63745   {
63746       #ifdef WITH_THREAD
63747       PyThreadState *_save = NULL;
63748       #endif
63749       Py_UNBLOCK_THREADS
63750       /*try:*/ {
63751 
63752         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":547
63753  *         with nogil: CHKERR( MPI_Allreduce(
63754  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63755  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
63756  *
63757  *     def Reduce_scatter_block(self, sendbuf, recvbuf,
63758  */
63759         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Allreduce(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L7;}
63760       }
63761 
63762       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":545
63763  *         cdef _p_msg_cco m = message_cco()
63764  *         m.for_allreduce(sendbuf, recvbuf, self.ob_mpi)
63765  *         with nogil: CHKERR( MPI_Allreduce(             # <<<<<<<<<<<<<<
63766  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63767  *             op.ob_mpi, self.ob_mpi) )
63768  */
63769       /*finally:*/ {
63770         int __pyx_why;
63771         __pyx_why = 0; goto __pyx_L8;
63772         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63773         __pyx_L8:;
63774         Py_BLOCK_THREADS
63775         switch (__pyx_why) {
63776           case 4: goto __pyx_L1_error;
63777         }
63778       }
63779   }
63780 
63781   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63782   goto __pyx_L0;
63783   __pyx_L1_error:;
63784   __Pyx_XDECREF(__pyx_t_1);
63785   __Pyx_AddTraceback("mpi4py.MPI.Comm.Allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
63786   __pyx_r = NULL;
63787   __pyx_L0:;
63788   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63789   __Pyx_XGIVEREF(__pyx_r);
63790   __Pyx_RefNannyFinishContext();
63791   return __pyx_r;
63792 }
63793 
63794 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":549
63795  *             op.ob_mpi, self.ob_mpi) )
63796  *
63797  *     def Reduce_scatter_block(self, sendbuf, recvbuf,             # <<<<<<<<<<<<<<
63798  *                              Op op not None=SUM):
63799  *         """
63800  */
63801 
63802 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_42Reduce_scatter_block(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63803 static char __pyx_doc_6mpi4py_3MPI_4Comm_42Reduce_scatter_block[] = "Comm.Reduce_scatter_block(self, sendbuf, recvbuf, Op op=SUM)\n\n        Reduce-Scatter Block (regular, non-vector version)\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_42Reduce_scatter_block(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63804 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_42Reduce_scatter_block(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63805   PyObject *__pyx_v_sendbuf = 0;
63806   PyObject *__pyx_v_recvbuf = 0;
63807   struct PyMPIOpObject *__pyx_v_op = 0;
63808   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63809   PyObject *__pyx_r = NULL;
63810   __Pyx_RefNannyDeclarations
63811   PyObject *__pyx_t_1 = NULL;
63812   int __pyx_t_2;
63813   int __pyx_lineno = 0;
63814   const char *__pyx_filename = NULL;
63815   int __pyx_clineno = 0;
63816   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__op,0};
63817   __Pyx_RefNannySetupContext("Reduce_scatter_block");
63818   {
63819     PyObject* values[3] = {0,0,0};
63820     values[2] = (PyObject *)__pyx_k_73;
63821     if (unlikely(__pyx_kwds)) {
63822       Py_ssize_t kw_args;
63823       switch (PyTuple_GET_SIZE(__pyx_args)) {
63824         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63825         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63826         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63827         case  0: break;
63828         default: goto __pyx_L5_argtuple_error;
63829       }
63830       kw_args = PyDict_Size(__pyx_kwds);
63831       switch (PyTuple_GET_SIZE(__pyx_args)) {
63832         case  0:
63833         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63834         if (likely(values[0])) kw_args--;
63835         else goto __pyx_L5_argtuple_error;
63836         case  1:
63837         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63838         if (likely(values[1])) kw_args--;
63839         else {
63840           __Pyx_RaiseArgtupleInvalid("Reduce_scatter_block", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63841         }
63842         case  2:
63843         if (kw_args > 0) {
63844           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
63845           if (value) { values[2] = value; kw_args--; }
63846         }
63847       }
63848       if (unlikely(kw_args > 0)) {
63849         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Reduce_scatter_block") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63850       }
63851     } else {
63852       switch (PyTuple_GET_SIZE(__pyx_args)) {
63853         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63854         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63855         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63856         break;
63857         default: goto __pyx_L5_argtuple_error;
63858       }
63859     }
63860     __pyx_v_sendbuf = values[0];
63861     __pyx_v_recvbuf = values[1];
63862     __pyx_v_op = ((struct PyMPIOpObject *)values[2]);
63863   }
63864   goto __pyx_L4_argument_unpacking_done;
63865   __pyx_L5_argtuple_error:;
63866   __Pyx_RaiseArgtupleInvalid("Reduce_scatter_block", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
63867   __pyx_L3_error:;
63868   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce_scatter_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
63869   __Pyx_RefNannyFinishContext();
63870   return NULL;
63871   __pyx_L4_argument_unpacking_done:;
63872   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63873 
63874   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":554
63875  *         Reduce-Scatter Block (regular, non-vector version)
63876  *         """
63877  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
63878  *         m.for_reduce_scatter_block(sendbuf, recvbuf, self.ob_mpi)
63879  *         with nogil: CHKERR( MPI_Reduce_scatter_block(
63880  */
63881   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63882   __Pyx_GOTREF(__pyx_t_1);
63883   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
63884   __pyx_t_1 = 0;
63885 
63886   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":555
63887  *         """
63888  *         cdef _p_msg_cco m = message_cco()
63889  *         m.for_reduce_scatter_block(sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
63890  *         with nogil: CHKERR( MPI_Reduce_scatter_block(
63891  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63892  */
63893   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_reduce_scatter_block(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
63894 
63895   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":556
63896  *         cdef _p_msg_cco m = message_cco()
63897  *         m.for_reduce_scatter_block(sendbuf, recvbuf, self.ob_mpi)
63898  *         with nogil: CHKERR( MPI_Reduce_scatter_block(             # <<<<<<<<<<<<<<
63899  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63900  *             op.ob_mpi, self.ob_mpi) )
63901  */
63902   {
63903       #ifdef WITH_THREAD
63904       PyThreadState *_save = NULL;
63905       #endif
63906       Py_UNBLOCK_THREADS
63907       /*try:*/ {
63908 
63909         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":558
63910  *         with nogil: CHKERR( MPI_Reduce_scatter_block(
63911  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63912  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
63913  *
63914  *     def Reduce_scatter(self, sendbuf, recvbuf, recvcounts=None,
63915  */
63916         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Reduce_scatter_block(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L7;}
63917       }
63918 
63919       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":556
63920  *         cdef _p_msg_cco m = message_cco()
63921  *         m.for_reduce_scatter_block(sendbuf, recvbuf, self.ob_mpi)
63922  *         with nogil: CHKERR( MPI_Reduce_scatter_block(             # <<<<<<<<<<<<<<
63923  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
63924  *             op.ob_mpi, self.ob_mpi) )
63925  */
63926       /*finally:*/ {
63927         int __pyx_why;
63928         __pyx_why = 0; goto __pyx_L8;
63929         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
63930         __pyx_L8:;
63931         Py_BLOCK_THREADS
63932         switch (__pyx_why) {
63933           case 4: goto __pyx_L1_error;
63934         }
63935       }
63936   }
63937 
63938   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
63939   goto __pyx_L0;
63940   __pyx_L1_error:;
63941   __Pyx_XDECREF(__pyx_t_1);
63942   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce_scatter_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
63943   __pyx_r = NULL;
63944   __pyx_L0:;
63945   __Pyx_XDECREF((PyObject *)__pyx_v_m);
63946   __Pyx_XGIVEREF(__pyx_r);
63947   __Pyx_RefNannyFinishContext();
63948   return __pyx_r;
63949 }
63950 
63951 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":560
63952  *             op.ob_mpi, self.ob_mpi) )
63953  *
63954  *     def Reduce_scatter(self, sendbuf, recvbuf, recvcounts=None,             # <<<<<<<<<<<<<<
63955  *                        Op op not None=SUM):
63956  *         """
63957  */
63958 
63959 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_43Reduce_scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
63960 static char __pyx_doc_6mpi4py_3MPI_4Comm_43Reduce_scatter[] = "Comm.Reduce_scatter(self, sendbuf, recvbuf, recvcounts=None, Op op=SUM)\n\n        Reduce-Scatter (vector version)\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_43Reduce_scatter(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)63961 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_43Reduce_scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
63962   PyObject *__pyx_v_sendbuf = 0;
63963   PyObject *__pyx_v_recvbuf = 0;
63964   PyObject *__pyx_v_recvcounts = 0;
63965   struct PyMPIOpObject *__pyx_v_op = 0;
63966   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
63967   PyObject *__pyx_r = NULL;
63968   __Pyx_RefNannyDeclarations
63969   PyObject *__pyx_t_1 = NULL;
63970   int __pyx_t_2;
63971   int __pyx_lineno = 0;
63972   const char *__pyx_filename = NULL;
63973   int __pyx_clineno = 0;
63974   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__recvcounts,&__pyx_n_s__op,0};
63975   __Pyx_RefNannySetupContext("Reduce_scatter");
63976   {
63977     PyObject* values[4] = {0,0,0,0};
63978     values[2] = ((PyObject *)Py_None);
63979     values[3] = (PyObject *)__pyx_k_74;
63980     if (unlikely(__pyx_kwds)) {
63981       Py_ssize_t kw_args;
63982       switch (PyTuple_GET_SIZE(__pyx_args)) {
63983         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
63984         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
63985         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
63986         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
63987         case  0: break;
63988         default: goto __pyx_L5_argtuple_error;
63989       }
63990       kw_args = PyDict_Size(__pyx_kwds);
63991       switch (PyTuple_GET_SIZE(__pyx_args)) {
63992         case  0:
63993         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
63994         if (likely(values[0])) kw_args--;
63995         else goto __pyx_L5_argtuple_error;
63996         case  1:
63997         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
63998         if (likely(values[1])) kw_args--;
63999         else {
64000           __Pyx_RaiseArgtupleInvalid("Reduce_scatter", 0, 2, 4, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64001         }
64002         case  2:
64003         if (kw_args > 0) {
64004           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvcounts);
64005           if (value) { values[2] = value; kw_args--; }
64006         }
64007         case  3:
64008         if (kw_args > 0) {
64009           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
64010           if (value) { values[3] = value; kw_args--; }
64011         }
64012       }
64013       if (unlikely(kw_args > 0)) {
64014         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Reduce_scatter") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64015       }
64016     } else {
64017       switch (PyTuple_GET_SIZE(__pyx_args)) {
64018         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
64019         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
64020         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
64021         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
64022         break;
64023         default: goto __pyx_L5_argtuple_error;
64024       }
64025     }
64026     __pyx_v_sendbuf = values[0];
64027     __pyx_v_recvbuf = values[1];
64028     __pyx_v_recvcounts = values[2];
64029     __pyx_v_op = ((struct PyMPIOpObject *)values[3]);
64030   }
64031   goto __pyx_L4_argument_unpacking_done;
64032   __pyx_L5_argtuple_error:;
64033   __Pyx_RaiseArgtupleInvalid("Reduce_scatter", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64034   __pyx_L3_error:;
64035   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce_scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
64036   __Pyx_RefNannyFinishContext();
64037   return NULL;
64038   __pyx_L4_argument_unpacking_done:;
64039   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64040 
64041   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":565
64042  *         Reduce-Scatter (vector version)
64043  *         """
64044  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
64045  *         m.for_reduce_scatter(sendbuf, recvbuf,
64046  *                              recvcounts, self.ob_mpi)
64047  */
64048   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64049   __Pyx_GOTREF(__pyx_t_1);
64050   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
64051   __pyx_t_1 = 0;
64052 
64053   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":567
64054  *         cdef _p_msg_cco m = message_cco()
64055  *         m.for_reduce_scatter(sendbuf, recvbuf,
64056  *                              recvcounts, self.ob_mpi)             # <<<<<<<<<<<<<<
64057  *         with nogil: CHKERR( MPI_Reduce_scatter(
64058  *             m.sbuf, m.rbuf, m.rcounts, m.rtype,
64059  */
64060   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_reduce_scatter(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, __pyx_v_recvcounts, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64061 
64062   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":568
64063  *         m.for_reduce_scatter(sendbuf, recvbuf,
64064  *                              recvcounts, self.ob_mpi)
64065  *         with nogil: CHKERR( MPI_Reduce_scatter(             # <<<<<<<<<<<<<<
64066  *             m.sbuf, m.rbuf, m.rcounts, m.rtype,
64067  *             op.ob_mpi, self.ob_mpi) )
64068  */
64069   {
64070       #ifdef WITH_THREAD
64071       PyThreadState *_save = NULL;
64072       #endif
64073       Py_UNBLOCK_THREADS
64074       /*try:*/ {
64075 
64076         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":570
64077  *         with nogil: CHKERR( MPI_Reduce_scatter(
64078  *             m.sbuf, m.rbuf, m.rcounts, m.rtype,
64079  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
64080  *
64081  *     # Tests
64082  */
64083         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Reduce_scatter(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcounts, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L7;}
64084       }
64085 
64086       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":568
64087  *         m.for_reduce_scatter(sendbuf, recvbuf,
64088  *                              recvcounts, self.ob_mpi)
64089  *         with nogil: CHKERR( MPI_Reduce_scatter(             # <<<<<<<<<<<<<<
64090  *             m.sbuf, m.rbuf, m.rcounts, m.rtype,
64091  *             op.ob_mpi, self.ob_mpi) )
64092  */
64093       /*finally:*/ {
64094         int __pyx_why;
64095         __pyx_why = 0; goto __pyx_L8;
64096         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
64097         __pyx_L8:;
64098         Py_BLOCK_THREADS
64099         switch (__pyx_why) {
64100           case 4: goto __pyx_L1_error;
64101         }
64102       }
64103   }
64104 
64105   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64106   goto __pyx_L0;
64107   __pyx_L1_error:;
64108   __Pyx_XDECREF(__pyx_t_1);
64109   __Pyx_AddTraceback("mpi4py.MPI.Comm.Reduce_scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
64110   __pyx_r = NULL;
64111   __pyx_L0:;
64112   __Pyx_XDECREF((PyObject *)__pyx_v_m);
64113   __Pyx_XGIVEREF(__pyx_r);
64114   __Pyx_RefNannyFinishContext();
64115   return __pyx_r;
64116 }
64117 
64118 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":575
64119  *     # -----
64120  *
64121  *     def Is_inter(self):             # <<<<<<<<<<<<<<
64122  *         """
64123  *         Test to see if a comm is an intercommunicator
64124  */
64125 
64126 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_44Is_inter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64127 static char __pyx_doc_6mpi4py_3MPI_4Comm_44Is_inter[] = "Comm.Is_inter(self)\n\n        Test to see if a comm is an intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_44Is_inter(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)64128 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_44Is_inter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64129   int __pyx_v_flag;
64130   PyObject *__pyx_r = NULL;
64131   __Pyx_RefNannyDeclarations
64132   int __pyx_t_1;
64133   PyObject *__pyx_t_2 = NULL;
64134   int __pyx_lineno = 0;
64135   const char *__pyx_filename = NULL;
64136   int __pyx_clineno = 0;
64137   __Pyx_RefNannySetupContext("Is_inter");
64138   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
64139     __Pyx_RaiseArgtupleInvalid("Is_inter", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
64140   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_inter", 0))) return NULL;
64141 
64142   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":579
64143  *         Test to see if a comm is an intercommunicator
64144  *         """
64145  *         cdef int flag = 0             # <<<<<<<<<<<<<<
64146  *         CHKERR( MPI_Comm_test_inter(self.ob_mpi, &flag) )
64147  *         return <bint>flag
64148  */
64149   __pyx_v_flag = 0;
64150 
64151   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":580
64152  *         """
64153  *         cdef int flag = 0
64154  *         CHKERR( MPI_Comm_test_inter(self.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
64155  *         return <bint>flag
64156  *
64157  */
64158   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64159 
64160   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":581
64161  *         cdef int flag = 0
64162  *         CHKERR( MPI_Comm_test_inter(self.ob_mpi, &flag) )
64163  *         return <bint>flag             # <<<<<<<<<<<<<<
64164  *
64165  *     property is_inter:
64166  */
64167   __Pyx_XDECREF(__pyx_r);
64168   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64169   __Pyx_GOTREF(__pyx_t_2);
64170   __pyx_r = __pyx_t_2;
64171   __pyx_t_2 = 0;
64172   goto __pyx_L0;
64173 
64174   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64175   goto __pyx_L0;
64176   __pyx_L1_error:;
64177   __Pyx_XDECREF(__pyx_t_2);
64178   __Pyx_AddTraceback("mpi4py.MPI.Comm.Is_inter", __pyx_clineno, __pyx_lineno, __pyx_filename);
64179   __pyx_r = NULL;
64180   __pyx_L0:;
64181   __Pyx_XGIVEREF(__pyx_r);
64182   __Pyx_RefNannyFinishContext();
64183   return __pyx_r;
64184 }
64185 
64186 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":585
64187  *     property is_inter:
64188  *         """is intercommunicator"""
64189  *         def __get__(self):             # <<<<<<<<<<<<<<
64190  *             return self.Is_inter()
64191  *
64192  */
64193 
64194 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8is_inter___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_8is_inter___get__(PyObject * __pyx_v_self)64195 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8is_inter___get__(PyObject *__pyx_v_self) {
64196   PyObject *__pyx_r = NULL;
64197   __Pyx_RefNannyDeclarations
64198   PyObject *__pyx_t_1 = NULL;
64199   PyObject *__pyx_t_2 = NULL;
64200   int __pyx_lineno = 0;
64201   const char *__pyx_filename = NULL;
64202   int __pyx_clineno = 0;
64203   __Pyx_RefNannySetupContext("__get__");
64204 
64205   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":586
64206  *         """is intercommunicator"""
64207  *         def __get__(self):
64208  *             return self.Is_inter()             # <<<<<<<<<<<<<<
64209  *
64210  *     def Is_intra(self):
64211  */
64212   __Pyx_XDECREF(__pyx_r);
64213   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Is_inter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64214   __Pyx_GOTREF(__pyx_t_1);
64215   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64216   __Pyx_GOTREF(__pyx_t_2);
64217   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64218   __pyx_r = __pyx_t_2;
64219   __pyx_t_2 = 0;
64220   goto __pyx_L0;
64221 
64222   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64223   goto __pyx_L0;
64224   __pyx_L1_error:;
64225   __Pyx_XDECREF(__pyx_t_1);
64226   __Pyx_XDECREF(__pyx_t_2);
64227   __Pyx_AddTraceback("mpi4py.MPI.Comm.is_inter.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
64228   __pyx_r = NULL;
64229   __pyx_L0:;
64230   __Pyx_XGIVEREF(__pyx_r);
64231   __Pyx_RefNannyFinishContext();
64232   return __pyx_r;
64233 }
64234 
64235 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":588
64236  *             return self.Is_inter()
64237  *
64238  *     def Is_intra(self):             # <<<<<<<<<<<<<<
64239  *         """
64240  *         Test to see if a comm is an intracommunicator
64241  */
64242 
64243 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_45Is_intra(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64244 static char __pyx_doc_6mpi4py_3MPI_4Comm_45Is_intra[] = "Comm.Is_intra(self)\n\n        Test to see if a comm is an intracommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_45Is_intra(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)64245 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_45Is_intra(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64246   PyObject *__pyx_r = NULL;
64247   __Pyx_RefNannyDeclarations
64248   PyObject *__pyx_t_1 = NULL;
64249   PyObject *__pyx_t_2 = NULL;
64250   int __pyx_t_3;
64251   int __pyx_lineno = 0;
64252   const char *__pyx_filename = NULL;
64253   int __pyx_clineno = 0;
64254   __Pyx_RefNannySetupContext("Is_intra");
64255   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
64256     __Pyx_RaiseArgtupleInvalid("Is_intra", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
64257   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_intra", 0))) return NULL;
64258 
64259   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":592
64260  *         Test to see if a comm is an intracommunicator
64261  *         """
64262  *         return not self.Is_inter()             # <<<<<<<<<<<<<<
64263  *
64264  *     property is_intra:
64265  */
64266   __Pyx_XDECREF(__pyx_r);
64267   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Is_inter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64268   __Pyx_GOTREF(__pyx_t_1);
64269   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64270   __Pyx_GOTREF(__pyx_t_2);
64271   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64272   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64273   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
64274   __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64275   __Pyx_GOTREF(__pyx_t_2);
64276   __pyx_r = __pyx_t_2;
64277   __pyx_t_2 = 0;
64278   goto __pyx_L0;
64279 
64280   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64281   goto __pyx_L0;
64282   __pyx_L1_error:;
64283   __Pyx_XDECREF(__pyx_t_1);
64284   __Pyx_XDECREF(__pyx_t_2);
64285   __Pyx_AddTraceback("mpi4py.MPI.Comm.Is_intra", __pyx_clineno, __pyx_lineno, __pyx_filename);
64286   __pyx_r = NULL;
64287   __pyx_L0:;
64288   __Pyx_XGIVEREF(__pyx_r);
64289   __Pyx_RefNannyFinishContext();
64290   return __pyx_r;
64291 }
64292 
64293 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":596
64294  *     property is_intra:
64295  *         """is intracommunicator"""
64296  *         def __get__(self):             # <<<<<<<<<<<<<<
64297  *             return self.Is_intra()
64298  *
64299  */
64300 
64301 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8is_intra___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_8is_intra___get__(PyObject * __pyx_v_self)64302 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8is_intra___get__(PyObject *__pyx_v_self) {
64303   PyObject *__pyx_r = NULL;
64304   __Pyx_RefNannyDeclarations
64305   PyObject *__pyx_t_1 = NULL;
64306   PyObject *__pyx_t_2 = NULL;
64307   int __pyx_lineno = 0;
64308   const char *__pyx_filename = NULL;
64309   int __pyx_clineno = 0;
64310   __Pyx_RefNannySetupContext("__get__");
64311 
64312   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":597
64313  *         """is intracommunicator"""
64314  *         def __get__(self):
64315  *             return self.Is_intra()             # <<<<<<<<<<<<<<
64316  *
64317  *     def Get_topology(self):
64318  */
64319   __Pyx_XDECREF(__pyx_r);
64320   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Is_intra); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64321   __Pyx_GOTREF(__pyx_t_1);
64322   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64323   __Pyx_GOTREF(__pyx_t_2);
64324   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64325   __pyx_r = __pyx_t_2;
64326   __pyx_t_2 = 0;
64327   goto __pyx_L0;
64328 
64329   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64330   goto __pyx_L0;
64331   __pyx_L1_error:;
64332   __Pyx_XDECREF(__pyx_t_1);
64333   __Pyx_XDECREF(__pyx_t_2);
64334   __Pyx_AddTraceback("mpi4py.MPI.Comm.is_intra.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
64335   __pyx_r = NULL;
64336   __pyx_L0:;
64337   __Pyx_XGIVEREF(__pyx_r);
64338   __Pyx_RefNannyFinishContext();
64339   return __pyx_r;
64340 }
64341 
64342 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":599
64343  *             return self.Is_intra()
64344  *
64345  *     def Get_topology(self):             # <<<<<<<<<<<<<<
64346  *         """
64347  *         Determine the type of topology (if any)
64348  */
64349 
64350 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_46Get_topology(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64351 static char __pyx_doc_6mpi4py_3MPI_4Comm_46Get_topology[] = "Comm.Get_topology(self)\n\n        Determine the type of topology (if any)\n        associated with a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_46Get_topology(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)64352 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_46Get_topology(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64353   int __pyx_v_topo;
64354   PyObject *__pyx_r = NULL;
64355   __Pyx_RefNannyDeclarations
64356   int __pyx_t_1;
64357   PyObject *__pyx_t_2 = NULL;
64358   int __pyx_lineno = 0;
64359   const char *__pyx_filename = NULL;
64360   int __pyx_clineno = 0;
64361   __Pyx_RefNannySetupContext("Get_topology");
64362   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
64363     __Pyx_RaiseArgtupleInvalid("Get_topology", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
64364   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_topology", 0))) return NULL;
64365 
64366   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":604
64367  *         associated with a communicator
64368  *         """
64369  *         cdef int topo = MPI_UNDEFINED             # <<<<<<<<<<<<<<
64370  *         CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
64371  *         return topo
64372  */
64373   __pyx_v_topo = MPI_UNDEFINED;
64374 
64375   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":605
64376  *         """
64377  *         cdef int topo = MPI_UNDEFINED
64378  *         CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )             # <<<<<<<<<<<<<<
64379  *         return topo
64380  *
64381  */
64382   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Topo_test(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_topo))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64383 
64384   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":606
64385  *         cdef int topo = MPI_UNDEFINED
64386  *         CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
64387  *         return topo             # <<<<<<<<<<<<<<
64388  *
64389  *     property topology:
64390  */
64391   __Pyx_XDECREF(__pyx_r);
64392   __pyx_t_2 = PyInt_FromLong(__pyx_v_topo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64393   __Pyx_GOTREF(__pyx_t_2);
64394   __pyx_r = __pyx_t_2;
64395   __pyx_t_2 = 0;
64396   goto __pyx_L0;
64397 
64398   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64399   goto __pyx_L0;
64400   __pyx_L1_error:;
64401   __Pyx_XDECREF(__pyx_t_2);
64402   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_topology", __pyx_clineno, __pyx_lineno, __pyx_filename);
64403   __pyx_r = NULL;
64404   __pyx_L0:;
64405   __Pyx_XGIVEREF(__pyx_r);
64406   __Pyx_RefNannyFinishContext();
64407   return __pyx_r;
64408 }
64409 
64410 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":610
64411  *     property topology:
64412  *         """communicator topology type"""
64413  *         def __get__(self):             # <<<<<<<<<<<<<<
64414  *             return self.Get_topology()
64415  *
64416  */
64417 
64418 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8topology___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_8topology___get__(PyObject * __pyx_v_self)64419 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_8topology___get__(PyObject *__pyx_v_self) {
64420   PyObject *__pyx_r = NULL;
64421   __Pyx_RefNannyDeclarations
64422   PyObject *__pyx_t_1 = NULL;
64423   PyObject *__pyx_t_2 = NULL;
64424   int __pyx_lineno = 0;
64425   const char *__pyx_filename = NULL;
64426   int __pyx_clineno = 0;
64427   __Pyx_RefNannySetupContext("__get__");
64428 
64429   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":611
64430  *         """communicator topology type"""
64431  *         def __get__(self):
64432  *             return self.Get_topology()             # <<<<<<<<<<<<<<
64433  *
64434  *     # Process Creation and Management
64435  */
64436   __Pyx_XDECREF(__pyx_r);
64437   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topology); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64438   __Pyx_GOTREF(__pyx_t_1);
64439   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64440   __Pyx_GOTREF(__pyx_t_2);
64441   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64442   __pyx_r = __pyx_t_2;
64443   __pyx_t_2 = 0;
64444   goto __pyx_L0;
64445 
64446   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64447   goto __pyx_L0;
64448   __pyx_L1_error:;
64449   __Pyx_XDECREF(__pyx_t_1);
64450   __Pyx_XDECREF(__pyx_t_2);
64451   __Pyx_AddTraceback("mpi4py.MPI.Comm.topology.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
64452   __pyx_r = NULL;
64453   __pyx_L0:;
64454   __Pyx_XGIVEREF(__pyx_r);
64455   __Pyx_RefNannyFinishContext();
64456   return __pyx_r;
64457 }
64458 
64459 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":617
64460  *
64461  *     @classmethod
64462  *     def Get_parent(cls):             # <<<<<<<<<<<<<<
64463  *         """
64464  *         Return the parent intercommunicator for this process
64465  */
64466 
64467 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_47Get_parent(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64468 static char __pyx_doc_6mpi4py_3MPI_4Comm_47Get_parent[] = "Comm.Get_parent(type cls)\n\n        Return the parent intercommunicator for this process\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_47Get_parent(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)64469 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_47Get_parent(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64470   MPI_Comm __pyx_v_comm;
64471   struct PyMPIIntercommObject *__pyx_v_parent = 0;
64472   PyObject *__pyx_r = NULL;
64473   __Pyx_RefNannyDeclarations
64474   int __pyx_t_1;
64475   int __pyx_lineno = 0;
64476   const char *__pyx_filename = NULL;
64477   int __pyx_clineno = 0;
64478   __Pyx_RefNannySetupContext("Get_parent");
64479   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
64480     __Pyx_RaiseArgtupleInvalid("Get_parent", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
64481   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_parent", 0))) return NULL;
64482 
64483   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":621
64484  *         Return the parent intercommunicator for this process
64485  *         """
64486  *         cdef MPI_Comm comm = MPI_COMM_NULL             # <<<<<<<<<<<<<<
64487  *         with nogil: CHKERR( MPI_Comm_get_parent(&comm) )
64488  *         global __COMM_PARENT__
64489  */
64490   __pyx_v_comm = MPI_COMM_NULL;
64491 
64492   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":622
64493  *         """
64494  *         cdef MPI_Comm comm = MPI_COMM_NULL
64495  *         with nogil: CHKERR( MPI_Comm_get_parent(&comm) )             # <<<<<<<<<<<<<<
64496  *         global __COMM_PARENT__
64497  *         cdef Intercomm parent = __COMM_PARENT__
64498  */
64499   {
64500       #ifdef WITH_THREAD
64501       PyThreadState *_save = NULL;
64502       #endif
64503       Py_UNBLOCK_THREADS
64504       /*try:*/ {
64505         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_get_parent((&__pyx_v_comm))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L6;}
64506       }
64507       /*finally:*/ {
64508         int __pyx_why;
64509         __pyx_why = 0; goto __pyx_L7;
64510         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
64511         __pyx_L7:;
64512         Py_BLOCK_THREADS
64513         switch (__pyx_why) {
64514           case 4: goto __pyx_L1_error;
64515         }
64516       }
64517   }
64518 
64519   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":624
64520  *         with nogil: CHKERR( MPI_Comm_get_parent(&comm) )
64521  *         global __COMM_PARENT__
64522  *         cdef Intercomm parent = __COMM_PARENT__             # <<<<<<<<<<<<<<
64523  *         parent.ob_mpi = comm
64524  *         return parent
64525  */
64526   __Pyx_INCREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_PARENT__));
64527   __pyx_v_parent = __pyx_v_6mpi4py_3MPI___COMM_PARENT__;
64528 
64529   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":625
64530  *         global __COMM_PARENT__
64531  *         cdef Intercomm parent = __COMM_PARENT__
64532  *         parent.ob_mpi = comm             # <<<<<<<<<<<<<<
64533  *         return parent
64534  *
64535  */
64536   __pyx_v_parent->__pyx_base.ob_mpi = __pyx_v_comm;
64537 
64538   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":626
64539  *         cdef Intercomm parent = __COMM_PARENT__
64540  *         parent.ob_mpi = comm
64541  *         return parent             # <<<<<<<<<<<<<<
64542  *
64543  *     def Disconnect(self):
64544  */
64545   __Pyx_XDECREF(__pyx_r);
64546   __Pyx_INCREF(((PyObject *)__pyx_v_parent));
64547   __pyx_r = ((PyObject *)__pyx_v_parent);
64548   goto __pyx_L0;
64549 
64550   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64551   goto __pyx_L0;
64552   __pyx_L1_error:;
64553   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_parent", __pyx_clineno, __pyx_lineno, __pyx_filename);
64554   __pyx_r = NULL;
64555   __pyx_L0:;
64556   __Pyx_XDECREF((PyObject *)__pyx_v_parent);
64557   __Pyx_XGIVEREF(__pyx_r);
64558   __Pyx_RefNannyFinishContext();
64559   return __pyx_r;
64560 }
64561 
64562 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":628
64563  *         return parent
64564  *
64565  *     def Disconnect(self):             # <<<<<<<<<<<<<<
64566  *         """
64567  *         Disconnect from a communicator
64568  */
64569 
64570 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_48Disconnect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64571 static char __pyx_doc_6mpi4py_3MPI_4Comm_48Disconnect[] = "Comm.Disconnect(self)\n\n        Disconnect from a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_48Disconnect(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)64572 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_48Disconnect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64573   PyObject *__pyx_r = NULL;
64574   __Pyx_RefNannyDeclarations
64575   int __pyx_t_1;
64576   int __pyx_lineno = 0;
64577   const char *__pyx_filename = NULL;
64578   int __pyx_clineno = 0;
64579   __Pyx_RefNannySetupContext("Disconnect");
64580   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
64581     __Pyx_RaiseArgtupleInvalid("Disconnect", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
64582   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Disconnect", 0))) return NULL;
64583 
64584   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":632
64585  *         Disconnect from a communicator
64586  *         """
64587  *         with nogil: CHKERR( MPI_Comm_disconnect(             # <<<<<<<<<<<<<<
64588  *             &self.ob_mpi) )
64589  *
64590  */
64591   {
64592       #ifdef WITH_THREAD
64593       PyThreadState *_save = NULL;
64594       #endif
64595       Py_UNBLOCK_THREADS
64596       /*try:*/ {
64597 
64598         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":633
64599  *         """
64600  *         with nogil: CHKERR( MPI_Comm_disconnect(
64601  *             &self.ob_mpi) )             # <<<<<<<<<<<<<<
64602  *
64603  *     @classmethod
64604  */
64605         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_disconnect((&((struct PyMPICommObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L6;}
64606       }
64607 
64608       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":632
64609  *         Disconnect from a communicator
64610  *         """
64611  *         with nogil: CHKERR( MPI_Comm_disconnect(             # <<<<<<<<<<<<<<
64612  *             &self.ob_mpi) )
64613  *
64614  */
64615       /*finally:*/ {
64616         int __pyx_why;
64617         __pyx_why = 0; goto __pyx_L7;
64618         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
64619         __pyx_L7:;
64620         Py_BLOCK_THREADS
64621         switch (__pyx_why) {
64622           case 4: goto __pyx_L1_error;
64623         }
64624       }
64625   }
64626 
64627   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64628   goto __pyx_L0;
64629   __pyx_L1_error:;
64630   __Pyx_AddTraceback("mpi4py.MPI.Comm.Disconnect", __pyx_clineno, __pyx_lineno, __pyx_filename);
64631   __pyx_r = NULL;
64632   __pyx_L0:;
64633   __Pyx_XGIVEREF(__pyx_r);
64634   __Pyx_RefNannyFinishContext();
64635   return __pyx_r;
64636 }
64637 
64638 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":636
64639  *
64640  *     @classmethod
64641  *     def Join(cls, int fd):             # <<<<<<<<<<<<<<
64642  *         """
64643  *         Create a intercommunicator by joining
64644  */
64645 
64646 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_49Join(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64647 static char __pyx_doc_6mpi4py_3MPI_4Comm_49Join[] = "Comm.Join(type cls, int fd)\n\n        Create a intercommunicator by joining\n        two processes connected by a socket\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_49Join(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)64648 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_49Join(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64649   int __pyx_v_fd;
64650   struct PyMPIIntercommObject *__pyx_v_comm = 0;
64651   PyObject *__pyx_r = NULL;
64652   __Pyx_RefNannyDeclarations
64653   PyObject *__pyx_t_1 = NULL;
64654   int __pyx_t_2;
64655   int __pyx_lineno = 0;
64656   const char *__pyx_filename = NULL;
64657   int __pyx_clineno = 0;
64658   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fd,0};
64659   __Pyx_RefNannySetupContext("Join");
64660   {
64661     PyObject* values[1] = {0};
64662     if (unlikely(__pyx_kwds)) {
64663       Py_ssize_t kw_args;
64664       switch (PyTuple_GET_SIZE(__pyx_args)) {
64665         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
64666         case  0: break;
64667         default: goto __pyx_L5_argtuple_error;
64668       }
64669       kw_args = PyDict_Size(__pyx_kwds);
64670       switch (PyTuple_GET_SIZE(__pyx_args)) {
64671         case  0:
64672         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fd);
64673         if (likely(values[0])) kw_args--;
64674         else goto __pyx_L5_argtuple_error;
64675       }
64676       if (unlikely(kw_args > 0)) {
64677         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Join") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64678       }
64679     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
64680       goto __pyx_L5_argtuple_error;
64681     } else {
64682       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
64683     }
64684     __pyx_v_fd = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_fd == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64685   }
64686   goto __pyx_L4_argument_unpacking_done;
64687   __pyx_L5_argtuple_error:;
64688   __Pyx_RaiseArgtupleInvalid("Join", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64689   __pyx_L3_error:;
64690   __Pyx_AddTraceback("mpi4py.MPI.Comm.Join", __pyx_clineno, __pyx_lineno, __pyx_filename);
64691   __Pyx_RefNannyFinishContext();
64692   return NULL;
64693   __pyx_L4_argument_unpacking_done:;
64694 
64695   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":641
64696  *         two processes connected by a socket
64697  *         """
64698  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
64699  *         with nogil: CHKERR( MPI_Comm_join(
64700  *             fd, &comm.ob_mpi) )
64701  */
64702   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64703   __Pyx_GOTREF(__pyx_t_1);
64704   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
64705   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
64706   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
64707 
64708   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":642
64709  *         """
64710  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
64711  *         with nogil: CHKERR( MPI_Comm_join(             # <<<<<<<<<<<<<<
64712  *             fd, &comm.ob_mpi) )
64713  *         return comm
64714  */
64715   {
64716       #ifdef WITH_THREAD
64717       PyThreadState *_save = NULL;
64718       #endif
64719       Py_UNBLOCK_THREADS
64720       /*try:*/ {
64721 
64722         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":643
64723  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
64724  *         with nogil: CHKERR( MPI_Comm_join(
64725  *             fd, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
64726  *         return comm
64727  *
64728  */
64729         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_join(__pyx_v_fd, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L7;}
64730       }
64731 
64732       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":642
64733  *         """
64734  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
64735  *         with nogil: CHKERR( MPI_Comm_join(             # <<<<<<<<<<<<<<
64736  *             fd, &comm.ob_mpi) )
64737  *         return comm
64738  */
64739       /*finally:*/ {
64740         int __pyx_why;
64741         __pyx_why = 0; goto __pyx_L8;
64742         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
64743         __pyx_L8:;
64744         Py_BLOCK_THREADS
64745         switch (__pyx_why) {
64746           case 4: goto __pyx_L1_error;
64747         }
64748       }
64749   }
64750 
64751   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":644
64752  *         with nogil: CHKERR( MPI_Comm_join(
64753  *             fd, &comm.ob_mpi) )
64754  *         return comm             # <<<<<<<<<<<<<<
64755  *
64756  *     # Attributes
64757  */
64758   __Pyx_XDECREF(__pyx_r);
64759   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
64760   __pyx_r = ((PyObject *)__pyx_v_comm);
64761   goto __pyx_L0;
64762 
64763   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
64764   goto __pyx_L0;
64765   __pyx_L1_error:;
64766   __Pyx_XDECREF(__pyx_t_1);
64767   __Pyx_AddTraceback("mpi4py.MPI.Comm.Join", __pyx_clineno, __pyx_lineno, __pyx_filename);
64768   __pyx_r = NULL;
64769   __pyx_L0:;
64770   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
64771   __Pyx_XGIVEREF(__pyx_r);
64772   __Pyx_RefNannyFinishContext();
64773   return __pyx_r;
64774 }
64775 
64776 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":649
64777  *     # ----------
64778  *
64779  *     def Get_attr(self, int keyval):             # <<<<<<<<<<<<<<
64780  *         """
64781  *         Retrieve attribute value by key
64782  */
64783 
64784 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_50Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
64785 static char __pyx_doc_6mpi4py_3MPI_4Comm_50Get_attr[] = "Comm.Get_attr(self, int keyval)\n\n        Retrieve attribute value by key\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_50Get_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)64786 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_50Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
64787   int __pyx_v_keyval;
64788   void *__pyx_v_attrval;
64789   int __pyx_v_flag;
64790   PyObject *__pyx_r = NULL;
64791   __Pyx_RefNannyDeclarations
64792   int __pyx_t_1;
64793   int __pyx_t_2;
64794   int __pyx_t_3;
64795   int __pyx_t_4;
64796   int __pyx_t_5;
64797   int __pyx_t_6;
64798   PyObject *__pyx_t_7 = NULL;
64799   int __pyx_lineno = 0;
64800   const char *__pyx_filename = NULL;
64801   int __pyx_clineno = 0;
64802   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
64803   __Pyx_RefNannySetupContext("Get_attr");
64804   {
64805     PyObject* values[1] = {0};
64806     if (unlikely(__pyx_kwds)) {
64807       Py_ssize_t kw_args;
64808       switch (PyTuple_GET_SIZE(__pyx_args)) {
64809         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
64810         case  0: break;
64811         default: goto __pyx_L5_argtuple_error;
64812       }
64813       kw_args = PyDict_Size(__pyx_kwds);
64814       switch (PyTuple_GET_SIZE(__pyx_args)) {
64815         case  0:
64816         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
64817         if (likely(values[0])) kw_args--;
64818         else goto __pyx_L5_argtuple_error;
64819       }
64820       if (unlikely(kw_args > 0)) {
64821         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_attr") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64822       }
64823     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
64824       goto __pyx_L5_argtuple_error;
64825     } else {
64826       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
64827     }
64828     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64829   }
64830   goto __pyx_L4_argument_unpacking_done;
64831   __pyx_L5_argtuple_error:;
64832   __Pyx_RaiseArgtupleInvalid("Get_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
64833   __pyx_L3_error:;
64834   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
64835   __Pyx_RefNannyFinishContext();
64836   return NULL;
64837   __pyx_L4_argument_unpacking_done:;
64838 
64839   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":653
64840  *         Retrieve attribute value by key
64841  *         """
64842  *         cdef void *attrval = NULL             # <<<<<<<<<<<<<<
64843  *         cdef int  flag = 0
64844  *         CHKERR(MPI_Comm_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
64845  */
64846   __pyx_v_attrval = NULL;
64847 
64848   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":654
64849  *         """
64850  *         cdef void *attrval = NULL
64851  *         cdef int  flag = 0             # <<<<<<<<<<<<<<
64852  *         CHKERR(MPI_Comm_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
64853  *         if not flag: return None
64854  */
64855   __pyx_v_flag = 0;
64856 
64857   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":655
64858  *         cdef void *attrval = NULL
64859  *         cdef int  flag = 0
64860  *         CHKERR(MPI_Comm_get_attr(self.ob_mpi, keyval, &attrval, &flag) )             # <<<<<<<<<<<<<<
64861  *         if not flag: return None
64862  *         if attrval == NULL: return 0
64863  */
64864   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_get_attr(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, (&__pyx_v_attrval), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64865 
64866   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":656
64867  *         cdef int  flag = 0
64868  *         CHKERR(MPI_Comm_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
64869  *         if not flag: return None             # <<<<<<<<<<<<<<
64870  *         if attrval == NULL: return 0
64871  *         # MPI-1 predefined attribute keyvals
64872  */
64873   __pyx_t_2 = (!__pyx_v_flag);
64874   if (__pyx_t_2) {
64875     __Pyx_XDECREF(__pyx_r);
64876     __Pyx_INCREF(Py_None);
64877     __pyx_r = Py_None;
64878     goto __pyx_L0;
64879     goto __pyx_L6;
64880   }
64881   __pyx_L6:;
64882 
64883   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":657
64884  *         CHKERR(MPI_Comm_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
64885  *         if not flag: return None
64886  *         if attrval == NULL: return 0             # <<<<<<<<<<<<<<
64887  *         # MPI-1 predefined attribute keyvals
64888  *         if ((keyval == <int>MPI_TAG_UB) or
64889  */
64890   __pyx_t_2 = (__pyx_v_attrval == NULL);
64891   if (__pyx_t_2) {
64892     __Pyx_XDECREF(__pyx_r);
64893     __Pyx_INCREF(__pyx_int_0);
64894     __pyx_r = __pyx_int_0;
64895     goto __pyx_L0;
64896     goto __pyx_L7;
64897   }
64898   __pyx_L7:;
64899 
64900   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":659
64901  *         if attrval == NULL: return 0
64902  *         # MPI-1 predefined attribute keyvals
64903  *         if ((keyval == <int>MPI_TAG_UB) or             # <<<<<<<<<<<<<<
64904  *             (keyval == <int>MPI_HOST) or
64905  *             (keyval == <int>MPI_IO) or
64906  */
64907   __pyx_t_2 = (__pyx_v_keyval == ((int)MPI_TAG_UB));
64908   if (!__pyx_t_2) {
64909 
64910     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":660
64911  *         # MPI-1 predefined attribute keyvals
64912  *         if ((keyval == <int>MPI_TAG_UB) or
64913  *             (keyval == <int>MPI_HOST) or             # <<<<<<<<<<<<<<
64914  *             (keyval == <int>MPI_IO) or
64915  *             (keyval == <int>MPI_WTIME_IS_GLOBAL)):
64916  */
64917     __pyx_t_3 = (__pyx_v_keyval == ((int)MPI_HOST));
64918     if (!__pyx_t_3) {
64919 
64920       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":661
64921  *         if ((keyval == <int>MPI_TAG_UB) or
64922  *             (keyval == <int>MPI_HOST) or
64923  *             (keyval == <int>MPI_IO) or             # <<<<<<<<<<<<<<
64924  *             (keyval == <int>MPI_WTIME_IS_GLOBAL)):
64925  *             return (<int*>attrval)[0]
64926  */
64927       __pyx_t_4 = (__pyx_v_keyval == ((int)MPI_IO));
64928       if (!__pyx_t_4) {
64929 
64930         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":662
64931  *             (keyval == <int>MPI_HOST) or
64932  *             (keyval == <int>MPI_IO) or
64933  *             (keyval == <int>MPI_WTIME_IS_GLOBAL)):             # <<<<<<<<<<<<<<
64934  *             return (<int*>attrval)[0]
64935  *         # MPI-2 predefined attribute keyvals
64936  */
64937         __pyx_t_5 = (__pyx_v_keyval == ((int)MPI_WTIME_IS_GLOBAL));
64938         __pyx_t_6 = __pyx_t_5;
64939       } else {
64940         __pyx_t_6 = __pyx_t_4;
64941       }
64942       __pyx_t_4 = __pyx_t_6;
64943     } else {
64944       __pyx_t_4 = __pyx_t_3;
64945     }
64946     __pyx_t_3 = __pyx_t_4;
64947   } else {
64948     __pyx_t_3 = __pyx_t_2;
64949   }
64950   if (__pyx_t_3) {
64951 
64952     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":663
64953  *             (keyval == <int>MPI_IO) or
64954  *             (keyval == <int>MPI_WTIME_IS_GLOBAL)):
64955  *             return (<int*>attrval)[0]             # <<<<<<<<<<<<<<
64956  *         # MPI-2 predefined attribute keyvals
64957  *         elif ((keyval == <int>MPI_UNIVERSE_SIZE) or
64958  */
64959     __Pyx_XDECREF(__pyx_r);
64960     __pyx_t_7 = PyInt_FromLong((((int *)__pyx_v_attrval)[0])); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
64961     __Pyx_GOTREF(__pyx_t_7);
64962     __pyx_r = __pyx_t_7;
64963     __pyx_t_7 = 0;
64964     goto __pyx_L0;
64965     goto __pyx_L8;
64966   }
64967 
64968   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":665
64969  *             return (<int*>attrval)[0]
64970  *         # MPI-2 predefined attribute keyvals
64971  *         elif ((keyval == <int>MPI_UNIVERSE_SIZE) or             # <<<<<<<<<<<<<<
64972  *               (keyval == <int>MPI_APPNUM) or
64973  *               (keyval == <int>MPI_LASTUSEDCODE)):
64974  */
64975   __pyx_t_3 = (__pyx_v_keyval == ((int)MPI_UNIVERSE_SIZE));
64976   if (!__pyx_t_3) {
64977 
64978     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":666
64979  *         # MPI-2 predefined attribute keyvals
64980  *         elif ((keyval == <int>MPI_UNIVERSE_SIZE) or
64981  *               (keyval == <int>MPI_APPNUM) or             # <<<<<<<<<<<<<<
64982  *               (keyval == <int>MPI_LASTUSEDCODE)):
64983  *             return (<int*>attrval)[0]
64984  */
64985     __pyx_t_2 = (__pyx_v_keyval == ((int)MPI_APPNUM));
64986     if (!__pyx_t_2) {
64987 
64988       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":667
64989  *         elif ((keyval == <int>MPI_UNIVERSE_SIZE) or
64990  *               (keyval == <int>MPI_APPNUM) or
64991  *               (keyval == <int>MPI_LASTUSEDCODE)):             # <<<<<<<<<<<<<<
64992  *             return (<int*>attrval)[0]
64993  *         # user-defined attribute keyval
64994  */
64995       __pyx_t_4 = (__pyx_v_keyval == ((int)MPI_LASTUSEDCODE));
64996       __pyx_t_6 = __pyx_t_4;
64997     } else {
64998       __pyx_t_6 = __pyx_t_2;
64999     }
65000     __pyx_t_2 = __pyx_t_6;
65001   } else {
65002     __pyx_t_2 = __pyx_t_3;
65003   }
65004   if (__pyx_t_2) {
65005 
65006     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":668
65007  *               (keyval == <int>MPI_APPNUM) or
65008  *               (keyval == <int>MPI_LASTUSEDCODE)):
65009  *             return (<int*>attrval)[0]             # <<<<<<<<<<<<<<
65010  *         # user-defined attribute keyval
65011  *         elif keyval in comm_keyval:
65012  */
65013     __Pyx_XDECREF(__pyx_r);
65014     __pyx_t_7 = PyInt_FromLong((((int *)__pyx_v_attrval)[0])); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65015     __Pyx_GOTREF(__pyx_t_7);
65016     __pyx_r = __pyx_t_7;
65017     __pyx_t_7 = 0;
65018     goto __pyx_L0;
65019     goto __pyx_L8;
65020   }
65021 
65022   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":670
65023  *             return (<int*>attrval)[0]
65024  *         # user-defined attribute keyval
65025  *         elif keyval in comm_keyval:             # <<<<<<<<<<<<<<
65026  *             return <object>attrval
65027  *         else:
65028  */
65029   __pyx_t_7 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65030   __Pyx_GOTREF(__pyx_t_7);
65031   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval) == Py_None)) {
65032     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65033   }
65034   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_t_7))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65035   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
65036   if (__pyx_t_2) {
65037 
65038     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":671
65039  *         # user-defined attribute keyval
65040  *         elif keyval in comm_keyval:
65041  *             return <object>attrval             # <<<<<<<<<<<<<<
65042  *         else:
65043  *             return PyLong_FromVoidPtr(attrval)
65044  */
65045     __Pyx_XDECREF(__pyx_r);
65046     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
65047     __pyx_r = ((PyObject *)__pyx_v_attrval);
65048     goto __pyx_L0;
65049     goto __pyx_L8;
65050   }
65051   /*else*/ {
65052 
65053     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":673
65054  *             return <object>attrval
65055  *         else:
65056  *             return PyLong_FromVoidPtr(attrval)             # <<<<<<<<<<<<<<
65057  *
65058  *     def Set_attr(self, int keyval, object attrval):
65059  */
65060     __Pyx_XDECREF(__pyx_r);
65061     __pyx_t_7 = PyLong_FromVoidPtr(__pyx_v_attrval); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65062     __Pyx_GOTREF(__pyx_t_7);
65063     __pyx_r = __pyx_t_7;
65064     __pyx_t_7 = 0;
65065     goto __pyx_L0;
65066   }
65067   __pyx_L8:;
65068 
65069   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65070   goto __pyx_L0;
65071   __pyx_L1_error:;
65072   __Pyx_XDECREF(__pyx_t_7);
65073   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
65074   __pyx_r = NULL;
65075   __pyx_L0:;
65076   __Pyx_XGIVEREF(__pyx_r);
65077   __Pyx_RefNannyFinishContext();
65078   return __pyx_r;
65079 }
65080 
65081 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":675
65082  *             return PyLong_FromVoidPtr(attrval)
65083  *
65084  *     def Set_attr(self, int keyval, object attrval):             # <<<<<<<<<<<<<<
65085  *         """
65086  *         Store attribute value associated with a key
65087  */
65088 
65089 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_51Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65090 static char __pyx_doc_6mpi4py_3MPI_4Comm_51Set_attr[] = "Comm.Set_attr(self, int keyval, attrval)\n\n        Store attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_51Set_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65091 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_51Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65092   int __pyx_v_keyval;
65093   PyObject *__pyx_v_attrval = 0;
65094   void *__pyx_v_ptrval;
65095   int __pyx_v_incref;
65096   PyObject *__pyx_r = NULL;
65097   __Pyx_RefNannyDeclarations
65098   PyObject *__pyx_t_1 = NULL;
65099   int __pyx_t_2;
65100   int __pyx_t_3;
65101   int __pyx_lineno = 0;
65102   const char *__pyx_filename = NULL;
65103   int __pyx_clineno = 0;
65104   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,&__pyx_n_s__attrval,0};
65105   __Pyx_RefNannySetupContext("Set_attr");
65106   {
65107     PyObject* values[2] = {0,0};
65108     if (unlikely(__pyx_kwds)) {
65109       Py_ssize_t kw_args;
65110       switch (PyTuple_GET_SIZE(__pyx_args)) {
65111         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
65112         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65113         case  0: break;
65114         default: goto __pyx_L5_argtuple_error;
65115       }
65116       kw_args = PyDict_Size(__pyx_kwds);
65117       switch (PyTuple_GET_SIZE(__pyx_args)) {
65118         case  0:
65119         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
65120         if (likely(values[0])) kw_args--;
65121         else goto __pyx_L5_argtuple_error;
65122         case  1:
65123         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrval);
65124         if (likely(values[1])) kw_args--;
65125         else {
65126           __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65127         }
65128       }
65129       if (unlikely(kw_args > 0)) {
65130         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_attr") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65131       }
65132     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
65133       goto __pyx_L5_argtuple_error;
65134     } else {
65135       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65136       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
65137     }
65138     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65139     __pyx_v_attrval = values[1];
65140   }
65141   goto __pyx_L4_argument_unpacking_done;
65142   __pyx_L5_argtuple_error:;
65143   __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65144   __pyx_L3_error:;
65145   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
65146   __Pyx_RefNannyFinishContext();
65147   return NULL;
65148   __pyx_L4_argument_unpacking_done:;
65149 
65150   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":679
65151  *         Store attribute value associated with a key
65152  *         """
65153  *         cdef void *ptrval = NULL             # <<<<<<<<<<<<<<
65154  *         cdef int incref = 0
65155  *         if keyval in comm_keyval:
65156  */
65157   __pyx_v_ptrval = NULL;
65158 
65159   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":680
65160  *         """
65161  *         cdef void *ptrval = NULL
65162  *         cdef int incref = 0             # <<<<<<<<<<<<<<
65163  *         if keyval in comm_keyval:
65164  *             ptrval = <void*>attrval
65165  */
65166   __pyx_v_incref = 0;
65167 
65168   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":681
65169  *         cdef void *ptrval = NULL
65170  *         cdef int incref = 0
65171  *         if keyval in comm_keyval:             # <<<<<<<<<<<<<<
65172  *             ptrval = <void*>attrval
65173  *             incref = 1
65174  */
65175   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65176   __Pyx_GOTREF(__pyx_t_1);
65177   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval) == Py_None)) {
65178     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65179   }
65180   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval), __pyx_t_1))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65181   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
65182   if (__pyx_t_2) {
65183 
65184     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":682
65185  *         cdef int incref = 0
65186  *         if keyval in comm_keyval:
65187  *             ptrval = <void*>attrval             # <<<<<<<<<<<<<<
65188  *             incref = 1
65189  *         else:
65190  */
65191     __pyx_v_ptrval = ((void *)__pyx_v_attrval);
65192 
65193     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":683
65194  *         if keyval in comm_keyval:
65195  *             ptrval = <void*>attrval
65196  *             incref = 1             # <<<<<<<<<<<<<<
65197  *         else:
65198  *             ptrval = PyLong_AsVoidPtr(attrval)
65199  */
65200     __pyx_v_incref = 1;
65201     goto __pyx_L6;
65202   }
65203   /*else*/ {
65204 
65205     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":685
65206  *             incref = 1
65207  *         else:
65208  *             ptrval = PyLong_AsVoidPtr(attrval)             # <<<<<<<<<<<<<<
65209  *             incref = 0
65210  *         CHKERR(MPI_Comm_set_attr(self.ob_mpi, keyval, ptrval) )
65211  */
65212     __pyx_v_ptrval = PyLong_AsVoidPtr(__pyx_v_attrval);
65213 
65214     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":686
65215  *         else:
65216  *             ptrval = PyLong_AsVoidPtr(attrval)
65217  *             incref = 0             # <<<<<<<<<<<<<<
65218  *         CHKERR(MPI_Comm_set_attr(self.ob_mpi, keyval, ptrval) )
65219  *         if incref: Py_INCREF(attrval)
65220  */
65221     __pyx_v_incref = 0;
65222   }
65223   __pyx_L6:;
65224 
65225   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":687
65226  *             ptrval = PyLong_AsVoidPtr(attrval)
65227  *             incref = 0
65228  *         CHKERR(MPI_Comm_set_attr(self.ob_mpi, keyval, ptrval) )             # <<<<<<<<<<<<<<
65229  *         if incref: Py_INCREF(attrval)
65230  *
65231  */
65232   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_set_attr(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, __pyx_v_ptrval)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65233 
65234   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":688
65235  *             incref = 0
65236  *         CHKERR(MPI_Comm_set_attr(self.ob_mpi, keyval, ptrval) )
65237  *         if incref: Py_INCREF(attrval)             # <<<<<<<<<<<<<<
65238  *
65239  *     def Delete_attr(self, int keyval):
65240  */
65241   if (__pyx_v_incref) {
65242     Py_INCREF(__pyx_v_attrval);
65243     goto __pyx_L7;
65244   }
65245   __pyx_L7:;
65246 
65247   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65248   goto __pyx_L0;
65249   __pyx_L1_error:;
65250   __Pyx_XDECREF(__pyx_t_1);
65251   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
65252   __pyx_r = NULL;
65253   __pyx_L0:;
65254   __Pyx_XGIVEREF(__pyx_r);
65255   __Pyx_RefNannyFinishContext();
65256   return __pyx_r;
65257 }
65258 
65259 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":690
65260  *         if incref: Py_INCREF(attrval)
65261  *
65262  *     def Delete_attr(self, int keyval):             # <<<<<<<<<<<<<<
65263  *         """
65264  *         Delete attribute value associated with a key
65265  */
65266 
65267 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_52Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65268 static char __pyx_doc_6mpi4py_3MPI_4Comm_52Delete_attr[] = "Comm.Delete_attr(self, int keyval)\n\n        Delete attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_52Delete_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65269 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_52Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65270   int __pyx_v_keyval;
65271   PyObject *__pyx_r = NULL;
65272   __Pyx_RefNannyDeclarations
65273   int __pyx_t_1;
65274   int __pyx_lineno = 0;
65275   const char *__pyx_filename = NULL;
65276   int __pyx_clineno = 0;
65277   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
65278   __Pyx_RefNannySetupContext("Delete_attr");
65279   {
65280     PyObject* values[1] = {0};
65281     if (unlikely(__pyx_kwds)) {
65282       Py_ssize_t kw_args;
65283       switch (PyTuple_GET_SIZE(__pyx_args)) {
65284         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65285         case  0: break;
65286         default: goto __pyx_L5_argtuple_error;
65287       }
65288       kw_args = PyDict_Size(__pyx_kwds);
65289       switch (PyTuple_GET_SIZE(__pyx_args)) {
65290         case  0:
65291         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
65292         if (likely(values[0])) kw_args--;
65293         else goto __pyx_L5_argtuple_error;
65294       }
65295       if (unlikely(kw_args > 0)) {
65296         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Delete_attr") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65297       }
65298     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
65299       goto __pyx_L5_argtuple_error;
65300     } else {
65301       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65302     }
65303     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65304   }
65305   goto __pyx_L4_argument_unpacking_done;
65306   __pyx_L5_argtuple_error:;
65307   __Pyx_RaiseArgtupleInvalid("Delete_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65308   __pyx_L3_error:;
65309   __Pyx_AddTraceback("mpi4py.MPI.Comm.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
65310   __Pyx_RefNannyFinishContext();
65311   return NULL;
65312   __pyx_L4_argument_unpacking_done:;
65313 
65314   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":694
65315  *         Delete attribute value associated with a key
65316  *         """
65317  *         CHKERR(MPI_Comm_delete_attr(self.ob_mpi, keyval) )             # <<<<<<<<<<<<<<
65318  *
65319  *     @classmethod
65320  */
65321   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_delete_attr(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65322 
65323   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65324   goto __pyx_L0;
65325   __pyx_L1_error:;
65326   __Pyx_AddTraceback("mpi4py.MPI.Comm.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
65327   __pyx_r = NULL;
65328   __pyx_L0:;
65329   __Pyx_XGIVEREF(__pyx_r);
65330   __Pyx_RefNannyFinishContext();
65331   return __pyx_r;
65332 }
65333 
65334 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":697
65335  *
65336  *     @classmethod
65337  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
65338  *         """
65339  *         Create a new attribute key for communicators
65340  */
65341 
65342 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_53Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65343 static char __pyx_doc_6mpi4py_3MPI_4Comm_53Create_keyval[] = "Comm.Create_keyval(type cls, copy_fn=None, delete_fn=None)\n\n        Create a new attribute key for communicators\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_53Create_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)65344 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_53Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65345   PyObject *__pyx_v_copy_fn = 0;
65346   PyObject *__pyx_v_delete_fn = 0;
65347   int __pyx_v_keyval;
65348   MPI_Comm_copy_attr_function *__pyx_v__copy;
65349   MPI_Comm_delete_attr_function *__pyx_v__del;
65350   void *__pyx_v_extra_state;
65351   PyObject *__pyx_r = NULL;
65352   __Pyx_RefNannyDeclarations
65353   int __pyx_t_1;
65354   PyObject *__pyx_t_2 = NULL;
65355   int __pyx_lineno = 0;
65356   const char *__pyx_filename = NULL;
65357   int __pyx_clineno = 0;
65358   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__copy_fn,&__pyx_n_s__delete_fn,0};
65359   __Pyx_RefNannySetupContext("Create_keyval");
65360   {
65361     PyObject* values[2] = {0,0};
65362     values[0] = ((PyObject *)Py_None);
65363     values[1] = ((PyObject *)Py_None);
65364     if (unlikely(__pyx_kwds)) {
65365       Py_ssize_t kw_args;
65366       switch (PyTuple_GET_SIZE(__pyx_args)) {
65367         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
65368         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65369         case  0: break;
65370         default: goto __pyx_L5_argtuple_error;
65371       }
65372       kw_args = PyDict_Size(__pyx_kwds);
65373       switch (PyTuple_GET_SIZE(__pyx_args)) {
65374         case  0:
65375         if (kw_args > 0) {
65376           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__copy_fn);
65377           if (value) { values[0] = value; kw_args--; }
65378         }
65379         case  1:
65380         if (kw_args > 0) {
65381           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delete_fn);
65382           if (value) { values[1] = value; kw_args--; }
65383         }
65384       }
65385       if (unlikely(kw_args > 0)) {
65386         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_keyval") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65387       }
65388     } else {
65389       switch (PyTuple_GET_SIZE(__pyx_args)) {
65390         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
65391         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65392         case  0: break;
65393         default: goto __pyx_L5_argtuple_error;
65394       }
65395     }
65396     __pyx_v_copy_fn = values[0];
65397     __pyx_v_delete_fn = values[1];
65398   }
65399   goto __pyx_L4_argument_unpacking_done;
65400   __pyx_L5_argtuple_error:;
65401   __Pyx_RaiseArgtupleInvalid("Create_keyval", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65402   __pyx_L3_error:;
65403   __Pyx_AddTraceback("mpi4py.MPI.Comm.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
65404   __Pyx_RefNannyFinishContext();
65405   return NULL;
65406   __pyx_L4_argument_unpacking_done:;
65407 
65408   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":701
65409  *         Create a new attribute key for communicators
65410  *         """
65411  *         cdef int keyval = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
65412  *         cdef MPI_Comm_copy_attr_function *_copy = comm_attr_copy_fn
65413  *         cdef MPI_Comm_delete_attr_function *_del = comm_attr_delete_fn
65414  */
65415   __pyx_v_keyval = MPI_KEYVAL_INVALID;
65416 
65417   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":702
65418  *         """
65419  *         cdef int keyval = MPI_KEYVAL_INVALID
65420  *         cdef MPI_Comm_copy_attr_function *_copy = comm_attr_copy_fn             # <<<<<<<<<<<<<<
65421  *         cdef MPI_Comm_delete_attr_function *_del = comm_attr_delete_fn
65422  *         cdef void *extra_state = NULL
65423  */
65424   __pyx_v__copy = __pyx_f_6mpi4py_3MPI_comm_attr_copy_fn;
65425 
65426   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":703
65427  *         cdef int keyval = MPI_KEYVAL_INVALID
65428  *         cdef MPI_Comm_copy_attr_function *_copy = comm_attr_copy_fn
65429  *         cdef MPI_Comm_delete_attr_function *_del = comm_attr_delete_fn             # <<<<<<<<<<<<<<
65430  *         cdef void *extra_state = NULL
65431  *         CHKERR( MPI_Comm_create_keyval(_copy, _del, &keyval, extra_state) )
65432  */
65433   __pyx_v__del = __pyx_f_6mpi4py_3MPI_comm_attr_delete_fn;
65434 
65435   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":704
65436  *         cdef MPI_Comm_copy_attr_function *_copy = comm_attr_copy_fn
65437  *         cdef MPI_Comm_delete_attr_function *_del = comm_attr_delete_fn
65438  *         cdef void *extra_state = NULL             # <<<<<<<<<<<<<<
65439  *         CHKERR( MPI_Comm_create_keyval(_copy, _del, &keyval, extra_state) )
65440  *         comm_keyval_new(keyval, copy_fn, delete_fn)
65441  */
65442   __pyx_v_extra_state = NULL;
65443 
65444   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":705
65445  *         cdef MPI_Comm_delete_attr_function *_del = comm_attr_delete_fn
65446  *         cdef void *extra_state = NULL
65447  *         CHKERR( MPI_Comm_create_keyval(_copy, _del, &keyval, extra_state) )             # <<<<<<<<<<<<<<
65448  *         comm_keyval_new(keyval, copy_fn, delete_fn)
65449  *         return keyval
65450  */
65451   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_create_keyval(__pyx_v__copy, __pyx_v__del, (&__pyx_v_keyval), __pyx_v_extra_state)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65452 
65453   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":706
65454  *         cdef void *extra_state = NULL
65455  *         CHKERR( MPI_Comm_create_keyval(_copy, _del, &keyval, extra_state) )
65456  *         comm_keyval_new(keyval, copy_fn, delete_fn)             # <<<<<<<<<<<<<<
65457  *         return keyval
65458  *
65459  */
65460   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_comm_keyval_new(__pyx_v_keyval, __pyx_v_copy_fn, __pyx_v_delete_fn); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65461 
65462   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":707
65463  *         CHKERR( MPI_Comm_create_keyval(_copy, _del, &keyval, extra_state) )
65464  *         comm_keyval_new(keyval, copy_fn, delete_fn)
65465  *         return keyval             # <<<<<<<<<<<<<<
65466  *
65467  *     @classmethod
65468  */
65469   __Pyx_XDECREF(__pyx_r);
65470   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65471   __Pyx_GOTREF(__pyx_t_2);
65472   __pyx_r = __pyx_t_2;
65473   __pyx_t_2 = 0;
65474   goto __pyx_L0;
65475 
65476   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65477   goto __pyx_L0;
65478   __pyx_L1_error:;
65479   __Pyx_XDECREF(__pyx_t_2);
65480   __Pyx_AddTraceback("mpi4py.MPI.Comm.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
65481   __pyx_r = NULL;
65482   __pyx_L0:;
65483   __Pyx_XGIVEREF(__pyx_r);
65484   __Pyx_RefNannyFinishContext();
65485   return __pyx_r;
65486 }
65487 
65488 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":710
65489  *
65490  *     @classmethod
65491  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
65492  *         """
65493  *         Free and attribute key for communicators
65494  */
65495 
65496 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_54Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65497 static char __pyx_doc_6mpi4py_3MPI_4Comm_54Free_keyval[] = "Comm.Free_keyval(type cls, int keyval)\n\n        Free and attribute key for communicators\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_54Free_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)65498 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_54Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65499   int __pyx_v_keyval;
65500   int __pyx_v_keyval_save;
65501   PyObject *__pyx_r = NULL;
65502   __Pyx_RefNannyDeclarations
65503   int __pyx_t_1;
65504   PyObject *__pyx_t_2 = NULL;
65505   int __pyx_lineno = 0;
65506   const char *__pyx_filename = NULL;
65507   int __pyx_clineno = 0;
65508   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
65509   __Pyx_RefNannySetupContext("Free_keyval");
65510   {
65511     PyObject* values[1] = {0};
65512     if (unlikely(__pyx_kwds)) {
65513       Py_ssize_t kw_args;
65514       switch (PyTuple_GET_SIZE(__pyx_args)) {
65515         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65516         case  0: break;
65517         default: goto __pyx_L5_argtuple_error;
65518       }
65519       kw_args = PyDict_Size(__pyx_kwds);
65520       switch (PyTuple_GET_SIZE(__pyx_args)) {
65521         case  0:
65522         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
65523         if (likely(values[0])) kw_args--;
65524         else goto __pyx_L5_argtuple_error;
65525       }
65526       if (unlikely(kw_args > 0)) {
65527         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Free_keyval") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65528       }
65529     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
65530       goto __pyx_L5_argtuple_error;
65531     } else {
65532       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65533     }
65534     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65535   }
65536   goto __pyx_L4_argument_unpacking_done;
65537   __pyx_L5_argtuple_error:;
65538   __Pyx_RaiseArgtupleInvalid("Free_keyval", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65539   __pyx_L3_error:;
65540   __Pyx_AddTraceback("mpi4py.MPI.Comm.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
65541   __Pyx_RefNannyFinishContext();
65542   return NULL;
65543   __pyx_L4_argument_unpacking_done:;
65544 
65545   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":714
65546  *         Free and attribute key for communicators
65547  *         """
65548  *         cdef int keyval_save = keyval             # <<<<<<<<<<<<<<
65549  *         CHKERR( MPI_Comm_free_keyval (&keyval) )
65550  *         comm_keyval_del(keyval_save)
65551  */
65552   __pyx_v_keyval_save = __pyx_v_keyval;
65553 
65554   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":715
65555  *         """
65556  *         cdef int keyval_save = keyval
65557  *         CHKERR( MPI_Comm_free_keyval (&keyval) )             # <<<<<<<<<<<<<<
65558  *         comm_keyval_del(keyval_save)
65559  *         return keyval
65560  */
65561   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_free_keyval((&__pyx_v_keyval))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65562 
65563   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":716
65564  *         cdef int keyval_save = keyval
65565  *         CHKERR( MPI_Comm_free_keyval (&keyval) )
65566  *         comm_keyval_del(keyval_save)             # <<<<<<<<<<<<<<
65567  *         return keyval
65568  *
65569  */
65570   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_comm_keyval_del(__pyx_v_keyval_save); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65571 
65572   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":717
65573  *         CHKERR( MPI_Comm_free_keyval (&keyval) )
65574  *         comm_keyval_del(keyval_save)
65575  *         return keyval             # <<<<<<<<<<<<<<
65576  *
65577  *     # Error handling
65578  */
65579   __Pyx_XDECREF(__pyx_r);
65580   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65581   __Pyx_GOTREF(__pyx_t_2);
65582   __pyx_r = __pyx_t_2;
65583   __pyx_t_2 = 0;
65584   goto __pyx_L0;
65585 
65586   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65587   goto __pyx_L0;
65588   __pyx_L1_error:;
65589   __Pyx_XDECREF(__pyx_t_2);
65590   __Pyx_AddTraceback("mpi4py.MPI.Comm.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
65591   __pyx_r = NULL;
65592   __pyx_L0:;
65593   __Pyx_XGIVEREF(__pyx_r);
65594   __Pyx_RefNannyFinishContext();
65595   return __pyx_r;
65596 }
65597 
65598 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":722
65599  *     # --------------
65600  *
65601  *     def Get_errhandler(self):             # <<<<<<<<<<<<<<
65602  *         """
65603  *         Get the error handler for a communicator
65604  */
65605 
65606 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_55Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65607 static char __pyx_doc_6mpi4py_3MPI_4Comm_55Get_errhandler[] = "Comm.Get_errhandler(self)\n\n        Get the error handler for a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_55Get_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65608 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_55Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65609   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
65610   PyObject *__pyx_r = NULL;
65611   __Pyx_RefNannyDeclarations
65612   PyObject *__pyx_t_1 = NULL;
65613   int __pyx_t_2;
65614   int __pyx_lineno = 0;
65615   const char *__pyx_filename = NULL;
65616   int __pyx_clineno = 0;
65617   __Pyx_RefNannySetupContext("Get_errhandler");
65618   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
65619     __Pyx_RaiseArgtupleInvalid("Get_errhandler", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
65620   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_errhandler", 0))) return NULL;
65621 
65622   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":726
65623  *         Get the error handler for a communicator
65624  *         """
65625  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)             # <<<<<<<<<<<<<<
65626  *         CHKERR( MPI_Comm_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
65627  *         return errhandler
65628  */
65629   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65630   __Pyx_GOTREF(__pyx_t_1);
65631   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
65632   __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
65633   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
65634 
65635   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":727
65636  *         """
65637  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
65638  *         CHKERR( MPI_Comm_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
65639  *         return errhandler
65640  *
65641  */
65642   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_get_errhandler(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_errhandler->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65643 
65644   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":728
65645  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
65646  *         CHKERR( MPI_Comm_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
65647  *         return errhandler             # <<<<<<<<<<<<<<
65648  *
65649  *     def Set_errhandler(self, Errhandler errhandler not None):
65650  */
65651   __Pyx_XDECREF(__pyx_r);
65652   __Pyx_INCREF(((PyObject *)__pyx_v_errhandler));
65653   __pyx_r = ((PyObject *)__pyx_v_errhandler);
65654   goto __pyx_L0;
65655 
65656   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65657   goto __pyx_L0;
65658   __pyx_L1_error:;
65659   __Pyx_XDECREF(__pyx_t_1);
65660   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
65661   __pyx_r = NULL;
65662   __pyx_L0:;
65663   __Pyx_XDECREF((PyObject *)__pyx_v_errhandler);
65664   __Pyx_XGIVEREF(__pyx_r);
65665   __Pyx_RefNannyFinishContext();
65666   return __pyx_r;
65667 }
65668 
65669 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":730
65670  *         return errhandler
65671  *
65672  *     def Set_errhandler(self, Errhandler errhandler not None):             # <<<<<<<<<<<<<<
65673  *         """
65674  *         Set the error handler for a communicator
65675  */
65676 
65677 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_56Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65678 static char __pyx_doc_6mpi4py_3MPI_4Comm_56Set_errhandler[] = "Comm.Set_errhandler(self, Errhandler errhandler)\n\n        Set the error handler for a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_56Set_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65679 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_56Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65680   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
65681   PyObject *__pyx_r = NULL;
65682   __Pyx_RefNannyDeclarations
65683   int __pyx_t_1;
65684   int __pyx_lineno = 0;
65685   const char *__pyx_filename = NULL;
65686   int __pyx_clineno = 0;
65687   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errhandler,0};
65688   __Pyx_RefNannySetupContext("Set_errhandler");
65689   {
65690     PyObject* values[1] = {0};
65691     if (unlikely(__pyx_kwds)) {
65692       Py_ssize_t kw_args;
65693       switch (PyTuple_GET_SIZE(__pyx_args)) {
65694         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65695         case  0: break;
65696         default: goto __pyx_L5_argtuple_error;
65697       }
65698       kw_args = PyDict_Size(__pyx_kwds);
65699       switch (PyTuple_GET_SIZE(__pyx_args)) {
65700         case  0:
65701         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errhandler);
65702         if (likely(values[0])) kw_args--;
65703         else goto __pyx_L5_argtuple_error;
65704       }
65705       if (unlikely(kw_args > 0)) {
65706         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_errhandler") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65707       }
65708     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
65709       goto __pyx_L5_argtuple_error;
65710     } else {
65711       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65712     }
65713     __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)values[0]);
65714   }
65715   goto __pyx_L4_argument_unpacking_done;
65716   __pyx_L5_argtuple_error:;
65717   __Pyx_RaiseArgtupleInvalid("Set_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65718   __pyx_L3_error:;
65719   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
65720   __Pyx_RefNannyFinishContext();
65721   return NULL;
65722   __pyx_L4_argument_unpacking_done:;
65723   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_errhandler), __pyx_ptype_6mpi4py_3MPI_Errhandler, 0, "errhandler", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65724 
65725   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":734
65726  *         Set the error handler for a communicator
65727  *         """
65728  *         CHKERR( MPI_Comm_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
65729  *
65730  *     def Call_errhandler(self, int errorcode):
65731  */
65732   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_set_errhandler(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_errhandler->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65733 
65734   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65735   goto __pyx_L0;
65736   __pyx_L1_error:;
65737   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
65738   __pyx_r = NULL;
65739   __pyx_L0:;
65740   __Pyx_XGIVEREF(__pyx_r);
65741   __Pyx_RefNannyFinishContext();
65742   return __pyx_r;
65743 }
65744 
65745 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":736
65746  *         CHKERR( MPI_Comm_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )
65747  *
65748  *     def Call_errhandler(self, int errorcode):             # <<<<<<<<<<<<<<
65749  *         """
65750  *         Call the error handler installed on a communicator
65751  */
65752 
65753 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_57Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65754 static char __pyx_doc_6mpi4py_3MPI_4Comm_57Call_errhandler[] = "Comm.Call_errhandler(self, int errorcode)\n\n        Call the error handler installed on a communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_57Call_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65755 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_57Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65756   int __pyx_v_errorcode;
65757   PyObject *__pyx_r = NULL;
65758   __Pyx_RefNannyDeclarations
65759   int __pyx_t_1;
65760   int __pyx_lineno = 0;
65761   const char *__pyx_filename = NULL;
65762   int __pyx_clineno = 0;
65763   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
65764   __Pyx_RefNannySetupContext("Call_errhandler");
65765   {
65766     PyObject* values[1] = {0};
65767     if (unlikely(__pyx_kwds)) {
65768       Py_ssize_t kw_args;
65769       switch (PyTuple_GET_SIZE(__pyx_args)) {
65770         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65771         case  0: break;
65772         default: goto __pyx_L5_argtuple_error;
65773       }
65774       kw_args = PyDict_Size(__pyx_kwds);
65775       switch (PyTuple_GET_SIZE(__pyx_args)) {
65776         case  0:
65777         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
65778         if (likely(values[0])) kw_args--;
65779         else goto __pyx_L5_argtuple_error;
65780       }
65781       if (unlikely(kw_args > 0)) {
65782         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Call_errhandler") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65783       }
65784     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
65785       goto __pyx_L5_argtuple_error;
65786     } else {
65787       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65788     }
65789     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65790   }
65791   goto __pyx_L4_argument_unpacking_done;
65792   __pyx_L5_argtuple_error:;
65793   __Pyx_RaiseArgtupleInvalid("Call_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65794   __pyx_L3_error:;
65795   __Pyx_AddTraceback("mpi4py.MPI.Comm.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
65796   __Pyx_RefNannyFinishContext();
65797   return NULL;
65798   __pyx_L4_argument_unpacking_done:;
65799 
65800   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":740
65801  *         Call the error handler installed on a communicator
65802  *         """
65803  *         CHKERR( MPI_Comm_call_errhandler(self.ob_mpi, errorcode) )             # <<<<<<<<<<<<<<
65804  *
65805  *
65806  */
65807   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_call_errhandler(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_errorcode)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65808 
65809   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65810   goto __pyx_L0;
65811   __pyx_L1_error:;
65812   __Pyx_AddTraceback("mpi4py.MPI.Comm.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
65813   __pyx_r = NULL;
65814   __pyx_L0:;
65815   __Pyx_XGIVEREF(__pyx_r);
65816   __Pyx_RefNannyFinishContext();
65817   return __pyx_r;
65818 }
65819 
65820 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":743
65821  *
65822  *
65823  *     def Abort(self, int errorcode=0):             # <<<<<<<<<<<<<<
65824  *         """
65825  *         Terminate MPI execution environment
65826  */
65827 
65828 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_58Abort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65829 static char __pyx_doc_6mpi4py_3MPI_4Comm_58Abort[] = "Comm.Abort(self, int errorcode=0)\n\n        Terminate MPI execution environment\n\n        .. warning:: This is a direct call, use it with care!!!.\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_58Abort(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65830 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_58Abort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65831   int __pyx_v_errorcode;
65832   PyObject *__pyx_r = NULL;
65833   __Pyx_RefNannyDeclarations
65834   int __pyx_t_1;
65835   int __pyx_lineno = 0;
65836   const char *__pyx_filename = NULL;
65837   int __pyx_clineno = 0;
65838   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
65839   __Pyx_RefNannySetupContext("Abort");
65840   {
65841     PyObject* values[1] = {0};
65842     if (unlikely(__pyx_kwds)) {
65843       Py_ssize_t kw_args;
65844       switch (PyTuple_GET_SIZE(__pyx_args)) {
65845         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65846         case  0: break;
65847         default: goto __pyx_L5_argtuple_error;
65848       }
65849       kw_args = PyDict_Size(__pyx_kwds);
65850       switch (PyTuple_GET_SIZE(__pyx_args)) {
65851         case  0:
65852         if (kw_args > 0) {
65853           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
65854           if (value) { values[0] = value; kw_args--; }
65855         }
65856       }
65857       if (unlikely(kw_args > 0)) {
65858         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Abort") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65859       }
65860     } else {
65861       switch (PyTuple_GET_SIZE(__pyx_args)) {
65862         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65863         case  0: break;
65864         default: goto __pyx_L5_argtuple_error;
65865       }
65866     }
65867     if (values[0]) {
65868       __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65869     } else {
65870       __pyx_v_errorcode = ((int)0);
65871     }
65872   }
65873   goto __pyx_L4_argument_unpacking_done;
65874   __pyx_L5_argtuple_error:;
65875   __Pyx_RaiseArgtupleInvalid("Abort", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
65876   __pyx_L3_error:;
65877   __Pyx_AddTraceback("mpi4py.MPI.Comm.Abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
65878   __Pyx_RefNannyFinishContext();
65879   return NULL;
65880   __pyx_L4_argument_unpacking_done:;
65881 
65882   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":749
65883  *         .. warning:: This is a direct call, use it with care!!!.
65884  *         """
65885  *         CHKERR( MPI_Abort(self.ob_mpi, errorcode) )             # <<<<<<<<<<<<<<
65886  *
65887  *     # Naming Objects
65888  */
65889   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Abort(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_errorcode)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65890 
65891   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65892   goto __pyx_L0;
65893   __pyx_L1_error:;
65894   __Pyx_AddTraceback("mpi4py.MPI.Comm.Abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
65895   __pyx_r = NULL;
65896   __pyx_L0:;
65897   __Pyx_XGIVEREF(__pyx_r);
65898   __Pyx_RefNannyFinishContext();
65899   return __pyx_r;
65900 }
65901 
65902 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":754
65903  *     # --------------
65904  *
65905  *     def Get_name(self):             # <<<<<<<<<<<<<<
65906  *         """
65907  *         Get the print name for this communicator
65908  */
65909 
65910 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_59Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65911 static char __pyx_doc_6mpi4py_3MPI_4Comm_59Get_name[] = "Comm.Get_name(self)\n\n        Get the print name for this communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_59Get_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65912 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_59Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65913   char __pyx_v_name[(MPI_MAX_OBJECT_NAME + 1)];
65914   int __pyx_v_nlen;
65915   PyObject *__pyx_r = NULL;
65916   __Pyx_RefNannyDeclarations
65917   int __pyx_t_1;
65918   PyObject *__pyx_t_2 = NULL;
65919   int __pyx_lineno = 0;
65920   const char *__pyx_filename = NULL;
65921   int __pyx_clineno = 0;
65922   __Pyx_RefNannySetupContext("Get_name");
65923   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
65924     __Pyx_RaiseArgtupleInvalid("Get_name", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
65925   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_name", 0))) return NULL;
65926 
65927   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":759
65928  *         """
65929  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
65930  *         cdef int nlen = 0             # <<<<<<<<<<<<<<
65931  *         CHKERR( MPI_Comm_get_name(self.ob_mpi, name, &nlen) )
65932  *         return tompistr(name, nlen)
65933  */
65934   __pyx_v_nlen = 0;
65935 
65936   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":760
65937  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
65938  *         cdef int nlen = 0
65939  *         CHKERR( MPI_Comm_get_name(self.ob_mpi, name, &nlen) )             # <<<<<<<<<<<<<<
65940  *         return tompistr(name, nlen)
65941  *
65942  */
65943   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_get_name(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_name, (&__pyx_v_nlen))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65944 
65945   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":761
65946  *         cdef int nlen = 0
65947  *         CHKERR( MPI_Comm_get_name(self.ob_mpi, name, &nlen) )
65948  *         return tompistr(name, nlen)             # <<<<<<<<<<<<<<
65949  *
65950  *     def Set_name(self, name):
65951  */
65952   __Pyx_XDECREF(__pyx_r);
65953   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_name, __pyx_v_nlen); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
65954   __Pyx_GOTREF(__pyx_t_2);
65955   __pyx_r = __pyx_t_2;
65956   __pyx_t_2 = 0;
65957   goto __pyx_L0;
65958 
65959   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
65960   goto __pyx_L0;
65961   __pyx_L1_error:;
65962   __Pyx_XDECREF(__pyx_t_2);
65963   __Pyx_AddTraceback("mpi4py.MPI.Comm.Get_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
65964   __pyx_r = NULL;
65965   __pyx_L0:;
65966   __Pyx_XGIVEREF(__pyx_r);
65967   __Pyx_RefNannyFinishContext();
65968   return __pyx_r;
65969 }
65970 
65971 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":763
65972  *         return tompistr(name, nlen)
65973  *
65974  *     def Set_name(self, name):             # <<<<<<<<<<<<<<
65975  *         """
65976  *         Set the print name for this communicator
65977  */
65978 
65979 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_60Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65980 static char __pyx_doc_6mpi4py_3MPI_4Comm_60Set_name[] = "Comm.Set_name(self, name)\n\n        Set the print name for this communicator\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_60Set_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)65981 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_60Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
65982   PyObject *__pyx_v_name = 0;
65983   char *__pyx_v_cname;
65984   PyObject *__pyx_r = NULL;
65985   __Pyx_RefNannyDeclarations
65986   PyObject *__pyx_t_1 = NULL;
65987   int __pyx_t_2;
65988   int __pyx_lineno = 0;
65989   const char *__pyx_filename = NULL;
65990   int __pyx_clineno = 0;
65991   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,0};
65992   __Pyx_RefNannySetupContext("Set_name");
65993   {
65994     PyObject* values[1] = {0};
65995     if (unlikely(__pyx_kwds)) {
65996       Py_ssize_t kw_args;
65997       switch (PyTuple_GET_SIZE(__pyx_args)) {
65998         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
65999         case  0: break;
66000         default: goto __pyx_L5_argtuple_error;
66001       }
66002       kw_args = PyDict_Size(__pyx_kwds);
66003       switch (PyTuple_GET_SIZE(__pyx_args)) {
66004         case  0:
66005         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
66006         if (likely(values[0])) kw_args--;
66007         else goto __pyx_L5_argtuple_error;
66008       }
66009       if (unlikely(kw_args > 0)) {
66010         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_name") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66011       }
66012     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
66013       goto __pyx_L5_argtuple_error;
66014     } else {
66015       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66016     }
66017     __pyx_v_name = values[0];
66018   }
66019   goto __pyx_L4_argument_unpacking_done;
66020   __pyx_L5_argtuple_error:;
66021   __Pyx_RaiseArgtupleInvalid("Set_name", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66022   __pyx_L3_error:;
66023   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
66024   __Pyx_RefNannyFinishContext();
66025   return NULL;
66026   __pyx_L4_argument_unpacking_done:;
66027   __Pyx_INCREF(__pyx_v_name);
66028 
66029   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":767
66030  *         Set the print name for this communicator
66031  *         """
66032  *         cdef char *cname = NULL             # <<<<<<<<<<<<<<
66033  *         name = asmpistr(name, &cname, NULL)
66034  *         CHKERR( MPI_Comm_set_name(self.ob_mpi, cname) )
66035  */
66036   __pyx_v_cname = NULL;
66037 
66038   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":768
66039  *         """
66040  *         cdef char *cname = NULL
66041  *         name = asmpistr(name, &cname, NULL)             # <<<<<<<<<<<<<<
66042  *         CHKERR( MPI_Comm_set_name(self.ob_mpi, cname) )
66043  *
66044  */
66045   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_name, (&__pyx_v_cname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66046   __Pyx_GOTREF(__pyx_t_1);
66047   __Pyx_DECREF(__pyx_v_name);
66048   __pyx_v_name = __pyx_t_1;
66049   __pyx_t_1 = 0;
66050 
66051   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":769
66052  *         cdef char *cname = NULL
66053  *         name = asmpistr(name, &cname, NULL)
66054  *         CHKERR( MPI_Comm_set_name(self.ob_mpi, cname) )             # <<<<<<<<<<<<<<
66055  *
66056  *     property name:
66057  */
66058   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_set_name(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi, __pyx_v_cname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66059 
66060   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66061   goto __pyx_L0;
66062   __pyx_L1_error:;
66063   __Pyx_XDECREF(__pyx_t_1);
66064   __Pyx_AddTraceback("mpi4py.MPI.Comm.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
66065   __pyx_r = NULL;
66066   __pyx_L0:;
66067   __Pyx_XDECREF(__pyx_v_name);
66068   __Pyx_XGIVEREF(__pyx_r);
66069   __Pyx_RefNannyFinishContext();
66070   return __pyx_r;
66071 }
66072 
66073 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":773
66074  *     property name:
66075  *         """communicator name"""
66076  *         def __get__(self):             # <<<<<<<<<<<<<<
66077  *             return self.Get_name()
66078  *         def __set__(self, value):
66079  */
66080 
66081 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4name___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_4name___get__(PyObject * __pyx_v_self)66082 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_4name___get__(PyObject *__pyx_v_self) {
66083   PyObject *__pyx_r = NULL;
66084   __Pyx_RefNannyDeclarations
66085   PyObject *__pyx_t_1 = NULL;
66086   PyObject *__pyx_t_2 = NULL;
66087   int __pyx_lineno = 0;
66088   const char *__pyx_filename = NULL;
66089   int __pyx_clineno = 0;
66090   __Pyx_RefNannySetupContext("__get__");
66091 
66092   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":774
66093  *         """communicator name"""
66094  *         def __get__(self):
66095  *             return self.Get_name()             # <<<<<<<<<<<<<<
66096  *         def __set__(self, value):
66097  *             self.Set_name(value)
66098  */
66099   __Pyx_XDECREF(__pyx_r);
66100   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66101   __Pyx_GOTREF(__pyx_t_1);
66102   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66103   __Pyx_GOTREF(__pyx_t_2);
66104   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66105   __pyx_r = __pyx_t_2;
66106   __pyx_t_2 = 0;
66107   goto __pyx_L0;
66108 
66109   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66110   goto __pyx_L0;
66111   __pyx_L1_error:;
66112   __Pyx_XDECREF(__pyx_t_1);
66113   __Pyx_XDECREF(__pyx_t_2);
66114   __Pyx_AddTraceback("mpi4py.MPI.Comm.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
66115   __pyx_r = NULL;
66116   __pyx_L0:;
66117   __Pyx_XGIVEREF(__pyx_r);
66118   __Pyx_RefNannyFinishContext();
66119   return __pyx_r;
66120 }
66121 
66122 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":775
66123  *         def __get__(self):
66124  *             return self.Get_name()
66125  *         def __set__(self, value):             # <<<<<<<<<<<<<<
66126  *             self.Set_name(value)
66127  *
66128  */
66129 
66130 static int __pyx_pf_6mpi4py_3MPI_4Comm_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_4Comm_4name_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)66131 static int __pyx_pf_6mpi4py_3MPI_4Comm_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
66132   int __pyx_r;
66133   __Pyx_RefNannyDeclarations
66134   PyObject *__pyx_t_1 = NULL;
66135   PyObject *__pyx_t_2 = NULL;
66136   PyObject *__pyx_t_3 = NULL;
66137   int __pyx_lineno = 0;
66138   const char *__pyx_filename = NULL;
66139   int __pyx_clineno = 0;
66140   __Pyx_RefNannySetupContext("__set__");
66141 
66142   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":776
66143  *             return self.Get_name()
66144  *         def __set__(self, value):
66145  *             self.Set_name(value)             # <<<<<<<<<<<<<<
66146  *
66147  *     # Fortran Handle
66148  */
66149   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66150   __Pyx_GOTREF(__pyx_t_1);
66151   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66152   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
66153   __Pyx_INCREF(__pyx_v_value);
66154   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
66155   __Pyx_GIVEREF(__pyx_v_value);
66156   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66157   __Pyx_GOTREF(__pyx_t_3);
66158   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66159   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
66160   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
66161 
66162   __pyx_r = 0;
66163   goto __pyx_L0;
66164   __pyx_L1_error:;
66165   __Pyx_XDECREF(__pyx_t_1);
66166   __Pyx_XDECREF(__pyx_t_2);
66167   __Pyx_XDECREF(__pyx_t_3);
66168   __Pyx_AddTraceback("mpi4py.MPI.Comm.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
66169   __pyx_r = -1;
66170   __pyx_L0:;
66171   __Pyx_RefNannyFinishContext();
66172   return __pyx_r;
66173 }
66174 
66175 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":781
66176  *     # --------------
66177  *
66178  *     def py2f(self):             # <<<<<<<<<<<<<<
66179  *         """
66180  *         """
66181  */
66182 
66183 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_61py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66184 static char __pyx_doc_6mpi4py_3MPI_4Comm_61py2f[] = "Comm.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_61py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66185 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_61py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66186   PyObject *__pyx_r = NULL;
66187   __Pyx_RefNannyDeclarations
66188   PyObject *__pyx_t_1 = NULL;
66189   int __pyx_lineno = 0;
66190   const char *__pyx_filename = NULL;
66191   int __pyx_clineno = 0;
66192   __Pyx_RefNannySetupContext("py2f");
66193   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
66194     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
66195   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
66196 
66197   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":784
66198  *         """
66199  *         """
66200  *         return MPI_Comm_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
66201  *
66202  *     @classmethod
66203  */
66204   __Pyx_XDECREF(__pyx_r);
66205   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Comm_c2f(((struct PyMPICommObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66206   __Pyx_GOTREF(__pyx_t_1);
66207   __pyx_r = __pyx_t_1;
66208   __pyx_t_1 = 0;
66209   goto __pyx_L0;
66210 
66211   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66212   goto __pyx_L0;
66213   __pyx_L1_error:;
66214   __Pyx_XDECREF(__pyx_t_1);
66215   __Pyx_AddTraceback("mpi4py.MPI.Comm.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
66216   __pyx_r = NULL;
66217   __pyx_L0:;
66218   __Pyx_XGIVEREF(__pyx_r);
66219   __Pyx_RefNannyFinishContext();
66220   return __pyx_r;
66221 }
66222 
66223 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":787
66224  *
66225  *     @classmethod
66226  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
66227  *         """
66228  *         """
66229  */
66230 
66231 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_62f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66232 static char __pyx_doc_6mpi4py_3MPI_4Comm_62f2py[] = "Comm.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4Comm_62f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)66233 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_62f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66234   PyObject *__pyx_v_arg = 0;
66235   struct PyMPICommObject *__pyx_v_comm = 0;
66236   PyObject *__pyx_r = NULL;
66237   __Pyx_RefNannyDeclarations
66238   PyObject *__pyx_t_1 = NULL;
66239   MPI_Fint __pyx_t_2;
66240   int __pyx_lineno = 0;
66241   const char *__pyx_filename = NULL;
66242   int __pyx_clineno = 0;
66243   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
66244   __Pyx_RefNannySetupContext("f2py");
66245   {
66246     PyObject* values[1] = {0};
66247     if (unlikely(__pyx_kwds)) {
66248       Py_ssize_t kw_args;
66249       switch (PyTuple_GET_SIZE(__pyx_args)) {
66250         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66251         case  0: break;
66252         default: goto __pyx_L5_argtuple_error;
66253       }
66254       kw_args = PyDict_Size(__pyx_kwds);
66255       switch (PyTuple_GET_SIZE(__pyx_args)) {
66256         case  0:
66257         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
66258         if (likely(values[0])) kw_args--;
66259         else goto __pyx_L5_argtuple_error;
66260       }
66261       if (unlikely(kw_args > 0)) {
66262         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66263       }
66264     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
66265       goto __pyx_L5_argtuple_error;
66266     } else {
66267       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66268     }
66269     __pyx_v_arg = values[0];
66270   }
66271   goto __pyx_L4_argument_unpacking_done;
66272   __pyx_L5_argtuple_error:;
66273   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66274   __pyx_L3_error:;
66275   __Pyx_AddTraceback("mpi4py.MPI.Comm.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
66276   __Pyx_RefNannyFinishContext();
66277   return NULL;
66278   __pyx_L4_argument_unpacking_done:;
66279 
66280   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":790
66281  *         """
66282  *         """
66283  *         cdef Comm comm = <Comm>cls()             # <<<<<<<<<<<<<<
66284  *         comm.ob_mpi = MPI_Comm_f2c(arg)
66285  *         return comm
66286  */
66287   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66288   __Pyx_GOTREF(__pyx_t_1);
66289   __Pyx_INCREF(((PyObject *)((struct PyMPICommObject *)__pyx_t_1)));
66290   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_t_1);
66291   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
66292 
66293   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":791
66294  *         """
66295  *         cdef Comm comm = <Comm>cls()
66296  *         comm.ob_mpi = MPI_Comm_f2c(arg)             # <<<<<<<<<<<<<<
66297  *         return comm
66298  *
66299  */
66300   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66301   __pyx_v_comm->ob_mpi = MPI_Comm_f2c(__pyx_t_2);
66302 
66303   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":792
66304  *         cdef Comm comm = <Comm>cls()
66305  *         comm.ob_mpi = MPI_Comm_f2c(arg)
66306  *         return comm             # <<<<<<<<<<<<<<
66307  *
66308  *     # Python Communication
66309  */
66310   __Pyx_XDECREF(__pyx_r);
66311   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
66312   __pyx_r = ((PyObject *)__pyx_v_comm);
66313   goto __pyx_L0;
66314 
66315   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66316   goto __pyx_L0;
66317   __pyx_L1_error:;
66318   __Pyx_XDECREF(__pyx_t_1);
66319   __Pyx_AddTraceback("mpi4py.MPI.Comm.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
66320   __pyx_r = NULL;
66321   __pyx_L0:;
66322   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
66323   __Pyx_XGIVEREF(__pyx_r);
66324   __Pyx_RefNannyFinishContext();
66325   return __pyx_r;
66326 }
66327 
66328 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":797
66329  *     # --------------------
66330  *     #
66331  *     def send(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
66332  *         """Send"""
66333  *         cdef MPI_Comm comm = self.ob_mpi
66334  */
66335 
66336 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_63send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66337 static char __pyx_doc_6mpi4py_3MPI_4Comm_63send[] = "Comm.send(self, obj=None, int dest=0, int tag=0)\nSend";
__pyx_pf_6mpi4py_3MPI_4Comm_63send(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66338 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_63send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66339   PyObject *__pyx_v_obj = 0;
66340   int __pyx_v_dest;
66341   int __pyx_v_tag;
66342   MPI_Comm __pyx_v_comm;
66343   PyObject *__pyx_r = NULL;
66344   __Pyx_RefNannyDeclarations
66345   PyObject *__pyx_t_1 = NULL;
66346   int __pyx_lineno = 0;
66347   const char *__pyx_filename = NULL;
66348   int __pyx_clineno = 0;
66349   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
66350   __Pyx_RefNannySetupContext("send");
66351   {
66352     PyObject* values[3] = {0,0,0};
66353     values[0] = ((PyObject *)Py_None);
66354     if (unlikely(__pyx_kwds)) {
66355       Py_ssize_t kw_args;
66356       switch (PyTuple_GET_SIZE(__pyx_args)) {
66357         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66358         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66359         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66360         case  0: break;
66361         default: goto __pyx_L5_argtuple_error;
66362       }
66363       kw_args = PyDict_Size(__pyx_kwds);
66364       switch (PyTuple_GET_SIZE(__pyx_args)) {
66365         case  0:
66366         if (kw_args > 0) {
66367           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
66368           if (value) { values[0] = value; kw_args--; }
66369         }
66370         case  1:
66371         if (kw_args > 0) {
66372           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
66373           if (value) { values[1] = value; kw_args--; }
66374         }
66375         case  2:
66376         if (kw_args > 0) {
66377           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
66378           if (value) { values[2] = value; kw_args--; }
66379         }
66380       }
66381       if (unlikely(kw_args > 0)) {
66382         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "send") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66383       }
66384     } else {
66385       switch (PyTuple_GET_SIZE(__pyx_args)) {
66386         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66387         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66388         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66389         case  0: break;
66390         default: goto __pyx_L5_argtuple_error;
66391       }
66392     }
66393     __pyx_v_obj = values[0];
66394     if (values[1]) {
66395       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66396     } else {
66397       __pyx_v_dest = ((int)0);
66398     }
66399     if (values[2]) {
66400       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66401     } else {
66402       __pyx_v_tag = ((int)0);
66403     }
66404   }
66405   goto __pyx_L4_argument_unpacking_done;
66406   __pyx_L5_argtuple_error:;
66407   __Pyx_RaiseArgtupleInvalid("send", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66408   __pyx_L3_error:;
66409   __Pyx_AddTraceback("mpi4py.MPI.Comm.send", __pyx_clineno, __pyx_lineno, __pyx_filename);
66410   __Pyx_RefNannyFinishContext();
66411   return NULL;
66412   __pyx_L4_argument_unpacking_done:;
66413 
66414   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":799
66415  *     def send(self, obj=None, int dest=0, int tag=0):
66416  *         """Send"""
66417  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
66418  *         return PyMPI_send(obj, dest, tag, comm)
66419  *     #
66420  */
66421   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
66422 
66423   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":800
66424  *         """Send"""
66425  *         cdef MPI_Comm comm = self.ob_mpi
66426  *         return PyMPI_send(obj, dest, tag, comm)             # <<<<<<<<<<<<<<
66427  *     #
66428  *     def bsend(self, obj=None, int dest=0, int tag=0):
66429  */
66430   __Pyx_XDECREF(__pyx_r);
66431   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_send(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66432   __Pyx_GOTREF(__pyx_t_1);
66433   __pyx_r = __pyx_t_1;
66434   __pyx_t_1 = 0;
66435   goto __pyx_L0;
66436 
66437   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66438   goto __pyx_L0;
66439   __pyx_L1_error:;
66440   __Pyx_XDECREF(__pyx_t_1);
66441   __Pyx_AddTraceback("mpi4py.MPI.Comm.send", __pyx_clineno, __pyx_lineno, __pyx_filename);
66442   __pyx_r = NULL;
66443   __pyx_L0:;
66444   __Pyx_XGIVEREF(__pyx_r);
66445   __Pyx_RefNannyFinishContext();
66446   return __pyx_r;
66447 }
66448 
66449 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":802
66450  *         return PyMPI_send(obj, dest, tag, comm)
66451  *     #
66452  *     def bsend(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
66453  *         """Send in buffered mode"""
66454  *         cdef MPI_Comm comm = self.ob_mpi
66455  */
66456 
66457 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_64bsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66458 static char __pyx_doc_6mpi4py_3MPI_4Comm_64bsend[] = "Comm.bsend(self, obj=None, int dest=0, int tag=0)\nSend in buffered mode";
__pyx_pf_6mpi4py_3MPI_4Comm_64bsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66459 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_64bsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66460   PyObject *__pyx_v_obj = 0;
66461   int __pyx_v_dest;
66462   int __pyx_v_tag;
66463   MPI_Comm __pyx_v_comm;
66464   PyObject *__pyx_r = NULL;
66465   __Pyx_RefNannyDeclarations
66466   PyObject *__pyx_t_1 = NULL;
66467   int __pyx_lineno = 0;
66468   const char *__pyx_filename = NULL;
66469   int __pyx_clineno = 0;
66470   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
66471   __Pyx_RefNannySetupContext("bsend");
66472   {
66473     PyObject* values[3] = {0,0,0};
66474     values[0] = ((PyObject *)Py_None);
66475     if (unlikely(__pyx_kwds)) {
66476       Py_ssize_t kw_args;
66477       switch (PyTuple_GET_SIZE(__pyx_args)) {
66478         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66479         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66480         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66481         case  0: break;
66482         default: goto __pyx_L5_argtuple_error;
66483       }
66484       kw_args = PyDict_Size(__pyx_kwds);
66485       switch (PyTuple_GET_SIZE(__pyx_args)) {
66486         case  0:
66487         if (kw_args > 0) {
66488           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
66489           if (value) { values[0] = value; kw_args--; }
66490         }
66491         case  1:
66492         if (kw_args > 0) {
66493           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
66494           if (value) { values[1] = value; kw_args--; }
66495         }
66496         case  2:
66497         if (kw_args > 0) {
66498           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
66499           if (value) { values[2] = value; kw_args--; }
66500         }
66501       }
66502       if (unlikely(kw_args > 0)) {
66503         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "bsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66504       }
66505     } else {
66506       switch (PyTuple_GET_SIZE(__pyx_args)) {
66507         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66508         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66509         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66510         case  0: break;
66511         default: goto __pyx_L5_argtuple_error;
66512       }
66513     }
66514     __pyx_v_obj = values[0];
66515     if (values[1]) {
66516       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66517     } else {
66518       __pyx_v_dest = ((int)0);
66519     }
66520     if (values[2]) {
66521       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66522     } else {
66523       __pyx_v_tag = ((int)0);
66524     }
66525   }
66526   goto __pyx_L4_argument_unpacking_done;
66527   __pyx_L5_argtuple_error:;
66528   __Pyx_RaiseArgtupleInvalid("bsend", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66529   __pyx_L3_error:;
66530   __Pyx_AddTraceback("mpi4py.MPI.Comm.bsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
66531   __Pyx_RefNannyFinishContext();
66532   return NULL;
66533   __pyx_L4_argument_unpacking_done:;
66534 
66535   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":804
66536  *     def bsend(self, obj=None, int dest=0, int tag=0):
66537  *         """Send in buffered mode"""
66538  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
66539  *         return PyMPI_bsend(obj, dest, tag, comm)
66540  *     #
66541  */
66542   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
66543 
66544   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":805
66545  *         """Send in buffered mode"""
66546  *         cdef MPI_Comm comm = self.ob_mpi
66547  *         return PyMPI_bsend(obj, dest, tag, comm)             # <<<<<<<<<<<<<<
66548  *     #
66549  *     def ssend(self, obj=None, int dest=0, int tag=0):
66550  */
66551   __Pyx_XDECREF(__pyx_r);
66552   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_bsend(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66553   __Pyx_GOTREF(__pyx_t_1);
66554   __pyx_r = __pyx_t_1;
66555   __pyx_t_1 = 0;
66556   goto __pyx_L0;
66557 
66558   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66559   goto __pyx_L0;
66560   __pyx_L1_error:;
66561   __Pyx_XDECREF(__pyx_t_1);
66562   __Pyx_AddTraceback("mpi4py.MPI.Comm.bsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
66563   __pyx_r = NULL;
66564   __pyx_L0:;
66565   __Pyx_XGIVEREF(__pyx_r);
66566   __Pyx_RefNannyFinishContext();
66567   return __pyx_r;
66568 }
66569 
66570 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":807
66571  *         return PyMPI_bsend(obj, dest, tag, comm)
66572  *     #
66573  *     def ssend(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
66574  *         """Send in synchronous mode"""
66575  *         cdef MPI_Comm comm = self.ob_mpi
66576  */
66577 
66578 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_65ssend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66579 static char __pyx_doc_6mpi4py_3MPI_4Comm_65ssend[] = "Comm.ssend(self, obj=None, int dest=0, int tag=0)\nSend in synchronous mode";
__pyx_pf_6mpi4py_3MPI_4Comm_65ssend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66580 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_65ssend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66581   PyObject *__pyx_v_obj = 0;
66582   int __pyx_v_dest;
66583   int __pyx_v_tag;
66584   MPI_Comm __pyx_v_comm;
66585   PyObject *__pyx_r = NULL;
66586   __Pyx_RefNannyDeclarations
66587   PyObject *__pyx_t_1 = NULL;
66588   int __pyx_lineno = 0;
66589   const char *__pyx_filename = NULL;
66590   int __pyx_clineno = 0;
66591   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
66592   __Pyx_RefNannySetupContext("ssend");
66593   {
66594     PyObject* values[3] = {0,0,0};
66595     values[0] = ((PyObject *)Py_None);
66596     if (unlikely(__pyx_kwds)) {
66597       Py_ssize_t kw_args;
66598       switch (PyTuple_GET_SIZE(__pyx_args)) {
66599         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66600         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66601         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66602         case  0: break;
66603         default: goto __pyx_L5_argtuple_error;
66604       }
66605       kw_args = PyDict_Size(__pyx_kwds);
66606       switch (PyTuple_GET_SIZE(__pyx_args)) {
66607         case  0:
66608         if (kw_args > 0) {
66609           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
66610           if (value) { values[0] = value; kw_args--; }
66611         }
66612         case  1:
66613         if (kw_args > 0) {
66614           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
66615           if (value) { values[1] = value; kw_args--; }
66616         }
66617         case  2:
66618         if (kw_args > 0) {
66619           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
66620           if (value) { values[2] = value; kw_args--; }
66621         }
66622       }
66623       if (unlikely(kw_args > 0)) {
66624         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ssend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66625       }
66626     } else {
66627       switch (PyTuple_GET_SIZE(__pyx_args)) {
66628         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66629         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66630         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66631         case  0: break;
66632         default: goto __pyx_L5_argtuple_error;
66633       }
66634     }
66635     __pyx_v_obj = values[0];
66636     if (values[1]) {
66637       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66638     } else {
66639       __pyx_v_dest = ((int)0);
66640     }
66641     if (values[2]) {
66642       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66643     } else {
66644       __pyx_v_tag = ((int)0);
66645     }
66646   }
66647   goto __pyx_L4_argument_unpacking_done;
66648   __pyx_L5_argtuple_error:;
66649   __Pyx_RaiseArgtupleInvalid("ssend", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66650   __pyx_L3_error:;
66651   __Pyx_AddTraceback("mpi4py.MPI.Comm.ssend", __pyx_clineno, __pyx_lineno, __pyx_filename);
66652   __Pyx_RefNannyFinishContext();
66653   return NULL;
66654   __pyx_L4_argument_unpacking_done:;
66655 
66656   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":809
66657  *     def ssend(self, obj=None, int dest=0, int tag=0):
66658  *         """Send in synchronous mode"""
66659  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
66660  *         return PyMPI_ssend(obj, dest, tag, comm)
66661  *     #
66662  */
66663   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
66664 
66665   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":810
66666  *         """Send in synchronous mode"""
66667  *         cdef MPI_Comm comm = self.ob_mpi
66668  *         return PyMPI_ssend(obj, dest, tag, comm)             # <<<<<<<<<<<<<<
66669  *     #
66670  *     def recv(self, obj=None, int source=0, int tag=0, Status status=None):
66671  */
66672   __Pyx_XDECREF(__pyx_r);
66673   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_ssend(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66674   __Pyx_GOTREF(__pyx_t_1);
66675   __pyx_r = __pyx_t_1;
66676   __pyx_t_1 = 0;
66677   goto __pyx_L0;
66678 
66679   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66680   goto __pyx_L0;
66681   __pyx_L1_error:;
66682   __Pyx_XDECREF(__pyx_t_1);
66683   __Pyx_AddTraceback("mpi4py.MPI.Comm.ssend", __pyx_clineno, __pyx_lineno, __pyx_filename);
66684   __pyx_r = NULL;
66685   __pyx_L0:;
66686   __Pyx_XGIVEREF(__pyx_r);
66687   __Pyx_RefNannyFinishContext();
66688   return __pyx_r;
66689 }
66690 
66691 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":812
66692  *         return PyMPI_ssend(obj, dest, tag, comm)
66693  *     #
66694  *     def recv(self, obj=None, int source=0, int tag=0, Status status=None):             # <<<<<<<<<<<<<<
66695  *         """Receive"""
66696  *         cdef MPI_Comm comm = self.ob_mpi
66697  */
66698 
66699 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_66recv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66700 static char __pyx_doc_6mpi4py_3MPI_4Comm_66recv[] = "Comm.recv(self, obj=None, int source=0, int tag=0, Status status=None)\nReceive";
__pyx_pf_6mpi4py_3MPI_4Comm_66recv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66701 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_66recv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66702   PyObject *__pyx_v_obj = 0;
66703   int __pyx_v_source;
66704   int __pyx_v_tag;
66705   struct PyMPIStatusObject *__pyx_v_status = 0;
66706   MPI_Comm __pyx_v_comm;
66707   MPI_Status *__pyx_v_statusp;
66708   PyObject *__pyx_r = NULL;
66709   __Pyx_RefNannyDeclarations
66710   PyObject *__pyx_t_1 = NULL;
66711   int __pyx_lineno = 0;
66712   const char *__pyx_filename = NULL;
66713   int __pyx_clineno = 0;
66714   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__source,&__pyx_n_s__tag,&__pyx_n_s__status,0};
66715   __Pyx_RefNannySetupContext("recv");
66716   {
66717     PyObject* values[4] = {0,0,0,0};
66718     values[0] = ((PyObject *)Py_None);
66719     values[3] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
66720     if (unlikely(__pyx_kwds)) {
66721       Py_ssize_t kw_args;
66722       switch (PyTuple_GET_SIZE(__pyx_args)) {
66723         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
66724         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66725         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66726         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66727         case  0: break;
66728         default: goto __pyx_L5_argtuple_error;
66729       }
66730       kw_args = PyDict_Size(__pyx_kwds);
66731       switch (PyTuple_GET_SIZE(__pyx_args)) {
66732         case  0:
66733         if (kw_args > 0) {
66734           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
66735           if (value) { values[0] = value; kw_args--; }
66736         }
66737         case  1:
66738         if (kw_args > 0) {
66739           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
66740           if (value) { values[1] = value; kw_args--; }
66741         }
66742         case  2:
66743         if (kw_args > 0) {
66744           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
66745           if (value) { values[2] = value; kw_args--; }
66746         }
66747         case  3:
66748         if (kw_args > 0) {
66749           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
66750           if (value) { values[3] = value; kw_args--; }
66751         }
66752       }
66753       if (unlikely(kw_args > 0)) {
66754         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "recv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66755       }
66756     } else {
66757       switch (PyTuple_GET_SIZE(__pyx_args)) {
66758         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
66759         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66760         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66761         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66762         case  0: break;
66763         default: goto __pyx_L5_argtuple_error;
66764       }
66765     }
66766     __pyx_v_obj = values[0];
66767     if (values[1]) {
66768       __pyx_v_source = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66769     } else {
66770       __pyx_v_source = ((int)0);
66771     }
66772     if (values[2]) {
66773       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66774     } else {
66775       __pyx_v_tag = ((int)0);
66776     }
66777     __pyx_v_status = ((struct PyMPIStatusObject *)values[3]);
66778   }
66779   goto __pyx_L4_argument_unpacking_done;
66780   __pyx_L5_argtuple_error:;
66781   __Pyx_RaiseArgtupleInvalid("recv", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66782   __pyx_L3_error:;
66783   __Pyx_AddTraceback("mpi4py.MPI.Comm.recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
66784   __Pyx_RefNannyFinishContext();
66785   return NULL;
66786   __pyx_L4_argument_unpacking_done:;
66787   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66788 
66789   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":814
66790  *     def recv(self, obj=None, int source=0, int tag=0, Status status=None):
66791  *         """Receive"""
66792  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
66793  *         cdef MPI_Status *statusp = arg_Status(status)
66794  *         return PyMPI_recv(obj, source, tag, comm, statusp)
66795  */
66796   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
66797 
66798   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":815
66799  *         """Receive"""
66800  *         cdef MPI_Comm comm = self.ob_mpi
66801  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
66802  *         return PyMPI_recv(obj, source, tag, comm, statusp)
66803  *     #
66804  */
66805   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
66806 
66807   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":816
66808  *         cdef MPI_Comm comm = self.ob_mpi
66809  *         cdef MPI_Status *statusp = arg_Status(status)
66810  *         return PyMPI_recv(obj, source, tag, comm, statusp)             # <<<<<<<<<<<<<<
66811  *     #
66812  *     def sendrecv(self,
66813  */
66814   __Pyx_XDECREF(__pyx_r);
66815   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_recv(__pyx_v_obj, __pyx_v_source, __pyx_v_tag, __pyx_v_comm, __pyx_v_statusp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66816   __Pyx_GOTREF(__pyx_t_1);
66817   __pyx_r = __pyx_t_1;
66818   __pyx_t_1 = 0;
66819   goto __pyx_L0;
66820 
66821   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
66822   goto __pyx_L0;
66823   __pyx_L1_error:;
66824   __Pyx_XDECREF(__pyx_t_1);
66825   __Pyx_AddTraceback("mpi4py.MPI.Comm.recv", __pyx_clineno, __pyx_lineno, __pyx_filename);
66826   __pyx_r = NULL;
66827   __pyx_L0:;
66828   __Pyx_XGIVEREF(__pyx_r);
66829   __Pyx_RefNannyFinishContext();
66830   return __pyx_r;
66831 }
66832 
66833 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":818
66834  *         return PyMPI_recv(obj, source, tag, comm, statusp)
66835  *     #
66836  *     def sendrecv(self,             # <<<<<<<<<<<<<<
66837  *                  sendobj=None, int dest=0,   int sendtag=0,
66838  *                  recvobj=None, int source=0, int recvtag=0,
66839  */
66840 
66841 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_67sendrecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
66842 static char __pyx_doc_6mpi4py_3MPI_4Comm_67sendrecv[] = "Comm.sendrecv(self, sendobj=None, int dest=0, int sendtag=0, recvobj=None, int source=0, int recvtag=0, Status status=None)\nSend and Receive";
__pyx_pf_6mpi4py_3MPI_4Comm_67sendrecv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)66843 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_67sendrecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
66844   PyObject *__pyx_v_sendobj = 0;
66845   int __pyx_v_dest;
66846   int __pyx_v_sendtag;
66847   PyObject *__pyx_v_recvobj = 0;
66848   int __pyx_v_source;
66849   int __pyx_v_recvtag;
66850   struct PyMPIStatusObject *__pyx_v_status = 0;
66851   MPI_Comm __pyx_v_comm;
66852   MPI_Status *__pyx_v_statusp;
66853   PyObject *__pyx_r = NULL;
66854   __Pyx_RefNannyDeclarations
66855   PyObject *__pyx_t_1 = NULL;
66856   int __pyx_lineno = 0;
66857   const char *__pyx_filename = NULL;
66858   int __pyx_clineno = 0;
66859   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__dest,&__pyx_n_s__sendtag,&__pyx_n_s__recvobj,&__pyx_n_s__source,&__pyx_n_s__recvtag,&__pyx_n_s__status,0};
66860   __Pyx_RefNannySetupContext("sendrecv");
66861   {
66862     PyObject* values[7] = {0,0,0,0,0,0,0};
66863 
66864     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":819
66865  *     #
66866  *     def sendrecv(self,
66867  *                  sendobj=None, int dest=0,   int sendtag=0,             # <<<<<<<<<<<<<<
66868  *                  recvobj=None, int source=0, int recvtag=0,
66869  *                  Status status=None):
66870  */
66871     values[0] = ((PyObject *)Py_None);
66872 
66873     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":820
66874  *     def sendrecv(self,
66875  *                  sendobj=None, int dest=0,   int sendtag=0,
66876  *                  recvobj=None, int source=0, int recvtag=0,             # <<<<<<<<<<<<<<
66877  *                  Status status=None):
66878  *         """Send and Receive"""
66879  */
66880     values[3] = ((PyObject *)Py_None);
66881 
66882     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":821
66883  *                  sendobj=None, int dest=0,   int sendtag=0,
66884  *                  recvobj=None, int source=0, int recvtag=0,
66885  *                  Status status=None):             # <<<<<<<<<<<<<<
66886  *         """Send and Receive"""
66887  *         cdef MPI_Comm comm = self.ob_mpi
66888  */
66889     values[6] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
66890     if (unlikely(__pyx_kwds)) {
66891       Py_ssize_t kw_args;
66892       switch (PyTuple_GET_SIZE(__pyx_args)) {
66893         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
66894         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
66895         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
66896         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
66897         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66898         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66899         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66900         case  0: break;
66901         default: goto __pyx_L5_argtuple_error;
66902       }
66903       kw_args = PyDict_Size(__pyx_kwds);
66904       switch (PyTuple_GET_SIZE(__pyx_args)) {
66905         case  0:
66906         if (kw_args > 0) {
66907           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
66908           if (value) { values[0] = value; kw_args--; }
66909         }
66910         case  1:
66911         if (kw_args > 0) {
66912           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
66913           if (value) { values[1] = value; kw_args--; }
66914         }
66915         case  2:
66916         if (kw_args > 0) {
66917           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendtag);
66918           if (value) { values[2] = value; kw_args--; }
66919         }
66920         case  3:
66921         if (kw_args > 0) {
66922           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
66923           if (value) { values[3] = value; kw_args--; }
66924         }
66925         case  4:
66926         if (kw_args > 0) {
66927           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
66928           if (value) { values[4] = value; kw_args--; }
66929         }
66930         case  5:
66931         if (kw_args > 0) {
66932           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvtag);
66933           if (value) { values[5] = value; kw_args--; }
66934         }
66935         case  6:
66936         if (kw_args > 0) {
66937           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
66938           if (value) { values[6] = value; kw_args--; }
66939         }
66940       }
66941       if (unlikely(kw_args > 0)) {
66942         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "sendrecv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66943       }
66944     } else {
66945       switch (PyTuple_GET_SIZE(__pyx_args)) {
66946         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
66947         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
66948         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
66949         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
66950         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
66951         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
66952         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
66953         case  0: break;
66954         default: goto __pyx_L5_argtuple_error;
66955       }
66956     }
66957     __pyx_v_sendobj = values[0];
66958     if (values[1]) {
66959       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66960     } else {
66961       __pyx_v_dest = ((int)0);
66962     }
66963     if (values[2]) {
66964       __pyx_v_sendtag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_sendtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66965     } else {
66966       __pyx_v_sendtag = ((int)0);
66967     }
66968     __pyx_v_recvobj = values[3];
66969     if (values[4]) {
66970       __pyx_v_source = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_source == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66971     } else {
66972       __pyx_v_source = ((int)0);
66973     }
66974     if (values[5]) {
66975       __pyx_v_recvtag = __Pyx_PyInt_AsInt(values[5]); if (unlikely((__pyx_v_recvtag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66976     } else {
66977       __pyx_v_recvtag = ((int)0);
66978     }
66979     __pyx_v_status = ((struct PyMPIStatusObject *)values[6]);
66980   }
66981   goto __pyx_L4_argument_unpacking_done;
66982   __pyx_L5_argtuple_error:;
66983   __Pyx_RaiseArgtupleInvalid("sendrecv", 0, 0, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
66984   __pyx_L3_error:;
66985   __Pyx_AddTraceback("mpi4py.MPI.Comm.sendrecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
66986   __Pyx_RefNannyFinishContext();
66987   return NULL;
66988   __pyx_L4_argument_unpacking_done:;
66989   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
66990 
66991   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":823
66992  *                  Status status=None):
66993  *         """Send and Receive"""
66994  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
66995  *         cdef MPI_Status *statusp = arg_Status(status)
66996  *         return PyMPI_sendrecv(sendobj, dest,   sendtag,
66997  */
66998   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
66999 
67000   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":824
67001  *         """Send and Receive"""
67002  *         cdef MPI_Comm comm = self.ob_mpi
67003  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
67004  *         return PyMPI_sendrecv(sendobj, dest,   sendtag,
67005  *                               recvobj, source, recvtag,
67006  */
67007   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
67008 
67009   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":825
67010  *         cdef MPI_Comm comm = self.ob_mpi
67011  *         cdef MPI_Status *statusp = arg_Status(status)
67012  *         return PyMPI_sendrecv(sendobj, dest,   sendtag,             # <<<<<<<<<<<<<<
67013  *                               recvobj, source, recvtag,
67014  *                               comm, statusp)
67015  */
67016   __Pyx_XDECREF(__pyx_r);
67017 
67018   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":827
67019  *         return PyMPI_sendrecv(sendobj, dest,   sendtag,
67020  *                               recvobj, source, recvtag,
67021  *                               comm, statusp)             # <<<<<<<<<<<<<<
67022  *     #
67023  *     def isend(self, obj=None, int dest=0, int tag=0):
67024  */
67025   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_sendrecv(__pyx_v_sendobj, __pyx_v_dest, __pyx_v_sendtag, __pyx_v_recvobj, __pyx_v_source, __pyx_v_recvtag, __pyx_v_comm, __pyx_v_statusp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67026   __Pyx_GOTREF(__pyx_t_1);
67027   __pyx_r = __pyx_t_1;
67028   __pyx_t_1 = 0;
67029   goto __pyx_L0;
67030 
67031   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67032   goto __pyx_L0;
67033   __pyx_L1_error:;
67034   __Pyx_XDECREF(__pyx_t_1);
67035   __Pyx_AddTraceback("mpi4py.MPI.Comm.sendrecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
67036   __pyx_r = NULL;
67037   __pyx_L0:;
67038   __Pyx_XGIVEREF(__pyx_r);
67039   __Pyx_RefNannyFinishContext();
67040   return __pyx_r;
67041 }
67042 
67043 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":829
67044  *                               comm, statusp)
67045  *     #
67046  *     def isend(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
67047  *         """Nonblocking send"""
67048  *         cdef MPI_Comm comm = self.ob_mpi
67049  */
67050 
67051 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_68isend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67052 static char __pyx_doc_6mpi4py_3MPI_4Comm_68isend[] = "Comm.isend(self, obj=None, int dest=0, int tag=0)\nNonblocking send";
__pyx_pf_6mpi4py_3MPI_4Comm_68isend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67053 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_68isend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67054   PyObject *__pyx_v_obj = 0;
67055   int __pyx_v_dest;
67056   int __pyx_v_tag;
67057   MPI_Comm __pyx_v_comm;
67058   struct PyMPIRequestObject *__pyx_v_request = 0;
67059   PyObject *__pyx_r = NULL;
67060   __Pyx_RefNannyDeclarations
67061   PyObject *__pyx_t_1 = NULL;
67062   int __pyx_lineno = 0;
67063   const char *__pyx_filename = NULL;
67064   int __pyx_clineno = 0;
67065   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
67066   __Pyx_RefNannySetupContext("isend");
67067   {
67068     PyObject* values[3] = {0,0,0};
67069     values[0] = ((PyObject *)Py_None);
67070     if (unlikely(__pyx_kwds)) {
67071       Py_ssize_t kw_args;
67072       switch (PyTuple_GET_SIZE(__pyx_args)) {
67073         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67074         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67075         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67076         case  0: break;
67077         default: goto __pyx_L5_argtuple_error;
67078       }
67079       kw_args = PyDict_Size(__pyx_kwds);
67080       switch (PyTuple_GET_SIZE(__pyx_args)) {
67081         case  0:
67082         if (kw_args > 0) {
67083           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
67084           if (value) { values[0] = value; kw_args--; }
67085         }
67086         case  1:
67087         if (kw_args > 0) {
67088           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
67089           if (value) { values[1] = value; kw_args--; }
67090         }
67091         case  2:
67092         if (kw_args > 0) {
67093           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
67094           if (value) { values[2] = value; kw_args--; }
67095         }
67096       }
67097       if (unlikely(kw_args > 0)) {
67098         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "isend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67099       }
67100     } else {
67101       switch (PyTuple_GET_SIZE(__pyx_args)) {
67102         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67103         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67104         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67105         case  0: break;
67106         default: goto __pyx_L5_argtuple_error;
67107       }
67108     }
67109     __pyx_v_obj = values[0];
67110     if (values[1]) {
67111       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67112     } else {
67113       __pyx_v_dest = ((int)0);
67114     }
67115     if (values[2]) {
67116       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67117     } else {
67118       __pyx_v_tag = ((int)0);
67119     }
67120   }
67121   goto __pyx_L4_argument_unpacking_done;
67122   __pyx_L5_argtuple_error:;
67123   __Pyx_RaiseArgtupleInvalid("isend", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67124   __pyx_L3_error:;
67125   __Pyx_AddTraceback("mpi4py.MPI.Comm.isend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67126   __Pyx_RefNannyFinishContext();
67127   return NULL;
67128   __pyx_L4_argument_unpacking_done:;
67129 
67130   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":831
67131  *     def isend(self, obj=None, int dest=0, int tag=0):
67132  *         """Nonblocking send"""
67133  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67134  *         cdef Request request = <Request>Request.__new__(Request)
67135  *         request.ob_buf = PyMPI_isend(obj, dest, tag, comm, &request.ob_mpi)
67136  */
67137   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67138 
67139   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":832
67140  *         """Nonblocking send"""
67141  *         cdef MPI_Comm comm = self.ob_mpi
67142  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
67143  *         request.ob_buf = PyMPI_isend(obj, dest, tag, comm, &request.ob_mpi)
67144  *         return request
67145  */
67146   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67147   __Pyx_GOTREF(__pyx_t_1);
67148   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
67149   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
67150   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
67151 
67152   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":833
67153  *         cdef MPI_Comm comm = self.ob_mpi
67154  *         cdef Request request = <Request>Request.__new__(Request)
67155  *         request.ob_buf = PyMPI_isend(obj, dest, tag, comm, &request.ob_mpi)             # <<<<<<<<<<<<<<
67156  *         return request
67157  *     #
67158  */
67159   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_isend(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, (&__pyx_v_request->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67160   __Pyx_GOTREF(__pyx_t_1);
67161   __Pyx_GIVEREF(__pyx_t_1);
67162   __Pyx_GOTREF(__pyx_v_request->ob_buf);
67163   __Pyx_DECREF(__pyx_v_request->ob_buf);
67164   __pyx_v_request->ob_buf = __pyx_t_1;
67165   __pyx_t_1 = 0;
67166 
67167   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":834
67168  *         cdef Request request = <Request>Request.__new__(Request)
67169  *         request.ob_buf = PyMPI_isend(obj, dest, tag, comm, &request.ob_mpi)
67170  *         return request             # <<<<<<<<<<<<<<
67171  *     #
67172  *     def ibsend(self, obj=None, int dest=0, int tag=0):
67173  */
67174   __Pyx_XDECREF(__pyx_r);
67175   __Pyx_INCREF(((PyObject *)__pyx_v_request));
67176   __pyx_r = ((PyObject *)__pyx_v_request);
67177   goto __pyx_L0;
67178 
67179   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67180   goto __pyx_L0;
67181   __pyx_L1_error:;
67182   __Pyx_XDECREF(__pyx_t_1);
67183   __Pyx_AddTraceback("mpi4py.MPI.Comm.isend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67184   __pyx_r = NULL;
67185   __pyx_L0:;
67186   __Pyx_XDECREF((PyObject *)__pyx_v_request);
67187   __Pyx_XGIVEREF(__pyx_r);
67188   __Pyx_RefNannyFinishContext();
67189   return __pyx_r;
67190 }
67191 
67192 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":836
67193  *         return request
67194  *     #
67195  *     def ibsend(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
67196  *         """Nonblocking send in buffered mode"""
67197  *         cdef MPI_Comm comm = self.ob_mpi
67198  */
67199 
67200 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_69ibsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67201 static char __pyx_doc_6mpi4py_3MPI_4Comm_69ibsend[] = "Comm.ibsend(self, obj=None, int dest=0, int tag=0)\nNonblocking send in buffered mode";
__pyx_pf_6mpi4py_3MPI_4Comm_69ibsend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67202 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_69ibsend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67203   PyObject *__pyx_v_obj = 0;
67204   int __pyx_v_dest;
67205   int __pyx_v_tag;
67206   MPI_Comm __pyx_v_comm;
67207   struct PyMPIRequestObject *__pyx_v_request = 0;
67208   PyObject *__pyx_r = NULL;
67209   __Pyx_RefNannyDeclarations
67210   PyObject *__pyx_t_1 = NULL;
67211   int __pyx_lineno = 0;
67212   const char *__pyx_filename = NULL;
67213   int __pyx_clineno = 0;
67214   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
67215   __Pyx_RefNannySetupContext("ibsend");
67216   {
67217     PyObject* values[3] = {0,0,0};
67218     values[0] = ((PyObject *)Py_None);
67219     if (unlikely(__pyx_kwds)) {
67220       Py_ssize_t kw_args;
67221       switch (PyTuple_GET_SIZE(__pyx_args)) {
67222         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67223         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67224         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67225         case  0: break;
67226         default: goto __pyx_L5_argtuple_error;
67227       }
67228       kw_args = PyDict_Size(__pyx_kwds);
67229       switch (PyTuple_GET_SIZE(__pyx_args)) {
67230         case  0:
67231         if (kw_args > 0) {
67232           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
67233           if (value) { values[0] = value; kw_args--; }
67234         }
67235         case  1:
67236         if (kw_args > 0) {
67237           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
67238           if (value) { values[1] = value; kw_args--; }
67239         }
67240         case  2:
67241         if (kw_args > 0) {
67242           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
67243           if (value) { values[2] = value; kw_args--; }
67244         }
67245       }
67246       if (unlikely(kw_args > 0)) {
67247         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ibsend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67248       }
67249     } else {
67250       switch (PyTuple_GET_SIZE(__pyx_args)) {
67251         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67252         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67253         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67254         case  0: break;
67255         default: goto __pyx_L5_argtuple_error;
67256       }
67257     }
67258     __pyx_v_obj = values[0];
67259     if (values[1]) {
67260       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67261     } else {
67262       __pyx_v_dest = ((int)0);
67263     }
67264     if (values[2]) {
67265       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67266     } else {
67267       __pyx_v_tag = ((int)0);
67268     }
67269   }
67270   goto __pyx_L4_argument_unpacking_done;
67271   __pyx_L5_argtuple_error:;
67272   __Pyx_RaiseArgtupleInvalid("ibsend", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67273   __pyx_L3_error:;
67274   __Pyx_AddTraceback("mpi4py.MPI.Comm.ibsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67275   __Pyx_RefNannyFinishContext();
67276   return NULL;
67277   __pyx_L4_argument_unpacking_done:;
67278 
67279   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":838
67280  *     def ibsend(self, obj=None, int dest=0, int tag=0):
67281  *         """Nonblocking send in buffered mode"""
67282  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67283  *         cdef Request request = <Request>Request.__new__(Request)
67284  *         request.ob_buf = PyMPI_ibsend(obj, dest, tag, comm, &request.ob_mpi)
67285  */
67286   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67287 
67288   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":839
67289  *         """Nonblocking send in buffered mode"""
67290  *         cdef MPI_Comm comm = self.ob_mpi
67291  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
67292  *         request.ob_buf = PyMPI_ibsend(obj, dest, tag, comm, &request.ob_mpi)
67293  *         return request
67294  */
67295   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67296   __Pyx_GOTREF(__pyx_t_1);
67297   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
67298   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
67299   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
67300 
67301   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":840
67302  *         cdef MPI_Comm comm = self.ob_mpi
67303  *         cdef Request request = <Request>Request.__new__(Request)
67304  *         request.ob_buf = PyMPI_ibsend(obj, dest, tag, comm, &request.ob_mpi)             # <<<<<<<<<<<<<<
67305  *         return request
67306  *     #
67307  */
67308   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_ibsend(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, (&__pyx_v_request->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67309   __Pyx_GOTREF(__pyx_t_1);
67310   __Pyx_GIVEREF(__pyx_t_1);
67311   __Pyx_GOTREF(__pyx_v_request->ob_buf);
67312   __Pyx_DECREF(__pyx_v_request->ob_buf);
67313   __pyx_v_request->ob_buf = __pyx_t_1;
67314   __pyx_t_1 = 0;
67315 
67316   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":841
67317  *         cdef Request request = <Request>Request.__new__(Request)
67318  *         request.ob_buf = PyMPI_ibsend(obj, dest, tag, comm, &request.ob_mpi)
67319  *         return request             # <<<<<<<<<<<<<<
67320  *     #
67321  *     def issend(self, obj=None, int dest=0, int tag=0):
67322  */
67323   __Pyx_XDECREF(__pyx_r);
67324   __Pyx_INCREF(((PyObject *)__pyx_v_request));
67325   __pyx_r = ((PyObject *)__pyx_v_request);
67326   goto __pyx_L0;
67327 
67328   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67329   goto __pyx_L0;
67330   __pyx_L1_error:;
67331   __Pyx_XDECREF(__pyx_t_1);
67332   __Pyx_AddTraceback("mpi4py.MPI.Comm.ibsend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67333   __pyx_r = NULL;
67334   __pyx_L0:;
67335   __Pyx_XDECREF((PyObject *)__pyx_v_request);
67336   __Pyx_XGIVEREF(__pyx_r);
67337   __Pyx_RefNannyFinishContext();
67338   return __pyx_r;
67339 }
67340 
67341 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":843
67342  *         return request
67343  *     #
67344  *     def issend(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
67345  *         """Nonblocking send in synchronous mode"""
67346  *         cdef MPI_Comm comm = self.ob_mpi
67347  */
67348 
67349 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_70issend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67350 static char __pyx_doc_6mpi4py_3MPI_4Comm_70issend[] = "Comm.issend(self, obj=None, int dest=0, int tag=0)\nNonblocking send in synchronous mode";
__pyx_pf_6mpi4py_3MPI_4Comm_70issend(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67351 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_70issend(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67352   PyObject *__pyx_v_obj = 0;
67353   int __pyx_v_dest;
67354   int __pyx_v_tag;
67355   MPI_Comm __pyx_v_comm;
67356   struct PyMPIRequestObject *__pyx_v_request = 0;
67357   PyObject *__pyx_r = NULL;
67358   __Pyx_RefNannyDeclarations
67359   PyObject *__pyx_t_1 = NULL;
67360   int __pyx_lineno = 0;
67361   const char *__pyx_filename = NULL;
67362   int __pyx_clineno = 0;
67363   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
67364   __Pyx_RefNannySetupContext("issend");
67365   {
67366     PyObject* values[3] = {0,0,0};
67367     values[0] = ((PyObject *)Py_None);
67368     if (unlikely(__pyx_kwds)) {
67369       Py_ssize_t kw_args;
67370       switch (PyTuple_GET_SIZE(__pyx_args)) {
67371         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67372         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67373         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67374         case  0: break;
67375         default: goto __pyx_L5_argtuple_error;
67376       }
67377       kw_args = PyDict_Size(__pyx_kwds);
67378       switch (PyTuple_GET_SIZE(__pyx_args)) {
67379         case  0:
67380         if (kw_args > 0) {
67381           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
67382           if (value) { values[0] = value; kw_args--; }
67383         }
67384         case  1:
67385         if (kw_args > 0) {
67386           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
67387           if (value) { values[1] = value; kw_args--; }
67388         }
67389         case  2:
67390         if (kw_args > 0) {
67391           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
67392           if (value) { values[2] = value; kw_args--; }
67393         }
67394       }
67395       if (unlikely(kw_args > 0)) {
67396         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "issend") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67397       }
67398     } else {
67399       switch (PyTuple_GET_SIZE(__pyx_args)) {
67400         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67401         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67402         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67403         case  0: break;
67404         default: goto __pyx_L5_argtuple_error;
67405       }
67406     }
67407     __pyx_v_obj = values[0];
67408     if (values[1]) {
67409       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67410     } else {
67411       __pyx_v_dest = ((int)0);
67412     }
67413     if (values[2]) {
67414       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67415     } else {
67416       __pyx_v_tag = ((int)0);
67417     }
67418   }
67419   goto __pyx_L4_argument_unpacking_done;
67420   __pyx_L5_argtuple_error:;
67421   __Pyx_RaiseArgtupleInvalid("issend", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67422   __pyx_L3_error:;
67423   __Pyx_AddTraceback("mpi4py.MPI.Comm.issend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67424   __Pyx_RefNannyFinishContext();
67425   return NULL;
67426   __pyx_L4_argument_unpacking_done:;
67427 
67428   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":845
67429  *     def issend(self, obj=None, int dest=0, int tag=0):
67430  *         """Nonblocking send in synchronous mode"""
67431  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67432  *         cdef Request request = <Request>Request.__new__(Request)
67433  *         request.ob_buf = PyMPI_issend(obj, dest, tag, comm, &request.ob_mpi)
67434  */
67435   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67436 
67437   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":846
67438  *         """Nonblocking send in synchronous mode"""
67439  *         cdef MPI_Comm comm = self.ob_mpi
67440  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
67441  *         request.ob_buf = PyMPI_issend(obj, dest, tag, comm, &request.ob_mpi)
67442  *         return request
67443  */
67444   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67445   __Pyx_GOTREF(__pyx_t_1);
67446   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
67447   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
67448   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
67449 
67450   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":847
67451  *         cdef MPI_Comm comm = self.ob_mpi
67452  *         cdef Request request = <Request>Request.__new__(Request)
67453  *         request.ob_buf = PyMPI_issend(obj, dest, tag, comm, &request.ob_mpi)             # <<<<<<<<<<<<<<
67454  *         return request
67455  *     #
67456  */
67457   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_issend(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, (&__pyx_v_request->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67458   __Pyx_GOTREF(__pyx_t_1);
67459   __Pyx_GIVEREF(__pyx_t_1);
67460   __Pyx_GOTREF(__pyx_v_request->ob_buf);
67461   __Pyx_DECREF(__pyx_v_request->ob_buf);
67462   __pyx_v_request->ob_buf = __pyx_t_1;
67463   __pyx_t_1 = 0;
67464 
67465   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":848
67466  *         cdef Request request = <Request>Request.__new__(Request)
67467  *         request.ob_buf = PyMPI_issend(obj, dest, tag, comm, &request.ob_mpi)
67468  *         return request             # <<<<<<<<<<<<<<
67469  *     #
67470  *     def irecv(self, obj=None, int dest=0, int tag=0):
67471  */
67472   __Pyx_XDECREF(__pyx_r);
67473   __Pyx_INCREF(((PyObject *)__pyx_v_request));
67474   __pyx_r = ((PyObject *)__pyx_v_request);
67475   goto __pyx_L0;
67476 
67477   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67478   goto __pyx_L0;
67479   __pyx_L1_error:;
67480   __Pyx_XDECREF(__pyx_t_1);
67481   __Pyx_AddTraceback("mpi4py.MPI.Comm.issend", __pyx_clineno, __pyx_lineno, __pyx_filename);
67482   __pyx_r = NULL;
67483   __pyx_L0:;
67484   __Pyx_XDECREF((PyObject *)__pyx_v_request);
67485   __Pyx_XGIVEREF(__pyx_r);
67486   __Pyx_RefNannyFinishContext();
67487   return __pyx_r;
67488 }
67489 
67490 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":850
67491  *         return request
67492  *     #
67493  *     def irecv(self, obj=None, int dest=0, int tag=0):             # <<<<<<<<<<<<<<
67494  *         cdef MPI_Comm comm = self.ob_mpi
67495  *         cdef Request request = <Request>Request.__new__(Request)
67496  */
67497 
67498 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_71irecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67499 static char __pyx_doc_6mpi4py_3MPI_4Comm_71irecv[] = "Comm.irecv(self, obj=None, int dest=0, int tag=0)";
__pyx_pf_6mpi4py_3MPI_4Comm_71irecv(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67500 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_71irecv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67501   PyObject *__pyx_v_obj = 0;
67502   int __pyx_v_dest;
67503   int __pyx_v_tag;
67504   MPI_Comm __pyx_v_comm;
67505   struct PyMPIRequestObject *__pyx_v_request = 0;
67506   PyObject *__pyx_r = NULL;
67507   __Pyx_RefNannyDeclarations
67508   PyObject *__pyx_t_1 = NULL;
67509   int __pyx_lineno = 0;
67510   const char *__pyx_filename = NULL;
67511   int __pyx_clineno = 0;
67512   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__dest,&__pyx_n_s__tag,0};
67513   __Pyx_RefNannySetupContext("irecv");
67514   {
67515     PyObject* values[3] = {0,0,0};
67516     values[0] = ((PyObject *)Py_None);
67517     if (unlikely(__pyx_kwds)) {
67518       Py_ssize_t kw_args;
67519       switch (PyTuple_GET_SIZE(__pyx_args)) {
67520         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67521         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67522         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67523         case  0: break;
67524         default: goto __pyx_L5_argtuple_error;
67525       }
67526       kw_args = PyDict_Size(__pyx_kwds);
67527       switch (PyTuple_GET_SIZE(__pyx_args)) {
67528         case  0:
67529         if (kw_args > 0) {
67530           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
67531           if (value) { values[0] = value; kw_args--; }
67532         }
67533         case  1:
67534         if (kw_args > 0) {
67535           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dest);
67536           if (value) { values[1] = value; kw_args--; }
67537         }
67538         case  2:
67539         if (kw_args > 0) {
67540           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
67541           if (value) { values[2] = value; kw_args--; }
67542         }
67543       }
67544       if (unlikely(kw_args > 0)) {
67545         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "irecv") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67546       }
67547     } else {
67548       switch (PyTuple_GET_SIZE(__pyx_args)) {
67549         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67550         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67551         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67552         case  0: break;
67553         default: goto __pyx_L5_argtuple_error;
67554       }
67555     }
67556     __pyx_v_obj = values[0];
67557     if (values[1]) {
67558       __pyx_v_dest = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_dest == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67559     } else {
67560       __pyx_v_dest = ((int)0);
67561     }
67562     if (values[2]) {
67563       __pyx_v_tag = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67564     } else {
67565       __pyx_v_tag = ((int)0);
67566     }
67567   }
67568   goto __pyx_L4_argument_unpacking_done;
67569   __pyx_L5_argtuple_error:;
67570   __Pyx_RaiseArgtupleInvalid("irecv", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67571   __pyx_L3_error:;
67572   __Pyx_AddTraceback("mpi4py.MPI.Comm.irecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
67573   __Pyx_RefNannyFinishContext();
67574   return NULL;
67575   __pyx_L4_argument_unpacking_done:;
67576 
67577   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":851
67578  *     #
67579  *     def irecv(self, obj=None, int dest=0, int tag=0):
67580  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67581  *         cdef Request request = <Request>Request.__new__(Request)
67582  *         request.ob_buf = PyMPI_irecv(obj, dest, tag, comm, &request.ob_mpi)
67583  */
67584   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67585 
67586   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":852
67587  *     def irecv(self, obj=None, int dest=0, int tag=0):
67588  *         cdef MPI_Comm comm = self.ob_mpi
67589  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
67590  *         request.ob_buf = PyMPI_irecv(obj, dest, tag, comm, &request.ob_mpi)
67591  *         return request
67592  */
67593   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67594   __Pyx_GOTREF(__pyx_t_1);
67595   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
67596   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
67597   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
67598 
67599   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":853
67600  *         cdef MPI_Comm comm = self.ob_mpi
67601  *         cdef Request request = <Request>Request.__new__(Request)
67602  *         request.ob_buf = PyMPI_irecv(obj, dest, tag, comm, &request.ob_mpi)             # <<<<<<<<<<<<<<
67603  *         return request
67604  *     #
67605  */
67606   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_irecv(__pyx_v_obj, __pyx_v_dest, __pyx_v_tag, __pyx_v_comm, (&__pyx_v_request->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67607   __Pyx_GOTREF(__pyx_t_1);
67608   __Pyx_GIVEREF(__pyx_t_1);
67609   __Pyx_GOTREF(__pyx_v_request->ob_buf);
67610   __Pyx_DECREF(__pyx_v_request->ob_buf);
67611   __pyx_v_request->ob_buf = __pyx_t_1;
67612   __pyx_t_1 = 0;
67613 
67614   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":854
67615  *         cdef Request request = <Request>Request.__new__(Request)
67616  *         request.ob_buf = PyMPI_irecv(obj, dest, tag, comm, &request.ob_mpi)
67617  *         return request             # <<<<<<<<<<<<<<
67618  *     #
67619  *     def barrier(self):
67620  */
67621   __Pyx_XDECREF(__pyx_r);
67622   __Pyx_INCREF(((PyObject *)__pyx_v_request));
67623   __pyx_r = ((PyObject *)__pyx_v_request);
67624   goto __pyx_L0;
67625 
67626   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67627   goto __pyx_L0;
67628   __pyx_L1_error:;
67629   __Pyx_XDECREF(__pyx_t_1);
67630   __Pyx_AddTraceback("mpi4py.MPI.Comm.irecv", __pyx_clineno, __pyx_lineno, __pyx_filename);
67631   __pyx_r = NULL;
67632   __pyx_L0:;
67633   __Pyx_XDECREF((PyObject *)__pyx_v_request);
67634   __Pyx_XGIVEREF(__pyx_r);
67635   __Pyx_RefNannyFinishContext();
67636   return __pyx_r;
67637 }
67638 
67639 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":856
67640  *         return request
67641  *     #
67642  *     def barrier(self):             # <<<<<<<<<<<<<<
67643  *         "Barrier"
67644  *         cdef MPI_Comm comm = self.ob_mpi
67645  */
67646 
67647 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_72barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67648 static char __pyx_doc_6mpi4py_3MPI_4Comm_72barrier[] = "Comm.barrier(self)\nBarrier";
__pyx_pf_6mpi4py_3MPI_4Comm_72barrier(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67649 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_72barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67650   MPI_Comm __pyx_v_comm;
67651   PyObject *__pyx_r = NULL;
67652   __Pyx_RefNannyDeclarations
67653   PyObject *__pyx_t_1 = NULL;
67654   int __pyx_lineno = 0;
67655   const char *__pyx_filename = NULL;
67656   int __pyx_clineno = 0;
67657   __Pyx_RefNannySetupContext("barrier");
67658   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
67659     __Pyx_RaiseArgtupleInvalid("barrier", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
67660   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "barrier", 0))) return NULL;
67661 
67662   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":858
67663  *     def barrier(self):
67664  *         "Barrier"
67665  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67666  *         return PyMPI_barrier(comm)
67667  *     #
67668  */
67669   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67670 
67671   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":859
67672  *         "Barrier"
67673  *         cdef MPI_Comm comm = self.ob_mpi
67674  *         return PyMPI_barrier(comm)             # <<<<<<<<<<<<<<
67675  *     #
67676  *     def bcast(self, obj=None, int root=0):
67677  */
67678   __Pyx_XDECREF(__pyx_r);
67679   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_barrier(__pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67680   __Pyx_GOTREF(__pyx_t_1);
67681   __pyx_r = __pyx_t_1;
67682   __pyx_t_1 = 0;
67683   goto __pyx_L0;
67684 
67685   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67686   goto __pyx_L0;
67687   __pyx_L1_error:;
67688   __Pyx_XDECREF(__pyx_t_1);
67689   __Pyx_AddTraceback("mpi4py.MPI.Comm.barrier", __pyx_clineno, __pyx_lineno, __pyx_filename);
67690   __pyx_r = NULL;
67691   __pyx_L0:;
67692   __Pyx_XGIVEREF(__pyx_r);
67693   __Pyx_RefNannyFinishContext();
67694   return __pyx_r;
67695 }
67696 
67697 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":861
67698  *         return PyMPI_barrier(comm)
67699  *     #
67700  *     def bcast(self, obj=None, int root=0):             # <<<<<<<<<<<<<<
67701  *         """Broadcast"""
67702  *         cdef MPI_Comm comm = self.ob_mpi
67703  */
67704 
67705 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_73bcast(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67706 static char __pyx_doc_6mpi4py_3MPI_4Comm_73bcast[] = "Comm.bcast(self, obj=None, int root=0)\nBroadcast";
__pyx_pf_6mpi4py_3MPI_4Comm_73bcast(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67707 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_73bcast(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67708   PyObject *__pyx_v_obj = 0;
67709   int __pyx_v_root;
67710   MPI_Comm __pyx_v_comm;
67711   PyObject *__pyx_r = NULL;
67712   __Pyx_RefNannyDeclarations
67713   PyObject *__pyx_t_1 = NULL;
67714   int __pyx_lineno = 0;
67715   const char *__pyx_filename = NULL;
67716   int __pyx_clineno = 0;
67717   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__obj,&__pyx_n_s__root,0};
67718   __Pyx_RefNannySetupContext("bcast");
67719   {
67720     PyObject* values[2] = {0,0};
67721     values[0] = ((PyObject *)Py_None);
67722     if (unlikely(__pyx_kwds)) {
67723       Py_ssize_t kw_args;
67724       switch (PyTuple_GET_SIZE(__pyx_args)) {
67725         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67726         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67727         case  0: break;
67728         default: goto __pyx_L5_argtuple_error;
67729       }
67730       kw_args = PyDict_Size(__pyx_kwds);
67731       switch (PyTuple_GET_SIZE(__pyx_args)) {
67732         case  0:
67733         if (kw_args > 0) {
67734           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__obj);
67735           if (value) { values[0] = value; kw_args--; }
67736         }
67737         case  1:
67738         if (kw_args > 0) {
67739           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
67740           if (value) { values[1] = value; kw_args--; }
67741         }
67742       }
67743       if (unlikely(kw_args > 0)) {
67744         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "bcast") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67745       }
67746     } else {
67747       switch (PyTuple_GET_SIZE(__pyx_args)) {
67748         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67749         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67750         case  0: break;
67751         default: goto __pyx_L5_argtuple_error;
67752       }
67753     }
67754     __pyx_v_obj = values[0];
67755     if (values[1]) {
67756       __pyx_v_root = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67757     } else {
67758       __pyx_v_root = ((int)0);
67759     }
67760   }
67761   goto __pyx_L4_argument_unpacking_done;
67762   __pyx_L5_argtuple_error:;
67763   __Pyx_RaiseArgtupleInvalid("bcast", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67764   __pyx_L3_error:;
67765   __Pyx_AddTraceback("mpi4py.MPI.Comm.bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
67766   __Pyx_RefNannyFinishContext();
67767   return NULL;
67768   __pyx_L4_argument_unpacking_done:;
67769 
67770   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":863
67771  *     def bcast(self, obj=None, int root=0):
67772  *         """Broadcast"""
67773  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67774  *         return PyMPI_bcast(obj, root, comm)
67775  *     #
67776  */
67777   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67778 
67779   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":864
67780  *         """Broadcast"""
67781  *         cdef MPI_Comm comm = self.ob_mpi
67782  *         return PyMPI_bcast(obj, root, comm)             # <<<<<<<<<<<<<<
67783  *     #
67784  *     def gather(self, sendobj=None, recvobj=None, int root=0):
67785  */
67786   __Pyx_XDECREF(__pyx_r);
67787   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_bcast(__pyx_v_obj, __pyx_v_root, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67788   __Pyx_GOTREF(__pyx_t_1);
67789   __pyx_r = __pyx_t_1;
67790   __pyx_t_1 = 0;
67791   goto __pyx_L0;
67792 
67793   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67794   goto __pyx_L0;
67795   __pyx_L1_error:;
67796   __Pyx_XDECREF(__pyx_t_1);
67797   __Pyx_AddTraceback("mpi4py.MPI.Comm.bcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
67798   __pyx_r = NULL;
67799   __pyx_L0:;
67800   __Pyx_XGIVEREF(__pyx_r);
67801   __Pyx_RefNannyFinishContext();
67802   return __pyx_r;
67803 }
67804 
67805 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":866
67806  *         return PyMPI_bcast(obj, root, comm)
67807  *     #
67808  *     def gather(self, sendobj=None, recvobj=None, int root=0):             # <<<<<<<<<<<<<<
67809  *         """Gather"""
67810  *         cdef MPI_Comm comm = self.ob_mpi
67811  */
67812 
67813 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_74gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67814 static char __pyx_doc_6mpi4py_3MPI_4Comm_74gather[] = "Comm.gather(self, sendobj=None, recvobj=None, int root=0)\nGather";
__pyx_pf_6mpi4py_3MPI_4Comm_74gather(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67815 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_74gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67816   PyObject *__pyx_v_sendobj = 0;
67817   PyObject *__pyx_v_recvobj = 0;
67818   int __pyx_v_root;
67819   MPI_Comm __pyx_v_comm;
67820   PyObject *__pyx_r = NULL;
67821   __Pyx_RefNannyDeclarations
67822   PyObject *__pyx_t_1 = NULL;
67823   int __pyx_lineno = 0;
67824   const char *__pyx_filename = NULL;
67825   int __pyx_clineno = 0;
67826   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__root,0};
67827   __Pyx_RefNannySetupContext("gather");
67828   {
67829     PyObject* values[3] = {0,0,0};
67830     values[0] = ((PyObject *)Py_None);
67831     values[1] = ((PyObject *)Py_None);
67832     if (unlikely(__pyx_kwds)) {
67833       Py_ssize_t kw_args;
67834       switch (PyTuple_GET_SIZE(__pyx_args)) {
67835         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67836         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67837         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67838         case  0: break;
67839         default: goto __pyx_L5_argtuple_error;
67840       }
67841       kw_args = PyDict_Size(__pyx_kwds);
67842       switch (PyTuple_GET_SIZE(__pyx_args)) {
67843         case  0:
67844         if (kw_args > 0) {
67845           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
67846           if (value) { values[0] = value; kw_args--; }
67847         }
67848         case  1:
67849         if (kw_args > 0) {
67850           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
67851           if (value) { values[1] = value; kw_args--; }
67852         }
67853         case  2:
67854         if (kw_args > 0) {
67855           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
67856           if (value) { values[2] = value; kw_args--; }
67857         }
67858       }
67859       if (unlikely(kw_args > 0)) {
67860         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "gather") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67861       }
67862     } else {
67863       switch (PyTuple_GET_SIZE(__pyx_args)) {
67864         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67865         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67866         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67867         case  0: break;
67868         default: goto __pyx_L5_argtuple_error;
67869       }
67870     }
67871     __pyx_v_sendobj = values[0];
67872     __pyx_v_recvobj = values[1];
67873     if (values[2]) {
67874       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67875     } else {
67876       __pyx_v_root = ((int)0);
67877     }
67878   }
67879   goto __pyx_L4_argument_unpacking_done;
67880   __pyx_L5_argtuple_error:;
67881   __Pyx_RaiseArgtupleInvalid("gather", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67882   __pyx_L3_error:;
67883   __Pyx_AddTraceback("mpi4py.MPI.Comm.gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
67884   __Pyx_RefNannyFinishContext();
67885   return NULL;
67886   __pyx_L4_argument_unpacking_done:;
67887 
67888   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":868
67889  *     def gather(self, sendobj=None, recvobj=None, int root=0):
67890  *         """Gather"""
67891  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
67892  *         return PyMPI_gather(sendobj, recvobj, root, comm)
67893  *     #
67894  */
67895   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
67896 
67897   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":869
67898  *         """Gather"""
67899  *         cdef MPI_Comm comm = self.ob_mpi
67900  *         return PyMPI_gather(sendobj, recvobj, root, comm)             # <<<<<<<<<<<<<<
67901  *     #
67902  *     def scatter(self, sendobj=None, recvobj=None, int root=0):
67903  */
67904   __Pyx_XDECREF(__pyx_r);
67905   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_gather(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_root, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
67906   __Pyx_GOTREF(__pyx_t_1);
67907   __pyx_r = __pyx_t_1;
67908   __pyx_t_1 = 0;
67909   goto __pyx_L0;
67910 
67911   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
67912   goto __pyx_L0;
67913   __pyx_L1_error:;
67914   __Pyx_XDECREF(__pyx_t_1);
67915   __Pyx_AddTraceback("mpi4py.MPI.Comm.gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
67916   __pyx_r = NULL;
67917   __pyx_L0:;
67918   __Pyx_XGIVEREF(__pyx_r);
67919   __Pyx_RefNannyFinishContext();
67920   return __pyx_r;
67921 }
67922 
67923 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":871
67924  *         return PyMPI_gather(sendobj, recvobj, root, comm)
67925  *     #
67926  *     def scatter(self, sendobj=None, recvobj=None, int root=0):             # <<<<<<<<<<<<<<
67927  *         """Scatter"""
67928  *         cdef MPI_Comm comm = self.ob_mpi
67929  */
67930 
67931 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_75scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
67932 static char __pyx_doc_6mpi4py_3MPI_4Comm_75scatter[] = "Comm.scatter(self, sendobj=None, recvobj=None, int root=0)\nScatter";
__pyx_pf_6mpi4py_3MPI_4Comm_75scatter(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)67933 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_75scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
67934   PyObject *__pyx_v_sendobj = 0;
67935   PyObject *__pyx_v_recvobj = 0;
67936   int __pyx_v_root;
67937   MPI_Comm __pyx_v_comm;
67938   PyObject *__pyx_r = NULL;
67939   __Pyx_RefNannyDeclarations
67940   PyObject *__pyx_t_1 = NULL;
67941   int __pyx_lineno = 0;
67942   const char *__pyx_filename = NULL;
67943   int __pyx_clineno = 0;
67944   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__root,0};
67945   __Pyx_RefNannySetupContext("scatter");
67946   {
67947     PyObject* values[3] = {0,0,0};
67948     values[0] = ((PyObject *)Py_None);
67949     values[1] = ((PyObject *)Py_None);
67950     if (unlikely(__pyx_kwds)) {
67951       Py_ssize_t kw_args;
67952       switch (PyTuple_GET_SIZE(__pyx_args)) {
67953         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67954         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67955         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67956         case  0: break;
67957         default: goto __pyx_L5_argtuple_error;
67958       }
67959       kw_args = PyDict_Size(__pyx_kwds);
67960       switch (PyTuple_GET_SIZE(__pyx_args)) {
67961         case  0:
67962         if (kw_args > 0) {
67963           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
67964           if (value) { values[0] = value; kw_args--; }
67965         }
67966         case  1:
67967         if (kw_args > 0) {
67968           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
67969           if (value) { values[1] = value; kw_args--; }
67970         }
67971         case  2:
67972         if (kw_args > 0) {
67973           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
67974           if (value) { values[2] = value; kw_args--; }
67975         }
67976       }
67977       if (unlikely(kw_args > 0)) {
67978         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "scatter") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67979       }
67980     } else {
67981       switch (PyTuple_GET_SIZE(__pyx_args)) {
67982         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
67983         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
67984         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
67985         case  0: break;
67986         default: goto __pyx_L5_argtuple_error;
67987       }
67988     }
67989     __pyx_v_sendobj = values[0];
67990     __pyx_v_recvobj = values[1];
67991     if (values[2]) {
67992       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
67993     } else {
67994       __pyx_v_root = ((int)0);
67995     }
67996   }
67997   goto __pyx_L4_argument_unpacking_done;
67998   __pyx_L5_argtuple_error:;
67999   __Pyx_RaiseArgtupleInvalid("scatter", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68000   __pyx_L3_error:;
68001   __Pyx_AddTraceback("mpi4py.MPI.Comm.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
68002   __Pyx_RefNannyFinishContext();
68003   return NULL;
68004   __pyx_L4_argument_unpacking_done:;
68005 
68006   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":873
68007  *     def scatter(self, sendobj=None, recvobj=None, int root=0):
68008  *         """Scatter"""
68009  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
68010  *         return PyMPI_scatter(sendobj, recvobj, root, comm)
68011  *     #
68012  */
68013   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
68014 
68015   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":874
68016  *         """Scatter"""
68017  *         cdef MPI_Comm comm = self.ob_mpi
68018  *         return PyMPI_scatter(sendobj, recvobj, root, comm)             # <<<<<<<<<<<<<<
68019  *     #
68020  *     def allgather(self, sendobj=None, recvobj=None):
68021  */
68022   __Pyx_XDECREF(__pyx_r);
68023   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_scatter(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_root, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68024   __Pyx_GOTREF(__pyx_t_1);
68025   __pyx_r = __pyx_t_1;
68026   __pyx_t_1 = 0;
68027   goto __pyx_L0;
68028 
68029   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68030   goto __pyx_L0;
68031   __pyx_L1_error:;
68032   __Pyx_XDECREF(__pyx_t_1);
68033   __Pyx_AddTraceback("mpi4py.MPI.Comm.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
68034   __pyx_r = NULL;
68035   __pyx_L0:;
68036   __Pyx_XGIVEREF(__pyx_r);
68037   __Pyx_RefNannyFinishContext();
68038   return __pyx_r;
68039 }
68040 
68041 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":876
68042  *         return PyMPI_scatter(sendobj, recvobj, root, comm)
68043  *     #
68044  *     def allgather(self, sendobj=None, recvobj=None):             # <<<<<<<<<<<<<<
68045  *         """Gather to All"""
68046  *         cdef MPI_Comm comm = self.ob_mpi
68047  */
68048 
68049 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_76allgather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68050 static char __pyx_doc_6mpi4py_3MPI_4Comm_76allgather[] = "Comm.allgather(self, sendobj=None, recvobj=None)\nGather to All";
__pyx_pf_6mpi4py_3MPI_4Comm_76allgather(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68051 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_76allgather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68052   PyObject *__pyx_v_sendobj = 0;
68053   PyObject *__pyx_v_recvobj = 0;
68054   MPI_Comm __pyx_v_comm;
68055   PyObject *__pyx_r = NULL;
68056   __Pyx_RefNannyDeclarations
68057   PyObject *__pyx_t_1 = NULL;
68058   int __pyx_lineno = 0;
68059   const char *__pyx_filename = NULL;
68060   int __pyx_clineno = 0;
68061   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,0};
68062   __Pyx_RefNannySetupContext("allgather");
68063   {
68064     PyObject* values[2] = {0,0};
68065     values[0] = ((PyObject *)Py_None);
68066     values[1] = ((PyObject *)Py_None);
68067     if (unlikely(__pyx_kwds)) {
68068       Py_ssize_t kw_args;
68069       switch (PyTuple_GET_SIZE(__pyx_args)) {
68070         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68071         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68072         case  0: break;
68073         default: goto __pyx_L5_argtuple_error;
68074       }
68075       kw_args = PyDict_Size(__pyx_kwds);
68076       switch (PyTuple_GET_SIZE(__pyx_args)) {
68077         case  0:
68078         if (kw_args > 0) {
68079           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
68080           if (value) { values[0] = value; kw_args--; }
68081         }
68082         case  1:
68083         if (kw_args > 0) {
68084           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
68085           if (value) { values[1] = value; kw_args--; }
68086         }
68087       }
68088       if (unlikely(kw_args > 0)) {
68089         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "allgather") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68090       }
68091     } else {
68092       switch (PyTuple_GET_SIZE(__pyx_args)) {
68093         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68094         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68095         case  0: break;
68096         default: goto __pyx_L5_argtuple_error;
68097       }
68098     }
68099     __pyx_v_sendobj = values[0];
68100     __pyx_v_recvobj = values[1];
68101   }
68102   goto __pyx_L4_argument_unpacking_done;
68103   __pyx_L5_argtuple_error:;
68104   __Pyx_RaiseArgtupleInvalid("allgather", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68105   __pyx_L3_error:;
68106   __Pyx_AddTraceback("mpi4py.MPI.Comm.allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
68107   __Pyx_RefNannyFinishContext();
68108   return NULL;
68109   __pyx_L4_argument_unpacking_done:;
68110 
68111   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":878
68112  *     def allgather(self, sendobj=None, recvobj=None):
68113  *         """Gather to All"""
68114  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
68115  *         return PyMPI_allgather(sendobj, recvobj, comm)
68116  *     #
68117  */
68118   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
68119 
68120   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":879
68121  *         """Gather to All"""
68122  *         cdef MPI_Comm comm = self.ob_mpi
68123  *         return PyMPI_allgather(sendobj, recvobj, comm)             # <<<<<<<<<<<<<<
68124  *     #
68125  *     def alltoall(self, sendobj=None, recvobj=None):
68126  */
68127   __Pyx_XDECREF(__pyx_r);
68128   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_allgather(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68129   __Pyx_GOTREF(__pyx_t_1);
68130   __pyx_r = __pyx_t_1;
68131   __pyx_t_1 = 0;
68132   goto __pyx_L0;
68133 
68134   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68135   goto __pyx_L0;
68136   __pyx_L1_error:;
68137   __Pyx_XDECREF(__pyx_t_1);
68138   __Pyx_AddTraceback("mpi4py.MPI.Comm.allgather", __pyx_clineno, __pyx_lineno, __pyx_filename);
68139   __pyx_r = NULL;
68140   __pyx_L0:;
68141   __Pyx_XGIVEREF(__pyx_r);
68142   __Pyx_RefNannyFinishContext();
68143   return __pyx_r;
68144 }
68145 
68146 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":881
68147  *         return PyMPI_allgather(sendobj, recvobj, comm)
68148  *     #
68149  *     def alltoall(self, sendobj=None, recvobj=None):             # <<<<<<<<<<<<<<
68150  *         """All to All Scatter/Gather"""
68151  *         cdef MPI_Comm comm = self.ob_mpi
68152  */
68153 
68154 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_77alltoall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68155 static char __pyx_doc_6mpi4py_3MPI_4Comm_77alltoall[] = "Comm.alltoall(self, sendobj=None, recvobj=None)\nAll to All Scatter/Gather";
__pyx_pf_6mpi4py_3MPI_4Comm_77alltoall(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68156 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_77alltoall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68157   PyObject *__pyx_v_sendobj = 0;
68158   PyObject *__pyx_v_recvobj = 0;
68159   MPI_Comm __pyx_v_comm;
68160   PyObject *__pyx_r = NULL;
68161   __Pyx_RefNannyDeclarations
68162   PyObject *__pyx_t_1 = NULL;
68163   int __pyx_lineno = 0;
68164   const char *__pyx_filename = NULL;
68165   int __pyx_clineno = 0;
68166   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,0};
68167   __Pyx_RefNannySetupContext("alltoall");
68168   {
68169     PyObject* values[2] = {0,0};
68170     values[0] = ((PyObject *)Py_None);
68171     values[1] = ((PyObject *)Py_None);
68172     if (unlikely(__pyx_kwds)) {
68173       Py_ssize_t kw_args;
68174       switch (PyTuple_GET_SIZE(__pyx_args)) {
68175         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68176         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68177         case  0: break;
68178         default: goto __pyx_L5_argtuple_error;
68179       }
68180       kw_args = PyDict_Size(__pyx_kwds);
68181       switch (PyTuple_GET_SIZE(__pyx_args)) {
68182         case  0:
68183         if (kw_args > 0) {
68184           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
68185           if (value) { values[0] = value; kw_args--; }
68186         }
68187         case  1:
68188         if (kw_args > 0) {
68189           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
68190           if (value) { values[1] = value; kw_args--; }
68191         }
68192       }
68193       if (unlikely(kw_args > 0)) {
68194         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "alltoall") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68195       }
68196     } else {
68197       switch (PyTuple_GET_SIZE(__pyx_args)) {
68198         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68199         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68200         case  0: break;
68201         default: goto __pyx_L5_argtuple_error;
68202       }
68203     }
68204     __pyx_v_sendobj = values[0];
68205     __pyx_v_recvobj = values[1];
68206   }
68207   goto __pyx_L4_argument_unpacking_done;
68208   __pyx_L5_argtuple_error:;
68209   __Pyx_RaiseArgtupleInvalid("alltoall", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68210   __pyx_L3_error:;
68211   __Pyx_AddTraceback("mpi4py.MPI.Comm.alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
68212   __Pyx_RefNannyFinishContext();
68213   return NULL;
68214   __pyx_L4_argument_unpacking_done:;
68215 
68216   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":883
68217  *     def alltoall(self, sendobj=None, recvobj=None):
68218  *         """All to All Scatter/Gather"""
68219  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
68220  *         return PyMPI_alltoall(sendobj, recvobj, comm)
68221  *     #
68222  */
68223   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
68224 
68225   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":884
68226  *         """All to All Scatter/Gather"""
68227  *         cdef MPI_Comm comm = self.ob_mpi
68228  *         return PyMPI_alltoall(sendobj, recvobj, comm)             # <<<<<<<<<<<<<<
68229  *     #
68230  *     def reduce(self, sendobj=None, recvobj=None, op=SUM, int root=0):
68231  */
68232   __Pyx_XDECREF(__pyx_r);
68233   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_PyMPI_alltoall(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_comm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68234   __Pyx_GOTREF(__pyx_t_1);
68235   __pyx_r = __pyx_t_1;
68236   __pyx_t_1 = 0;
68237   goto __pyx_L0;
68238 
68239   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68240   goto __pyx_L0;
68241   __pyx_L1_error:;
68242   __Pyx_XDECREF(__pyx_t_1);
68243   __Pyx_AddTraceback("mpi4py.MPI.Comm.alltoall", __pyx_clineno, __pyx_lineno, __pyx_filename);
68244   __pyx_r = NULL;
68245   __pyx_L0:;
68246   __Pyx_XGIVEREF(__pyx_r);
68247   __Pyx_RefNannyFinishContext();
68248   return __pyx_r;
68249 }
68250 
68251 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":886
68252  *         return PyMPI_alltoall(sendobj, recvobj, comm)
68253  *     #
68254  *     def reduce(self, sendobj=None, recvobj=None, op=SUM, int root=0):             # <<<<<<<<<<<<<<
68255  *         """Reduce"""
68256  *         if op is None: op = SUM
68257  */
68258 
68259 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_78reduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68260 static char __pyx_doc_6mpi4py_3MPI_4Comm_78reduce[] = "Comm.reduce(self, sendobj=None, recvobj=None, op=SUM, int root=0)\nReduce";
__pyx_pf_6mpi4py_3MPI_4Comm_78reduce(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68261 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_78reduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68262   PyObject *__pyx_v_sendobj = 0;
68263   PyObject *__pyx_v_recvobj = 0;
68264   PyObject *__pyx_v_op = 0;
68265   int __pyx_v_root;
68266   MPI_Comm __pyx_v_comm;
68267   PyObject *__pyx_r = NULL;
68268   __Pyx_RefNannyDeclarations
68269   int __pyx_t_1;
68270   PyObject *__pyx_t_2 = NULL;
68271   int __pyx_lineno = 0;
68272   const char *__pyx_filename = NULL;
68273   int __pyx_clineno = 0;
68274   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__op,&__pyx_n_s__root,0};
68275   __Pyx_RefNannySetupContext("reduce");
68276   {
68277     PyObject* values[4] = {0,0,0,0};
68278     values[0] = ((PyObject *)Py_None);
68279     values[1] = ((PyObject *)Py_None);
68280     values[2] = __pyx_k_75;
68281     if (unlikely(__pyx_kwds)) {
68282       Py_ssize_t kw_args;
68283       switch (PyTuple_GET_SIZE(__pyx_args)) {
68284         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
68285         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
68286         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68287         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68288         case  0: break;
68289         default: goto __pyx_L5_argtuple_error;
68290       }
68291       kw_args = PyDict_Size(__pyx_kwds);
68292       switch (PyTuple_GET_SIZE(__pyx_args)) {
68293         case  0:
68294         if (kw_args > 0) {
68295           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
68296           if (value) { values[0] = value; kw_args--; }
68297         }
68298         case  1:
68299         if (kw_args > 0) {
68300           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
68301           if (value) { values[1] = value; kw_args--; }
68302         }
68303         case  2:
68304         if (kw_args > 0) {
68305           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
68306           if (value) { values[2] = value; kw_args--; }
68307         }
68308         case  3:
68309         if (kw_args > 0) {
68310           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
68311           if (value) { values[3] = value; kw_args--; }
68312         }
68313       }
68314       if (unlikely(kw_args > 0)) {
68315         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "reduce") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68316       }
68317     } else {
68318       switch (PyTuple_GET_SIZE(__pyx_args)) {
68319         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
68320         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
68321         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68322         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68323         case  0: break;
68324         default: goto __pyx_L5_argtuple_error;
68325       }
68326     }
68327     __pyx_v_sendobj = values[0];
68328     __pyx_v_recvobj = values[1];
68329     __pyx_v_op = values[2];
68330     if (values[3]) {
68331       __pyx_v_root = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68332     } else {
68333       __pyx_v_root = ((int)0);
68334     }
68335   }
68336   goto __pyx_L4_argument_unpacking_done;
68337   __pyx_L5_argtuple_error:;
68338   __Pyx_RaiseArgtupleInvalid("reduce", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68339   __pyx_L3_error:;
68340   __Pyx_AddTraceback("mpi4py.MPI.Comm.reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
68341   __Pyx_RefNannyFinishContext();
68342   return NULL;
68343   __pyx_L4_argument_unpacking_done:;
68344   __Pyx_INCREF(__pyx_v_op);
68345 
68346   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":888
68347  *     def reduce(self, sendobj=None, recvobj=None, op=SUM, int root=0):
68348  *         """Reduce"""
68349  *         if op is None: op = SUM             # <<<<<<<<<<<<<<
68350  *         cdef MPI_Comm comm = self.ob_mpi
68351  *         return PyMPI_reduce(sendobj, recvobj, op, root, comm)
68352  */
68353   __pyx_t_1 = (__pyx_v_op == Py_None);
68354   if (__pyx_t_1) {
68355     __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68356     __Pyx_GOTREF(__pyx_t_2);
68357     __Pyx_DECREF(__pyx_v_op);
68358     __pyx_v_op = __pyx_t_2;
68359     __pyx_t_2 = 0;
68360     goto __pyx_L6;
68361   }
68362   __pyx_L6:;
68363 
68364   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":889
68365  *         """Reduce"""
68366  *         if op is None: op = SUM
68367  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
68368  *         return PyMPI_reduce(sendobj, recvobj, op, root, comm)
68369  *     #
68370  */
68371   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
68372 
68373   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":890
68374  *         if op is None: op = SUM
68375  *         cdef MPI_Comm comm = self.ob_mpi
68376  *         return PyMPI_reduce(sendobj, recvobj, op, root, comm)             # <<<<<<<<<<<<<<
68377  *     #
68378  *     def allreduce(self, sendobj=None, recvobj=None, op=SUM):
68379  */
68380   __Pyx_XDECREF(__pyx_r);
68381   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_reduce(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_op, __pyx_v_root, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68382   __Pyx_GOTREF(__pyx_t_2);
68383   __pyx_r = __pyx_t_2;
68384   __pyx_t_2 = 0;
68385   goto __pyx_L0;
68386 
68387   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68388   goto __pyx_L0;
68389   __pyx_L1_error:;
68390   __Pyx_XDECREF(__pyx_t_2);
68391   __Pyx_AddTraceback("mpi4py.MPI.Comm.reduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
68392   __pyx_r = NULL;
68393   __pyx_L0:;
68394   __Pyx_XDECREF(__pyx_v_op);
68395   __Pyx_XGIVEREF(__pyx_r);
68396   __Pyx_RefNannyFinishContext();
68397   return __pyx_r;
68398 }
68399 
68400 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":892
68401  *         return PyMPI_reduce(sendobj, recvobj, op, root, comm)
68402  *     #
68403  *     def allreduce(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
68404  *         """Reduce to All"""
68405  *         if op is None: op = SUM
68406  */
68407 
68408 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_79allreduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68409 static char __pyx_doc_6mpi4py_3MPI_4Comm_79allreduce[] = "Comm.allreduce(self, sendobj=None, recvobj=None, op=SUM)\nReduce to All";
__pyx_pf_6mpi4py_3MPI_4Comm_79allreduce(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68410 static PyObject *__pyx_pf_6mpi4py_3MPI_4Comm_79allreduce(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68411   PyObject *__pyx_v_sendobj = 0;
68412   PyObject *__pyx_v_recvobj = 0;
68413   PyObject *__pyx_v_op = 0;
68414   MPI_Comm __pyx_v_comm;
68415   PyObject *__pyx_r = NULL;
68416   __Pyx_RefNannyDeclarations
68417   int __pyx_t_1;
68418   PyObject *__pyx_t_2 = NULL;
68419   int __pyx_lineno = 0;
68420   const char *__pyx_filename = NULL;
68421   int __pyx_clineno = 0;
68422   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__op,0};
68423   __Pyx_RefNannySetupContext("allreduce");
68424   {
68425     PyObject* values[3] = {0,0,0};
68426     values[0] = ((PyObject *)Py_None);
68427     values[1] = ((PyObject *)Py_None);
68428     values[2] = __pyx_k_76;
68429     if (unlikely(__pyx_kwds)) {
68430       Py_ssize_t kw_args;
68431       switch (PyTuple_GET_SIZE(__pyx_args)) {
68432         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
68433         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68434         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68435         case  0: break;
68436         default: goto __pyx_L5_argtuple_error;
68437       }
68438       kw_args = PyDict_Size(__pyx_kwds);
68439       switch (PyTuple_GET_SIZE(__pyx_args)) {
68440         case  0:
68441         if (kw_args > 0) {
68442           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
68443           if (value) { values[0] = value; kw_args--; }
68444         }
68445         case  1:
68446         if (kw_args > 0) {
68447           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
68448           if (value) { values[1] = value; kw_args--; }
68449         }
68450         case  2:
68451         if (kw_args > 0) {
68452           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
68453           if (value) { values[2] = value; kw_args--; }
68454         }
68455       }
68456       if (unlikely(kw_args > 0)) {
68457         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "allreduce") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68458       }
68459     } else {
68460       switch (PyTuple_GET_SIZE(__pyx_args)) {
68461         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
68462         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68463         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68464         case  0: break;
68465         default: goto __pyx_L5_argtuple_error;
68466       }
68467     }
68468     __pyx_v_sendobj = values[0];
68469     __pyx_v_recvobj = values[1];
68470     __pyx_v_op = values[2];
68471   }
68472   goto __pyx_L4_argument_unpacking_done;
68473   __pyx_L5_argtuple_error:;
68474   __Pyx_RaiseArgtupleInvalid("allreduce", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68475   __pyx_L3_error:;
68476   __Pyx_AddTraceback("mpi4py.MPI.Comm.allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
68477   __Pyx_RefNannyFinishContext();
68478   return NULL;
68479   __pyx_L4_argument_unpacking_done:;
68480   __Pyx_INCREF(__pyx_v_op);
68481 
68482   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":894
68483  *     def allreduce(self, sendobj=None, recvobj=None, op=SUM):
68484  *         """Reduce to All"""
68485  *         if op is None: op = SUM             # <<<<<<<<<<<<<<
68486  *         cdef MPI_Comm comm = self.ob_mpi
68487  *         return PyMPI_allreduce(sendobj, recvobj, op, comm)
68488  */
68489   __pyx_t_1 = (__pyx_v_op == Py_None);
68490   if (__pyx_t_1) {
68491     __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68492     __Pyx_GOTREF(__pyx_t_2);
68493     __Pyx_DECREF(__pyx_v_op);
68494     __pyx_v_op = __pyx_t_2;
68495     __pyx_t_2 = 0;
68496     goto __pyx_L6;
68497   }
68498   __pyx_L6:;
68499 
68500   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":895
68501  *         """Reduce to All"""
68502  *         if op is None: op = SUM
68503  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
68504  *         return PyMPI_allreduce(sendobj, recvobj, op, comm)
68505  *
68506  */
68507   __pyx_v_comm = ((struct PyMPICommObject *)__pyx_v_self)->ob_mpi;
68508 
68509   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":896
68510  *         if op is None: op = SUM
68511  *         cdef MPI_Comm comm = self.ob_mpi
68512  *         return PyMPI_allreduce(sendobj, recvobj, op, comm)             # <<<<<<<<<<<<<<
68513  *
68514  *
68515  */
68516   __Pyx_XDECREF(__pyx_r);
68517   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_allreduce(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_op, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68518   __Pyx_GOTREF(__pyx_t_2);
68519   __pyx_r = __pyx_t_2;
68520   __pyx_t_2 = 0;
68521   goto __pyx_L0;
68522 
68523   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68524   goto __pyx_L0;
68525   __pyx_L1_error:;
68526   __Pyx_XDECREF(__pyx_t_2);
68527   __Pyx_AddTraceback("mpi4py.MPI.Comm.allreduce", __pyx_clineno, __pyx_lineno, __pyx_filename);
68528   __pyx_r = NULL;
68529   __pyx_L0:;
68530   __Pyx_XDECREF(__pyx_v_op);
68531   __Pyx_XGIVEREF(__pyx_r);
68532   __Pyx_RefNannyFinishContext();
68533   return __pyx_r;
68534 }
68535 
68536 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":905
68537  *     """
68538  *
68539  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
68540  *         cdef int inter = 0
68541  *         if self.ob_mpi != MPI_COMM_NULL:
68542  */
68543 
68544 static int __pyx_pf_6mpi4py_3MPI_9Intracomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Intracomm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68545 static int __pyx_pf_6mpi4py_3MPI_9Intracomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68546   struct PyMPICommObject *__pyx_v_comm = 0;
68547   int __pyx_v_inter;
68548   int __pyx_r;
68549   __Pyx_RefNannyDeclarations
68550   int __pyx_t_1;
68551   int __pyx_t_2;
68552   PyObject *__pyx_t_3 = NULL;
68553   int __pyx_lineno = 0;
68554   const char *__pyx_filename = NULL;
68555   int __pyx_clineno = 0;
68556   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
68557   __Pyx_RefNannySetupContext("__cinit__");
68558   {
68559     PyObject* values[1] = {0};
68560     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
68561     if (unlikely(__pyx_kwds)) {
68562       Py_ssize_t kw_args;
68563       switch (PyTuple_GET_SIZE(__pyx_args)) {
68564         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68565         case  0: break;
68566         default: goto __pyx_L5_argtuple_error;
68567       }
68568       kw_args = PyDict_Size(__pyx_kwds);
68569       switch (PyTuple_GET_SIZE(__pyx_args)) {
68570         case  0:
68571         if (kw_args > 0) {
68572           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
68573           if (value) { values[0] = value; kw_args--; }
68574         }
68575       }
68576       if (unlikely(kw_args > 0)) {
68577         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68578       }
68579     } else {
68580       switch (PyTuple_GET_SIZE(__pyx_args)) {
68581         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68582         case  0: break;
68583         default: goto __pyx_L5_argtuple_error;
68584       }
68585     }
68586     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
68587   }
68588   goto __pyx_L4_argument_unpacking_done;
68589   __pyx_L5_argtuple_error:;
68590   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68591   __pyx_L3_error:;
68592   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
68593   __Pyx_RefNannyFinishContext();
68594   return -1;
68595   __pyx_L4_argument_unpacking_done:;
68596   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68597 
68598   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":906
68599  *
68600  *     def __cinit__(self, Comm comm=None):
68601  *         cdef int inter = 0             # <<<<<<<<<<<<<<
68602  *         if self.ob_mpi != MPI_COMM_NULL:
68603  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
68604  */
68605   __pyx_v_inter = 0;
68606 
68607   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":907
68608  *     def __cinit__(self, Comm comm=None):
68609  *         cdef int inter = 0
68610  *         if self.ob_mpi != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
68611  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
68612  *             if inter: raise TypeError(
68613  */
68614   __pyx_t_1 = (((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi != MPI_COMM_NULL);
68615   if (__pyx_t_1) {
68616 
68617     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":908
68618  *         cdef int inter = 0
68619  *         if self.ob_mpi != MPI_COMM_NULL:
68620  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )             # <<<<<<<<<<<<<<
68621  *             if inter: raise TypeError(
68622  *                 "expecting an intracommunicator")
68623  */
68624     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68625 
68626     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":909
68627  *         if self.ob_mpi != MPI_COMM_NULL:
68628  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
68629  *             if inter: raise TypeError(             # <<<<<<<<<<<<<<
68630  *                 "expecting an intracommunicator")
68631  *
68632  */
68633     if (__pyx_v_inter) {
68634       __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_78), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68635       __Pyx_GOTREF(__pyx_t_3);
68636       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
68637       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
68638       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68639       goto __pyx_L7;
68640     }
68641     __pyx_L7:;
68642     goto __pyx_L6;
68643   }
68644   __pyx_L6:;
68645 
68646   __pyx_r = 0;
68647   goto __pyx_L0;
68648   __pyx_L1_error:;
68649   __Pyx_XDECREF(__pyx_t_3);
68650   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
68651   __pyx_r = -1;
68652   __pyx_L0:;
68653   __Pyx_RefNannyFinishContext();
68654   return __pyx_r;
68655 }
68656 
68657 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":915
68658  *     # -------------------------
68659  *
68660  *     def Dup(self):             # <<<<<<<<<<<<<<
68661  *         """
68662  *         Duplicate an existing intracommunicator
68663  */
68664 
68665 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68666 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_1Dup[] = "Intracomm.Dup(self)\n\n        Duplicate an existing intracommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_1Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68667 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68668   struct PyMPIIntracommObject *__pyx_v_comm = 0;
68669   PyObject *__pyx_r = NULL;
68670   __Pyx_RefNannyDeclarations
68671   PyObject *__pyx_t_1 = NULL;
68672   int __pyx_t_2;
68673   int __pyx_lineno = 0;
68674   const char *__pyx_filename = NULL;
68675   int __pyx_clineno = 0;
68676   __Pyx_RefNannySetupContext("Dup");
68677   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
68678     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
68679   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
68680 
68681   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":919
68682  *         Duplicate an existing intracommunicator
68683  *         """
68684  *         cdef Intracomm comm = <Intracomm>type(self)()             # <<<<<<<<<<<<<<
68685  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
68686  *         return comm
68687  */
68688   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68689   __Pyx_GOTREF(__pyx_t_1);
68690   __Pyx_INCREF(((PyObject *)((struct PyMPIIntracommObject *)__pyx_t_1)));
68691   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_t_1);
68692   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
68693 
68694   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":920
68695  *         """
68696  *         cdef Intracomm comm = <Intracomm>type(self)()
68697  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
68698  *         return comm
68699  *
68700  */
68701   {
68702       #ifdef WITH_THREAD
68703       PyThreadState *_save = NULL;
68704       #endif
68705       Py_UNBLOCK_THREADS
68706       /*try:*/ {
68707         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L6;}
68708       }
68709       /*finally:*/ {
68710         int __pyx_why;
68711         __pyx_why = 0; goto __pyx_L7;
68712         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
68713         __pyx_L7:;
68714         Py_BLOCK_THREADS
68715         switch (__pyx_why) {
68716           case 4: goto __pyx_L1_error;
68717         }
68718       }
68719   }
68720 
68721   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":921
68722  *         cdef Intracomm comm = <Intracomm>type(self)()
68723  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
68724  *         return comm             # <<<<<<<<<<<<<<
68725  *
68726  *     def Create(self, Group group not None):
68727  */
68728   __Pyx_XDECREF(__pyx_r);
68729   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
68730   __pyx_r = ((PyObject *)__pyx_v_comm);
68731   goto __pyx_L0;
68732 
68733   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68734   goto __pyx_L0;
68735   __pyx_L1_error:;
68736   __Pyx_XDECREF(__pyx_t_1);
68737   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
68738   __pyx_r = NULL;
68739   __pyx_L0:;
68740   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
68741   __Pyx_XGIVEREF(__pyx_r);
68742   __Pyx_RefNannyFinishContext();
68743   return __pyx_r;
68744 }
68745 
68746 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":923
68747  *         return comm
68748  *
68749  *     def Create(self, Group group not None):             # <<<<<<<<<<<<<<
68750  *         """
68751  *         Create intracommunicator from group
68752  */
68753 
68754 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_2Create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68755 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_2Create[] = "Intracomm.Create(self, Group group)\n\n        Create intracommunicator from group\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_2Create(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68756 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_2Create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68757   struct PyMPIGroupObject *__pyx_v_group = 0;
68758   struct PyMPIIntracommObject *__pyx_v_comm = 0;
68759   PyObject *__pyx_r = NULL;
68760   __Pyx_RefNannyDeclarations
68761   PyObject *__pyx_t_1 = NULL;
68762   int __pyx_t_2;
68763   int __pyx_lineno = 0;
68764   const char *__pyx_filename = NULL;
68765   int __pyx_clineno = 0;
68766   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group,0};
68767   __Pyx_RefNannySetupContext("Create");
68768   {
68769     PyObject* values[1] = {0};
68770     if (unlikely(__pyx_kwds)) {
68771       Py_ssize_t kw_args;
68772       switch (PyTuple_GET_SIZE(__pyx_args)) {
68773         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68774         case  0: break;
68775         default: goto __pyx_L5_argtuple_error;
68776       }
68777       kw_args = PyDict_Size(__pyx_kwds);
68778       switch (PyTuple_GET_SIZE(__pyx_args)) {
68779         case  0:
68780         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group);
68781         if (likely(values[0])) kw_args--;
68782         else goto __pyx_L5_argtuple_error;
68783       }
68784       if (unlikely(kw_args > 0)) {
68785         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68786       }
68787     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
68788       goto __pyx_L5_argtuple_error;
68789     } else {
68790       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68791     }
68792     __pyx_v_group = ((struct PyMPIGroupObject *)values[0]);
68793   }
68794   goto __pyx_L4_argument_unpacking_done;
68795   __pyx_L5_argtuple_error:;
68796   __Pyx_RaiseArgtupleInvalid("Create", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68797   __pyx_L3_error:;
68798   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
68799   __Pyx_RefNannyFinishContext();
68800   return NULL;
68801   __pyx_L4_argument_unpacking_done:;
68802   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68803 
68804   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":927
68805  *         Create intracommunicator from group
68806  *         """
68807  *         cdef Intracomm comm = <Intracomm>type(self)()             # <<<<<<<<<<<<<<
68808  *         with nogil: CHKERR( MPI_Comm_create(
68809  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
68810  */
68811   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68812   __Pyx_GOTREF(__pyx_t_1);
68813   __Pyx_INCREF(((PyObject *)((struct PyMPIIntracommObject *)__pyx_t_1)));
68814   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_t_1);
68815   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
68816 
68817   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":928
68818  *         """
68819  *         cdef Intracomm comm = <Intracomm>type(self)()
68820  *         with nogil: CHKERR( MPI_Comm_create(             # <<<<<<<<<<<<<<
68821  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
68822  *         return comm
68823  */
68824   {
68825       #ifdef WITH_THREAD
68826       PyThreadState *_save = NULL;
68827       #endif
68828       Py_UNBLOCK_THREADS
68829       /*try:*/ {
68830 
68831         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":929
68832  *         cdef Intracomm comm = <Intracomm>type(self)()
68833  *         with nogil: CHKERR( MPI_Comm_create(
68834  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
68835  *         return comm
68836  *
68837  */
68838         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_create(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_group->ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L7;}
68839       }
68840 
68841       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":928
68842  *         """
68843  *         cdef Intracomm comm = <Intracomm>type(self)()
68844  *         with nogil: CHKERR( MPI_Comm_create(             # <<<<<<<<<<<<<<
68845  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
68846  *         return comm
68847  */
68848       /*finally:*/ {
68849         int __pyx_why;
68850         __pyx_why = 0; goto __pyx_L8;
68851         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
68852         __pyx_L8:;
68853         Py_BLOCK_THREADS
68854         switch (__pyx_why) {
68855           case 4: goto __pyx_L1_error;
68856         }
68857       }
68858   }
68859 
68860   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":930
68861  *         with nogil: CHKERR( MPI_Comm_create(
68862  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
68863  *         return comm             # <<<<<<<<<<<<<<
68864  *
68865  *     def Split(self, int color=0, int key=0):
68866  */
68867   __Pyx_XDECREF(__pyx_r);
68868   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
68869   __pyx_r = ((PyObject *)__pyx_v_comm);
68870   goto __pyx_L0;
68871 
68872   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
68873   goto __pyx_L0;
68874   __pyx_L1_error:;
68875   __Pyx_XDECREF(__pyx_t_1);
68876   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
68877   __pyx_r = NULL;
68878   __pyx_L0:;
68879   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
68880   __Pyx_XGIVEREF(__pyx_r);
68881   __Pyx_RefNannyFinishContext();
68882   return __pyx_r;
68883 }
68884 
68885 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":932
68886  *         return comm
68887  *
68888  *     def Split(self, int color=0, int key=0):             # <<<<<<<<<<<<<<
68889  *         """
68890  *         Split intracommunicator by color and key
68891  */
68892 
68893 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_3Split(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
68894 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_3Split[] = "Intracomm.Split(self, int color=0, int key=0)\n\n        Split intracommunicator by color and key\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_3Split(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)68895 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_3Split(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
68896   int __pyx_v_color;
68897   int __pyx_v_key;
68898   struct PyMPIIntracommObject *__pyx_v_comm = 0;
68899   PyObject *__pyx_r = NULL;
68900   __Pyx_RefNannyDeclarations
68901   PyObject *__pyx_t_1 = NULL;
68902   int __pyx_t_2;
68903   int __pyx_lineno = 0;
68904   const char *__pyx_filename = NULL;
68905   int __pyx_clineno = 0;
68906   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__color,&__pyx_n_s__key,0};
68907   __Pyx_RefNannySetupContext("Split");
68908   {
68909     PyObject* values[2] = {0,0};
68910     if (unlikely(__pyx_kwds)) {
68911       Py_ssize_t kw_args;
68912       switch (PyTuple_GET_SIZE(__pyx_args)) {
68913         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68914         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68915         case  0: break;
68916         default: goto __pyx_L5_argtuple_error;
68917       }
68918       kw_args = PyDict_Size(__pyx_kwds);
68919       switch (PyTuple_GET_SIZE(__pyx_args)) {
68920         case  0:
68921         if (kw_args > 0) {
68922           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__color);
68923           if (value) { values[0] = value; kw_args--; }
68924         }
68925         case  1:
68926         if (kw_args > 0) {
68927           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
68928           if (value) { values[1] = value; kw_args--; }
68929         }
68930       }
68931       if (unlikely(kw_args > 0)) {
68932         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Split") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68933       }
68934     } else {
68935       switch (PyTuple_GET_SIZE(__pyx_args)) {
68936         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
68937         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
68938         case  0: break;
68939         default: goto __pyx_L5_argtuple_error;
68940       }
68941     }
68942     if (values[0]) {
68943       __pyx_v_color = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_color == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68944     } else {
68945       __pyx_v_color = ((int)0);
68946     }
68947     if (values[1]) {
68948       __pyx_v_key = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_key == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68949     } else {
68950       __pyx_v_key = ((int)0);
68951     }
68952   }
68953   goto __pyx_L4_argument_unpacking_done;
68954   __pyx_L5_argtuple_error:;
68955   __Pyx_RaiseArgtupleInvalid("Split", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
68956   __pyx_L3_error:;
68957   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Split", __pyx_clineno, __pyx_lineno, __pyx_filename);
68958   __Pyx_RefNannyFinishContext();
68959   return NULL;
68960   __pyx_L4_argument_unpacking_done:;
68961 
68962   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":936
68963  *         Split intracommunicator by color and key
68964  *         """
68965  *         cdef Intracomm comm = <Intracomm>type(self)()             # <<<<<<<<<<<<<<
68966  *         with nogil: CHKERR( MPI_Comm_split(
68967  *             self.ob_mpi, color, key, &comm.ob_mpi) )
68968  */
68969   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
68970   __Pyx_GOTREF(__pyx_t_1);
68971   __Pyx_INCREF(((PyObject *)((struct PyMPIIntracommObject *)__pyx_t_1)));
68972   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_t_1);
68973   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
68974 
68975   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":937
68976  *         """
68977  *         cdef Intracomm comm = <Intracomm>type(self)()
68978  *         with nogil: CHKERR( MPI_Comm_split(             # <<<<<<<<<<<<<<
68979  *             self.ob_mpi, color, key, &comm.ob_mpi) )
68980  *         return comm
68981  */
68982   {
68983       #ifdef WITH_THREAD
68984       PyThreadState *_save = NULL;
68985       #endif
68986       Py_UNBLOCK_THREADS
68987       /*try:*/ {
68988 
68989         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":938
68990  *         cdef Intracomm comm = <Intracomm>type(self)()
68991  *         with nogil: CHKERR( MPI_Comm_split(
68992  *             self.ob_mpi, color, key, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
68993  *         return comm
68994  *
68995  */
68996         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_split(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_color, __pyx_v_key, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L7;}
68997       }
68998 
68999       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":937
69000  *         """
69001  *         cdef Intracomm comm = <Intracomm>type(self)()
69002  *         with nogil: CHKERR( MPI_Comm_split(             # <<<<<<<<<<<<<<
69003  *             self.ob_mpi, color, key, &comm.ob_mpi) )
69004  *         return comm
69005  */
69006       /*finally:*/ {
69007         int __pyx_why;
69008         __pyx_why = 0; goto __pyx_L8;
69009         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
69010         __pyx_L8:;
69011         Py_BLOCK_THREADS
69012         switch (__pyx_why) {
69013           case 4: goto __pyx_L1_error;
69014         }
69015       }
69016   }
69017 
69018   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":939
69019  *         with nogil: CHKERR( MPI_Comm_split(
69020  *             self.ob_mpi, color, key, &comm.ob_mpi) )
69021  *         return comm             # <<<<<<<<<<<<<<
69022  *
69023  *     def Create_cart(self, dims, periods=None, bint reorder=False):
69024  */
69025   __Pyx_XDECREF(__pyx_r);
69026   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
69027   __pyx_r = ((PyObject *)__pyx_v_comm);
69028   goto __pyx_L0;
69029 
69030   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
69031   goto __pyx_L0;
69032   __pyx_L1_error:;
69033   __Pyx_XDECREF(__pyx_t_1);
69034   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Split", __pyx_clineno, __pyx_lineno, __pyx_filename);
69035   __pyx_r = NULL;
69036   __pyx_L0:;
69037   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
69038   __Pyx_XGIVEREF(__pyx_r);
69039   __Pyx_RefNannyFinishContext();
69040   return __pyx_r;
69041 }
69042 
69043 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":941
69044  *         return comm
69045  *
69046  *     def Create_cart(self, dims, periods=None, bint reorder=False):             # <<<<<<<<<<<<<<
69047  *         """
69048  *         Create cartesian communicator
69049  */
69050 
69051 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_4Create_cart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
69052 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_4Create_cart[] = "Intracomm.Create_cart(self, dims, periods=None, int reorder=False)\n\n        Create cartesian communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_4Create_cart(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)69053 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_4Create_cart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
69054   PyObject *__pyx_v_dims = 0;
69055   PyObject *__pyx_v_periods = 0;
69056   int __pyx_v_reorder;
69057   int __pyx_v_ndims;
69058   int *__pyx_v_idims;
69059   int *__pyx_v_iperiods;
69060   struct PyMPICartcommObject *__pyx_v_comm = 0;
69061   PyObject *__pyx_r = NULL;
69062   __Pyx_RefNannyDeclarations
69063   PyObject *__pyx_t_1 = NULL;
69064   int __pyx_t_2;
69065   PyObject *__pyx_t_3 = NULL;
69066   PyObject *__pyx_t_4 = NULL;
69067   int __pyx_t_5;
69068   int __pyx_lineno = 0;
69069   const char *__pyx_filename = NULL;
69070   int __pyx_clineno = 0;
69071   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__dims,&__pyx_n_s__periods,&__pyx_n_s__reorder,0};
69072   __Pyx_RefNannySetupContext("Create_cart");
69073   {
69074     PyObject* values[3] = {0,0,0};
69075     values[1] = ((PyObject *)Py_None);
69076     if (unlikely(__pyx_kwds)) {
69077       Py_ssize_t kw_args;
69078       switch (PyTuple_GET_SIZE(__pyx_args)) {
69079         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69080         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69081         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69082         case  0: break;
69083         default: goto __pyx_L5_argtuple_error;
69084       }
69085       kw_args = PyDict_Size(__pyx_kwds);
69086       switch (PyTuple_GET_SIZE(__pyx_args)) {
69087         case  0:
69088         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dims);
69089         if (likely(values[0])) kw_args--;
69090         else goto __pyx_L5_argtuple_error;
69091         case  1:
69092         if (kw_args > 0) {
69093           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__periods);
69094           if (value) { values[1] = value; kw_args--; }
69095         }
69096         case  2:
69097         if (kw_args > 0) {
69098           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reorder);
69099           if (value) { values[2] = value; kw_args--; }
69100         }
69101       }
69102       if (unlikely(kw_args > 0)) {
69103         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_cart") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69104       }
69105     } else {
69106       switch (PyTuple_GET_SIZE(__pyx_args)) {
69107         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69108         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69109         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69110         break;
69111         default: goto __pyx_L5_argtuple_error;
69112       }
69113     }
69114     __pyx_v_dims = values[0];
69115     __pyx_v_periods = values[1];
69116     if (values[2]) {
69117       __pyx_v_reorder = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_reorder == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69118     } else {
69119       __pyx_v_reorder = ((int)0);
69120     }
69121   }
69122   goto __pyx_L4_argument_unpacking_done;
69123   __pyx_L5_argtuple_error:;
69124   __Pyx_RaiseArgtupleInvalid("Create_cart", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69125   __pyx_L3_error:;
69126   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_cart", __pyx_clineno, __pyx_lineno, __pyx_filename);
69127   __Pyx_RefNannyFinishContext();
69128   return NULL;
69129   __pyx_L4_argument_unpacking_done:;
69130   __Pyx_INCREF(__pyx_v_dims);
69131   __Pyx_INCREF(__pyx_v_periods);
69132 
69133   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":945
69134  *         Create cartesian communicator
69135  *         """
69136  *         cdef int ndims = 0, *idims = NULL             # <<<<<<<<<<<<<<
69137  *         dims = getarray_int(dims, &ndims, &idims)
69138  *         if periods is None: periods = [False] * ndims
69139  */
69140   __pyx_v_ndims = 0;
69141   __pyx_v_idims = NULL;
69142 
69143   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":946
69144  *         """
69145  *         cdef int ndims = 0, *idims = NULL
69146  *         dims = getarray_int(dims, &ndims, &idims)             # <<<<<<<<<<<<<<
69147  *         if periods is None: periods = [False] * ndims
69148  *         cdef int *iperiods = NULL
69149  */
69150   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_dims, (&__pyx_v_ndims), (&__pyx_v_idims)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69151   __Pyx_GOTREF(__pyx_t_1);
69152   __Pyx_DECREF(__pyx_v_dims);
69153   __pyx_v_dims = __pyx_t_1;
69154   __pyx_t_1 = 0;
69155 
69156   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":947
69157  *         cdef int ndims = 0, *idims = NULL
69158  *         dims = getarray_int(dims, &ndims, &idims)
69159  *         if periods is None: periods = [False] * ndims             # <<<<<<<<<<<<<<
69160  *         cdef int *iperiods = NULL
69161  *         periods = chkarray_int(periods, ndims, &iperiods)
69162  */
69163   __pyx_t_2 = (__pyx_v_periods == Py_None);
69164   if (__pyx_t_2) {
69165     __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69166     __Pyx_GOTREF(__pyx_t_1);
69167     __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69168     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
69169     PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
69170     __Pyx_GIVEREF(__pyx_t_1);
69171     __pyx_t_1 = 0;
69172     __pyx_t_1 = PyInt_FromLong(__pyx_v_ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69173     __Pyx_GOTREF(__pyx_t_1);
69174     __pyx_t_4 = PyNumber_Multiply(((PyObject *)__pyx_t_3), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69175     __Pyx_GOTREF(__pyx_t_4);
69176     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
69177     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
69178     __Pyx_DECREF(__pyx_v_periods);
69179     __pyx_v_periods = __pyx_t_4;
69180     __pyx_t_4 = 0;
69181     goto __pyx_L6;
69182   }
69183   __pyx_L6:;
69184 
69185   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":948
69186  *         dims = getarray_int(dims, &ndims, &idims)
69187  *         if periods is None: periods = [False] * ndims
69188  *         cdef int *iperiods = NULL             # <<<<<<<<<<<<<<
69189  *         periods = chkarray_int(periods, ndims, &iperiods)
69190  *         #
69191  */
69192   __pyx_v_iperiods = NULL;
69193 
69194   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":949
69195  *         if periods is None: periods = [False] * ndims
69196  *         cdef int *iperiods = NULL
69197  *         periods = chkarray_int(periods, ndims, &iperiods)             # <<<<<<<<<<<<<<
69198  *         #
69199  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
69200  */
69201   __pyx_t_4 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_periods, __pyx_v_ndims, (&__pyx_v_iperiods)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69202   __Pyx_GOTREF(__pyx_t_4);
69203   __Pyx_DECREF(__pyx_v_periods);
69204   __pyx_v_periods = __pyx_t_4;
69205   __pyx_t_4 = 0;
69206 
69207   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":951
69208  *         periods = chkarray_int(periods, ndims, &iperiods)
69209  *         #
69210  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)             # <<<<<<<<<<<<<<
69211  *         with nogil: CHKERR( MPI_Cart_create(
69212  *             self.ob_mpi, ndims, idims, iperiods, reorder, &comm.ob_mpi) )
69213  */
69214   __pyx_t_4 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Cartcomm)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69215   __Pyx_GOTREF(__pyx_t_4);
69216   __Pyx_INCREF(((PyObject *)((struct PyMPICartcommObject *)__pyx_t_4)));
69217   __pyx_v_comm = ((struct PyMPICartcommObject *)__pyx_t_4);
69218   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
69219 
69220   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":952
69221  *         #
69222  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
69223  *         with nogil: CHKERR( MPI_Cart_create(             # <<<<<<<<<<<<<<
69224  *             self.ob_mpi, ndims, idims, iperiods, reorder, &comm.ob_mpi) )
69225  *         return comm
69226  */
69227   {
69228       #ifdef WITH_THREAD
69229       PyThreadState *_save = NULL;
69230       #endif
69231       Py_UNBLOCK_THREADS
69232       /*try:*/ {
69233 
69234         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":953
69235  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
69236  *         with nogil: CHKERR( MPI_Cart_create(
69237  *             self.ob_mpi, ndims, idims, iperiods, reorder, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
69238  *         return comm
69239  *
69240  */
69241         __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_create(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_ndims, __pyx_v_idims, __pyx_v_iperiods, __pyx_v_reorder, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L8;}
69242       }
69243 
69244       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":952
69245  *         #
69246  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
69247  *         with nogil: CHKERR( MPI_Cart_create(             # <<<<<<<<<<<<<<
69248  *             self.ob_mpi, ndims, idims, iperiods, reorder, &comm.ob_mpi) )
69249  *         return comm
69250  */
69251       /*finally:*/ {
69252         int __pyx_why;
69253         __pyx_why = 0; goto __pyx_L9;
69254         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
69255         __pyx_L9:;
69256         Py_BLOCK_THREADS
69257         switch (__pyx_why) {
69258           case 4: goto __pyx_L1_error;
69259         }
69260       }
69261   }
69262 
69263   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":954
69264  *         with nogil: CHKERR( MPI_Cart_create(
69265  *             self.ob_mpi, ndims, idims, iperiods, reorder, &comm.ob_mpi) )
69266  *         return comm             # <<<<<<<<<<<<<<
69267  *
69268  *     def Create_graph(self, index, edges, bint reorder=False):
69269  */
69270   __Pyx_XDECREF(__pyx_r);
69271   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
69272   __pyx_r = ((PyObject *)__pyx_v_comm);
69273   goto __pyx_L0;
69274 
69275   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
69276   goto __pyx_L0;
69277   __pyx_L1_error:;
69278   __Pyx_XDECREF(__pyx_t_1);
69279   __Pyx_XDECREF(__pyx_t_3);
69280   __Pyx_XDECREF(__pyx_t_4);
69281   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_cart", __pyx_clineno, __pyx_lineno, __pyx_filename);
69282   __pyx_r = NULL;
69283   __pyx_L0:;
69284   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
69285   __Pyx_XDECREF(__pyx_v_dims);
69286   __Pyx_XDECREF(__pyx_v_periods);
69287   __Pyx_XGIVEREF(__pyx_r);
69288   __Pyx_RefNannyFinishContext();
69289   return __pyx_r;
69290 }
69291 
69292 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":956
69293  *         return comm
69294  *
69295  *     def Create_graph(self, index, edges, bint reorder=False):             # <<<<<<<<<<<<<<
69296  *         """
69297  *         Create graph communicator
69298  */
69299 
69300 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_5Create_graph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
69301 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_5Create_graph[] = "Intracomm.Create_graph(self, index, edges, int reorder=False)\n\n        Create graph communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_5Create_graph(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)69302 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_5Create_graph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
69303   PyObject *__pyx_v_index = 0;
69304   PyObject *__pyx_v_edges = 0;
69305   int __pyx_v_reorder;
69306   int __pyx_v_nnodes;
69307   int *__pyx_v_iindex;
69308   int __pyx_v_nedges;
69309   int *__pyx_v_iedges;
69310   struct PyMPIGraphcommObject *__pyx_v_comm = 0;
69311   PyObject *__pyx_r = NULL;
69312   __Pyx_RefNannyDeclarations
69313   PyObject *__pyx_t_1 = NULL;
69314   int __pyx_t_2;
69315   int __pyx_t_3;
69316   int __pyx_t_4;
69317   int __pyx_t_5;
69318   int __pyx_lineno = 0;
69319   const char *__pyx_filename = NULL;
69320   int __pyx_clineno = 0;
69321   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__index,&__pyx_n_s__edges,&__pyx_n_s__reorder,0};
69322   __Pyx_RefNannySetupContext("Create_graph");
69323   {
69324     PyObject* values[3] = {0,0,0};
69325     if (unlikely(__pyx_kwds)) {
69326       Py_ssize_t kw_args;
69327       switch (PyTuple_GET_SIZE(__pyx_args)) {
69328         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69329         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69330         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69331         case  0: break;
69332         default: goto __pyx_L5_argtuple_error;
69333       }
69334       kw_args = PyDict_Size(__pyx_kwds);
69335       switch (PyTuple_GET_SIZE(__pyx_args)) {
69336         case  0:
69337         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__index);
69338         if (likely(values[0])) kw_args--;
69339         else goto __pyx_L5_argtuple_error;
69340         case  1:
69341         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__edges);
69342         if (likely(values[1])) kw_args--;
69343         else {
69344           __Pyx_RaiseArgtupleInvalid("Create_graph", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69345         }
69346         case  2:
69347         if (kw_args > 0) {
69348           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reorder);
69349           if (value) { values[2] = value; kw_args--; }
69350         }
69351       }
69352       if (unlikely(kw_args > 0)) {
69353         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_graph") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69354       }
69355     } else {
69356       switch (PyTuple_GET_SIZE(__pyx_args)) {
69357         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69358         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69359         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69360         break;
69361         default: goto __pyx_L5_argtuple_error;
69362       }
69363     }
69364     __pyx_v_index = values[0];
69365     __pyx_v_edges = values[1];
69366     if (values[2]) {
69367       __pyx_v_reorder = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_reorder == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69368     } else {
69369       __pyx_v_reorder = ((int)0);
69370     }
69371   }
69372   goto __pyx_L4_argument_unpacking_done;
69373   __pyx_L5_argtuple_error:;
69374   __Pyx_RaiseArgtupleInvalid("Create_graph", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69375   __pyx_L3_error:;
69376   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
69377   __Pyx_RefNannyFinishContext();
69378   return NULL;
69379   __pyx_L4_argument_unpacking_done:;
69380   __Pyx_INCREF(__pyx_v_index);
69381   __Pyx_INCREF(__pyx_v_edges);
69382 
69383   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":960
69384  *         Create graph communicator
69385  *         """
69386  *         cdef int nnodes = 0, *iindex = NULL             # <<<<<<<<<<<<<<
69387  *         index = getarray_int(index, &nnodes, &iindex)
69388  *         cdef int nedges = 0, *iedges = NULL
69389  */
69390   __pyx_v_nnodes = 0;
69391   __pyx_v_iindex = NULL;
69392 
69393   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":961
69394  *         """
69395  *         cdef int nnodes = 0, *iindex = NULL
69396  *         index = getarray_int(index, &nnodes, &iindex)             # <<<<<<<<<<<<<<
69397  *         cdef int nedges = 0, *iedges = NULL
69398  *         edges = getarray_int(edges, &nedges, &iedges)
69399  */
69400   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_index, (&__pyx_v_nnodes), (&__pyx_v_iindex)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69401   __Pyx_GOTREF(__pyx_t_1);
69402   __Pyx_DECREF(__pyx_v_index);
69403   __pyx_v_index = __pyx_t_1;
69404   __pyx_t_1 = 0;
69405 
69406   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":962
69407  *         cdef int nnodes = 0, *iindex = NULL
69408  *         index = getarray_int(index, &nnodes, &iindex)
69409  *         cdef int nedges = 0, *iedges = NULL             # <<<<<<<<<<<<<<
69410  *         edges = getarray_int(edges, &nedges, &iedges)
69411  *         # extension: 'standard' adjacency arrays
69412  */
69413   __pyx_v_nedges = 0;
69414   __pyx_v_iedges = NULL;
69415 
69416   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":963
69417  *         index = getarray_int(index, &nnodes, &iindex)
69418  *         cdef int nedges = 0, *iedges = NULL
69419  *         edges = getarray_int(edges, &nedges, &iedges)             # <<<<<<<<<<<<<<
69420  *         # extension: 'standard' adjacency arrays
69421  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:
69422  */
69423   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_edges, (&__pyx_v_nedges), (&__pyx_v_iedges)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69424   __Pyx_GOTREF(__pyx_t_1);
69425   __Pyx_DECREF(__pyx_v_edges);
69426   __pyx_v_edges = __pyx_t_1;
69427   __pyx_t_1 = 0;
69428 
69429   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":965
69430  *         edges = getarray_int(edges, &nedges, &iedges)
69431  *         # extension: 'standard' adjacency arrays
69432  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:             # <<<<<<<<<<<<<<
69433  *             nnodes -= 1; iindex += 1;
69434  *         #
69435  */
69436   __pyx_t_2 = ((__pyx_v_iindex[0]) == 0);
69437   if (__pyx_t_2) {
69438     __pyx_t_3 = ((__pyx_v_iindex[(__pyx_v_nnodes - 1)]) == __pyx_v_nedges);
69439     __pyx_t_4 = __pyx_t_3;
69440   } else {
69441     __pyx_t_4 = __pyx_t_2;
69442   }
69443   if (__pyx_t_4) {
69444 
69445     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":966
69446  *         # extension: 'standard' adjacency arrays
69447  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:
69448  *             nnodes -= 1; iindex += 1;             # <<<<<<<<<<<<<<
69449  *         #
69450  *         cdef Graphcomm comm = <Graphcomm>Graphcomm.__new__(Graphcomm)
69451  */
69452     __pyx_v_nnodes = (__pyx_v_nnodes - 1);
69453     __pyx_v_iindex = (__pyx_v_iindex + 1);
69454     goto __pyx_L6;
69455   }
69456   __pyx_L6:;
69457 
69458   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":968
69459  *             nnodes -= 1; iindex += 1;
69460  *         #
69461  *         cdef Graphcomm comm = <Graphcomm>Graphcomm.__new__(Graphcomm)             # <<<<<<<<<<<<<<
69462  *         with nogil: CHKERR( MPI_Graph_create(
69463  *             self.ob_mpi, nnodes, iindex, iedges, reorder, &comm.ob_mpi) )
69464  */
69465   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Graphcomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69466   __Pyx_GOTREF(__pyx_t_1);
69467   __Pyx_INCREF(((PyObject *)((struct PyMPIGraphcommObject *)__pyx_t_1)));
69468   __pyx_v_comm = ((struct PyMPIGraphcommObject *)__pyx_t_1);
69469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
69470 
69471   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":969
69472  *         #
69473  *         cdef Graphcomm comm = <Graphcomm>Graphcomm.__new__(Graphcomm)
69474  *         with nogil: CHKERR( MPI_Graph_create(             # <<<<<<<<<<<<<<
69475  *             self.ob_mpi, nnodes, iindex, iedges, reorder, &comm.ob_mpi) )
69476  *         return comm
69477  */
69478   {
69479       #ifdef WITH_THREAD
69480       PyThreadState *_save = NULL;
69481       #endif
69482       Py_UNBLOCK_THREADS
69483       /*try:*/ {
69484 
69485         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":970
69486  *         cdef Graphcomm comm = <Graphcomm>Graphcomm.__new__(Graphcomm)
69487  *         with nogil: CHKERR( MPI_Graph_create(
69488  *             self.ob_mpi, nnodes, iindex, iedges, reorder, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
69489  *         return comm
69490  *
69491  */
69492         __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_create(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_nnodes, __pyx_v_iindex, __pyx_v_iedges, __pyx_v_reorder, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L8;}
69493       }
69494 
69495       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":969
69496  *         #
69497  *         cdef Graphcomm comm = <Graphcomm>Graphcomm.__new__(Graphcomm)
69498  *         with nogil: CHKERR( MPI_Graph_create(             # <<<<<<<<<<<<<<
69499  *             self.ob_mpi, nnodes, iindex, iedges, reorder, &comm.ob_mpi) )
69500  *         return comm
69501  */
69502       /*finally:*/ {
69503         int __pyx_why;
69504         __pyx_why = 0; goto __pyx_L9;
69505         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
69506         __pyx_L9:;
69507         Py_BLOCK_THREADS
69508         switch (__pyx_why) {
69509           case 4: goto __pyx_L1_error;
69510         }
69511       }
69512   }
69513 
69514   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":971
69515  *         with nogil: CHKERR( MPI_Graph_create(
69516  *             self.ob_mpi, nnodes, iindex, iedges, reorder, &comm.ob_mpi) )
69517  *         return comm             # <<<<<<<<<<<<<<
69518  *
69519  *     def Create_dist_graph_adjacent(self, sources, destinations,
69520  */
69521   __Pyx_XDECREF(__pyx_r);
69522   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
69523   __pyx_r = ((PyObject *)__pyx_v_comm);
69524   goto __pyx_L0;
69525 
69526   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
69527   goto __pyx_L0;
69528   __pyx_L1_error:;
69529   __Pyx_XDECREF(__pyx_t_1);
69530   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
69531   __pyx_r = NULL;
69532   __pyx_L0:;
69533   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
69534   __Pyx_XDECREF(__pyx_v_index);
69535   __Pyx_XDECREF(__pyx_v_edges);
69536   __Pyx_XGIVEREF(__pyx_r);
69537   __Pyx_RefNannyFinishContext();
69538   return __pyx_r;
69539 }
69540 
69541 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":973
69542  *         return comm
69543  *
69544  *     def Create_dist_graph_adjacent(self, sources, destinations,             # <<<<<<<<<<<<<<
69545  *                                    sourceweights=None, destweights=None,
69546  *                                    Info info=INFO_NULL, bint reorder=False):
69547  */
69548 
69549 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
69550 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent[] = "Intracomm.Create_dist_graph_adjacent(self, sources, destinations, sourceweights=None, destweights=None, Info info=INFO_NULL, int reorder=False)\n\n        Create distributed graph communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)69551 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
69552   PyObject *__pyx_v_sources = 0;
69553   PyObject *__pyx_v_destinations = 0;
69554   PyObject *__pyx_v_sourceweights = 0;
69555   PyObject *__pyx_v_destweights = 0;
69556   struct PyMPIInfoObject *__pyx_v_info = 0;
69557   int __pyx_v_reorder;
69558   int __pyx_v_indegree;
69559   int *__pyx_v_isource;
69560   int __pyx_v_outdegree;
69561   int *__pyx_v_idest;
69562   int *__pyx_v_isourceweight;
69563   int *__pyx_v_idestweight;
69564   MPI_Info __pyx_v_cinfo;
69565   struct PyMPIDistgraphcommObject *__pyx_v_comm = 0;
69566   PyObject *__pyx_r = NULL;
69567   __Pyx_RefNannyDeclarations
69568   int __pyx_t_1;
69569   PyObject *__pyx_t_2 = NULL;
69570   int __pyx_t_3;
69571   int __pyx_lineno = 0;
69572   const char *__pyx_filename = NULL;
69573   int __pyx_clineno = 0;
69574   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sources,&__pyx_n_s__destinations,&__pyx_n_s__sourceweights,&__pyx_n_s__destweights,&__pyx_n_s__info,&__pyx_n_s__reorder,0};
69575   __Pyx_RefNannySetupContext("Create_dist_graph_adjacent");
69576   {
69577     PyObject* values[6] = {0,0,0,0,0,0};
69578 
69579     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":974
69580  *
69581  *     def Create_dist_graph_adjacent(self, sources, destinations,
69582  *                                    sourceweights=None, destweights=None,             # <<<<<<<<<<<<<<
69583  *                                    Info info=INFO_NULL, bint reorder=False):
69584  *         """
69585  */
69586     values[2] = ((PyObject *)Py_None);
69587     values[3] = ((PyObject *)Py_None);
69588     values[4] = (PyObject *)__pyx_k_79;
69589     if (unlikely(__pyx_kwds)) {
69590       Py_ssize_t kw_args;
69591       switch (PyTuple_GET_SIZE(__pyx_args)) {
69592         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
69593         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
69594         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
69595         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69596         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69597         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69598         case  0: break;
69599         default: goto __pyx_L5_argtuple_error;
69600       }
69601       kw_args = PyDict_Size(__pyx_kwds);
69602       switch (PyTuple_GET_SIZE(__pyx_args)) {
69603         case  0:
69604         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sources);
69605         if (likely(values[0])) kw_args--;
69606         else goto __pyx_L5_argtuple_error;
69607         case  1:
69608         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__destinations);
69609         if (likely(values[1])) kw_args--;
69610         else {
69611           __Pyx_RaiseArgtupleInvalid("Create_dist_graph_adjacent", 0, 2, 6, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69612         }
69613         case  2:
69614         if (kw_args > 0) {
69615           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sourceweights);
69616           if (value) { values[2] = value; kw_args--; }
69617         }
69618         case  3:
69619         if (kw_args > 0) {
69620           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__destweights);
69621           if (value) { values[3] = value; kw_args--; }
69622         }
69623         case  4:
69624         if (kw_args > 0) {
69625           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
69626           if (value) { values[4] = value; kw_args--; }
69627         }
69628         case  5:
69629         if (kw_args > 0) {
69630           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reorder);
69631           if (value) { values[5] = value; kw_args--; }
69632         }
69633       }
69634       if (unlikely(kw_args > 0)) {
69635         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_dist_graph_adjacent") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69636       }
69637     } else {
69638       switch (PyTuple_GET_SIZE(__pyx_args)) {
69639         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
69640         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
69641         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
69642         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69643         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69644         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69645         break;
69646         default: goto __pyx_L5_argtuple_error;
69647       }
69648     }
69649     __pyx_v_sources = values[0];
69650     __pyx_v_destinations = values[1];
69651     __pyx_v_sourceweights = values[2];
69652     __pyx_v_destweights = values[3];
69653     __pyx_v_info = ((struct PyMPIInfoObject *)values[4]);
69654     if (values[5]) {
69655       __pyx_v_reorder = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_reorder == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69656     } else {
69657 
69658       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":975
69659  *     def Create_dist_graph_adjacent(self, sources, destinations,
69660  *                                    sourceweights=None, destweights=None,
69661  *                                    Info info=INFO_NULL, bint reorder=False):             # <<<<<<<<<<<<<<
69662  *         """
69663  *         Create distributed graph communicator
69664  */
69665       __pyx_v_reorder = ((int)0);
69666     }
69667   }
69668   goto __pyx_L4_argument_unpacking_done;
69669   __pyx_L5_argtuple_error:;
69670   __Pyx_RaiseArgtupleInvalid("Create_dist_graph_adjacent", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69671   __pyx_L3_error:;
69672   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_dist_graph_adjacent", __pyx_clineno, __pyx_lineno, __pyx_filename);
69673   __Pyx_RefNannyFinishContext();
69674   return NULL;
69675   __pyx_L4_argument_unpacking_done:;
69676   __Pyx_INCREF(__pyx_v_sources);
69677   __Pyx_INCREF(__pyx_v_destinations);
69678   __Pyx_INCREF(__pyx_v_sourceweights);
69679   __Pyx_INCREF(__pyx_v_destweights);
69680   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69681 
69682   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":979
69683  *         Create distributed graph communicator
69684  *         """
69685  *         cdef int indegree  = 0, *isource = NULL             # <<<<<<<<<<<<<<
69686  *         cdef int outdegree = 0, *idest   = NULL
69687  *         cdef int *isourceweight = MPI_UNWEIGHTED
69688  */
69689   __pyx_v_indegree = 0;
69690   __pyx_v_isource = NULL;
69691 
69692   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":980
69693  *         """
69694  *         cdef int indegree  = 0, *isource = NULL
69695  *         cdef int outdegree = 0, *idest   = NULL             # <<<<<<<<<<<<<<
69696  *         cdef int *isourceweight = MPI_UNWEIGHTED
69697  *         cdef int *idestweight   = MPI_UNWEIGHTED
69698  */
69699   __pyx_v_outdegree = 0;
69700   __pyx_v_idest = NULL;
69701 
69702   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":981
69703  *         cdef int indegree  = 0, *isource = NULL
69704  *         cdef int outdegree = 0, *idest   = NULL
69705  *         cdef int *isourceweight = MPI_UNWEIGHTED             # <<<<<<<<<<<<<<
69706  *         cdef int *idestweight   = MPI_UNWEIGHTED
69707  *         if sources is not None:
69708  */
69709   __pyx_v_isourceweight = MPI_UNWEIGHTED;
69710 
69711   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":982
69712  *         cdef int outdegree = 0, *idest   = NULL
69713  *         cdef int *isourceweight = MPI_UNWEIGHTED
69714  *         cdef int *idestweight   = MPI_UNWEIGHTED             # <<<<<<<<<<<<<<
69715  *         if sources is not None:
69716  *             sources = getarray_int(sources, &indegree, &isource)
69717  */
69718   __pyx_v_idestweight = MPI_UNWEIGHTED;
69719 
69720   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":983
69721  *         cdef int *isourceweight = MPI_UNWEIGHTED
69722  *         cdef int *idestweight   = MPI_UNWEIGHTED
69723  *         if sources is not None:             # <<<<<<<<<<<<<<
69724  *             sources = getarray_int(sources, &indegree, &isource)
69725  *         if sourceweights is not None:
69726  */
69727   __pyx_t_1 = (__pyx_v_sources != Py_None);
69728   if (__pyx_t_1) {
69729 
69730     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":984
69731  *         cdef int *idestweight   = MPI_UNWEIGHTED
69732  *         if sources is not None:
69733  *             sources = getarray_int(sources, &indegree, &isource)             # <<<<<<<<<<<<<<
69734  *         if sourceweights is not None:
69735  *             sourceweights = chkarray_int(
69736  */
69737     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_sources, (&__pyx_v_indegree), (&__pyx_v_isource)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69738     __Pyx_GOTREF(__pyx_t_2);
69739     __Pyx_DECREF(__pyx_v_sources);
69740     __pyx_v_sources = __pyx_t_2;
69741     __pyx_t_2 = 0;
69742     goto __pyx_L6;
69743   }
69744   __pyx_L6:;
69745 
69746   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":985
69747  *         if sources is not None:
69748  *             sources = getarray_int(sources, &indegree, &isource)
69749  *         if sourceweights is not None:             # <<<<<<<<<<<<<<
69750  *             sourceweights = chkarray_int(
69751  *                 sourceweights, indegree, &isourceweight)
69752  */
69753   __pyx_t_1 = (__pyx_v_sourceweights != Py_None);
69754   if (__pyx_t_1) {
69755 
69756     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":987
69757  *         if sourceweights is not None:
69758  *             sourceweights = chkarray_int(
69759  *                 sourceweights, indegree, &isourceweight)             # <<<<<<<<<<<<<<
69760  *         if destinations is not None:
69761  *             destinations = getarray_int(destinations, &outdegree, &idest)
69762  */
69763     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_sourceweights, __pyx_v_indegree, (&__pyx_v_isourceweight)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69764     __Pyx_GOTREF(__pyx_t_2);
69765     __Pyx_DECREF(__pyx_v_sourceweights);
69766     __pyx_v_sourceweights = __pyx_t_2;
69767     __pyx_t_2 = 0;
69768     goto __pyx_L7;
69769   }
69770   __pyx_L7:;
69771 
69772   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":988
69773  *             sourceweights = chkarray_int(
69774  *                 sourceweights, indegree, &isourceweight)
69775  *         if destinations is not None:             # <<<<<<<<<<<<<<
69776  *             destinations = getarray_int(destinations, &outdegree, &idest)
69777  *         if destweights is not None:
69778  */
69779   __pyx_t_1 = (__pyx_v_destinations != Py_None);
69780   if (__pyx_t_1) {
69781 
69782     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":989
69783  *                 sourceweights, indegree, &isourceweight)
69784  *         if destinations is not None:
69785  *             destinations = getarray_int(destinations, &outdegree, &idest)             # <<<<<<<<<<<<<<
69786  *         if destweights is not None:
69787  *             destweights = chkarray_int(destweights, outdegree, &idestweight)
69788  */
69789     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_destinations, (&__pyx_v_outdegree), (&__pyx_v_idest)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69790     __Pyx_GOTREF(__pyx_t_2);
69791     __Pyx_DECREF(__pyx_v_destinations);
69792     __pyx_v_destinations = __pyx_t_2;
69793     __pyx_t_2 = 0;
69794     goto __pyx_L8;
69795   }
69796   __pyx_L8:;
69797 
69798   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":990
69799  *         if destinations is not None:
69800  *             destinations = getarray_int(destinations, &outdegree, &idest)
69801  *         if destweights is not None:             # <<<<<<<<<<<<<<
69802  *             destweights = chkarray_int(destweights, outdegree, &idestweight)
69803  *         cdef MPI_Info cinfo = arg_Info(info)
69804  */
69805   __pyx_t_1 = (__pyx_v_destweights != Py_None);
69806   if (__pyx_t_1) {
69807 
69808     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":991
69809  *             destinations = getarray_int(destinations, &outdegree, &idest)
69810  *         if destweights is not None:
69811  *             destweights = chkarray_int(destweights, outdegree, &idestweight)             # <<<<<<<<<<<<<<
69812  *         cdef MPI_Info cinfo = arg_Info(info)
69813  *         #
69814  */
69815     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_destweights, __pyx_v_outdegree, (&__pyx_v_idestweight)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69816     __Pyx_GOTREF(__pyx_t_2);
69817     __Pyx_DECREF(__pyx_v_destweights);
69818     __pyx_v_destweights = __pyx_t_2;
69819     __pyx_t_2 = 0;
69820     goto __pyx_L9;
69821   }
69822   __pyx_L9:;
69823 
69824   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":992
69825  *         if destweights is not None:
69826  *             destweights = chkarray_int(destweights, outdegree, &idestweight)
69827  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
69828  *         #
69829  *         cdef Distgraphcomm comm = \
69830  */
69831   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
69832 
69833   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":995
69834  *         #
69835  *         cdef Distgraphcomm comm = \
69836  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)             # <<<<<<<<<<<<<<
69837  *         with nogil: CHKERR( MPI_Dist_graph_create_adjacent(
69838  *                 self.ob_mpi,
69839  */
69840   __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Distgraphcomm)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
69841   __Pyx_GOTREF(__pyx_t_2);
69842   __Pyx_INCREF(((PyObject *)((struct PyMPIDistgraphcommObject *)__pyx_t_2)));
69843   __pyx_v_comm = ((struct PyMPIDistgraphcommObject *)__pyx_t_2);
69844   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
69845 
69846   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":996
69847  *         cdef Distgraphcomm comm = \
69848  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)
69849  *         with nogil: CHKERR( MPI_Dist_graph_create_adjacent(             # <<<<<<<<<<<<<<
69850  *                 self.ob_mpi,
69851  *                 indegree,  isource, isourceweight,
69852  */
69853   {
69854       #ifdef WITH_THREAD
69855       PyThreadState *_save = NULL;
69856       #endif
69857       Py_UNBLOCK_THREADS
69858       /*try:*/ {
69859 
69860         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1000
69861  *                 indegree,  isource, isourceweight,
69862  *                 outdegree, idest,   idestweight,
69863  *                 cinfo, reorder, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
69864  *         return comm
69865  *
69866  */
69867         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dist_graph_create_adjacent(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_indegree, __pyx_v_isource, __pyx_v_isourceweight, __pyx_v_outdegree, __pyx_v_idest, __pyx_v_idestweight, __pyx_v_cinfo, __pyx_v_reorder, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L11;}
69868       }
69869 
69870       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":996
69871  *         cdef Distgraphcomm comm = \
69872  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)
69873  *         with nogil: CHKERR( MPI_Dist_graph_create_adjacent(             # <<<<<<<<<<<<<<
69874  *                 self.ob_mpi,
69875  *                 indegree,  isource, isourceweight,
69876  */
69877       /*finally:*/ {
69878         int __pyx_why;
69879         __pyx_why = 0; goto __pyx_L12;
69880         __pyx_L11: __pyx_why = 4; goto __pyx_L12;
69881         __pyx_L12:;
69882         Py_BLOCK_THREADS
69883         switch (__pyx_why) {
69884           case 4: goto __pyx_L1_error;
69885         }
69886       }
69887   }
69888 
69889   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1001
69890  *                 outdegree, idest,   idestweight,
69891  *                 cinfo, reorder, &comm.ob_mpi) )
69892  *         return comm             # <<<<<<<<<<<<<<
69893  *
69894  *     def Create_dist_graph(self, sources, degrees, destinations, weights=None,
69895  */
69896   __Pyx_XDECREF(__pyx_r);
69897   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
69898   __pyx_r = ((PyObject *)__pyx_v_comm);
69899   goto __pyx_L0;
69900 
69901   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
69902   goto __pyx_L0;
69903   __pyx_L1_error:;
69904   __Pyx_XDECREF(__pyx_t_2);
69905   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_dist_graph_adjacent", __pyx_clineno, __pyx_lineno, __pyx_filename);
69906   __pyx_r = NULL;
69907   __pyx_L0:;
69908   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
69909   __Pyx_XDECREF(__pyx_v_sources);
69910   __Pyx_XDECREF(__pyx_v_destinations);
69911   __Pyx_XDECREF(__pyx_v_sourceweights);
69912   __Pyx_XDECREF(__pyx_v_destweights);
69913   __Pyx_XGIVEREF(__pyx_r);
69914   __Pyx_RefNannyFinishContext();
69915   return __pyx_r;
69916 }
69917 
69918 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1003
69919  *         return comm
69920  *
69921  *     def Create_dist_graph(self, sources, degrees, destinations, weights=None,             # <<<<<<<<<<<<<<
69922  *                           Info info=INFO_NULL, bint reorder=False):
69923  *         """
69924  */
69925 
69926 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_7Create_dist_graph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
69927 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_7Create_dist_graph[] = "Intracomm.Create_dist_graph(self, sources, degrees, destinations, weights=None, Info info=INFO_NULL, int reorder=False)\n\n        Create distributed graph communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_7Create_dist_graph(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)69928 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_7Create_dist_graph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
69929   PyObject *__pyx_v_sources = 0;
69930   PyObject *__pyx_v_degrees = 0;
69931   PyObject *__pyx_v_destinations = 0;
69932   PyObject *__pyx_v_weights = 0;
69933   struct PyMPIInfoObject *__pyx_v_info = 0;
69934   int __pyx_v_reorder;
69935   int __pyx_v_nv;
69936   int __pyx_v_ne;
69937   int __pyx_v_i;
69938   int *__pyx_v_isource;
69939   int *__pyx_v_idegree;
69940   int *__pyx_v_idest;
69941   int *__pyx_v_iweight;
69942   MPI_Info __pyx_v_cinfo;
69943   struct PyMPIDistgraphcommObject *__pyx_v_comm = 0;
69944   PyObject *__pyx_r = NULL;
69945   __Pyx_RefNannyDeclarations
69946   PyObject *__pyx_t_1 = NULL;
69947   int __pyx_t_2;
69948   int __pyx_t_3;
69949   int __pyx_lineno = 0;
69950   const char *__pyx_filename = NULL;
69951   int __pyx_clineno = 0;
69952   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sources,&__pyx_n_s__degrees,&__pyx_n_s__destinations,&__pyx_n_s__weights,&__pyx_n_s__info,&__pyx_n_s__reorder,0};
69953   __Pyx_RefNannySetupContext("Create_dist_graph");
69954   {
69955     PyObject* values[6] = {0,0,0,0,0,0};
69956     values[3] = ((PyObject *)Py_None);
69957     values[4] = (PyObject *)__pyx_k_80;
69958     if (unlikely(__pyx_kwds)) {
69959       Py_ssize_t kw_args;
69960       switch (PyTuple_GET_SIZE(__pyx_args)) {
69961         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
69962         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
69963         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
69964         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
69965         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
69966         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
69967         case  0: break;
69968         default: goto __pyx_L5_argtuple_error;
69969       }
69970       kw_args = PyDict_Size(__pyx_kwds);
69971       switch (PyTuple_GET_SIZE(__pyx_args)) {
69972         case  0:
69973         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sources);
69974         if (likely(values[0])) kw_args--;
69975         else goto __pyx_L5_argtuple_error;
69976         case  1:
69977         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__degrees);
69978         if (likely(values[1])) kw_args--;
69979         else {
69980           __Pyx_RaiseArgtupleInvalid("Create_dist_graph", 0, 3, 6, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69981         }
69982         case  2:
69983         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__destinations);
69984         if (likely(values[2])) kw_args--;
69985         else {
69986           __Pyx_RaiseArgtupleInvalid("Create_dist_graph", 0, 3, 6, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
69987         }
69988         case  3:
69989         if (kw_args > 0) {
69990           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weights);
69991           if (value) { values[3] = value; kw_args--; }
69992         }
69993         case  4:
69994         if (kw_args > 0) {
69995           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
69996           if (value) { values[4] = value; kw_args--; }
69997         }
69998         case  5:
69999         if (kw_args > 0) {
70000           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reorder);
70001           if (value) { values[5] = value; kw_args--; }
70002         }
70003       }
70004       if (unlikely(kw_args > 0)) {
70005         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_dist_graph") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70006       }
70007     } else {
70008       switch (PyTuple_GET_SIZE(__pyx_args)) {
70009         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
70010         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
70011         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
70012         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70013         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70014         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70015         break;
70016         default: goto __pyx_L5_argtuple_error;
70017       }
70018     }
70019     __pyx_v_sources = values[0];
70020     __pyx_v_degrees = values[1];
70021     __pyx_v_destinations = values[2];
70022     __pyx_v_weights = values[3];
70023     __pyx_v_info = ((struct PyMPIInfoObject *)values[4]);
70024     if (values[5]) {
70025       __pyx_v_reorder = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_reorder == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70026     } else {
70027 
70028       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1004
70029  *
70030  *     def Create_dist_graph(self, sources, degrees, destinations, weights=None,
70031  *                           Info info=INFO_NULL, bint reorder=False):             # <<<<<<<<<<<<<<
70032  *         """
70033  *         Create distributed graph communicator
70034  */
70035       __pyx_v_reorder = ((int)0);
70036     }
70037   }
70038   goto __pyx_L4_argument_unpacking_done;
70039   __pyx_L5_argtuple_error:;
70040   __Pyx_RaiseArgtupleInvalid("Create_dist_graph", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70041   __pyx_L3_error:;
70042   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_dist_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
70043   __Pyx_RefNannyFinishContext();
70044   return NULL;
70045   __pyx_L4_argument_unpacking_done:;
70046   __Pyx_INCREF(__pyx_v_sources);
70047   __Pyx_INCREF(__pyx_v_degrees);
70048   __Pyx_INCREF(__pyx_v_destinations);
70049   __Pyx_INCREF(__pyx_v_weights);
70050   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70051 
70052   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1008
70053  *         Create distributed graph communicator
70054  *         """
70055  *         cdef int nv = 0, ne = 0, i = 0             # <<<<<<<<<<<<<<
70056  *         cdef int *isource = NULL, *idegree = NULL,
70057  *         cdef int *idest = NULL, *iweight = MPI_UNWEIGHTED
70058  */
70059   __pyx_v_nv = 0;
70060   __pyx_v_ne = 0;
70061   __pyx_v_i = 0;
70062 
70063   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1009
70064  *         """
70065  *         cdef int nv = 0, ne = 0, i = 0
70066  *         cdef int *isource = NULL, *idegree = NULL,             # <<<<<<<<<<<<<<
70067  *         cdef int *idest = NULL, *iweight = MPI_UNWEIGHTED
70068  *         sources = getarray_int(sources, &nv, &isource)
70069  */
70070   __pyx_v_isource = NULL;
70071   __pyx_v_idegree = NULL;
70072 
70073   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1010
70074  *         cdef int nv = 0, ne = 0, i = 0
70075  *         cdef int *isource = NULL, *idegree = NULL,
70076  *         cdef int *idest = NULL, *iweight = MPI_UNWEIGHTED             # <<<<<<<<<<<<<<
70077  *         sources = getarray_int(sources, &nv, &isource)
70078  *         degrees = chkarray_int(degrees,  nv, &idegree)
70079  */
70080   __pyx_v_idest = NULL;
70081   __pyx_v_iweight = MPI_UNWEIGHTED;
70082 
70083   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1011
70084  *         cdef int *isource = NULL, *idegree = NULL,
70085  *         cdef int *idest = NULL, *iweight = MPI_UNWEIGHTED
70086  *         sources = getarray_int(sources, &nv, &isource)             # <<<<<<<<<<<<<<
70087  *         degrees = chkarray_int(degrees,  nv, &idegree)
70088  *         for i from 0 <= i < nv: ne += idegree[i]
70089  */
70090   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_sources, (&__pyx_v_nv), (&__pyx_v_isource)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70091   __Pyx_GOTREF(__pyx_t_1);
70092   __Pyx_DECREF(__pyx_v_sources);
70093   __pyx_v_sources = __pyx_t_1;
70094   __pyx_t_1 = 0;
70095 
70096   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1012
70097  *         cdef int *idest = NULL, *iweight = MPI_UNWEIGHTED
70098  *         sources = getarray_int(sources, &nv, &isource)
70099  *         degrees = chkarray_int(degrees,  nv, &idegree)             # <<<<<<<<<<<<<<
70100  *         for i from 0 <= i < nv: ne += idegree[i]
70101  *         destinations = chkarray_int(destinations, ne, &idest)
70102  */
70103   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_degrees, __pyx_v_nv, (&__pyx_v_idegree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70104   __Pyx_GOTREF(__pyx_t_1);
70105   __Pyx_DECREF(__pyx_v_degrees);
70106   __pyx_v_degrees = __pyx_t_1;
70107   __pyx_t_1 = 0;
70108 
70109   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1013
70110  *         sources = getarray_int(sources, &nv, &isource)
70111  *         degrees = chkarray_int(degrees,  nv, &idegree)
70112  *         for i from 0 <= i < nv: ne += idegree[i]             # <<<<<<<<<<<<<<
70113  *         destinations = chkarray_int(destinations, ne, &idest)
70114  *         if weights is not None:
70115  */
70116   __pyx_t_2 = __pyx_v_nv;
70117   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {
70118     __pyx_v_ne = (__pyx_v_ne + (__pyx_v_idegree[__pyx_v_i]));
70119   }
70120 
70121   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1014
70122  *         degrees = chkarray_int(degrees,  nv, &idegree)
70123  *         for i from 0 <= i < nv: ne += idegree[i]
70124  *         destinations = chkarray_int(destinations, ne, &idest)             # <<<<<<<<<<<<<<
70125  *         if weights is not None:
70126  *             weights = chkarray_int(weights, ne, &iweight)
70127  */
70128   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_destinations, __pyx_v_ne, (&__pyx_v_idest)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70129   __Pyx_GOTREF(__pyx_t_1);
70130   __Pyx_DECREF(__pyx_v_destinations);
70131   __pyx_v_destinations = __pyx_t_1;
70132   __pyx_t_1 = 0;
70133 
70134   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1015
70135  *         for i from 0 <= i < nv: ne += idegree[i]
70136  *         destinations = chkarray_int(destinations, ne, &idest)
70137  *         if weights is not None:             # <<<<<<<<<<<<<<
70138  *             weights = chkarray_int(weights, ne, &iweight)
70139  *         cdef MPI_Info cinfo = arg_Info(info)
70140  */
70141   __pyx_t_3 = (__pyx_v_weights != Py_None);
70142   if (__pyx_t_3) {
70143 
70144     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1016
70145  *         destinations = chkarray_int(destinations, ne, &idest)
70146  *         if weights is not None:
70147  *             weights = chkarray_int(weights, ne, &iweight)             # <<<<<<<<<<<<<<
70148  *         cdef MPI_Info cinfo = arg_Info(info)
70149  *         #
70150  */
70151     __pyx_t_1 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_weights, __pyx_v_ne, (&__pyx_v_iweight)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70152     __Pyx_GOTREF(__pyx_t_1);
70153     __Pyx_DECREF(__pyx_v_weights);
70154     __pyx_v_weights = __pyx_t_1;
70155     __pyx_t_1 = 0;
70156     goto __pyx_L8;
70157   }
70158   __pyx_L8:;
70159 
70160   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1017
70161  *         if weights is not None:
70162  *             weights = chkarray_int(weights, ne, &iweight)
70163  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
70164  *         #
70165  *         cdef Distgraphcomm comm = \
70166  */
70167   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
70168 
70169   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1020
70170  *         #
70171  *         cdef Distgraphcomm comm = \
70172  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)             # <<<<<<<<<<<<<<
70173  *         with nogil: CHKERR( MPI_Dist_graph_create(
70174  *                 self.ob_mpi,
70175  */
70176   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Distgraphcomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70177   __Pyx_GOTREF(__pyx_t_1);
70178   __Pyx_INCREF(((PyObject *)((struct PyMPIDistgraphcommObject *)__pyx_t_1)));
70179   __pyx_v_comm = ((struct PyMPIDistgraphcommObject *)__pyx_t_1);
70180   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
70181 
70182   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1021
70183  *         cdef Distgraphcomm comm = \
70184  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)
70185  *         with nogil: CHKERR( MPI_Dist_graph_create(             # <<<<<<<<<<<<<<
70186  *                 self.ob_mpi,
70187  *                 nv, isource, idegree, idest, iweight,
70188  */
70189   {
70190       #ifdef WITH_THREAD
70191       PyThreadState *_save = NULL;
70192       #endif
70193       Py_UNBLOCK_THREADS
70194       /*try:*/ {
70195 
70196         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1024
70197  *                 self.ob_mpi,
70198  *                 nv, isource, idegree, idest, iweight,
70199  *                 cinfo, reorder, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
70200  *         return comm
70201  *
70202  */
70203         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dist_graph_create(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_nv, __pyx_v_isource, __pyx_v_idegree, __pyx_v_idest, __pyx_v_iweight, __pyx_v_cinfo, __pyx_v_reorder, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L10;}
70204       }
70205 
70206       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1021
70207  *         cdef Distgraphcomm comm = \
70208  *             <Distgraphcomm>Distgraphcomm.__new__(Distgraphcomm)
70209  *         with nogil: CHKERR( MPI_Dist_graph_create(             # <<<<<<<<<<<<<<
70210  *                 self.ob_mpi,
70211  *                 nv, isource, idegree, idest, iweight,
70212  */
70213       /*finally:*/ {
70214         int __pyx_why;
70215         __pyx_why = 0; goto __pyx_L11;
70216         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
70217         __pyx_L11:;
70218         Py_BLOCK_THREADS
70219         switch (__pyx_why) {
70220           case 4: goto __pyx_L1_error;
70221         }
70222       }
70223   }
70224 
70225   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1025
70226  *                 nv, isource, idegree, idest, iweight,
70227  *                 cinfo, reorder, &comm.ob_mpi) )
70228  *         return comm             # <<<<<<<<<<<<<<
70229  *
70230  *     def Create_intercomm(self,
70231  */
70232   __Pyx_XDECREF(__pyx_r);
70233   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
70234   __pyx_r = ((PyObject *)__pyx_v_comm);
70235   goto __pyx_L0;
70236 
70237   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
70238   goto __pyx_L0;
70239   __pyx_L1_error:;
70240   __Pyx_XDECREF(__pyx_t_1);
70241   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_dist_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
70242   __pyx_r = NULL;
70243   __pyx_L0:;
70244   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
70245   __Pyx_XDECREF(__pyx_v_sources);
70246   __Pyx_XDECREF(__pyx_v_degrees);
70247   __Pyx_XDECREF(__pyx_v_destinations);
70248   __Pyx_XDECREF(__pyx_v_weights);
70249   __Pyx_XGIVEREF(__pyx_r);
70250   __Pyx_RefNannyFinishContext();
70251   return __pyx_r;
70252 }
70253 
70254 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1027
70255  *         return comm
70256  *
70257  *     def Create_intercomm(self,             # <<<<<<<<<<<<<<
70258  *                          int local_leader,
70259  *                          Intracomm peer_comm not None,
70260  */
70261 
70262 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_8Create_intercomm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
70263 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_8Create_intercomm[] = "Intracomm.Create_intercomm(self, int local_leader, Intracomm peer_comm, int remote_leader, int tag=0)\n\n        Create intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_8Create_intercomm(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)70264 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_8Create_intercomm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
70265   int __pyx_v_local_leader;
70266   struct PyMPIIntracommObject *__pyx_v_peer_comm = 0;
70267   int __pyx_v_remote_leader;
70268   int __pyx_v_tag;
70269   struct PyMPIIntercommObject *__pyx_v_comm = 0;
70270   PyObject *__pyx_r = NULL;
70271   __Pyx_RefNannyDeclarations
70272   PyObject *__pyx_t_1 = NULL;
70273   int __pyx_t_2;
70274   int __pyx_lineno = 0;
70275   const char *__pyx_filename = NULL;
70276   int __pyx_clineno = 0;
70277   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__local_leader,&__pyx_n_s__peer_comm,&__pyx_n_s__remote_leader,&__pyx_n_s__tag,0};
70278   __Pyx_RefNannySetupContext("Create_intercomm");
70279   {
70280     PyObject* values[4] = {0,0,0,0};
70281     if (unlikely(__pyx_kwds)) {
70282       Py_ssize_t kw_args;
70283       switch (PyTuple_GET_SIZE(__pyx_args)) {
70284         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
70285         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70286         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70287         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70288         case  0: break;
70289         default: goto __pyx_L5_argtuple_error;
70290       }
70291       kw_args = PyDict_Size(__pyx_kwds);
70292       switch (PyTuple_GET_SIZE(__pyx_args)) {
70293         case  0:
70294         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__local_leader);
70295         if (likely(values[0])) kw_args--;
70296         else goto __pyx_L5_argtuple_error;
70297         case  1:
70298         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__peer_comm);
70299         if (likely(values[1])) kw_args--;
70300         else {
70301           __Pyx_RaiseArgtupleInvalid("Create_intercomm", 0, 3, 4, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70302         }
70303         case  2:
70304         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remote_leader);
70305         if (likely(values[2])) kw_args--;
70306         else {
70307           __Pyx_RaiseArgtupleInvalid("Create_intercomm", 0, 3, 4, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70308         }
70309         case  3:
70310         if (kw_args > 0) {
70311           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tag);
70312           if (value) { values[3] = value; kw_args--; }
70313         }
70314       }
70315       if (unlikely(kw_args > 0)) {
70316         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_intercomm") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70317       }
70318     } else {
70319       switch (PyTuple_GET_SIZE(__pyx_args)) {
70320         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
70321         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70322         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70323         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70324         break;
70325         default: goto __pyx_L5_argtuple_error;
70326       }
70327     }
70328     __pyx_v_local_leader = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_local_leader == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70329     __pyx_v_peer_comm = ((struct PyMPIIntracommObject *)values[1]);
70330     __pyx_v_remote_leader = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_remote_leader == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70331     if (values[3]) {
70332       __pyx_v_tag = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_tag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70333     } else {
70334       __pyx_v_tag = ((int)0);
70335     }
70336   }
70337   goto __pyx_L4_argument_unpacking_done;
70338   __pyx_L5_argtuple_error:;
70339   __Pyx_RaiseArgtupleInvalid("Create_intercomm", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70340   __pyx_L3_error:;
70341   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_intercomm", __pyx_clineno, __pyx_lineno, __pyx_filename);
70342   __Pyx_RefNannyFinishContext();
70343   return NULL;
70344   __pyx_L4_argument_unpacking_done:;
70345   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_peer_comm), __pyx_ptype_6mpi4py_3MPI_Intracomm, 0, "peer_comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70346 
70347   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1035
70348  *         Create intercommunicator
70349  *         """
70350  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
70351  *         with nogil: CHKERR( MPI_Intercomm_create(
70352  *             self.ob_mpi, local_leader,
70353  */
70354   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70355   __Pyx_GOTREF(__pyx_t_1);
70356   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
70357   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
70358   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
70359 
70360   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1036
70361  *         """
70362  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
70363  *         with nogil: CHKERR( MPI_Intercomm_create(             # <<<<<<<<<<<<<<
70364  *             self.ob_mpi, local_leader,
70365  *             peer_comm.ob_mpi, remote_leader,
70366  */
70367   {
70368       #ifdef WITH_THREAD
70369       PyThreadState *_save = NULL;
70370       #endif
70371       Py_UNBLOCK_THREADS
70372       /*try:*/ {
70373 
70374         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1039
70375  *             self.ob_mpi, local_leader,
70376  *             peer_comm.ob_mpi, remote_leader,
70377  *             tag, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
70378  *         return comm
70379  *
70380  */
70381         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Intercomm_create(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_local_leader, __pyx_v_peer_comm->__pyx_base.ob_mpi, __pyx_v_remote_leader, __pyx_v_tag, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1036; __pyx_clineno = __LINE__; goto __pyx_L7;}
70382       }
70383 
70384       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1036
70385  *         """
70386  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
70387  *         with nogil: CHKERR( MPI_Intercomm_create(             # <<<<<<<<<<<<<<
70388  *             self.ob_mpi, local_leader,
70389  *             peer_comm.ob_mpi, remote_leader,
70390  */
70391       /*finally:*/ {
70392         int __pyx_why;
70393         __pyx_why = 0; goto __pyx_L8;
70394         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
70395         __pyx_L8:;
70396         Py_BLOCK_THREADS
70397         switch (__pyx_why) {
70398           case 4: goto __pyx_L1_error;
70399         }
70400       }
70401   }
70402 
70403   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1040
70404  *             peer_comm.ob_mpi, remote_leader,
70405  *             tag, &comm.ob_mpi) )
70406  *         return comm             # <<<<<<<<<<<<<<
70407  *
70408  *     # Global Reduction Operations
70409  */
70410   __Pyx_XDECREF(__pyx_r);
70411   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
70412   __pyx_r = ((PyObject *)__pyx_v_comm);
70413   goto __pyx_L0;
70414 
70415   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
70416   goto __pyx_L0;
70417   __pyx_L1_error:;
70418   __Pyx_XDECREF(__pyx_t_1);
70419   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Create_intercomm", __pyx_clineno, __pyx_lineno, __pyx_filename);
70420   __pyx_r = NULL;
70421   __pyx_L0:;
70422   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
70423   __Pyx_XGIVEREF(__pyx_r);
70424   __Pyx_RefNannyFinishContext();
70425   return __pyx_r;
70426 }
70427 
70428 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1047
70429  *     # Inclusive Scan
70430  *
70431  *     def Scan(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
70432  *         """
70433  *         Inclusive Scan
70434  */
70435 
70436 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_9Scan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
70437 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_9Scan[] = "Intracomm.Scan(self, sendbuf, recvbuf, Op op=SUM)\n\n        Inclusive Scan\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_9Scan(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)70438 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_9Scan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
70439   PyObject *__pyx_v_sendbuf = 0;
70440   PyObject *__pyx_v_recvbuf = 0;
70441   struct PyMPIOpObject *__pyx_v_op = 0;
70442   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
70443   PyObject *__pyx_r = NULL;
70444   __Pyx_RefNannyDeclarations
70445   PyObject *__pyx_t_1 = NULL;
70446   int __pyx_t_2;
70447   int __pyx_lineno = 0;
70448   const char *__pyx_filename = NULL;
70449   int __pyx_clineno = 0;
70450   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__op,0};
70451   __Pyx_RefNannySetupContext("Scan");
70452   {
70453     PyObject* values[3] = {0,0,0};
70454     values[2] = (PyObject *)__pyx_k_81;
70455     if (unlikely(__pyx_kwds)) {
70456       Py_ssize_t kw_args;
70457       switch (PyTuple_GET_SIZE(__pyx_args)) {
70458         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70459         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70460         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70461         case  0: break;
70462         default: goto __pyx_L5_argtuple_error;
70463       }
70464       kw_args = PyDict_Size(__pyx_kwds);
70465       switch (PyTuple_GET_SIZE(__pyx_args)) {
70466         case  0:
70467         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
70468         if (likely(values[0])) kw_args--;
70469         else goto __pyx_L5_argtuple_error;
70470         case  1:
70471         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
70472         if (likely(values[1])) kw_args--;
70473         else {
70474           __Pyx_RaiseArgtupleInvalid("Scan", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70475         }
70476         case  2:
70477         if (kw_args > 0) {
70478           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
70479           if (value) { values[2] = value; kw_args--; }
70480         }
70481       }
70482       if (unlikely(kw_args > 0)) {
70483         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Scan") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70484       }
70485     } else {
70486       switch (PyTuple_GET_SIZE(__pyx_args)) {
70487         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70488         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70489         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70490         break;
70491         default: goto __pyx_L5_argtuple_error;
70492       }
70493     }
70494     __pyx_v_sendbuf = values[0];
70495     __pyx_v_recvbuf = values[1];
70496     __pyx_v_op = ((struct PyMPIOpObject *)values[2]);
70497   }
70498   goto __pyx_L4_argument_unpacking_done;
70499   __pyx_L5_argtuple_error:;
70500   __Pyx_RaiseArgtupleInvalid("Scan", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70501   __pyx_L3_error:;
70502   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70503   __Pyx_RefNannyFinishContext();
70504   return NULL;
70505   __pyx_L4_argument_unpacking_done:;
70506   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70507 
70508   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1051
70509  *         Inclusive Scan
70510  *         """
70511  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
70512  *         m.for_scan(sendbuf, recvbuf, self.ob_mpi)
70513  *         with nogil: CHKERR( MPI_Scan(
70514  */
70515   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70516   __Pyx_GOTREF(__pyx_t_1);
70517   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
70518   __pyx_t_1 = 0;
70519 
70520   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1052
70521  *         """
70522  *         cdef _p_msg_cco m = message_cco()
70523  *         m.for_scan(sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
70524  *         with nogil: CHKERR( MPI_Scan(
70525  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70526  */
70527   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_scan(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70528 
70529   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1053
70530  *         cdef _p_msg_cco m = message_cco()
70531  *         m.for_scan(sendbuf, recvbuf, self.ob_mpi)
70532  *         with nogil: CHKERR( MPI_Scan(             # <<<<<<<<<<<<<<
70533  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70534  *             op.ob_mpi, self.ob_mpi) )
70535  */
70536   {
70537       #ifdef WITH_THREAD
70538       PyThreadState *_save = NULL;
70539       #endif
70540       Py_UNBLOCK_THREADS
70541       /*try:*/ {
70542 
70543         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1055
70544  *         with nogil: CHKERR( MPI_Scan(
70545  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70546  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
70547  *
70548  *     # Exclusive Scan
70549  */
70550         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Scan(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L7;}
70551       }
70552 
70553       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1053
70554  *         cdef _p_msg_cco m = message_cco()
70555  *         m.for_scan(sendbuf, recvbuf, self.ob_mpi)
70556  *         with nogil: CHKERR( MPI_Scan(             # <<<<<<<<<<<<<<
70557  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70558  *             op.ob_mpi, self.ob_mpi) )
70559  */
70560       /*finally:*/ {
70561         int __pyx_why;
70562         __pyx_why = 0; goto __pyx_L8;
70563         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
70564         __pyx_L8:;
70565         Py_BLOCK_THREADS
70566         switch (__pyx_why) {
70567           case 4: goto __pyx_L1_error;
70568         }
70569       }
70570   }
70571 
70572   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
70573   goto __pyx_L0;
70574   __pyx_L1_error:;
70575   __Pyx_XDECREF(__pyx_t_1);
70576   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70577   __pyx_r = NULL;
70578   __pyx_L0:;
70579   __Pyx_XDECREF((PyObject *)__pyx_v_m);
70580   __Pyx_XGIVEREF(__pyx_r);
70581   __Pyx_RefNannyFinishContext();
70582   return __pyx_r;
70583 }
70584 
70585 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1059
70586  *     # Exclusive Scan
70587  *
70588  *     def Exscan(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
70589  *         """
70590  *         Exclusive Scan
70591  */
70592 
70593 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_10Exscan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
70594 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_10Exscan[] = "Intracomm.Exscan(self, sendbuf, recvbuf, Op op=SUM)\n\n        Exclusive Scan\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_10Exscan(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)70595 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_10Exscan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
70596   PyObject *__pyx_v_sendbuf = 0;
70597   PyObject *__pyx_v_recvbuf = 0;
70598   struct PyMPIOpObject *__pyx_v_op = 0;
70599   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *__pyx_v_m = 0;
70600   PyObject *__pyx_r = NULL;
70601   __Pyx_RefNannyDeclarations
70602   PyObject *__pyx_t_1 = NULL;
70603   int __pyx_t_2;
70604   int __pyx_lineno = 0;
70605   const char *__pyx_filename = NULL;
70606   int __pyx_clineno = 0;
70607   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendbuf,&__pyx_n_s__recvbuf,&__pyx_n_s__op,0};
70608   __Pyx_RefNannySetupContext("Exscan");
70609   {
70610     PyObject* values[3] = {0,0,0};
70611     values[2] = (PyObject *)__pyx_k_82;
70612     if (unlikely(__pyx_kwds)) {
70613       Py_ssize_t kw_args;
70614       switch (PyTuple_GET_SIZE(__pyx_args)) {
70615         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70616         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70617         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70618         case  0: break;
70619         default: goto __pyx_L5_argtuple_error;
70620       }
70621       kw_args = PyDict_Size(__pyx_kwds);
70622       switch (PyTuple_GET_SIZE(__pyx_args)) {
70623         case  0:
70624         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendbuf);
70625         if (likely(values[0])) kw_args--;
70626         else goto __pyx_L5_argtuple_error;
70627         case  1:
70628         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvbuf);
70629         if (likely(values[1])) kw_args--;
70630         else {
70631           __Pyx_RaiseArgtupleInvalid("Exscan", 0, 2, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70632         }
70633         case  2:
70634         if (kw_args > 0) {
70635           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
70636           if (value) { values[2] = value; kw_args--; }
70637         }
70638       }
70639       if (unlikely(kw_args > 0)) {
70640         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Exscan") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70641       }
70642     } else {
70643       switch (PyTuple_GET_SIZE(__pyx_args)) {
70644         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70645         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70646         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70647         break;
70648         default: goto __pyx_L5_argtuple_error;
70649       }
70650     }
70651     __pyx_v_sendbuf = values[0];
70652     __pyx_v_recvbuf = values[1];
70653     __pyx_v_op = ((struct PyMPIOpObject *)values[2]);
70654   }
70655   goto __pyx_L4_argument_unpacking_done;
70656   __pyx_L5_argtuple_error:;
70657   __Pyx_RaiseArgtupleInvalid("Exscan", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70658   __pyx_L3_error:;
70659   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70660   __Pyx_RefNannyFinishContext();
70661   return NULL;
70662   __pyx_L4_argument_unpacking_done:;
70663   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70664 
70665   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1063
70666  *         Exclusive Scan
70667  *         """
70668  *         cdef _p_msg_cco m = message_cco()             # <<<<<<<<<<<<<<
70669  *         m.for_exscan(sendbuf, recvbuf, self.ob_mpi)
70670  *         with nogil: CHKERR( MPI_Exscan(
70671  */
70672   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_cco()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70673   __Pyx_GOTREF(__pyx_t_1);
70674   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)__pyx_t_1);
70675   __pyx_t_1 = 0;
70676 
70677   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1064
70678  *         """
70679  *         cdef _p_msg_cco m = message_cco()
70680  *         m.for_exscan(sendbuf, recvbuf, self.ob_mpi)             # <<<<<<<<<<<<<<
70681  *         with nogil: CHKERR( MPI_Exscan(
70682  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70683  */
70684   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco *)__pyx_v_m->__pyx_vtab)->for_exscan(__pyx_v_m, __pyx_v_sendbuf, __pyx_v_recvbuf, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70685 
70686   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1065
70687  *         cdef _p_msg_cco m = message_cco()
70688  *         m.for_exscan(sendbuf, recvbuf, self.ob_mpi)
70689  *         with nogil: CHKERR( MPI_Exscan(             # <<<<<<<<<<<<<<
70690  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70691  *             op.ob_mpi, self.ob_mpi) )
70692  */
70693   {
70694       #ifdef WITH_THREAD
70695       PyThreadState *_save = NULL;
70696       #endif
70697       Py_UNBLOCK_THREADS
70698       /*try:*/ {
70699 
70700         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1067
70701  *         with nogil: CHKERR( MPI_Exscan(
70702  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70703  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
70704  *
70705  *     # Python Communication
70706  */
70707         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Exscan(__pyx_v_m->sbuf, __pyx_v_m->rbuf, __pyx_v_m->rcount, __pyx_v_m->rtype, __pyx_v_op->ob_mpi, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L7;}
70708       }
70709 
70710       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1065
70711  *         cdef _p_msg_cco m = message_cco()
70712  *         m.for_exscan(sendbuf, recvbuf, self.ob_mpi)
70713  *         with nogil: CHKERR( MPI_Exscan(             # <<<<<<<<<<<<<<
70714  *             m.sbuf, m.rbuf, m.rcount, m.rtype,
70715  *             op.ob_mpi, self.ob_mpi) )
70716  */
70717       /*finally:*/ {
70718         int __pyx_why;
70719         __pyx_why = 0; goto __pyx_L8;
70720         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
70721         __pyx_L8:;
70722         Py_BLOCK_THREADS
70723         switch (__pyx_why) {
70724           case 4: goto __pyx_L1_error;
70725         }
70726       }
70727   }
70728 
70729   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
70730   goto __pyx_L0;
70731   __pyx_L1_error:;
70732   __Pyx_XDECREF(__pyx_t_1);
70733   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70734   __pyx_r = NULL;
70735   __pyx_L0:;
70736   __Pyx_XDECREF((PyObject *)__pyx_v_m);
70737   __Pyx_XGIVEREF(__pyx_r);
70738   __Pyx_RefNannyFinishContext();
70739   return __pyx_r;
70740 }
70741 
70742 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1071
70743  *     # Python Communication
70744  *     #
70745  *     def scan(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
70746  *         """Inclusive Scan"""
70747  *         if op is None: op = SUM
70748  */
70749 
70750 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_11scan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
70751 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_11scan[] = "Intracomm.scan(self, sendobj=None, recvobj=None, op=SUM)\nInclusive Scan";
__pyx_pf_6mpi4py_3MPI_9Intracomm_11scan(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)70752 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_11scan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
70753   PyObject *__pyx_v_sendobj = 0;
70754   PyObject *__pyx_v_recvobj = 0;
70755   PyObject *__pyx_v_op = 0;
70756   MPI_Comm __pyx_v_comm;
70757   PyObject *__pyx_r = NULL;
70758   __Pyx_RefNannyDeclarations
70759   int __pyx_t_1;
70760   PyObject *__pyx_t_2 = NULL;
70761   int __pyx_lineno = 0;
70762   const char *__pyx_filename = NULL;
70763   int __pyx_clineno = 0;
70764   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__op,0};
70765   __Pyx_RefNannySetupContext("scan");
70766   {
70767     PyObject* values[3] = {0,0,0};
70768     values[0] = ((PyObject *)Py_None);
70769     values[1] = ((PyObject *)Py_None);
70770     values[2] = __pyx_k_83;
70771     if (unlikely(__pyx_kwds)) {
70772       Py_ssize_t kw_args;
70773       switch (PyTuple_GET_SIZE(__pyx_args)) {
70774         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70775         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70776         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70777         case  0: break;
70778         default: goto __pyx_L5_argtuple_error;
70779       }
70780       kw_args = PyDict_Size(__pyx_kwds);
70781       switch (PyTuple_GET_SIZE(__pyx_args)) {
70782         case  0:
70783         if (kw_args > 0) {
70784           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
70785           if (value) { values[0] = value; kw_args--; }
70786         }
70787         case  1:
70788         if (kw_args > 0) {
70789           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
70790           if (value) { values[1] = value; kw_args--; }
70791         }
70792         case  2:
70793         if (kw_args > 0) {
70794           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
70795           if (value) { values[2] = value; kw_args--; }
70796         }
70797       }
70798       if (unlikely(kw_args > 0)) {
70799         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "scan") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70800       }
70801     } else {
70802       switch (PyTuple_GET_SIZE(__pyx_args)) {
70803         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70804         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70805         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70806         case  0: break;
70807         default: goto __pyx_L5_argtuple_error;
70808       }
70809     }
70810     __pyx_v_sendobj = values[0];
70811     __pyx_v_recvobj = values[1];
70812     __pyx_v_op = values[2];
70813   }
70814   goto __pyx_L4_argument_unpacking_done;
70815   __pyx_L5_argtuple_error:;
70816   __Pyx_RaiseArgtupleInvalid("scan", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70817   __pyx_L3_error:;
70818   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70819   __Pyx_RefNannyFinishContext();
70820   return NULL;
70821   __pyx_L4_argument_unpacking_done:;
70822   __Pyx_INCREF(__pyx_v_op);
70823 
70824   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1073
70825  *     def scan(self, sendobj=None, recvobj=None, op=SUM):
70826  *         """Inclusive Scan"""
70827  *         if op is None: op = SUM             # <<<<<<<<<<<<<<
70828  *         cdef MPI_Comm comm = self.ob_mpi
70829  *         return PyMPI_scan(sendobj, recvobj, op, comm)
70830  */
70831   __pyx_t_1 = (__pyx_v_op == Py_None);
70832   if (__pyx_t_1) {
70833     __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70834     __Pyx_GOTREF(__pyx_t_2);
70835     __Pyx_DECREF(__pyx_v_op);
70836     __pyx_v_op = __pyx_t_2;
70837     __pyx_t_2 = 0;
70838     goto __pyx_L6;
70839   }
70840   __pyx_L6:;
70841 
70842   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1074
70843  *         """Inclusive Scan"""
70844  *         if op is None: op = SUM
70845  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
70846  *         return PyMPI_scan(sendobj, recvobj, op, comm)
70847  *     #
70848  */
70849   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi;
70850 
70851   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1075
70852  *         if op is None: op = SUM
70853  *         cdef MPI_Comm comm = self.ob_mpi
70854  *         return PyMPI_scan(sendobj, recvobj, op, comm)             # <<<<<<<<<<<<<<
70855  *     #
70856  *     def exscan(self, sendobj=None, recvobj=None, op=SUM):
70857  */
70858   __Pyx_XDECREF(__pyx_r);
70859   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_scan(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_op, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70860   __Pyx_GOTREF(__pyx_t_2);
70861   __pyx_r = __pyx_t_2;
70862   __pyx_t_2 = 0;
70863   goto __pyx_L0;
70864 
70865   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
70866   goto __pyx_L0;
70867   __pyx_L1_error:;
70868   __Pyx_XDECREF(__pyx_t_2);
70869   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.scan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70870   __pyx_r = NULL;
70871   __pyx_L0:;
70872   __Pyx_XDECREF(__pyx_v_op);
70873   __Pyx_XGIVEREF(__pyx_r);
70874   __Pyx_RefNannyFinishContext();
70875   return __pyx_r;
70876 }
70877 
70878 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1077
70879  *         return PyMPI_scan(sendobj, recvobj, op, comm)
70880  *     #
70881  *     def exscan(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
70882  *         """Exclusive Scan"""
70883  *         if op is None: op = SUM
70884  */
70885 
70886 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_12exscan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
70887 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_12exscan[] = "Intracomm.exscan(self, sendobj=None, recvobj=None, op=SUM)\nExclusive Scan";
__pyx_pf_6mpi4py_3MPI_9Intracomm_12exscan(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)70888 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_12exscan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
70889   PyObject *__pyx_v_sendobj = 0;
70890   PyObject *__pyx_v_recvobj = 0;
70891   PyObject *__pyx_v_op = 0;
70892   MPI_Comm __pyx_v_comm;
70893   PyObject *__pyx_r = NULL;
70894   __Pyx_RefNannyDeclarations
70895   int __pyx_t_1;
70896   PyObject *__pyx_t_2 = NULL;
70897   int __pyx_lineno = 0;
70898   const char *__pyx_filename = NULL;
70899   int __pyx_clineno = 0;
70900   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sendobj,&__pyx_n_s__recvobj,&__pyx_n_s__op,0};
70901   __Pyx_RefNannySetupContext("exscan");
70902   {
70903     PyObject* values[3] = {0,0,0};
70904     values[0] = ((PyObject *)Py_None);
70905     values[1] = ((PyObject *)Py_None);
70906     values[2] = __pyx_k_84;
70907     if (unlikely(__pyx_kwds)) {
70908       Py_ssize_t kw_args;
70909       switch (PyTuple_GET_SIZE(__pyx_args)) {
70910         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70911         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70912         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70913         case  0: break;
70914         default: goto __pyx_L5_argtuple_error;
70915       }
70916       kw_args = PyDict_Size(__pyx_kwds);
70917       switch (PyTuple_GET_SIZE(__pyx_args)) {
70918         case  0:
70919         if (kw_args > 0) {
70920           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sendobj);
70921           if (value) { values[0] = value; kw_args--; }
70922         }
70923         case  1:
70924         if (kw_args > 0) {
70925           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__recvobj);
70926           if (value) { values[1] = value; kw_args--; }
70927         }
70928         case  2:
70929         if (kw_args > 0) {
70930           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
70931           if (value) { values[2] = value; kw_args--; }
70932         }
70933       }
70934       if (unlikely(kw_args > 0)) {
70935         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "exscan") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70936       }
70937     } else {
70938       switch (PyTuple_GET_SIZE(__pyx_args)) {
70939         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
70940         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
70941         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
70942         case  0: break;
70943         default: goto __pyx_L5_argtuple_error;
70944       }
70945     }
70946     __pyx_v_sendobj = values[0];
70947     __pyx_v_recvobj = values[1];
70948     __pyx_v_op = values[2];
70949   }
70950   goto __pyx_L4_argument_unpacking_done;
70951   __pyx_L5_argtuple_error:;
70952   __Pyx_RaiseArgtupleInvalid("exscan", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
70953   __pyx_L3_error:;
70954   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
70955   __Pyx_RefNannyFinishContext();
70956   return NULL;
70957   __pyx_L4_argument_unpacking_done:;
70958   __Pyx_INCREF(__pyx_v_op);
70959 
70960   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1079
70961  *     def exscan(self, sendobj=None, recvobj=None, op=SUM):
70962  *         """Exclusive Scan"""
70963  *         if op is None: op = SUM             # <<<<<<<<<<<<<<
70964  *         cdef MPI_Comm comm = self.ob_mpi
70965  *         return PyMPI_exscan(sendobj, recvobj, op, comm)
70966  */
70967   __pyx_t_1 = (__pyx_v_op == Py_None);
70968   if (__pyx_t_1) {
70969     __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70970     __Pyx_GOTREF(__pyx_t_2);
70971     __Pyx_DECREF(__pyx_v_op);
70972     __pyx_v_op = __pyx_t_2;
70973     __pyx_t_2 = 0;
70974     goto __pyx_L6;
70975   }
70976   __pyx_L6:;
70977 
70978   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1080
70979  *         """Exclusive Scan"""
70980  *         if op is None: op = SUM
70981  *         cdef MPI_Comm comm = self.ob_mpi             # <<<<<<<<<<<<<<
70982  *         return PyMPI_exscan(sendobj, recvobj, op, comm)
70983  *
70984  */
70985   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi;
70986 
70987   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1081
70988  *         if op is None: op = SUM
70989  *         cdef MPI_Comm comm = self.ob_mpi
70990  *         return PyMPI_exscan(sendobj, recvobj, op, comm)             # <<<<<<<<<<<<<<
70991  *
70992  *
70993  */
70994   __Pyx_XDECREF(__pyx_r);
70995   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_PyMPI_exscan(__pyx_v_sendobj, __pyx_v_recvobj, __pyx_v_op, __pyx_v_comm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
70996   __Pyx_GOTREF(__pyx_t_2);
70997   __pyx_r = __pyx_t_2;
70998   __pyx_t_2 = 0;
70999   goto __pyx_L0;
71000 
71001   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
71002   goto __pyx_L0;
71003   __pyx_L1_error:;
71004   __Pyx_XDECREF(__pyx_t_2);
71005   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.exscan", __pyx_clineno, __pyx_lineno, __pyx_filename);
71006   __pyx_r = NULL;
71007   __pyx_L0:;
71008   __Pyx_XDECREF(__pyx_v_op);
71009   __Pyx_XGIVEREF(__pyx_r);
71010   __Pyx_RefNannyFinishContext();
71011   return __pyx_r;
71012 }
71013 
71014 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1089
71015  *     # Starting Processes
71016  *
71017  *     def Spawn(self, command, args=None, int maxprocs=1,             # <<<<<<<<<<<<<<
71018  *               Info info=INFO_NULL, int root=0, errcodes=None):
71019  *         """
71020  */
71021 
71022 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_13Spawn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
71023 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_13Spawn[] = "Intracomm.Spawn(self, command, args=None, int maxprocs=1, Info info=INFO_NULL, int root=0, errcodes=None)\n\n        Spawn instances of a single MPI application\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_13Spawn(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)71024 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_13Spawn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
71025   PyObject *__pyx_v_command = 0;
71026   PyObject *__pyx_v_args = 0;
71027   int __pyx_v_maxprocs;
71028   struct PyMPIInfoObject *__pyx_v_info = 0;
71029   int __pyx_v_root;
71030   PyObject *__pyx_v_errcodes = 0;
71031   char *__pyx_v_cmd;
71032   char **__pyx_v_argv;
71033   MPI_Info __pyx_v_cinfo;
71034   int *__pyx_v_ierrcodes;
71035   int __pyx_v_rank;
71036   PyObject *__pyx_v_tmp1 = 0;
71037   PyObject *__pyx_v_tmp2 = 0;
71038   struct PyMPIIntercommObject *__pyx_v_comm = 0;
71039   int __pyx_v_i;
71040   PyObject *__pyx_r = NULL;
71041   __Pyx_RefNannyDeclarations
71042   int __pyx_t_1;
71043   int __pyx_t_2;
71044   PyObject *__pyx_t_3 = NULL;
71045   PyObject *__pyx_t_4 = NULL;
71046   int __pyx_lineno = 0;
71047   const char *__pyx_filename = NULL;
71048   int __pyx_clineno = 0;
71049   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__command,&__pyx_n_s__args,&__pyx_n_s__maxprocs,&__pyx_n_s__info,&__pyx_n_s__root,&__pyx_n_s__errcodes,0};
71050   __Pyx_RefNannySetupContext("Spawn");
71051   {
71052     PyObject* values[6] = {0,0,0,0,0,0};
71053     values[1] = ((PyObject *)Py_None);
71054     values[3] = (PyObject *)__pyx_k_85;
71055 
71056     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1090
71057  *
71058  *     def Spawn(self, command, args=None, int maxprocs=1,
71059  *               Info info=INFO_NULL, int root=0, errcodes=None):             # <<<<<<<<<<<<<<
71060  *         """
71061  *         Spawn instances of a single MPI application
71062  */
71063     values[5] = ((PyObject *)Py_None);
71064     if (unlikely(__pyx_kwds)) {
71065       Py_ssize_t kw_args;
71066       switch (PyTuple_GET_SIZE(__pyx_args)) {
71067         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
71068         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
71069         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
71070         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
71071         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
71072         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
71073         case  0: break;
71074         default: goto __pyx_L5_argtuple_error;
71075       }
71076       kw_args = PyDict_Size(__pyx_kwds);
71077       switch (PyTuple_GET_SIZE(__pyx_args)) {
71078         case  0:
71079         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__command);
71080         if (likely(values[0])) kw_args--;
71081         else goto __pyx_L5_argtuple_error;
71082         case  1:
71083         if (kw_args > 0) {
71084           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__args);
71085           if (value) { values[1] = value; kw_args--; }
71086         }
71087         case  2:
71088         if (kw_args > 0) {
71089           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__maxprocs);
71090           if (value) { values[2] = value; kw_args--; }
71091         }
71092         case  3:
71093         if (kw_args > 0) {
71094           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
71095           if (value) { values[3] = value; kw_args--; }
71096         }
71097         case  4:
71098         if (kw_args > 0) {
71099           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
71100           if (value) { values[4] = value; kw_args--; }
71101         }
71102         case  5:
71103         if (kw_args > 0) {
71104           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errcodes);
71105           if (value) { values[5] = value; kw_args--; }
71106         }
71107       }
71108       if (unlikely(kw_args > 0)) {
71109         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Spawn") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71110       }
71111     } else {
71112       switch (PyTuple_GET_SIZE(__pyx_args)) {
71113         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
71114         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
71115         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
71116         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
71117         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
71118         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
71119         break;
71120         default: goto __pyx_L5_argtuple_error;
71121       }
71122     }
71123     __pyx_v_command = values[0];
71124     __pyx_v_args = values[1];
71125     if (values[2]) {
71126       __pyx_v_maxprocs = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_maxprocs == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71127     } else {
71128       __pyx_v_maxprocs = ((int)1);
71129     }
71130     __pyx_v_info = ((struct PyMPIInfoObject *)values[3]);
71131     if (values[4]) {
71132       __pyx_v_root = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71133     } else {
71134       __pyx_v_root = ((int)0);
71135     }
71136     __pyx_v_errcodes = values[5];
71137   }
71138   goto __pyx_L4_argument_unpacking_done;
71139   __pyx_L5_argtuple_error:;
71140   __Pyx_RaiseArgtupleInvalid("Spawn", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71141   __pyx_L3_error:;
71142   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Spawn", __pyx_clineno, __pyx_lineno, __pyx_filename);
71143   __Pyx_RefNannyFinishContext();
71144   return NULL;
71145   __pyx_L4_argument_unpacking_done:;
71146   __Pyx_INCREF(__pyx_v_command);
71147   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71148 
71149   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1094
71150  *         Spawn instances of a single MPI application
71151  *         """
71152  *         cdef char *cmd = NULL             # <<<<<<<<<<<<<<
71153  *         cdef char **argv = MPI_ARGV_NULL
71154  *         cdef MPI_Info cinfo = arg_Info(info)
71155  */
71156   __pyx_v_cmd = NULL;
71157 
71158   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1095
71159  *         """
71160  *         cdef char *cmd = NULL
71161  *         cdef char **argv = MPI_ARGV_NULL             # <<<<<<<<<<<<<<
71162  *         cdef MPI_Info cinfo = arg_Info(info)
71163  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71164  */
71165   __pyx_v_argv = MPI_ARGV_NULL;
71166 
71167   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1096
71168  *         cdef char *cmd = NULL
71169  *         cdef char **argv = MPI_ARGV_NULL
71170  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
71171  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71172  *         #
71173  */
71174   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
71175 
71176   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1097
71177  *         cdef char **argv = MPI_ARGV_NULL
71178  *         cdef MPI_Info cinfo = arg_Info(info)
71179  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE             # <<<<<<<<<<<<<<
71180  *         #
71181  *         cdef int rank = MPI_UNDEFINED
71182  */
71183   __pyx_v_ierrcodes = MPI_ERRCODES_IGNORE;
71184 
71185   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1099
71186  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71187  *         #
71188  *         cdef int rank = MPI_UNDEFINED             # <<<<<<<<<<<<<<
71189  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
71190  *         cdef tmp1, tmp2
71191  */
71192   __pyx_v_rank = MPI_UNDEFINED;
71193 
71194   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1100
71195  *         #
71196  *         cdef int rank = MPI_UNDEFINED
71197  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
71198  *         cdef tmp1, tmp2
71199  *         if root == rank:
71200  */
71201   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71202 
71203   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1102
71204  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
71205  *         cdef tmp1, tmp2
71206  *         if root == rank:             # <<<<<<<<<<<<<<
71207  *             command = asmpistr(command, &cmd, NULL)
71208  *             if args is not None:
71209  */
71210   __pyx_t_2 = (__pyx_v_root == __pyx_v_rank);
71211   if (__pyx_t_2) {
71212 
71213     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1103
71214  *         cdef tmp1, tmp2
71215  *         if root == rank:
71216  *             command = asmpistr(command, &cmd, NULL)             # <<<<<<<<<<<<<<
71217  *             if args is not None:
71218  *                 tmp1 = asarray_argv(args, &argv)
71219  */
71220     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_command, (&__pyx_v_cmd), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71221     __Pyx_GOTREF(__pyx_t_3);
71222     __Pyx_DECREF(__pyx_v_command);
71223     __pyx_v_command = __pyx_t_3;
71224     __pyx_t_3 = 0;
71225 
71226     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1104
71227  *         if root == rank:
71228  *             command = asmpistr(command, &cmd, NULL)
71229  *             if args is not None:             # <<<<<<<<<<<<<<
71230  *                 tmp1 = asarray_argv(args, &argv)
71231  *         if errcodes is not None:
71232  */
71233     __pyx_t_2 = (__pyx_v_args != Py_None);
71234     if (__pyx_t_2) {
71235 
71236       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1105
71237  *             command = asmpistr(command, &cmd, NULL)
71238  *             if args is not None:
71239  *                 tmp1 = asarray_argv(args, &argv)             # <<<<<<<<<<<<<<
71240  *         if errcodes is not None:
71241  *             tmp2 = newarray_int(maxprocs, &ierrcodes)
71242  */
71243       __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asarray_argv(__pyx_v_args, (&__pyx_v_argv)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71244       __Pyx_GOTREF(__pyx_t_3);
71245       __pyx_v_tmp1 = __pyx_t_3;
71246       __pyx_t_3 = 0;
71247       goto __pyx_L7;
71248     }
71249     __pyx_L7:;
71250     goto __pyx_L6;
71251   }
71252   __pyx_L6:;
71253 
71254   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1106
71255  *             if args is not None:
71256  *                 tmp1 = asarray_argv(args, &argv)
71257  *         if errcodes is not None:             # <<<<<<<<<<<<<<
71258  *             tmp2 = newarray_int(maxprocs, &ierrcodes)
71259  *         #
71260  */
71261   __pyx_t_2 = (__pyx_v_errcodes != Py_None);
71262   if (__pyx_t_2) {
71263 
71264     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1107
71265  *                 tmp1 = asarray_argv(args, &argv)
71266  *         if errcodes is not None:
71267  *             tmp2 = newarray_int(maxprocs, &ierrcodes)             # <<<<<<<<<<<<<<
71268  *         #
71269  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71270  */
71271     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_maxprocs, (&__pyx_v_ierrcodes)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71272     __Pyx_GOTREF(__pyx_t_3);
71273     __pyx_v_tmp2 = __pyx_t_3;
71274     __pyx_t_3 = 0;
71275     goto __pyx_L8;
71276   }
71277   __pyx_L8:;
71278 
71279   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1109
71280  *             tmp2 = newarray_int(maxprocs, &ierrcodes)
71281  *         #
71282  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
71283  *         with nogil: CHKERR( MPI_Comm_spawn(
71284  *             cmd, argv, maxprocs, cinfo, root,
71285  */
71286   __pyx_t_3 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71287   __Pyx_GOTREF(__pyx_t_3);
71288   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_3)));
71289   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_3);
71290   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
71291 
71292   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1110
71293  *         #
71294  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71295  *         with nogil: CHKERR( MPI_Comm_spawn(             # <<<<<<<<<<<<<<
71296  *             cmd, argv, maxprocs, cinfo, root,
71297  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71298  */
71299   {
71300       #ifdef WITH_THREAD
71301       PyThreadState *_save = NULL;
71302       #endif
71303       Py_UNBLOCK_THREADS
71304       /*try:*/ {
71305 
71306         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1112
71307  *         with nogil: CHKERR( MPI_Comm_spawn(
71308  *             cmd, argv, maxprocs, cinfo, root,
71309  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )             # <<<<<<<<<<<<<<
71310  *         #
71311  *         cdef int i=0
71312  */
71313         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_spawn(__pyx_v_cmd, __pyx_v_argv, __pyx_v_maxprocs, __pyx_v_cinfo, __pyx_v_root, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi), __pyx_v_ierrcodes)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L10;}
71314       }
71315 
71316       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1110
71317  *         #
71318  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71319  *         with nogil: CHKERR( MPI_Comm_spawn(             # <<<<<<<<<<<<<<
71320  *             cmd, argv, maxprocs, cinfo, root,
71321  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71322  */
71323       /*finally:*/ {
71324         int __pyx_why;
71325         __pyx_why = 0; goto __pyx_L11;
71326         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
71327         __pyx_L11:;
71328         Py_BLOCK_THREADS
71329         switch (__pyx_why) {
71330           case 4: goto __pyx_L1_error;
71331         }
71332       }
71333   }
71334 
71335   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1114
71336  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71337  *         #
71338  *         cdef int i=0             # <<<<<<<<<<<<<<
71339  *         if errcodes is not None:
71340  *             errcodes[:] = [ierrcodes[i] for i from 0<=i<maxprocs]
71341  */
71342   __pyx_v_i = 0;
71343 
71344   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1115
71345  *         #
71346  *         cdef int i=0
71347  *         if errcodes is not None:             # <<<<<<<<<<<<<<
71348  *             errcodes[:] = [ierrcodes[i] for i from 0<=i<maxprocs]
71349  *         #
71350  */
71351   __pyx_t_2 = (__pyx_v_errcodes != Py_None);
71352   if (__pyx_t_2) {
71353 
71354     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1116
71355  *         cdef int i=0
71356  *         if errcodes is not None:
71357  *             errcodes[:] = [ierrcodes[i] for i from 0<=i<maxprocs]             # <<<<<<<<<<<<<<
71358  *         #
71359  *         return comm
71360  */
71361     __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71362     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
71363     __pyx_t_1 = __pyx_v_maxprocs;
71364     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
71365       __pyx_t_4 = PyInt_FromLong((__pyx_v_ierrcodes[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71366       __Pyx_GOTREF(__pyx_t_4);
71367       if (unlikely(PyList_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71368       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
71369     }
71370     if (__Pyx_PySequence_SetSlice(__pyx_v_errcodes, 0, PY_SSIZE_T_MAX, ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71371     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
71372     goto __pyx_L13;
71373   }
71374   __pyx_L13:;
71375 
71376   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1118
71377  *             errcodes[:] = [ierrcodes[i] for i from 0<=i<maxprocs]
71378  *         #
71379  *         return comm             # <<<<<<<<<<<<<<
71380  *
71381  *     def Spawn_multiple(self, command, args=None, maxprocs=None,
71382  */
71383   __Pyx_XDECREF(__pyx_r);
71384   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
71385   __pyx_r = ((PyObject *)__pyx_v_comm);
71386   goto __pyx_L0;
71387 
71388   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
71389   goto __pyx_L0;
71390   __pyx_L1_error:;
71391   __Pyx_XDECREF(__pyx_t_3);
71392   __Pyx_XDECREF(__pyx_t_4);
71393   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Spawn", __pyx_clineno, __pyx_lineno, __pyx_filename);
71394   __pyx_r = NULL;
71395   __pyx_L0:;
71396   __Pyx_XDECREF(__pyx_v_tmp1);
71397   __Pyx_XDECREF(__pyx_v_tmp2);
71398   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
71399   __Pyx_XDECREF(__pyx_v_command);
71400   __Pyx_XGIVEREF(__pyx_r);
71401   __Pyx_RefNannyFinishContext();
71402   return __pyx_r;
71403 }
71404 
71405 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1120
71406  *         return comm
71407  *
71408  *     def Spawn_multiple(self, command, args=None, maxprocs=None,             # <<<<<<<<<<<<<<
71409  *                        info=INFO_NULL, int root=0, errcodes=None):
71410  *         """
71411  */
71412 
71413 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_14Spawn_multiple(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
71414 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_14Spawn_multiple[] = "Intracomm.Spawn_multiple(self, command, args=None, maxprocs=None, info=INFO_NULL, int root=0, errcodes=None)\n\n        Spawn instances of multiple MPI applications\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_14Spawn_multiple(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)71415 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_14Spawn_multiple(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
71416   PyObject *__pyx_v_command = 0;
71417   PyObject *__pyx_v_args = 0;
71418   PyObject *__pyx_v_maxprocs = 0;
71419   PyObject *__pyx_v_info = 0;
71420   int __pyx_v_root;
71421   PyObject *__pyx_v_errcodes = 0;
71422   int __pyx_v_count;
71423   char **__pyx_v_cmds;
71424   char ***__pyx_v_argvs;
71425   MPI_Info *__pyx_v_infos;
71426   int *__pyx_v_imaxprocs;
71427   int *__pyx_v_ierrcodes;
71428   int __pyx_v_rank;
71429   PyObject *__pyx_v_tmp1 = 0;
71430   PyObject *__pyx_v_tmp2 = 0;
71431   PyObject *__pyx_v_tmp3 = 0;
71432   PyObject *__pyx_v_tmp4 = 0;
71433   PyObject *__pyx_v_tmp5 = 0;
71434   Py_ssize_t __pyx_v_i;
71435   Py_ssize_t __pyx_v_n;
71436   struct PyMPIIntercommObject *__pyx_v_comm = 0;
71437   Py_ssize_t __pyx_v_j;
71438   Py_ssize_t __pyx_v_p;
71439   PyObject *__pyx_r = NULL;
71440   __Pyx_RefNannyDeclarations
71441   int __pyx_t_1;
71442   int __pyx_t_2;
71443   Py_ssize_t __pyx_t_3;
71444   PyObject *__pyx_t_4 = NULL;
71445   PyObject *__pyx_t_5 = NULL;
71446   PyObject *__pyx_t_6 = NULL;
71447   int __pyx_lineno = 0;
71448   const char *__pyx_filename = NULL;
71449   int __pyx_clineno = 0;
71450   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__command,&__pyx_n_s__args,&__pyx_n_s__maxprocs,&__pyx_n_s__info,&__pyx_n_s__root,&__pyx_n_s__errcodes,0};
71451   __Pyx_RefNannySetupContext("Spawn_multiple");
71452   {
71453     PyObject* values[6] = {0,0,0,0,0,0};
71454     values[1] = ((PyObject *)Py_None);
71455     values[2] = ((PyObject *)Py_None);
71456     values[3] = __pyx_k_86;
71457 
71458     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1121
71459  *
71460  *     def Spawn_multiple(self, command, args=None, maxprocs=None,
71461  *                        info=INFO_NULL, int root=0, errcodes=None):             # <<<<<<<<<<<<<<
71462  *         """
71463  *         Spawn instances of multiple MPI applications
71464  */
71465     values[5] = ((PyObject *)Py_None);
71466     if (unlikely(__pyx_kwds)) {
71467       Py_ssize_t kw_args;
71468       switch (PyTuple_GET_SIZE(__pyx_args)) {
71469         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
71470         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
71471         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
71472         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
71473         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
71474         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
71475         case  0: break;
71476         default: goto __pyx_L5_argtuple_error;
71477       }
71478       kw_args = PyDict_Size(__pyx_kwds);
71479       switch (PyTuple_GET_SIZE(__pyx_args)) {
71480         case  0:
71481         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__command);
71482         if (likely(values[0])) kw_args--;
71483         else goto __pyx_L5_argtuple_error;
71484         case  1:
71485         if (kw_args > 0) {
71486           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__args);
71487           if (value) { values[1] = value; kw_args--; }
71488         }
71489         case  2:
71490         if (kw_args > 0) {
71491           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__maxprocs);
71492           if (value) { values[2] = value; kw_args--; }
71493         }
71494         case  3:
71495         if (kw_args > 0) {
71496           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
71497           if (value) { values[3] = value; kw_args--; }
71498         }
71499         case  4:
71500         if (kw_args > 0) {
71501           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
71502           if (value) { values[4] = value; kw_args--; }
71503         }
71504         case  5:
71505         if (kw_args > 0) {
71506           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errcodes);
71507           if (value) { values[5] = value; kw_args--; }
71508         }
71509       }
71510       if (unlikely(kw_args > 0)) {
71511         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Spawn_multiple") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71512       }
71513     } else {
71514       switch (PyTuple_GET_SIZE(__pyx_args)) {
71515         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
71516         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
71517         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
71518         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
71519         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
71520         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
71521         break;
71522         default: goto __pyx_L5_argtuple_error;
71523       }
71524     }
71525     __pyx_v_command = values[0];
71526     __pyx_v_args = values[1];
71527     __pyx_v_maxprocs = values[2];
71528     __pyx_v_info = values[3];
71529     if (values[4]) {
71530       __pyx_v_root = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71531     } else {
71532       __pyx_v_root = ((int)0);
71533     }
71534     __pyx_v_errcodes = values[5];
71535   }
71536   goto __pyx_L4_argument_unpacking_done;
71537   __pyx_L5_argtuple_error:;
71538   __Pyx_RaiseArgtupleInvalid("Spawn_multiple", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
71539   __pyx_L3_error:;
71540   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Spawn_multiple", __pyx_clineno, __pyx_lineno, __pyx_filename);
71541   __Pyx_RefNannyFinishContext();
71542   return NULL;
71543   __pyx_L4_argument_unpacking_done:;
71544 
71545   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1125
71546  *         Spawn instances of multiple MPI applications
71547  *         """
71548  *         cdef int count = 0             # <<<<<<<<<<<<<<
71549  *         cdef char **cmds = NULL
71550  *         cdef char ***argvs = MPI_ARGVS_NULL
71551  */
71552   __pyx_v_count = 0;
71553 
71554   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1126
71555  *         """
71556  *         cdef int count = 0
71557  *         cdef char **cmds = NULL             # <<<<<<<<<<<<<<
71558  *         cdef char ***argvs = MPI_ARGVS_NULL
71559  *         cdef MPI_Info *infos = NULL
71560  */
71561   __pyx_v_cmds = NULL;
71562 
71563   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1127
71564  *         cdef int count = 0
71565  *         cdef char **cmds = NULL
71566  *         cdef char ***argvs = MPI_ARGVS_NULL             # <<<<<<<<<<<<<<
71567  *         cdef MPI_Info *infos = NULL
71568  *         cdef int *imaxprocs = NULL
71569  */
71570   __pyx_v_argvs = MPI_ARGVS_NULL;
71571 
71572   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1128
71573  *         cdef char **cmds = NULL
71574  *         cdef char ***argvs = MPI_ARGVS_NULL
71575  *         cdef MPI_Info *infos = NULL             # <<<<<<<<<<<<<<
71576  *         cdef int *imaxprocs = NULL
71577  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71578  */
71579   __pyx_v_infos = NULL;
71580 
71581   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1129
71582  *         cdef char ***argvs = MPI_ARGVS_NULL
71583  *         cdef MPI_Info *infos = NULL
71584  *         cdef int *imaxprocs = NULL             # <<<<<<<<<<<<<<
71585  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71586  *         #
71587  */
71588   __pyx_v_imaxprocs = NULL;
71589 
71590   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1130
71591  *         cdef MPI_Info *infos = NULL
71592  *         cdef int *imaxprocs = NULL
71593  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE             # <<<<<<<<<<<<<<
71594  *         #
71595  *         cdef int rank = MPI_UNDEFINED
71596  */
71597   __pyx_v_ierrcodes = MPI_ERRCODES_IGNORE;
71598 
71599   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1132
71600  *         cdef int *ierrcodes = MPI_ERRCODES_IGNORE
71601  *         #
71602  *         cdef int rank = MPI_UNDEFINED             # <<<<<<<<<<<<<<
71603  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
71604  *         cdef object tmp1, tmp2, tmp3, tmp4, tmp5
71605  */
71606   __pyx_v_rank = MPI_UNDEFINED;
71607 
71608   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1133
71609  *         #
71610  *         cdef int rank = MPI_UNDEFINED
71611  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
71612  *         cdef object tmp1, tmp2, tmp3, tmp4, tmp5
71613  *         cdef Py_ssize_t i=0, n=0
71614  */
71615   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71616 
71617   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1135
71618  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
71619  *         cdef object tmp1, tmp2, tmp3, tmp4, tmp5
71620  *         cdef Py_ssize_t i=0, n=0             # <<<<<<<<<<<<<<
71621  *         if root == rank:
71622  *             count = <int>len(command)
71623  */
71624   __pyx_v_i = 0;
71625   __pyx_v_n = 0;
71626 
71627   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1136
71628  *         cdef object tmp1, tmp2, tmp3, tmp4, tmp5
71629  *         cdef Py_ssize_t i=0, n=0
71630  *         if root == rank:             # <<<<<<<<<<<<<<
71631  *             count = <int>len(command)
71632  *             tmp1 = asarray_str(command, count, &cmds)
71633  */
71634   __pyx_t_2 = (__pyx_v_root == __pyx_v_rank);
71635   if (__pyx_t_2) {
71636 
71637     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1137
71638  *         cdef Py_ssize_t i=0, n=0
71639  *         if root == rank:
71640  *             count = <int>len(command)             # <<<<<<<<<<<<<<
71641  *             tmp1 = asarray_str(command, count, &cmds)
71642  *             tmp2 = asarray_argvs(args, count, &argvs)
71643  */
71644     __pyx_t_3 = PyObject_Length(__pyx_v_command); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71645     __pyx_v_count = ((int)__pyx_t_3);
71646 
71647     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1138
71648  *         if root == rank:
71649  *             count = <int>len(command)
71650  *             tmp1 = asarray_str(command, count, &cmds)             # <<<<<<<<<<<<<<
71651  *             tmp2 = asarray_argvs(args, count, &argvs)
71652  *             tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71653  */
71654     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_str(__pyx_v_command, __pyx_v_count, (&__pyx_v_cmds)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71655     __Pyx_GOTREF(__pyx_t_4);
71656     __pyx_v_tmp1 = __pyx_t_4;
71657     __pyx_t_4 = 0;
71658 
71659     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1139
71660  *             count = <int>len(command)
71661  *             tmp1 = asarray_str(command, count, &cmds)
71662  *             tmp2 = asarray_argvs(args, count, &argvs)             # <<<<<<<<<<<<<<
71663  *             tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71664  *             tmp4 = asarray_Info(info, count, &infos)
71665  */
71666     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_argvs(__pyx_v_args, __pyx_v_count, (&__pyx_v_argvs)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71667     __Pyx_GOTREF(__pyx_t_4);
71668     __pyx_v_tmp2 = __pyx_t_4;
71669     __pyx_t_4 = 0;
71670 
71671     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1140
71672  *             tmp1 = asarray_str(command, count, &cmds)
71673  *             tmp2 = asarray_argvs(args, count, &argvs)
71674  *             tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)             # <<<<<<<<<<<<<<
71675  *             tmp4 = asarray_Info(info, count, &infos)
71676  *         if errcodes is not None:
71677  */
71678     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_nprocs(__pyx_v_maxprocs, __pyx_v_count, (&__pyx_v_imaxprocs)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71679     __Pyx_GOTREF(__pyx_t_4);
71680     __pyx_v_tmp3 = __pyx_t_4;
71681     __pyx_t_4 = 0;
71682 
71683     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1141
71684  *             tmp2 = asarray_argvs(args, count, &argvs)
71685  *             tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71686  *             tmp4 = asarray_Info(info, count, &infos)             # <<<<<<<<<<<<<<
71687  *         if errcodes is not None:
71688  *             if root != rank:
71689  */
71690     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_Info(__pyx_v_info, __pyx_v_count, (&__pyx_v_infos)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71691     __Pyx_GOTREF(__pyx_t_4);
71692     __pyx_v_tmp4 = __pyx_t_4;
71693     __pyx_t_4 = 0;
71694     goto __pyx_L6;
71695   }
71696   __pyx_L6:;
71697 
71698   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1142
71699  *             tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71700  *             tmp4 = asarray_Info(info, count, &infos)
71701  *         if errcodes is not None:             # <<<<<<<<<<<<<<
71702  *             if root != rank:
71703  *                 count = <int>len(maxprocs)
71704  */
71705   __pyx_t_2 = (__pyx_v_errcodes != Py_None);
71706   if (__pyx_t_2) {
71707 
71708     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1143
71709  *             tmp4 = asarray_Info(info, count, &infos)
71710  *         if errcodes is not None:
71711  *             if root != rank:             # <<<<<<<<<<<<<<
71712  *                 count = <int>len(maxprocs)
71713  *                 tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71714  */
71715     __pyx_t_2 = (__pyx_v_root != __pyx_v_rank);
71716     if (__pyx_t_2) {
71717 
71718       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1144
71719  *         if errcodes is not None:
71720  *             if root != rank:
71721  *                 count = <int>len(maxprocs)             # <<<<<<<<<<<<<<
71722  *                 tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71723  *             for i from 0 <= i < count:
71724  */
71725       __pyx_t_3 = PyObject_Length(__pyx_v_maxprocs); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71726       __pyx_v_count = ((int)__pyx_t_3);
71727 
71728       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1145
71729  *             if root != rank:
71730  *                 count = <int>len(maxprocs)
71731  *                 tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)             # <<<<<<<<<<<<<<
71732  *             for i from 0 <= i < count:
71733  *                 n += imaxprocs[i]
71734  */
71735       __pyx_t_4 = __pyx_f_6mpi4py_3MPI_asarray_nprocs(__pyx_v_maxprocs, __pyx_v_count, (&__pyx_v_imaxprocs)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71736       __Pyx_GOTREF(__pyx_t_4);
71737       __Pyx_XDECREF(__pyx_v_tmp3);
71738       __pyx_v_tmp3 = __pyx_t_4;
71739       __pyx_t_4 = 0;
71740       goto __pyx_L8;
71741     }
71742     __pyx_L8:;
71743 
71744     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1146
71745  *                 count = <int>len(maxprocs)
71746  *                 tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71747  *             for i from 0 <= i < count:             # <<<<<<<<<<<<<<
71748  *                 n += imaxprocs[i]
71749  *             tmp5 = newarray_int(n, &ierrcodes)
71750  */
71751     __pyx_t_1 = __pyx_v_count;
71752     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
71753 
71754       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1147
71755  *                 tmp3 = asarray_nprocs(maxprocs, count, &imaxprocs)
71756  *             for i from 0 <= i < count:
71757  *                 n += imaxprocs[i]             # <<<<<<<<<<<<<<
71758  *             tmp5 = newarray_int(n, &ierrcodes)
71759  *         #
71760  */
71761       __pyx_v_n = (__pyx_v_n + (__pyx_v_imaxprocs[__pyx_v_i]));
71762     }
71763 
71764     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1148
71765  *             for i from 0 <= i < count:
71766  *                 n += imaxprocs[i]
71767  *             tmp5 = newarray_int(n, &ierrcodes)             # <<<<<<<<<<<<<<
71768  *         #
71769  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71770  */
71771     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_n, (&__pyx_v_ierrcodes)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71772     __Pyx_GOTREF(__pyx_t_4);
71773     __pyx_v_tmp5 = __pyx_t_4;
71774     __pyx_t_4 = 0;
71775     goto __pyx_L7;
71776   }
71777   __pyx_L7:;
71778 
71779   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1150
71780  *             tmp5 = newarray_int(n, &ierrcodes)
71781  *         #
71782  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
71783  *         with nogil: CHKERR( MPI_Comm_spawn_multiple(
71784  *             count, cmds, argvs, imaxprocs, infos, root,
71785  */
71786   __pyx_t_4 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71787   __Pyx_GOTREF(__pyx_t_4);
71788   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_4)));
71789   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_4);
71790   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
71791 
71792   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1151
71793  *         #
71794  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71795  *         with nogil: CHKERR( MPI_Comm_spawn_multiple(             # <<<<<<<<<<<<<<
71796  *             count, cmds, argvs, imaxprocs, infos, root,
71797  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71798  */
71799   {
71800       #ifdef WITH_THREAD
71801       PyThreadState *_save = NULL;
71802       #endif
71803       Py_UNBLOCK_THREADS
71804       /*try:*/ {
71805 
71806         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1153
71807  *         with nogil: CHKERR( MPI_Comm_spawn_multiple(
71808  *             count, cmds, argvs, imaxprocs, infos, root,
71809  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )             # <<<<<<<<<<<<<<
71810  *         #
71811  *         cdef Py_ssize_t j=0, p=0
71812  */
71813         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_spawn_multiple(__pyx_v_count, __pyx_v_cmds, __pyx_v_argvs, __pyx_v_imaxprocs, __pyx_v_infos, __pyx_v_root, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi), __pyx_v_ierrcodes)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L12;}
71814       }
71815 
71816       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1151
71817  *         #
71818  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
71819  *         with nogil: CHKERR( MPI_Comm_spawn_multiple(             # <<<<<<<<<<<<<<
71820  *             count, cmds, argvs, imaxprocs, infos, root,
71821  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71822  */
71823       /*finally:*/ {
71824         int __pyx_why;
71825         __pyx_why = 0; goto __pyx_L13;
71826         __pyx_L12: __pyx_why = 4; goto __pyx_L13;
71827         __pyx_L13:;
71828         Py_BLOCK_THREADS
71829         switch (__pyx_why) {
71830           case 4: goto __pyx_L1_error;
71831         }
71832       }
71833   }
71834 
71835   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1155
71836  *             self.ob_mpi, &comm.ob_mpi, ierrcodes) )
71837  *         #
71838  *         cdef Py_ssize_t j=0, p=0             # <<<<<<<<<<<<<<
71839  *         if errcodes is not None:
71840  *             errcodes[:] = [[]] * count
71841  */
71842   __pyx_v_j = 0;
71843   __pyx_v_p = 0;
71844 
71845   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1156
71846  *         #
71847  *         cdef Py_ssize_t j=0, p=0
71848  *         if errcodes is not None:             # <<<<<<<<<<<<<<
71849  *             errcodes[:] = [[]] * count
71850  *             for i from 0 <= i < count:
71851  */
71852   __pyx_t_2 = (__pyx_v_errcodes != Py_None);
71853   if (__pyx_t_2) {
71854 
71855     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1157
71856  *         cdef Py_ssize_t j=0, p=0
71857  *         if errcodes is not None:
71858  *             errcodes[:] = [[]] * count             # <<<<<<<<<<<<<<
71859  *             for i from 0 <= i < count:
71860  *                 n = imaxprocs[i]
71861  */
71862     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71863     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
71864     __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71865     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
71866     PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
71867     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
71868     __pyx_t_4 = 0;
71869     __pyx_t_4 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71870     __Pyx_GOTREF(__pyx_t_4);
71871     __pyx_t_6 = PyNumber_Multiply(((PyObject *)__pyx_t_5), __pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71872     __Pyx_GOTREF(__pyx_t_6);
71873     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
71874     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
71875     if (__Pyx_PySequence_SetSlice(__pyx_v_errcodes, 0, PY_SSIZE_T_MAX, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71876     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
71877 
71878     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1158
71879  *         if errcodes is not None:
71880  *             errcodes[:] = [[]] * count
71881  *             for i from 0 <= i < count:             # <<<<<<<<<<<<<<
71882  *                 n = imaxprocs[i]
71883  *                 errcodes[i] = \
71884  */
71885     __pyx_t_1 = __pyx_v_count;
71886     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
71887 
71888       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1159
71889  *             errcodes[:] = [[]] * count
71890  *             for i from 0 <= i < count:
71891  *                 n = imaxprocs[i]             # <<<<<<<<<<<<<<
71892  *                 errcodes[i] = \
71893  *                     [ierrcodes[j] for j from p<=j<(p+n)]
71894  */
71895       __pyx_v_n = (__pyx_v_imaxprocs[__pyx_v_i]);
71896 
71897       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1161
71898  *                 n = imaxprocs[i]
71899  *                 errcodes[i] = \
71900  *                     [ierrcodes[j] for j from p<=j<(p+n)]             # <<<<<<<<<<<<<<
71901  *                 p += n
71902  *         #
71903  */
71904       __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71905       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
71906       __pyx_t_3 = (__pyx_v_p + __pyx_v_n);
71907       for (__pyx_v_j = __pyx_v_p; __pyx_v_j < __pyx_t_3; __pyx_v_j++) {
71908         __pyx_t_4 = PyInt_FromLong((__pyx_v_ierrcodes[__pyx_v_j])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71909         __Pyx_GOTREF(__pyx_t_4);
71910         if (unlikely(PyList_Append(__pyx_t_6, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71911         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
71912       }
71913 
71914       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1160
71915  *             for i from 0 <= i < count:
71916  *                 n = imaxprocs[i]
71917  *                 errcodes[i] = \             # <<<<<<<<<<<<<<
71918  *                     [ierrcodes[j] for j from p<=j<(p+n)]
71919  *                 p += n
71920  */
71921       if (__Pyx_SetItemInt(__pyx_v_errcodes, __pyx_v_i, ((PyObject *)__pyx_t_6), sizeof(Py_ssize_t), PyInt_FromSsize_t) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
71922       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
71923 
71924       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1162
71925  *                 errcodes[i] = \
71926  *                     [ierrcodes[j] for j from p<=j<(p+n)]
71927  *                 p += n             # <<<<<<<<<<<<<<
71928  *         #
71929  *         return comm
71930  */
71931       __pyx_v_p = (__pyx_v_p + __pyx_v_n);
71932     }
71933     goto __pyx_L15;
71934   }
71935   __pyx_L15:;
71936 
71937   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1164
71938  *                 p += n
71939  *         #
71940  *         return comm             # <<<<<<<<<<<<<<
71941  *
71942  *
71943  */
71944   __Pyx_XDECREF(__pyx_r);
71945   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
71946   __pyx_r = ((PyObject *)__pyx_v_comm);
71947   goto __pyx_L0;
71948 
71949   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
71950   goto __pyx_L0;
71951   __pyx_L1_error:;
71952   __Pyx_XDECREF(__pyx_t_4);
71953   __Pyx_XDECREF(__pyx_t_5);
71954   __Pyx_XDECREF(__pyx_t_6);
71955   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Spawn_multiple", __pyx_clineno, __pyx_lineno, __pyx_filename);
71956   __pyx_r = NULL;
71957   __pyx_L0:;
71958   __Pyx_XDECREF(__pyx_v_tmp1);
71959   __Pyx_XDECREF(__pyx_v_tmp2);
71960   __Pyx_XDECREF(__pyx_v_tmp3);
71961   __Pyx_XDECREF(__pyx_v_tmp4);
71962   __Pyx_XDECREF(__pyx_v_tmp5);
71963   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
71964   __Pyx_XGIVEREF(__pyx_r);
71965   __Pyx_RefNannyFinishContext();
71966   return __pyx_r;
71967 }
71968 
71969 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1169
71970  *     # Server Routines
71971  *
71972  *     def Accept(self, port_name, Info info=INFO_NULL, int root=0):             # <<<<<<<<<<<<<<
71973  *         """
71974  *         Accept a request to form a new intercommunicator
71975  */
71976 
71977 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_15Accept(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
71978 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_15Accept[] = "Intracomm.Accept(self, port_name, Info info=INFO_NULL, int root=0)\n\n        Accept a request to form a new intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_15Accept(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)71979 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_15Accept(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
71980   PyObject *__pyx_v_port_name = 0;
71981   struct PyMPIInfoObject *__pyx_v_info = 0;
71982   int __pyx_v_root;
71983   char *__pyx_v_cportname;
71984   MPI_Info __pyx_v_cinfo;
71985   int __pyx_v_rank;
71986   struct PyMPIIntercommObject *__pyx_v_comm = 0;
71987   PyObject *__pyx_r = NULL;
71988   __Pyx_RefNannyDeclarations
71989   int __pyx_t_1;
71990   int __pyx_t_2;
71991   PyObject *__pyx_t_3 = NULL;
71992   int __pyx_lineno = 0;
71993   const char *__pyx_filename = NULL;
71994   int __pyx_clineno = 0;
71995   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__port_name,&__pyx_n_s__info,&__pyx_n_s__root,0};
71996   __Pyx_RefNannySetupContext("Accept");
71997   {
71998     PyObject* values[3] = {0,0,0};
71999     values[1] = (PyObject *)__pyx_k_87;
72000     if (unlikely(__pyx_kwds)) {
72001       Py_ssize_t kw_args;
72002       switch (PyTuple_GET_SIZE(__pyx_args)) {
72003         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
72004         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
72005         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72006         case  0: break;
72007         default: goto __pyx_L5_argtuple_error;
72008       }
72009       kw_args = PyDict_Size(__pyx_kwds);
72010       switch (PyTuple_GET_SIZE(__pyx_args)) {
72011         case  0:
72012         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__port_name);
72013         if (likely(values[0])) kw_args--;
72014         else goto __pyx_L5_argtuple_error;
72015         case  1:
72016         if (kw_args > 0) {
72017           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
72018           if (value) { values[1] = value; kw_args--; }
72019         }
72020         case  2:
72021         if (kw_args > 0) {
72022           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
72023           if (value) { values[2] = value; kw_args--; }
72024         }
72025       }
72026       if (unlikely(kw_args > 0)) {
72027         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Accept") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72028       }
72029     } else {
72030       switch (PyTuple_GET_SIZE(__pyx_args)) {
72031         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
72032         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
72033         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72034         break;
72035         default: goto __pyx_L5_argtuple_error;
72036       }
72037     }
72038     __pyx_v_port_name = values[0];
72039     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
72040     if (values[2]) {
72041       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72042     } else {
72043       __pyx_v_root = ((int)0);
72044     }
72045   }
72046   goto __pyx_L4_argument_unpacking_done;
72047   __pyx_L5_argtuple_error:;
72048   __Pyx_RaiseArgtupleInvalid("Accept", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72049   __pyx_L3_error:;
72050   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Accept", __pyx_clineno, __pyx_lineno, __pyx_filename);
72051   __Pyx_RefNannyFinishContext();
72052   return NULL;
72053   __pyx_L4_argument_unpacking_done:;
72054   __Pyx_INCREF(__pyx_v_port_name);
72055   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72056 
72057   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1173
72058  *         Accept a request to form a new intercommunicator
72059  *         """
72060  *         cdef char *cportname = NULL             # <<<<<<<<<<<<<<
72061  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72062  *         cdef int rank = MPI_UNDEFINED
72063  */
72064   __pyx_v_cportname = NULL;
72065 
72066   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1174
72067  *         """
72068  *         cdef char *cportname = NULL
72069  *         cdef MPI_Info cinfo = MPI_INFO_NULL             # <<<<<<<<<<<<<<
72070  *         cdef int rank = MPI_UNDEFINED
72071  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72072  */
72073   __pyx_v_cinfo = MPI_INFO_NULL;
72074 
72075   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1175
72076  *         cdef char *cportname = NULL
72077  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72078  *         cdef int rank = MPI_UNDEFINED             # <<<<<<<<<<<<<<
72079  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72080  *         if root == rank:
72081  */
72082   __pyx_v_rank = MPI_UNDEFINED;
72083 
72084   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1176
72085  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72086  *         cdef int rank = MPI_UNDEFINED
72087  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
72088  *         if root == rank:
72089  *             port_name = asmpistr(port_name, &cportname, NULL)
72090  */
72091   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72092 
72093   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1177
72094  *         cdef int rank = MPI_UNDEFINED
72095  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72096  *         if root == rank:             # <<<<<<<<<<<<<<
72097  *             port_name = asmpistr(port_name, &cportname, NULL)
72098  *             cinfo = arg_Info(info)
72099  */
72100   __pyx_t_2 = (__pyx_v_root == __pyx_v_rank);
72101   if (__pyx_t_2) {
72102 
72103     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1178
72104  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72105  *         if root == rank:
72106  *             port_name = asmpistr(port_name, &cportname, NULL)             # <<<<<<<<<<<<<<
72107  *             cinfo = arg_Info(info)
72108  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72109  */
72110     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_port_name, (&__pyx_v_cportname), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72111     __Pyx_GOTREF(__pyx_t_3);
72112     __Pyx_DECREF(__pyx_v_port_name);
72113     __pyx_v_port_name = __pyx_t_3;
72114     __pyx_t_3 = 0;
72115 
72116     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1179
72117  *         if root == rank:
72118  *             port_name = asmpistr(port_name, &cportname, NULL)
72119  *             cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
72120  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72121  *         with nogil: CHKERR( MPI_Comm_accept(
72122  */
72123     __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
72124     goto __pyx_L6;
72125   }
72126   __pyx_L6:;
72127 
72128   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1180
72129  *             port_name = asmpistr(port_name, &cportname, NULL)
72130  *             cinfo = arg_Info(info)
72131  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
72132  *         with nogil: CHKERR( MPI_Comm_accept(
72133  *             cportname, cinfo, root,
72134  */
72135   __pyx_t_3 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72136   __Pyx_GOTREF(__pyx_t_3);
72137   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_3)));
72138   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_3);
72139   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
72140 
72141   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1181
72142  *             cinfo = arg_Info(info)
72143  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72144  *         with nogil: CHKERR( MPI_Comm_accept(             # <<<<<<<<<<<<<<
72145  *             cportname, cinfo, root,
72146  *             self.ob_mpi, &comm.ob_mpi) )
72147  */
72148   {
72149       #ifdef WITH_THREAD
72150       PyThreadState *_save = NULL;
72151       #endif
72152       Py_UNBLOCK_THREADS
72153       /*try:*/ {
72154 
72155         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1183
72156  *         with nogil: CHKERR( MPI_Comm_accept(
72157  *             cportname, cinfo, root,
72158  *             self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
72159  *         return comm
72160  *
72161  */
72162         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_accept(__pyx_v_cportname, __pyx_v_cinfo, __pyx_v_root, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L8;}
72163       }
72164 
72165       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1181
72166  *             cinfo = arg_Info(info)
72167  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72168  *         with nogil: CHKERR( MPI_Comm_accept(             # <<<<<<<<<<<<<<
72169  *             cportname, cinfo, root,
72170  *             self.ob_mpi, &comm.ob_mpi) )
72171  */
72172       /*finally:*/ {
72173         int __pyx_why;
72174         __pyx_why = 0; goto __pyx_L9;
72175         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
72176         __pyx_L9:;
72177         Py_BLOCK_THREADS
72178         switch (__pyx_why) {
72179           case 4: goto __pyx_L1_error;
72180         }
72181       }
72182   }
72183 
72184   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1184
72185  *             cportname, cinfo, root,
72186  *             self.ob_mpi, &comm.ob_mpi) )
72187  *         return comm             # <<<<<<<<<<<<<<
72188  *
72189  *     # Client Routines
72190  */
72191   __Pyx_XDECREF(__pyx_r);
72192   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
72193   __pyx_r = ((PyObject *)__pyx_v_comm);
72194   goto __pyx_L0;
72195 
72196   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72197   goto __pyx_L0;
72198   __pyx_L1_error:;
72199   __Pyx_XDECREF(__pyx_t_3);
72200   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Accept", __pyx_clineno, __pyx_lineno, __pyx_filename);
72201   __pyx_r = NULL;
72202   __pyx_L0:;
72203   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
72204   __Pyx_XDECREF(__pyx_v_port_name);
72205   __Pyx_XGIVEREF(__pyx_r);
72206   __Pyx_RefNannyFinishContext();
72207   return __pyx_r;
72208 }
72209 
72210 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1188
72211  *     # Client Routines
72212  *
72213  *     def Connect(self, port_name, Info info=INFO_NULL, int root=0):             # <<<<<<<<<<<<<<
72214  *         """
72215  *         Make a request to form a new intercommunicator
72216  */
72217 
72218 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_16Connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
72219 static char __pyx_doc_6mpi4py_3MPI_9Intracomm_16Connect[] = "Intracomm.Connect(self, port_name, Info info=INFO_NULL, int root=0)\n\n        Make a request to form a new intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intracomm_16Connect(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)72220 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intracomm_16Connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
72221   PyObject *__pyx_v_port_name = 0;
72222   struct PyMPIInfoObject *__pyx_v_info = 0;
72223   int __pyx_v_root;
72224   char *__pyx_v_cportname;
72225   MPI_Info __pyx_v_cinfo;
72226   int __pyx_v_rank;
72227   struct PyMPIIntercommObject *__pyx_v_comm = 0;
72228   PyObject *__pyx_r = NULL;
72229   __Pyx_RefNannyDeclarations
72230   int __pyx_t_1;
72231   int __pyx_t_2;
72232   PyObject *__pyx_t_3 = NULL;
72233   int __pyx_lineno = 0;
72234   const char *__pyx_filename = NULL;
72235   int __pyx_clineno = 0;
72236   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__port_name,&__pyx_n_s__info,&__pyx_n_s__root,0};
72237   __Pyx_RefNannySetupContext("Connect");
72238   {
72239     PyObject* values[3] = {0,0,0};
72240     values[1] = (PyObject *)__pyx_k_88;
72241     if (unlikely(__pyx_kwds)) {
72242       Py_ssize_t kw_args;
72243       switch (PyTuple_GET_SIZE(__pyx_args)) {
72244         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
72245         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
72246         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72247         case  0: break;
72248         default: goto __pyx_L5_argtuple_error;
72249       }
72250       kw_args = PyDict_Size(__pyx_kwds);
72251       switch (PyTuple_GET_SIZE(__pyx_args)) {
72252         case  0:
72253         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__port_name);
72254         if (likely(values[0])) kw_args--;
72255         else goto __pyx_L5_argtuple_error;
72256         case  1:
72257         if (kw_args > 0) {
72258           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
72259           if (value) { values[1] = value; kw_args--; }
72260         }
72261         case  2:
72262         if (kw_args > 0) {
72263           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
72264           if (value) { values[2] = value; kw_args--; }
72265         }
72266       }
72267       if (unlikely(kw_args > 0)) {
72268         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Connect") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72269       }
72270     } else {
72271       switch (PyTuple_GET_SIZE(__pyx_args)) {
72272         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
72273         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
72274         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72275         break;
72276         default: goto __pyx_L5_argtuple_error;
72277       }
72278     }
72279     __pyx_v_port_name = values[0];
72280     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
72281     if (values[2]) {
72282       __pyx_v_root = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_root == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72283     } else {
72284       __pyx_v_root = ((int)0);
72285     }
72286   }
72287   goto __pyx_L4_argument_unpacking_done;
72288   __pyx_L5_argtuple_error:;
72289   __Pyx_RaiseArgtupleInvalid("Connect", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72290   __pyx_L3_error:;
72291   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Connect", __pyx_clineno, __pyx_lineno, __pyx_filename);
72292   __Pyx_RefNannyFinishContext();
72293   return NULL;
72294   __pyx_L4_argument_unpacking_done:;
72295   __Pyx_INCREF(__pyx_v_port_name);
72296   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72297 
72298   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1192
72299  *         Make a request to form a new intercommunicator
72300  *         """
72301  *         cdef char *cportname = NULL             # <<<<<<<<<<<<<<
72302  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72303  *         cdef int rank = MPI_UNDEFINED
72304  */
72305   __pyx_v_cportname = NULL;
72306 
72307   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1193
72308  *         """
72309  *         cdef char *cportname = NULL
72310  *         cdef MPI_Info cinfo = MPI_INFO_NULL             # <<<<<<<<<<<<<<
72311  *         cdef int rank = MPI_UNDEFINED
72312  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72313  */
72314   __pyx_v_cinfo = MPI_INFO_NULL;
72315 
72316   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1194
72317  *         cdef char *cportname = NULL
72318  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72319  *         cdef int rank = MPI_UNDEFINED             # <<<<<<<<<<<<<<
72320  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72321  *         if root == rank:
72322  */
72323   __pyx_v_rank = MPI_UNDEFINED;
72324 
72325   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1195
72326  *         cdef MPI_Info cinfo = MPI_INFO_NULL
72327  *         cdef int rank = MPI_UNDEFINED
72328  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )             # <<<<<<<<<<<<<<
72329  *         if root == rank:
72330  *             port_name = asmpistr(port_name, &cportname, NULL)
72331  */
72332   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_rank(((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72333 
72334   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1196
72335  *         cdef int rank = MPI_UNDEFINED
72336  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72337  *         if root == rank:             # <<<<<<<<<<<<<<
72338  *             port_name = asmpistr(port_name, &cportname, NULL)
72339  *             cinfo = arg_Info(info)
72340  */
72341   __pyx_t_2 = (__pyx_v_root == __pyx_v_rank);
72342   if (__pyx_t_2) {
72343 
72344     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1197
72345  *         CHKERR( MPI_Comm_rank(self.ob_mpi, &rank) )
72346  *         if root == rank:
72347  *             port_name = asmpistr(port_name, &cportname, NULL)             # <<<<<<<<<<<<<<
72348  *             cinfo = arg_Info(info)
72349  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72350  */
72351     __pyx_t_3 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_port_name, (&__pyx_v_cportname), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72352     __Pyx_GOTREF(__pyx_t_3);
72353     __Pyx_DECREF(__pyx_v_port_name);
72354     __pyx_v_port_name = __pyx_t_3;
72355     __pyx_t_3 = 0;
72356 
72357     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1198
72358  *         if root == rank:
72359  *             port_name = asmpistr(port_name, &cportname, NULL)
72360  *             cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
72361  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72362  *         with nogil: CHKERR( MPI_Comm_connect(
72363  */
72364     __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
72365     goto __pyx_L6;
72366   }
72367   __pyx_L6:;
72368 
72369   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1199
72370  *             port_name = asmpistr(port_name, &cportname, NULL)
72371  *             cinfo = arg_Info(info)
72372  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)             # <<<<<<<<<<<<<<
72373  *         with nogil: CHKERR( MPI_Comm_connect(
72374  *             cportname, cinfo, root,
72375  */
72376   __pyx_t_3 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intercomm)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72377   __Pyx_GOTREF(__pyx_t_3);
72378   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_3)));
72379   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_3);
72380   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
72381 
72382   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1200
72383  *             cinfo = arg_Info(info)
72384  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72385  *         with nogil: CHKERR( MPI_Comm_connect(             # <<<<<<<<<<<<<<
72386  *             cportname, cinfo, root,
72387  *             self.ob_mpi, &comm.ob_mpi) )
72388  */
72389   {
72390       #ifdef WITH_THREAD
72391       PyThreadState *_save = NULL;
72392       #endif
72393       Py_UNBLOCK_THREADS
72394       /*try:*/ {
72395 
72396         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1202
72397  *         with nogil: CHKERR( MPI_Comm_connect(
72398  *             cportname, cinfo, root,
72399  *             self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
72400  *         return comm
72401  *
72402  */
72403         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_connect(__pyx_v_cportname, __pyx_v_cinfo, __pyx_v_root, ((struct PyMPIIntracommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1200; __pyx_clineno = __LINE__; goto __pyx_L8;}
72404       }
72405 
72406       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1200
72407  *             cinfo = arg_Info(info)
72408  *         cdef Intercomm comm = <Intercomm>Intercomm.__new__(Intercomm)
72409  *         with nogil: CHKERR( MPI_Comm_connect(             # <<<<<<<<<<<<<<
72410  *             cportname, cinfo, root,
72411  *             self.ob_mpi, &comm.ob_mpi) )
72412  */
72413       /*finally:*/ {
72414         int __pyx_why;
72415         __pyx_why = 0; goto __pyx_L9;
72416         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
72417         __pyx_L9:;
72418         Py_BLOCK_THREADS
72419         switch (__pyx_why) {
72420           case 4: goto __pyx_L1_error;
72421         }
72422       }
72423   }
72424 
72425   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1203
72426  *             cportname, cinfo, root,
72427  *             self.ob_mpi, &comm.ob_mpi) )
72428  *         return comm             # <<<<<<<<<<<<<<
72429  *
72430  *
72431  */
72432   __Pyx_XDECREF(__pyx_r);
72433   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
72434   __pyx_r = ((PyObject *)__pyx_v_comm);
72435   goto __pyx_L0;
72436 
72437   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72438   goto __pyx_L0;
72439   __pyx_L1_error:;
72440   __Pyx_XDECREF(__pyx_t_3);
72441   __Pyx_AddTraceback("mpi4py.MPI.Intracomm.Connect", __pyx_clineno, __pyx_lineno, __pyx_filename);
72442   __pyx_r = NULL;
72443   __pyx_L0:;
72444   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
72445   __Pyx_XDECREF(__pyx_v_port_name);
72446   __Pyx_XGIVEREF(__pyx_r);
72447   __Pyx_RefNannyFinishContext();
72448   return __pyx_r;
72449 }
72450 
72451 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1212
72452  *     """
72453  *
72454  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
72455  *         cdef int topo = MPI_CART
72456  *         if self.ob_mpi != MPI_COMM_NULL:
72457  */
72458 
72459 static int __pyx_pf_6mpi4py_3MPI_8Cartcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)72460 static int __pyx_pf_6mpi4py_3MPI_8Cartcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
72461   struct PyMPICommObject *__pyx_v_comm = 0;
72462   int __pyx_v_topo;
72463   int __pyx_r;
72464   __Pyx_RefNannyDeclarations
72465   int __pyx_t_1;
72466   int __pyx_t_2;
72467   PyObject *__pyx_t_3 = NULL;
72468   int __pyx_lineno = 0;
72469   const char *__pyx_filename = NULL;
72470   int __pyx_clineno = 0;
72471   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
72472   __Pyx_RefNannySetupContext("__cinit__");
72473   {
72474     PyObject* values[1] = {0};
72475     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
72476     if (unlikely(__pyx_kwds)) {
72477       Py_ssize_t kw_args;
72478       switch (PyTuple_GET_SIZE(__pyx_args)) {
72479         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72480         case  0: break;
72481         default: goto __pyx_L5_argtuple_error;
72482       }
72483       kw_args = PyDict_Size(__pyx_kwds);
72484       switch (PyTuple_GET_SIZE(__pyx_args)) {
72485         case  0:
72486         if (kw_args > 0) {
72487           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
72488           if (value) { values[0] = value; kw_args--; }
72489         }
72490       }
72491       if (unlikely(kw_args > 0)) {
72492         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72493       }
72494     } else {
72495       switch (PyTuple_GET_SIZE(__pyx_args)) {
72496         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
72497         case  0: break;
72498         default: goto __pyx_L5_argtuple_error;
72499       }
72500     }
72501     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
72502   }
72503   goto __pyx_L4_argument_unpacking_done;
72504   __pyx_L5_argtuple_error:;
72505   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
72506   __pyx_L3_error:;
72507   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
72508   __Pyx_RefNannyFinishContext();
72509   return -1;
72510   __pyx_L4_argument_unpacking_done:;
72511   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72512 
72513   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1213
72514  *
72515  *     def __cinit__(self, Comm comm=None):
72516  *         cdef int topo = MPI_CART             # <<<<<<<<<<<<<<
72517  *         if self.ob_mpi != MPI_COMM_NULL:
72518  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
72519  */
72520   __pyx_v_topo = MPI_CART;
72521 
72522   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1214
72523  *     def __cinit__(self, Comm comm=None):
72524  *         cdef int topo = MPI_CART
72525  *         if self.ob_mpi != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
72526  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
72527  *             if topo != MPI_CART: raise TypeError(
72528  */
72529   __pyx_t_1 = (((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi != MPI_COMM_NULL);
72530   if (__pyx_t_1) {
72531 
72532     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1215
72533  *         cdef int topo = MPI_CART
72534  *         if self.ob_mpi != MPI_COMM_NULL:
72535  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )             # <<<<<<<<<<<<<<
72536  *             if topo != MPI_CART: raise TypeError(
72537  *                 "expecting a Cartesian communicator")
72538  */
72539     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Topo_test(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_topo))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72540 
72541     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1216
72542  *         if self.ob_mpi != MPI_COMM_NULL:
72543  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
72544  *             if topo != MPI_CART: raise TypeError(             # <<<<<<<<<<<<<<
72545  *                 "expecting a Cartesian communicator")
72546  *
72547  */
72548     __pyx_t_1 = (__pyx_v_topo != MPI_CART);
72549     if (__pyx_t_1) {
72550       __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_90), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72551       __Pyx_GOTREF(__pyx_t_3);
72552       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
72553       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
72554       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72555       goto __pyx_L7;
72556     }
72557     __pyx_L7:;
72558     goto __pyx_L6;
72559   }
72560   __pyx_L6:;
72561 
72562   __pyx_r = 0;
72563   goto __pyx_L0;
72564   __pyx_L1_error:;
72565   __Pyx_XDECREF(__pyx_t_3);
72566   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
72567   __pyx_r = -1;
72568   __pyx_L0:;
72569   __Pyx_RefNannyFinishContext();
72570   return __pyx_r;
72571 }
72572 
72573 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1222
72574  *     # -------------------------
72575  *
72576  *     def Dup(self):             # <<<<<<<<<<<<<<
72577  *         """
72578  *         Duplicate an existing communicator
72579  */
72580 
72581 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
72582 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_1Dup[] = "Cartcomm.Dup(self)\n\n        Duplicate an existing communicator\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_1Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)72583 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
72584   struct PyMPICartcommObject *__pyx_v_comm = 0;
72585   PyObject *__pyx_r = NULL;
72586   __Pyx_RefNannyDeclarations
72587   PyObject *__pyx_t_1 = NULL;
72588   int __pyx_t_2;
72589   int __pyx_lineno = 0;
72590   const char *__pyx_filename = NULL;
72591   int __pyx_clineno = 0;
72592   __Pyx_RefNannySetupContext("Dup");
72593   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
72594     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
72595   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
72596 
72597   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1226
72598  *         Duplicate an existing communicator
72599  *         """
72600  *         cdef Cartcomm comm = <Cartcomm>type(self)()             # <<<<<<<<<<<<<<
72601  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
72602  *         return comm
72603  */
72604   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72605   __Pyx_GOTREF(__pyx_t_1);
72606   __Pyx_INCREF(((PyObject *)((struct PyMPICartcommObject *)__pyx_t_1)));
72607   __pyx_v_comm = ((struct PyMPICartcommObject *)__pyx_t_1);
72608   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
72609 
72610   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1227
72611  *         """
72612  *         cdef Cartcomm comm = <Cartcomm>type(self)()
72613  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
72614  *         return comm
72615  *
72616  */
72617   {
72618       #ifdef WITH_THREAD
72619       PyThreadState *_save = NULL;
72620       #endif
72621       Py_UNBLOCK_THREADS
72622       /*try:*/ {
72623         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L6;}
72624       }
72625       /*finally:*/ {
72626         int __pyx_why;
72627         __pyx_why = 0; goto __pyx_L7;
72628         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
72629         __pyx_L7:;
72630         Py_BLOCK_THREADS
72631         switch (__pyx_why) {
72632           case 4: goto __pyx_L1_error;
72633         }
72634       }
72635   }
72636 
72637   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1228
72638  *         cdef Cartcomm comm = <Cartcomm>type(self)()
72639  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
72640  *         return comm             # <<<<<<<<<<<<<<
72641  *
72642  *     # Cartesian Inquiry Functions
72643  */
72644   __Pyx_XDECREF(__pyx_r);
72645   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
72646   __pyx_r = ((PyObject *)__pyx_v_comm);
72647   goto __pyx_L0;
72648 
72649   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72650   goto __pyx_L0;
72651   __pyx_L1_error:;
72652   __Pyx_XDECREF(__pyx_t_1);
72653   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
72654   __pyx_r = NULL;
72655   __pyx_L0:;
72656   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
72657   __Pyx_XGIVEREF(__pyx_r);
72658   __Pyx_RefNannyFinishContext();
72659   return __pyx_r;
72660 }
72661 
72662 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1233
72663  *     # ---------------------------
72664  *
72665  *     def Get_dim(self):             # <<<<<<<<<<<<<<
72666  *         """
72667  *         Return number of dimensions
72668  */
72669 
72670 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_2Get_dim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
72671 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_2Get_dim[] = "Cartcomm.Get_dim(self)\n\n        Return number of dimensions\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_2Get_dim(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)72672 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_2Get_dim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
72673   int __pyx_v_dim;
72674   PyObject *__pyx_r = NULL;
72675   __Pyx_RefNannyDeclarations
72676   int __pyx_t_1;
72677   PyObject *__pyx_t_2 = NULL;
72678   int __pyx_lineno = 0;
72679   const char *__pyx_filename = NULL;
72680   int __pyx_clineno = 0;
72681   __Pyx_RefNannySetupContext("Get_dim");
72682   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
72683     __Pyx_RaiseArgtupleInvalid("Get_dim", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
72684   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_dim", 0))) return NULL;
72685 
72686   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1237
72687  *         Return number of dimensions
72688  *         """
72689  *         cdef int dim = 0             # <<<<<<<<<<<<<<
72690  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &dim) )
72691  *         return dim
72692  */
72693   __pyx_v_dim = 0;
72694 
72695   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1238
72696  *         """
72697  *         cdef int dim = 0
72698  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &dim) )             # <<<<<<<<<<<<<<
72699  *         return dim
72700  *
72701  */
72702   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cartdim_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72703 
72704   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1239
72705  *         cdef int dim = 0
72706  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &dim) )
72707  *         return dim             # <<<<<<<<<<<<<<
72708  *
72709  *     property dim:
72710  */
72711   __Pyx_XDECREF(__pyx_r);
72712   __pyx_t_2 = PyInt_FromLong(__pyx_v_dim); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72713   __Pyx_GOTREF(__pyx_t_2);
72714   __pyx_r = __pyx_t_2;
72715   __pyx_t_2 = 0;
72716   goto __pyx_L0;
72717 
72718   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72719   goto __pyx_L0;
72720   __pyx_L1_error:;
72721   __Pyx_XDECREF(__pyx_t_2);
72722   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
72723   __pyx_r = NULL;
72724   __pyx_L0:;
72725   __Pyx_XGIVEREF(__pyx_r);
72726   __Pyx_RefNannyFinishContext();
72727   return __pyx_r;
72728 }
72729 
72730 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1243
72731  *     property dim:
72732  *         """number of dimensions"""
72733  *         def __get__(self):             # <<<<<<<<<<<<<<
72734  *             return self.Get_dim()
72735  *
72736  */
72737 
72738 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_3dim___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_3dim___get__(PyObject * __pyx_v_self)72739 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_3dim___get__(PyObject *__pyx_v_self) {
72740   PyObject *__pyx_r = NULL;
72741   __Pyx_RefNannyDeclarations
72742   PyObject *__pyx_t_1 = NULL;
72743   PyObject *__pyx_t_2 = NULL;
72744   int __pyx_lineno = 0;
72745   const char *__pyx_filename = NULL;
72746   int __pyx_clineno = 0;
72747   __Pyx_RefNannySetupContext("__get__");
72748 
72749   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1244
72750  *         """number of dimensions"""
72751  *         def __get__(self):
72752  *             return self.Get_dim()             # <<<<<<<<<<<<<<
72753  *
72754  *     property ndim:
72755  */
72756   __Pyx_XDECREF(__pyx_r);
72757   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_dim); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72758   __Pyx_GOTREF(__pyx_t_1);
72759   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72760   __Pyx_GOTREF(__pyx_t_2);
72761   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
72762   __pyx_r = __pyx_t_2;
72763   __pyx_t_2 = 0;
72764   goto __pyx_L0;
72765 
72766   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72767   goto __pyx_L0;
72768   __pyx_L1_error:;
72769   __Pyx_XDECREF(__pyx_t_1);
72770   __Pyx_XDECREF(__pyx_t_2);
72771   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.dim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
72772   __pyx_r = NULL;
72773   __pyx_L0:;
72774   __Pyx_XGIVEREF(__pyx_r);
72775   __Pyx_RefNannyFinishContext();
72776   return __pyx_r;
72777 }
72778 
72779 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1248
72780  *     property ndim:
72781  *         """number of dimensions"""
72782  *         def __get__(self):             # <<<<<<<<<<<<<<
72783  *             return self.Get_dim()
72784  *
72785  */
72786 
72787 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4ndim___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_4ndim___get__(PyObject * __pyx_v_self)72788 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4ndim___get__(PyObject *__pyx_v_self) {
72789   PyObject *__pyx_r = NULL;
72790   __Pyx_RefNannyDeclarations
72791   PyObject *__pyx_t_1 = NULL;
72792   PyObject *__pyx_t_2 = NULL;
72793   int __pyx_lineno = 0;
72794   const char *__pyx_filename = NULL;
72795   int __pyx_clineno = 0;
72796   __Pyx_RefNannySetupContext("__get__");
72797 
72798   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1249
72799  *         """number of dimensions"""
72800  *         def __get__(self):
72801  *             return self.Get_dim()             # <<<<<<<<<<<<<<
72802  *
72803  *     def Get_topo(self):
72804  */
72805   __Pyx_XDECREF(__pyx_r);
72806   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_dim); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72807   __Pyx_GOTREF(__pyx_t_1);
72808   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72809   __Pyx_GOTREF(__pyx_t_2);
72810   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
72811   __pyx_r = __pyx_t_2;
72812   __pyx_t_2 = 0;
72813   goto __pyx_L0;
72814 
72815   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
72816   goto __pyx_L0;
72817   __pyx_L1_error:;
72818   __Pyx_XDECREF(__pyx_t_1);
72819   __Pyx_XDECREF(__pyx_t_2);
72820   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
72821   __pyx_r = NULL;
72822   __pyx_L0:;
72823   __Pyx_XGIVEREF(__pyx_r);
72824   __Pyx_RefNannyFinishContext();
72825   return __pyx_r;
72826 }
72827 
72828 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1251
72829  *             return self.Get_dim()
72830  *
72831  *     def Get_topo(self):             # <<<<<<<<<<<<<<
72832  *         """
72833  *         Return information on the cartesian topology
72834  */
72835 
72836 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_3Get_topo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
72837 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_3Get_topo[] = "Cartcomm.Get_topo(self)\n\n        Return information on the cartesian topology\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_3Get_topo(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)72838 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_3Get_topo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
72839   int __pyx_v_ndim;
72840   int *__pyx_v_idims;
72841   PyObject *__pyx_v_tmp1 = 0;
72842   int *__pyx_v_iperiods;
72843   PyObject *__pyx_v_tmp2 = 0;
72844   int *__pyx_v_icoords;
72845   PyObject *__pyx_v_tmp3 = 0;
72846   int __pyx_v_i;
72847   PyObject *__pyx_v_dims = 0;
72848   PyObject *__pyx_v_periods = 0;
72849   PyObject *__pyx_v_coords = 0;
72850   PyObject *__pyx_r = NULL;
72851   __Pyx_RefNannyDeclarations
72852   int __pyx_t_1;
72853   PyObject *__pyx_t_2 = NULL;
72854   PyObject *__pyx_t_3 = NULL;
72855   int __pyx_lineno = 0;
72856   const char *__pyx_filename = NULL;
72857   int __pyx_clineno = 0;
72858   __Pyx_RefNannySetupContext("Get_topo");
72859   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
72860     __Pyx_RaiseArgtupleInvalid("Get_topo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
72861   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_topo", 0))) return NULL;
72862 
72863   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1255
72864  *         Return information on the cartesian topology
72865  *         """
72866  *         cdef int ndim = 0             # <<<<<<<<<<<<<<
72867  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
72868  *         cdef int *idims = NULL
72869  */
72870   __pyx_v_ndim = 0;
72871 
72872   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1256
72873  *         """
72874  *         cdef int ndim = 0
72875  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )             # <<<<<<<<<<<<<<
72876  *         cdef int *idims = NULL
72877  *         cdef tmp1 = newarray_int(ndim, &idims)
72878  */
72879   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cartdim_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_ndim))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72880 
72881   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1257
72882  *         cdef int ndim = 0
72883  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
72884  *         cdef int *idims = NULL             # <<<<<<<<<<<<<<
72885  *         cdef tmp1 = newarray_int(ndim, &idims)
72886  *         cdef int *iperiods = NULL
72887  */
72888   __pyx_v_idims = NULL;
72889 
72890   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1258
72891  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
72892  *         cdef int *idims = NULL
72893  *         cdef tmp1 = newarray_int(ndim, &idims)             # <<<<<<<<<<<<<<
72894  *         cdef int *iperiods = NULL
72895  *         cdef tmp2 = newarray_int(ndim, &iperiods)
72896  */
72897   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_ndim, (&__pyx_v_idims)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72898   __Pyx_GOTREF(__pyx_t_2);
72899   __pyx_v_tmp1 = __pyx_t_2;
72900   __pyx_t_2 = 0;
72901 
72902   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1259
72903  *         cdef int *idims = NULL
72904  *         cdef tmp1 = newarray_int(ndim, &idims)
72905  *         cdef int *iperiods = NULL             # <<<<<<<<<<<<<<
72906  *         cdef tmp2 = newarray_int(ndim, &iperiods)
72907  *         cdef int *icoords = NULL
72908  */
72909   __pyx_v_iperiods = NULL;
72910 
72911   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1260
72912  *         cdef tmp1 = newarray_int(ndim, &idims)
72913  *         cdef int *iperiods = NULL
72914  *         cdef tmp2 = newarray_int(ndim, &iperiods)             # <<<<<<<<<<<<<<
72915  *         cdef int *icoords = NULL
72916  *         cdef tmp3 = newarray_int(ndim, &icoords)
72917  */
72918   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_ndim, (&__pyx_v_iperiods)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72919   __Pyx_GOTREF(__pyx_t_2);
72920   __pyx_v_tmp2 = __pyx_t_2;
72921   __pyx_t_2 = 0;
72922 
72923   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1261
72924  *         cdef int *iperiods = NULL
72925  *         cdef tmp2 = newarray_int(ndim, &iperiods)
72926  *         cdef int *icoords = NULL             # <<<<<<<<<<<<<<
72927  *         cdef tmp3 = newarray_int(ndim, &icoords)
72928  *         CHKERR( MPI_Cart_get(self.ob_mpi, ndim, idims, iperiods, icoords) )
72929  */
72930   __pyx_v_icoords = NULL;
72931 
72932   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1262
72933  *         cdef tmp2 = newarray_int(ndim, &iperiods)
72934  *         cdef int *icoords = NULL
72935  *         cdef tmp3 = newarray_int(ndim, &icoords)             # <<<<<<<<<<<<<<
72936  *         CHKERR( MPI_Cart_get(self.ob_mpi, ndim, idims, iperiods, icoords) )
72937  *         cdef int i = 0
72938  */
72939   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_ndim, (&__pyx_v_icoords)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72940   __Pyx_GOTREF(__pyx_t_2);
72941   __pyx_v_tmp3 = __pyx_t_2;
72942   __pyx_t_2 = 0;
72943 
72944   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1263
72945  *         cdef int *icoords = NULL
72946  *         cdef tmp3 = newarray_int(ndim, &icoords)
72947  *         CHKERR( MPI_Cart_get(self.ob_mpi, ndim, idims, iperiods, icoords) )             # <<<<<<<<<<<<<<
72948  *         cdef int i = 0
72949  *         cdef object dims    = [idims[i]    for i from 0 <= i < ndim]
72950  */
72951   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_ndim, __pyx_v_idims, __pyx_v_iperiods, __pyx_v_icoords)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72952 
72953   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1264
72954  *         cdef tmp3 = newarray_int(ndim, &icoords)
72955  *         CHKERR( MPI_Cart_get(self.ob_mpi, ndim, idims, iperiods, icoords) )
72956  *         cdef int i = 0             # <<<<<<<<<<<<<<
72957  *         cdef object dims    = [idims[i]    for i from 0 <= i < ndim]
72958  *         cdef object periods = [iperiods[i] for i from 0 <= i < ndim]
72959  */
72960   __pyx_v_i = 0;
72961 
72962   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1265
72963  *         CHKERR( MPI_Cart_get(self.ob_mpi, ndim, idims, iperiods, icoords) )
72964  *         cdef int i = 0
72965  *         cdef object dims    = [idims[i]    for i from 0 <= i < ndim]             # <<<<<<<<<<<<<<
72966  *         cdef object periods = [iperiods[i] for i from 0 <= i < ndim]
72967  *         cdef object coords  = [icoords[i]  for i from 0 <= i < ndim]
72968  */
72969   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72970   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
72971   __pyx_t_1 = __pyx_v_ndim;
72972   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
72973     __pyx_t_3 = PyInt_FromLong((__pyx_v_idims[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72974     __Pyx_GOTREF(__pyx_t_3);
72975     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72976     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
72977   }
72978   __Pyx_INCREF(((PyObject *)__pyx_t_2));
72979   __pyx_v_dims = ((PyObject *)__pyx_t_2);
72980   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
72981 
72982   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1266
72983  *         cdef int i = 0
72984  *         cdef object dims    = [idims[i]    for i from 0 <= i < ndim]
72985  *         cdef object periods = [iperiods[i] for i from 0 <= i < ndim]             # <<<<<<<<<<<<<<
72986  *         cdef object coords  = [icoords[i]  for i from 0 <= i < ndim]
72987  *         return (dims, periods, coords)
72988  */
72989   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72990   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
72991   __pyx_t_1 = __pyx_v_ndim;
72992   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
72993     __pyx_t_3 = PyInt_FromLong((__pyx_v_iperiods[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72994     __Pyx_GOTREF(__pyx_t_3);
72995     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
72996     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
72997   }
72998   __Pyx_INCREF(((PyObject *)__pyx_t_2));
72999   __pyx_v_periods = ((PyObject *)__pyx_t_2);
73000   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
73001 
73002   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1267
73003  *         cdef object dims    = [idims[i]    for i from 0 <= i < ndim]
73004  *         cdef object periods = [iperiods[i] for i from 0 <= i < ndim]
73005  *         cdef object coords  = [icoords[i]  for i from 0 <= i < ndim]             # <<<<<<<<<<<<<<
73006  *         return (dims, periods, coords)
73007  *
73008  */
73009   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73010   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
73011   __pyx_t_1 = __pyx_v_ndim;
73012   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
73013     __pyx_t_3 = PyInt_FromLong((__pyx_v_icoords[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73014     __Pyx_GOTREF(__pyx_t_3);
73015     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73016     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
73017   }
73018   __Pyx_INCREF(((PyObject *)__pyx_t_2));
73019   __pyx_v_coords = ((PyObject *)__pyx_t_2);
73020   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
73021 
73022   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1268
73023  *         cdef object periods = [iperiods[i] for i from 0 <= i < ndim]
73024  *         cdef object coords  = [icoords[i]  for i from 0 <= i < ndim]
73025  *         return (dims, periods, coords)             # <<<<<<<<<<<<<<
73026  *
73027  *     property topo:
73028  */
73029   __Pyx_XDECREF(__pyx_r);
73030   __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73031   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
73032   __Pyx_INCREF(__pyx_v_dims);
73033   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_dims);
73034   __Pyx_GIVEREF(__pyx_v_dims);
73035   __Pyx_INCREF(__pyx_v_periods);
73036   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_periods);
73037   __Pyx_GIVEREF(__pyx_v_periods);
73038   __Pyx_INCREF(__pyx_v_coords);
73039   PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_coords);
73040   __Pyx_GIVEREF(__pyx_v_coords);
73041   __pyx_r = ((PyObject *)__pyx_t_2);
73042   __pyx_t_2 = 0;
73043   goto __pyx_L0;
73044 
73045   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73046   goto __pyx_L0;
73047   __pyx_L1_error:;
73048   __Pyx_XDECREF(__pyx_t_2);
73049   __Pyx_XDECREF(__pyx_t_3);
73050   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_topo", __pyx_clineno, __pyx_lineno, __pyx_filename);
73051   __pyx_r = NULL;
73052   __pyx_L0:;
73053   __Pyx_XDECREF(__pyx_v_tmp1);
73054   __Pyx_XDECREF(__pyx_v_tmp2);
73055   __Pyx_XDECREF(__pyx_v_tmp3);
73056   __Pyx_XDECREF(__pyx_v_dims);
73057   __Pyx_XDECREF(__pyx_v_periods);
73058   __Pyx_XDECREF(__pyx_v_coords);
73059   __Pyx_XGIVEREF(__pyx_r);
73060   __Pyx_RefNannyFinishContext();
73061   return __pyx_r;
73062 }
73063 
73064 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1272
73065  *     property topo:
73066  *         """topology information"""
73067  *         def __get__(self):             # <<<<<<<<<<<<<<
73068  *             return self.Get_topo()
73069  *
73070  */
73071 
73072 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4topo___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_4topo___get__(PyObject * __pyx_v_self)73073 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4topo___get__(PyObject *__pyx_v_self) {
73074   PyObject *__pyx_r = NULL;
73075   __Pyx_RefNannyDeclarations
73076   PyObject *__pyx_t_1 = NULL;
73077   PyObject *__pyx_t_2 = NULL;
73078   int __pyx_lineno = 0;
73079   const char *__pyx_filename = NULL;
73080   int __pyx_clineno = 0;
73081   __Pyx_RefNannySetupContext("__get__");
73082 
73083   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1273
73084  *         """topology information"""
73085  *         def __get__(self):
73086  *             return self.Get_topo()             # <<<<<<<<<<<<<<
73087  *
73088  *     property dims:
73089  */
73090   __Pyx_XDECREF(__pyx_r);
73091   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73092   __Pyx_GOTREF(__pyx_t_1);
73093   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73094   __Pyx_GOTREF(__pyx_t_2);
73095   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73096   __pyx_r = __pyx_t_2;
73097   __pyx_t_2 = 0;
73098   goto __pyx_L0;
73099 
73100   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73101   goto __pyx_L0;
73102   __pyx_L1_error:;
73103   __Pyx_XDECREF(__pyx_t_1);
73104   __Pyx_XDECREF(__pyx_t_2);
73105   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.topo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
73106   __pyx_r = NULL;
73107   __pyx_L0:;
73108   __Pyx_XGIVEREF(__pyx_r);
73109   __Pyx_RefNannyFinishContext();
73110   return __pyx_r;
73111 }
73112 
73113 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1277
73114  *     property dims:
73115  *         """dimensions"""
73116  *         def __get__(self):             # <<<<<<<<<<<<<<
73117  *             return self.Get_topo()[0]
73118  *
73119  */
73120 
73121 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4dims___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_4dims___get__(PyObject * __pyx_v_self)73122 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4dims___get__(PyObject *__pyx_v_self) {
73123   PyObject *__pyx_r = NULL;
73124   __Pyx_RefNannyDeclarations
73125   PyObject *__pyx_t_1 = NULL;
73126   PyObject *__pyx_t_2 = NULL;
73127   int __pyx_lineno = 0;
73128   const char *__pyx_filename = NULL;
73129   int __pyx_clineno = 0;
73130   __Pyx_RefNannySetupContext("__get__");
73131 
73132   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1278
73133  *         """dimensions"""
73134  *         def __get__(self):
73135  *             return self.Get_topo()[0]             # <<<<<<<<<<<<<<
73136  *
73137  *     property periods:
73138  */
73139   __Pyx_XDECREF(__pyx_r);
73140   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73141   __Pyx_GOTREF(__pyx_t_1);
73142   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73143   __Pyx_GOTREF(__pyx_t_2);
73144   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73145   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73146   __Pyx_GOTREF(__pyx_t_1);
73147   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73148   __pyx_r = __pyx_t_1;
73149   __pyx_t_1 = 0;
73150   goto __pyx_L0;
73151 
73152   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73153   goto __pyx_L0;
73154   __pyx_L1_error:;
73155   __Pyx_XDECREF(__pyx_t_1);
73156   __Pyx_XDECREF(__pyx_t_2);
73157   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.dims.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
73158   __pyx_r = NULL;
73159   __pyx_L0:;
73160   __Pyx_XGIVEREF(__pyx_r);
73161   __Pyx_RefNannyFinishContext();
73162   return __pyx_r;
73163 }
73164 
73165 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1282
73166  *     property periods:
73167  *         """periodicity"""
73168  *         def __get__(self):             # <<<<<<<<<<<<<<
73169  *             return self.Get_topo()[1]
73170  *
73171  */
73172 
73173 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_7periods___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_7periods___get__(PyObject * __pyx_v_self)73174 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_7periods___get__(PyObject *__pyx_v_self) {
73175   PyObject *__pyx_r = NULL;
73176   __Pyx_RefNannyDeclarations
73177   PyObject *__pyx_t_1 = NULL;
73178   PyObject *__pyx_t_2 = NULL;
73179   int __pyx_lineno = 0;
73180   const char *__pyx_filename = NULL;
73181   int __pyx_clineno = 0;
73182   __Pyx_RefNannySetupContext("__get__");
73183 
73184   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1283
73185  *         """periodicity"""
73186  *         def __get__(self):
73187  *             return self.Get_topo()[1]             # <<<<<<<<<<<<<<
73188  *
73189  *     property coords:
73190  */
73191   __Pyx_XDECREF(__pyx_r);
73192   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73193   __Pyx_GOTREF(__pyx_t_1);
73194   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73195   __Pyx_GOTREF(__pyx_t_2);
73196   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73197   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73198   __Pyx_GOTREF(__pyx_t_1);
73199   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73200   __pyx_r = __pyx_t_1;
73201   __pyx_t_1 = 0;
73202   goto __pyx_L0;
73203 
73204   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73205   goto __pyx_L0;
73206   __pyx_L1_error:;
73207   __Pyx_XDECREF(__pyx_t_1);
73208   __Pyx_XDECREF(__pyx_t_2);
73209   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.periods.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
73210   __pyx_r = NULL;
73211   __pyx_L0:;
73212   __Pyx_XGIVEREF(__pyx_r);
73213   __Pyx_RefNannyFinishContext();
73214   return __pyx_r;
73215 }
73216 
73217 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1287
73218  *     property coords:
73219  *         """coordinates"""
73220  *         def __get__(self):             # <<<<<<<<<<<<<<
73221  *             return self.Get_topo()[2]
73222  *
73223  */
73224 
73225 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_6coords___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_8Cartcomm_6coords___get__(PyObject * __pyx_v_self)73226 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_6coords___get__(PyObject *__pyx_v_self) {
73227   PyObject *__pyx_r = NULL;
73228   __Pyx_RefNannyDeclarations
73229   PyObject *__pyx_t_1 = NULL;
73230   PyObject *__pyx_t_2 = NULL;
73231   int __pyx_lineno = 0;
73232   const char *__pyx_filename = NULL;
73233   int __pyx_clineno = 0;
73234   __Pyx_RefNannySetupContext("__get__");
73235 
73236   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1288
73237  *         """coordinates"""
73238  *         def __get__(self):
73239  *             return self.Get_topo()[2]             # <<<<<<<<<<<<<<
73240  *
73241  *
73242  */
73243   __Pyx_XDECREF(__pyx_r);
73244   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73245   __Pyx_GOTREF(__pyx_t_1);
73246   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73247   __Pyx_GOTREF(__pyx_t_2);
73248   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73249   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73250   __Pyx_GOTREF(__pyx_t_1);
73251   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73252   __pyx_r = __pyx_t_1;
73253   __pyx_t_1 = 0;
73254   goto __pyx_L0;
73255 
73256   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73257   goto __pyx_L0;
73258   __pyx_L1_error:;
73259   __Pyx_XDECREF(__pyx_t_1);
73260   __Pyx_XDECREF(__pyx_t_2);
73261   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.coords.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
73262   __pyx_r = NULL;
73263   __pyx_L0:;
73264   __Pyx_XGIVEREF(__pyx_r);
73265   __Pyx_RefNannyFinishContext();
73266   return __pyx_r;
73267 }
73268 
73269 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1294
73270  *     # ------------------------------
73271  *
73272  *     def Get_cart_rank(self, coords):             # <<<<<<<<<<<<<<
73273  *         """
73274  *         Translate logical coordinates to ranks
73275  */
73276 
73277 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
73278 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank[] = "Cartcomm.Get_cart_rank(self, coords)\n\n        Translate logical coordinates to ranks\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)73279 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
73280   PyObject *__pyx_v_coords = 0;
73281   int __pyx_v_ndim;
73282   int *__pyx_v_icoords;
73283   int __pyx_v_rank;
73284   PyObject *__pyx_r = NULL;
73285   __Pyx_RefNannyDeclarations
73286   int __pyx_t_1;
73287   PyObject *__pyx_t_2 = NULL;
73288   int __pyx_lineno = 0;
73289   const char *__pyx_filename = NULL;
73290   int __pyx_clineno = 0;
73291   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__coords,0};
73292   __Pyx_RefNannySetupContext("Get_cart_rank");
73293   {
73294     PyObject* values[1] = {0};
73295     if (unlikely(__pyx_kwds)) {
73296       Py_ssize_t kw_args;
73297       switch (PyTuple_GET_SIZE(__pyx_args)) {
73298         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73299         case  0: break;
73300         default: goto __pyx_L5_argtuple_error;
73301       }
73302       kw_args = PyDict_Size(__pyx_kwds);
73303       switch (PyTuple_GET_SIZE(__pyx_args)) {
73304         case  0:
73305         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__coords);
73306         if (likely(values[0])) kw_args--;
73307         else goto __pyx_L5_argtuple_error;
73308       }
73309       if (unlikely(kw_args > 0)) {
73310         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_cart_rank") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73311       }
73312     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
73313       goto __pyx_L5_argtuple_error;
73314     } else {
73315       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73316     }
73317     __pyx_v_coords = values[0];
73318   }
73319   goto __pyx_L4_argument_unpacking_done;
73320   __pyx_L5_argtuple_error:;
73321   __Pyx_RaiseArgtupleInvalid("Get_cart_rank", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73322   __pyx_L3_error:;
73323   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_cart_rank", __pyx_clineno, __pyx_lineno, __pyx_filename);
73324   __Pyx_RefNannyFinishContext();
73325   return NULL;
73326   __pyx_L4_argument_unpacking_done:;
73327   __Pyx_INCREF(__pyx_v_coords);
73328 
73329   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1298
73330  *         Translate logical coordinates to ranks
73331  *         """
73332  *         cdef int ndim = 0, *icoords = NULL             # <<<<<<<<<<<<<<
73333  *         CHKERR( MPI_Cartdim_get( self.ob_mpi, &ndim) )
73334  *         coords = chkarray_int(coords, ndim, &icoords)
73335  */
73336   __pyx_v_ndim = 0;
73337   __pyx_v_icoords = NULL;
73338 
73339   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1299
73340  *         """
73341  *         cdef int ndim = 0, *icoords = NULL
73342  *         CHKERR( MPI_Cartdim_get( self.ob_mpi, &ndim) )             # <<<<<<<<<<<<<<
73343  *         coords = chkarray_int(coords, ndim, &icoords)
73344  *         cdef int rank = MPI_PROC_NULL
73345  */
73346   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cartdim_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_ndim))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73347 
73348   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1300
73349  *         cdef int ndim = 0, *icoords = NULL
73350  *         CHKERR( MPI_Cartdim_get( self.ob_mpi, &ndim) )
73351  *         coords = chkarray_int(coords, ndim, &icoords)             # <<<<<<<<<<<<<<
73352  *         cdef int rank = MPI_PROC_NULL
73353  *         CHKERR( MPI_Cart_rank(self.ob_mpi, icoords, &rank) )
73354  */
73355   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_coords, __pyx_v_ndim, (&__pyx_v_icoords)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73356   __Pyx_GOTREF(__pyx_t_2);
73357   __Pyx_DECREF(__pyx_v_coords);
73358   __pyx_v_coords = __pyx_t_2;
73359   __pyx_t_2 = 0;
73360 
73361   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1301
73362  *         CHKERR( MPI_Cartdim_get( self.ob_mpi, &ndim) )
73363  *         coords = chkarray_int(coords, ndim, &icoords)
73364  *         cdef int rank = MPI_PROC_NULL             # <<<<<<<<<<<<<<
73365  *         CHKERR( MPI_Cart_rank(self.ob_mpi, icoords, &rank) )
73366  *         return rank
73367  */
73368   __pyx_v_rank = MPI_PROC_NULL;
73369 
73370   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1302
73371  *         coords = chkarray_int(coords, ndim, &icoords)
73372  *         cdef int rank = MPI_PROC_NULL
73373  *         CHKERR( MPI_Cart_rank(self.ob_mpi, icoords, &rank) )             # <<<<<<<<<<<<<<
73374  *         return rank
73375  *
73376  */
73377   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_rank(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_icoords, (&__pyx_v_rank))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73378 
73379   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1303
73380  *         cdef int rank = MPI_PROC_NULL
73381  *         CHKERR( MPI_Cart_rank(self.ob_mpi, icoords, &rank) )
73382  *         return rank             # <<<<<<<<<<<<<<
73383  *
73384  *     def Get_coords(self, int rank):
73385  */
73386   __Pyx_XDECREF(__pyx_r);
73387   __pyx_t_2 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73388   __Pyx_GOTREF(__pyx_t_2);
73389   __pyx_r = __pyx_t_2;
73390   __pyx_t_2 = 0;
73391   goto __pyx_L0;
73392 
73393   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73394   goto __pyx_L0;
73395   __pyx_L1_error:;
73396   __Pyx_XDECREF(__pyx_t_2);
73397   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_cart_rank", __pyx_clineno, __pyx_lineno, __pyx_filename);
73398   __pyx_r = NULL;
73399   __pyx_L0:;
73400   __Pyx_XDECREF(__pyx_v_coords);
73401   __Pyx_XGIVEREF(__pyx_r);
73402   __Pyx_RefNannyFinishContext();
73403   return __pyx_r;
73404 }
73405 
73406 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1305
73407  *         return rank
73408  *
73409  *     def Get_coords(self, int rank):             # <<<<<<<<<<<<<<
73410  *         """
73411  *         Translate ranks to logical coordinates
73412  */
73413 
73414 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_5Get_coords(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
73415 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_5Get_coords[] = "Cartcomm.Get_coords(self, int rank)\n\n        Translate ranks to logical coordinates\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_5Get_coords(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)73416 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_5Get_coords(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
73417   int __pyx_v_rank;
73418   int __pyx_v_ndim;
73419   int *__pyx_v_icoords;
73420   PyObject *__pyx_v_coords = 0;
73421   PyObject *__pyx_r = NULL;
73422   __Pyx_RefNannyDeclarations
73423   int __pyx_t_1;
73424   PyObject *__pyx_t_2 = NULL;
73425   int __pyx_lineno = 0;
73426   const char *__pyx_filename = NULL;
73427   int __pyx_clineno = 0;
73428   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rank,0};
73429   __Pyx_RefNannySetupContext("Get_coords");
73430   {
73431     PyObject* values[1] = {0};
73432     if (unlikely(__pyx_kwds)) {
73433       Py_ssize_t kw_args;
73434       switch (PyTuple_GET_SIZE(__pyx_args)) {
73435         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73436         case  0: break;
73437         default: goto __pyx_L5_argtuple_error;
73438       }
73439       kw_args = PyDict_Size(__pyx_kwds);
73440       switch (PyTuple_GET_SIZE(__pyx_args)) {
73441         case  0:
73442         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
73443         if (likely(values[0])) kw_args--;
73444         else goto __pyx_L5_argtuple_error;
73445       }
73446       if (unlikely(kw_args > 0)) {
73447         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_coords") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73448       }
73449     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
73450       goto __pyx_L5_argtuple_error;
73451     } else {
73452       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73453     }
73454     __pyx_v_rank = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73455   }
73456   goto __pyx_L4_argument_unpacking_done;
73457   __pyx_L5_argtuple_error:;
73458   __Pyx_RaiseArgtupleInvalid("Get_coords", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73459   __pyx_L3_error:;
73460   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_coords", __pyx_clineno, __pyx_lineno, __pyx_filename);
73461   __Pyx_RefNannyFinishContext();
73462   return NULL;
73463   __pyx_L4_argument_unpacking_done:;
73464 
73465   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1309
73466  *         Translate ranks to logical coordinates
73467  *         """
73468  *         cdef int ndim = 0, *icoords = NULL             # <<<<<<<<<<<<<<
73469  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73470  *         cdef object coords = newarray_int(ndim, &icoords)
73471  */
73472   __pyx_v_ndim = 0;
73473   __pyx_v_icoords = NULL;
73474 
73475   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1310
73476  *         """
73477  *         cdef int ndim = 0, *icoords = NULL
73478  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )             # <<<<<<<<<<<<<<
73479  *         cdef object coords = newarray_int(ndim, &icoords)
73480  *         CHKERR( MPI_Cart_coords(self.ob_mpi, rank, ndim, icoords) )
73481  */
73482   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cartdim_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_ndim))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73483 
73484   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1311
73485  *         cdef int ndim = 0, *icoords = NULL
73486  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73487  *         cdef object coords = newarray_int(ndim, &icoords)             # <<<<<<<<<<<<<<
73488  *         CHKERR( MPI_Cart_coords(self.ob_mpi, rank, ndim, icoords) )
73489  *         return coords
73490  */
73491   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_ndim, (&__pyx_v_icoords)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73492   __Pyx_GOTREF(__pyx_t_2);
73493   __pyx_v_coords = __pyx_t_2;
73494   __pyx_t_2 = 0;
73495 
73496   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1312
73497  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73498  *         cdef object coords = newarray_int(ndim, &icoords)
73499  *         CHKERR( MPI_Cart_coords(self.ob_mpi, rank, ndim, icoords) )             # <<<<<<<<<<<<<<
73500  *         return coords
73501  *
73502  */
73503   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_coords(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_rank, __pyx_v_ndim, __pyx_v_icoords)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73504 
73505   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1313
73506  *         cdef object coords = newarray_int(ndim, &icoords)
73507  *         CHKERR( MPI_Cart_coords(self.ob_mpi, rank, ndim, icoords) )
73508  *         return coords             # <<<<<<<<<<<<<<
73509  *
73510  *     # Cartesian Shift Function
73511  */
73512   __Pyx_XDECREF(__pyx_r);
73513   __Pyx_INCREF(__pyx_v_coords);
73514   __pyx_r = __pyx_v_coords;
73515   goto __pyx_L0;
73516 
73517   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73518   goto __pyx_L0;
73519   __pyx_L1_error:;
73520   __Pyx_XDECREF(__pyx_t_2);
73521   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Get_coords", __pyx_clineno, __pyx_lineno, __pyx_filename);
73522   __pyx_r = NULL;
73523   __pyx_L0:;
73524   __Pyx_XDECREF(__pyx_v_coords);
73525   __Pyx_XGIVEREF(__pyx_r);
73526   __Pyx_RefNannyFinishContext();
73527   return __pyx_r;
73528 }
73529 
73530 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1318
73531  *     # ------------------------
73532  *
73533  *     def Shift(self, int direction, int disp):             # <<<<<<<<<<<<<<
73534  *         """
73535  *         Return a tuple (source,dest) of process ranks
73536  */
73537 
73538 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_6Shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
73539 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_6Shift[] = "Cartcomm.Shift(self, int direction, int disp)\n\n        Return a tuple (source,dest) of process ranks\n        for data shifting with Comm.Sendrecv()\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_6Shift(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)73540 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_6Shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
73541   int __pyx_v_direction;
73542   int __pyx_v_disp;
73543   int __pyx_v_source;
73544   int __pyx_v_dest;
73545   PyObject *__pyx_r = NULL;
73546   __Pyx_RefNannyDeclarations
73547   int __pyx_t_1;
73548   PyObject *__pyx_t_2 = NULL;
73549   PyObject *__pyx_t_3 = NULL;
73550   PyObject *__pyx_t_4 = NULL;
73551   int __pyx_lineno = 0;
73552   const char *__pyx_filename = NULL;
73553   int __pyx_clineno = 0;
73554   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__direction,&__pyx_n_s__disp,0};
73555   __Pyx_RefNannySetupContext("Shift");
73556   {
73557     PyObject* values[2] = {0,0};
73558     if (unlikely(__pyx_kwds)) {
73559       Py_ssize_t kw_args;
73560       switch (PyTuple_GET_SIZE(__pyx_args)) {
73561         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
73562         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73563         case  0: break;
73564         default: goto __pyx_L5_argtuple_error;
73565       }
73566       kw_args = PyDict_Size(__pyx_kwds);
73567       switch (PyTuple_GET_SIZE(__pyx_args)) {
73568         case  0:
73569         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__direction);
73570         if (likely(values[0])) kw_args--;
73571         else goto __pyx_L5_argtuple_error;
73572         case  1:
73573         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__disp);
73574         if (likely(values[1])) kw_args--;
73575         else {
73576           __Pyx_RaiseArgtupleInvalid("Shift", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73577         }
73578       }
73579       if (unlikely(kw_args > 0)) {
73580         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Shift") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73581       }
73582     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
73583       goto __pyx_L5_argtuple_error;
73584     } else {
73585       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73586       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
73587     }
73588     __pyx_v_direction = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_direction == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73589     __pyx_v_disp = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_disp == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73590   }
73591   goto __pyx_L4_argument_unpacking_done;
73592   __pyx_L5_argtuple_error:;
73593   __Pyx_RaiseArgtupleInvalid("Shift", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73594   __pyx_L3_error:;
73595   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Shift", __pyx_clineno, __pyx_lineno, __pyx_filename);
73596   __Pyx_RefNannyFinishContext();
73597   return NULL;
73598   __pyx_L4_argument_unpacking_done:;
73599 
73600   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1323
73601  *         for data shifting with Comm.Sendrecv()
73602  *         """
73603  *         cdef int source = MPI_PROC_NULL, dest = MPI_PROC_NULL             # <<<<<<<<<<<<<<
73604  *         CHKERR( MPI_Cart_shift(self.ob_mpi, direction, disp, &source, &dest) )
73605  *         return (source, dest)
73606  */
73607   __pyx_v_source = MPI_PROC_NULL;
73608   __pyx_v_dest = MPI_PROC_NULL;
73609 
73610   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1324
73611  *         """
73612  *         cdef int source = MPI_PROC_NULL, dest = MPI_PROC_NULL
73613  *         CHKERR( MPI_Cart_shift(self.ob_mpi, direction, disp, &source, &dest) )             # <<<<<<<<<<<<<<
73614  *         return (source, dest)
73615  *
73616  */
73617   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_shift(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_direction, __pyx_v_disp, (&__pyx_v_source), (&__pyx_v_dest))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73618 
73619   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1325
73620  *         cdef int source = MPI_PROC_NULL, dest = MPI_PROC_NULL
73621  *         CHKERR( MPI_Cart_shift(self.ob_mpi, direction, disp, &source, &dest) )
73622  *         return (source, dest)             # <<<<<<<<<<<<<<
73623  *
73624  *     # Cartesian Partition Function
73625  */
73626   __Pyx_XDECREF(__pyx_r);
73627   __pyx_t_2 = PyInt_FromLong(__pyx_v_source); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73628   __Pyx_GOTREF(__pyx_t_2);
73629   __pyx_t_3 = PyInt_FromLong(__pyx_v_dest); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73630   __Pyx_GOTREF(__pyx_t_3);
73631   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73632   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
73633   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
73634   __Pyx_GIVEREF(__pyx_t_2);
73635   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
73636   __Pyx_GIVEREF(__pyx_t_3);
73637   __pyx_t_2 = 0;
73638   __pyx_t_3 = 0;
73639   __pyx_r = ((PyObject *)__pyx_t_4);
73640   __pyx_t_4 = 0;
73641   goto __pyx_L0;
73642 
73643   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73644   goto __pyx_L0;
73645   __pyx_L1_error:;
73646   __Pyx_XDECREF(__pyx_t_2);
73647   __Pyx_XDECREF(__pyx_t_3);
73648   __Pyx_XDECREF(__pyx_t_4);
73649   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Shift", __pyx_clineno, __pyx_lineno, __pyx_filename);
73650   __pyx_r = NULL;
73651   __pyx_L0:;
73652   __Pyx_XGIVEREF(__pyx_r);
73653   __Pyx_RefNannyFinishContext();
73654   return __pyx_r;
73655 }
73656 
73657 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1330
73658  *     # ----------------------------
73659  *
73660  *     def Sub(self, remain_dims):             # <<<<<<<<<<<<<<
73661  *         """
73662  *         Return cartesian communicators
73663  */
73664 
73665 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_7Sub(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
73666 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_7Sub[] = "Cartcomm.Sub(self, remain_dims)\n\n        Return cartesian communicators\n        that form lower-dimensional subgrids\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_7Sub(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)73667 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_7Sub(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
73668   PyObject *__pyx_v_remain_dims = 0;
73669   int __pyx_v_ndim;
73670   int *__pyx_v_iremdims;
73671   struct PyMPICartcommObject *__pyx_v_comm = 0;
73672   PyObject *__pyx_r = NULL;
73673   __Pyx_RefNannyDeclarations
73674   int __pyx_t_1;
73675   PyObject *__pyx_t_2 = NULL;
73676   int __pyx_lineno = 0;
73677   const char *__pyx_filename = NULL;
73678   int __pyx_clineno = 0;
73679   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__remain_dims,0};
73680   __Pyx_RefNannySetupContext("Sub");
73681   {
73682     PyObject* values[1] = {0};
73683     if (unlikely(__pyx_kwds)) {
73684       Py_ssize_t kw_args;
73685       switch (PyTuple_GET_SIZE(__pyx_args)) {
73686         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73687         case  0: break;
73688         default: goto __pyx_L5_argtuple_error;
73689       }
73690       kw_args = PyDict_Size(__pyx_kwds);
73691       switch (PyTuple_GET_SIZE(__pyx_args)) {
73692         case  0:
73693         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remain_dims);
73694         if (likely(values[0])) kw_args--;
73695         else goto __pyx_L5_argtuple_error;
73696       }
73697       if (unlikely(kw_args > 0)) {
73698         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Sub") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73699       }
73700     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
73701       goto __pyx_L5_argtuple_error;
73702     } else {
73703       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73704     }
73705     __pyx_v_remain_dims = values[0];
73706   }
73707   goto __pyx_L4_argument_unpacking_done;
73708   __pyx_L5_argtuple_error:;
73709   __Pyx_RaiseArgtupleInvalid("Sub", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73710   __pyx_L3_error:;
73711   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
73712   __Pyx_RefNannyFinishContext();
73713   return NULL;
73714   __pyx_L4_argument_unpacking_done:;
73715   __Pyx_INCREF(__pyx_v_remain_dims);
73716 
73717   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1335
73718  *         that form lower-dimensional subgrids
73719  *         """
73720  *         cdef int ndim = 0, *iremdims = NULL             # <<<<<<<<<<<<<<
73721  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73722  *         remain_dims = chkarray_int(remain_dims, ndim, &iremdims)
73723  */
73724   __pyx_v_ndim = 0;
73725   __pyx_v_iremdims = NULL;
73726 
73727   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1336
73728  *         """
73729  *         cdef int ndim = 0, *iremdims = NULL
73730  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )             # <<<<<<<<<<<<<<
73731  *         remain_dims = chkarray_int(remain_dims, ndim, &iremdims)
73732  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
73733  */
73734   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cartdim_get(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_ndim))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73735 
73736   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1337
73737  *         cdef int ndim = 0, *iremdims = NULL
73738  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73739  *         remain_dims = chkarray_int(remain_dims, ndim, &iremdims)             # <<<<<<<<<<<<<<
73740  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
73741  *         with nogil: CHKERR( MPI_Cart_sub(self.ob_mpi, iremdims, &comm.ob_mpi) )
73742  */
73743   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_remain_dims, __pyx_v_ndim, (&__pyx_v_iremdims)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73744   __Pyx_GOTREF(__pyx_t_2);
73745   __Pyx_DECREF(__pyx_v_remain_dims);
73746   __pyx_v_remain_dims = __pyx_t_2;
73747   __pyx_t_2 = 0;
73748 
73749   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1338
73750  *         CHKERR( MPI_Cartdim_get(self.ob_mpi, &ndim) )
73751  *         remain_dims = chkarray_int(remain_dims, ndim, &iremdims)
73752  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)             # <<<<<<<<<<<<<<
73753  *         with nogil: CHKERR( MPI_Cart_sub(self.ob_mpi, iremdims, &comm.ob_mpi) )
73754  *         return comm
73755  */
73756   __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Cartcomm)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73757   __Pyx_GOTREF(__pyx_t_2);
73758   __Pyx_INCREF(((PyObject *)((struct PyMPICartcommObject *)__pyx_t_2)));
73759   __pyx_v_comm = ((struct PyMPICartcommObject *)__pyx_t_2);
73760   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
73761 
73762   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1339
73763  *         remain_dims = chkarray_int(remain_dims, ndim, &iremdims)
73764  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
73765  *         with nogil: CHKERR( MPI_Cart_sub(self.ob_mpi, iremdims, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
73766  *         return comm
73767  *
73768  */
73769   {
73770       #ifdef WITH_THREAD
73771       PyThreadState *_save = NULL;
73772       #endif
73773       Py_UNBLOCK_THREADS
73774       /*try:*/ {
73775         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_sub(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_iremdims, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L7;}
73776       }
73777       /*finally:*/ {
73778         int __pyx_why;
73779         __pyx_why = 0; goto __pyx_L8;
73780         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
73781         __pyx_L8:;
73782         Py_BLOCK_THREADS
73783         switch (__pyx_why) {
73784           case 4: goto __pyx_L1_error;
73785         }
73786       }
73787   }
73788 
73789   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1340
73790  *         cdef Cartcomm comm = <Cartcomm>Cartcomm.__new__(Cartcomm)
73791  *         with nogil: CHKERR( MPI_Cart_sub(self.ob_mpi, iremdims, &comm.ob_mpi) )
73792  *         return comm             # <<<<<<<<<<<<<<
73793  *
73794  *
73795  */
73796   __Pyx_XDECREF(__pyx_r);
73797   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
73798   __pyx_r = ((PyObject *)__pyx_v_comm);
73799   goto __pyx_L0;
73800 
73801   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73802   goto __pyx_L0;
73803   __pyx_L1_error:;
73804   __Pyx_XDECREF(__pyx_t_2);
73805   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
73806   __pyx_r = NULL;
73807   __pyx_L0:;
73808   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
73809   __Pyx_XDECREF(__pyx_v_remain_dims);
73810   __Pyx_XGIVEREF(__pyx_r);
73811   __Pyx_RefNannyFinishContext();
73812   return __pyx_r;
73813 }
73814 
73815 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1346
73816  *     # -----------------------------
73817  *
73818  *     def Map(self, dims, periods=None):             # <<<<<<<<<<<<<<
73819  *         """
73820  *         Return an optimal placement for the
73821  */
73822 
73823 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_8Map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
73824 static char __pyx_doc_6mpi4py_3MPI_8Cartcomm_8Map[] = "Cartcomm.Map(self, dims, periods=None)\n\n        Return an optimal placement for the\n        calling process on the physical machine\n        ";
__pyx_pf_6mpi4py_3MPI_8Cartcomm_8Map(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)73825 static PyObject *__pyx_pf_6mpi4py_3MPI_8Cartcomm_8Map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
73826   PyObject *__pyx_v_dims = 0;
73827   PyObject *__pyx_v_periods = 0;
73828   int __pyx_v_ndims;
73829   int *__pyx_v_idims;
73830   int *__pyx_v_iperiods;
73831   int __pyx_v_rank;
73832   PyObject *__pyx_r = NULL;
73833   __Pyx_RefNannyDeclarations
73834   PyObject *__pyx_t_1 = NULL;
73835   int __pyx_t_2;
73836   PyObject *__pyx_t_3 = NULL;
73837   PyObject *__pyx_t_4 = NULL;
73838   int __pyx_t_5;
73839   int __pyx_lineno = 0;
73840   const char *__pyx_filename = NULL;
73841   int __pyx_clineno = 0;
73842   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__dims,&__pyx_n_s__periods,0};
73843   __Pyx_RefNannySetupContext("Map");
73844   {
73845     PyObject* values[2] = {0,0};
73846     values[1] = ((PyObject *)Py_None);
73847     if (unlikely(__pyx_kwds)) {
73848       Py_ssize_t kw_args;
73849       switch (PyTuple_GET_SIZE(__pyx_args)) {
73850         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
73851         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73852         case  0: break;
73853         default: goto __pyx_L5_argtuple_error;
73854       }
73855       kw_args = PyDict_Size(__pyx_kwds);
73856       switch (PyTuple_GET_SIZE(__pyx_args)) {
73857         case  0:
73858         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dims);
73859         if (likely(values[0])) kw_args--;
73860         else goto __pyx_L5_argtuple_error;
73861         case  1:
73862         if (kw_args > 0) {
73863           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__periods);
73864           if (value) { values[1] = value; kw_args--; }
73865         }
73866       }
73867       if (unlikely(kw_args > 0)) {
73868         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Map") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73869       }
73870     } else {
73871       switch (PyTuple_GET_SIZE(__pyx_args)) {
73872         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
73873         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
73874         break;
73875         default: goto __pyx_L5_argtuple_error;
73876       }
73877     }
73878     __pyx_v_dims = values[0];
73879     __pyx_v_periods = values[1];
73880   }
73881   goto __pyx_L4_argument_unpacking_done;
73882   __pyx_L5_argtuple_error:;
73883   __Pyx_RaiseArgtupleInvalid("Map", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
73884   __pyx_L3_error:;
73885   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Map", __pyx_clineno, __pyx_lineno, __pyx_filename);
73886   __Pyx_RefNannyFinishContext();
73887   return NULL;
73888   __pyx_L4_argument_unpacking_done:;
73889   __Pyx_INCREF(__pyx_v_dims);
73890   __Pyx_INCREF(__pyx_v_periods);
73891 
73892   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1351
73893  *         calling process on the physical machine
73894  *         """
73895  *         cdef int ndims = 0, *idims = NULL, *iperiods = NULL             # <<<<<<<<<<<<<<
73896  *         dims = getarray_int(dims, &ndims, &idims)
73897  *         if periods is None: periods = [False] * ndims
73898  */
73899   __pyx_v_ndims = 0;
73900   __pyx_v_idims = NULL;
73901   __pyx_v_iperiods = NULL;
73902 
73903   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1352
73904  *         """
73905  *         cdef int ndims = 0, *idims = NULL, *iperiods = NULL
73906  *         dims = getarray_int(dims, &ndims, &idims)             # <<<<<<<<<<<<<<
73907  *         if periods is None: periods = [False] * ndims
73908  *         periods = chkarray_int(periods, ndims, &iperiods)
73909  */
73910   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_dims, (&__pyx_v_ndims), (&__pyx_v_idims)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73911   __Pyx_GOTREF(__pyx_t_1);
73912   __Pyx_DECREF(__pyx_v_dims);
73913   __pyx_v_dims = __pyx_t_1;
73914   __pyx_t_1 = 0;
73915 
73916   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1353
73917  *         cdef int ndims = 0, *idims = NULL, *iperiods = NULL
73918  *         dims = getarray_int(dims, &ndims, &idims)
73919  *         if periods is None: periods = [False] * ndims             # <<<<<<<<<<<<<<
73920  *         periods = chkarray_int(periods, ndims, &iperiods)
73921  *         cdef int rank = MPI_PROC_NULL
73922  */
73923   __pyx_t_2 = (__pyx_v_periods == Py_None);
73924   if (__pyx_t_2) {
73925     __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73926     __Pyx_GOTREF(__pyx_t_1);
73927     __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73928     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
73929     PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
73930     __Pyx_GIVEREF(__pyx_t_1);
73931     __pyx_t_1 = 0;
73932     __pyx_t_1 = PyInt_FromLong(__pyx_v_ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73933     __Pyx_GOTREF(__pyx_t_1);
73934     __pyx_t_4 = PyNumber_Multiply(((PyObject *)__pyx_t_3), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73935     __Pyx_GOTREF(__pyx_t_4);
73936     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
73937     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
73938     __Pyx_DECREF(__pyx_v_periods);
73939     __pyx_v_periods = __pyx_t_4;
73940     __pyx_t_4 = 0;
73941     goto __pyx_L6;
73942   }
73943   __pyx_L6:;
73944 
73945   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1354
73946  *         dims = getarray_int(dims, &ndims, &idims)
73947  *         if periods is None: periods = [False] * ndims
73948  *         periods = chkarray_int(periods, ndims, &iperiods)             # <<<<<<<<<<<<<<
73949  *         cdef int rank = MPI_PROC_NULL
73950  *         CHKERR( MPI_Cart_map(self.ob_mpi, ndims, idims, iperiods, &rank) )
73951  */
73952   __pyx_t_4 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_periods, __pyx_v_ndims, (&__pyx_v_iperiods)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73953   __Pyx_GOTREF(__pyx_t_4);
73954   __Pyx_DECREF(__pyx_v_periods);
73955   __pyx_v_periods = __pyx_t_4;
73956   __pyx_t_4 = 0;
73957 
73958   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1355
73959  *         if periods is None: periods = [False] * ndims
73960  *         periods = chkarray_int(periods, ndims, &iperiods)
73961  *         cdef int rank = MPI_PROC_NULL             # <<<<<<<<<<<<<<
73962  *         CHKERR( MPI_Cart_map(self.ob_mpi, ndims, idims, iperiods, &rank) )
73963  *         return rank
73964  */
73965   __pyx_v_rank = MPI_PROC_NULL;
73966 
73967   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1356
73968  *         periods = chkarray_int(periods, ndims, &iperiods)
73969  *         cdef int rank = MPI_PROC_NULL
73970  *         CHKERR( MPI_Cart_map(self.ob_mpi, ndims, idims, iperiods, &rank) )             # <<<<<<<<<<<<<<
73971  *         return rank
73972  *
73973  */
73974   __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Cart_map(((struct PyMPICartcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_ndims, __pyx_v_idims, __pyx_v_iperiods, (&__pyx_v_rank))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73975 
73976   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1357
73977  *         cdef int rank = MPI_PROC_NULL
73978  *         CHKERR( MPI_Cart_map(self.ob_mpi, ndims, idims, iperiods, &rank) )
73979  *         return rank             # <<<<<<<<<<<<<<
73980  *
73981  *
73982  */
73983   __Pyx_XDECREF(__pyx_r);
73984   __pyx_t_4 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
73985   __Pyx_GOTREF(__pyx_t_4);
73986   __pyx_r = __pyx_t_4;
73987   __pyx_t_4 = 0;
73988   goto __pyx_L0;
73989 
73990   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
73991   goto __pyx_L0;
73992   __pyx_L1_error:;
73993   __Pyx_XDECREF(__pyx_t_1);
73994   __Pyx_XDECREF(__pyx_t_3);
73995   __Pyx_XDECREF(__pyx_t_4);
73996   __Pyx_AddTraceback("mpi4py.MPI.Cartcomm.Map", __pyx_clineno, __pyx_lineno, __pyx_filename);
73997   __pyx_r = NULL;
73998   __pyx_L0:;
73999   __Pyx_XDECREF(__pyx_v_dims);
74000   __Pyx_XDECREF(__pyx_v_periods);
74001   __Pyx_XGIVEREF(__pyx_r);
74002   __Pyx_RefNannyFinishContext();
74003   return __pyx_r;
74004 }
74005 
74006 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1362
74007  * # Cartesian Convenience Function
74008  *
74009  * def Compute_dims(int nnodes, dims):             # <<<<<<<<<<<<<<
74010  *     """
74011  *     Return a balanced distribution of
74012  */
74013 
74014 static PyObject *__pyx_pf_6mpi4py_3MPI_6Compute_dims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
74015 static char __pyx_doc_6mpi4py_3MPI_6Compute_dims[] = "Compute_dims(int nnodes, dims)\n\n    Return a balanced distribution of\n    processes per coordinate direction\n    ";
74016 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_6Compute_dims = {__Pyx_NAMESTR("Compute_dims"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Compute_dims, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Compute_dims)};
__pyx_pf_6mpi4py_3MPI_6Compute_dims(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)74017 static PyObject *__pyx_pf_6mpi4py_3MPI_6Compute_dims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74018   int __pyx_v_nnodes;
74019   PyObject *__pyx_v_dims = 0;
74020   int __pyx_v_ndims;
74021   int *__pyx_v_idims;
74022   PyObject *__pyx_r = NULL;
74023   __Pyx_RefNannyDeclarations
74024   PyObject *__pyx_t_1 = NULL;
74025   PyObject *__pyx_t_2 = NULL;
74026   PyObject *__pyx_t_3 = NULL;
74027   Py_ssize_t __pyx_t_4;
74028   PyObject *__pyx_t_5 = NULL;
74029   PyObject *__pyx_t_6 = NULL;
74030   PyObject *__pyx_t_7 = NULL;
74031   int __pyx_t_8;
74032   PyObject *__pyx_t_9 = NULL;
74033   PyObject *__pyx_t_10 = NULL;
74034   PyObject *__pyx_t_11 = NULL;
74035   int __pyx_lineno = 0;
74036   const char *__pyx_filename = NULL;
74037   int __pyx_clineno = 0;
74038   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__nnodes,&__pyx_n_s__dims,0};
74039   __Pyx_RefNannySetupContext("Compute_dims");
74040   __pyx_self = __pyx_self;
74041   {
74042     PyObject* values[2] = {0,0};
74043     if (unlikely(__pyx_kwds)) {
74044       Py_ssize_t kw_args;
74045       switch (PyTuple_GET_SIZE(__pyx_args)) {
74046         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
74047         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
74048         case  0: break;
74049         default: goto __pyx_L5_argtuple_error;
74050       }
74051       kw_args = PyDict_Size(__pyx_kwds);
74052       switch (PyTuple_GET_SIZE(__pyx_args)) {
74053         case  0:
74054         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nnodes);
74055         if (likely(values[0])) kw_args--;
74056         else goto __pyx_L5_argtuple_error;
74057         case  1:
74058         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dims);
74059         if (likely(values[1])) kw_args--;
74060         else {
74061           __Pyx_RaiseArgtupleInvalid("Compute_dims", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74062         }
74063       }
74064       if (unlikely(kw_args > 0)) {
74065         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Compute_dims") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74066       }
74067     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
74068       goto __pyx_L5_argtuple_error;
74069     } else {
74070       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
74071       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
74072     }
74073     __pyx_v_nnodes = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_nnodes == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74074     __pyx_v_dims = values[1];
74075   }
74076   goto __pyx_L4_argument_unpacking_done;
74077   __pyx_L5_argtuple_error:;
74078   __Pyx_RaiseArgtupleInvalid("Compute_dims", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74079   __pyx_L3_error:;
74080   __Pyx_AddTraceback("mpi4py.MPI.Compute_dims", __pyx_clineno, __pyx_lineno, __pyx_filename);
74081   __Pyx_RefNannyFinishContext();
74082   return NULL;
74083   __pyx_L4_argument_unpacking_done:;
74084   __Pyx_INCREF(__pyx_v_dims);
74085 
74086   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1367
74087  *     processes per coordinate direction
74088  *     """
74089  *     cdef int ndims=0, *idims = NULL             # <<<<<<<<<<<<<<
74090  *     try:
74091  *         ndims = <int>len(dims)
74092  */
74093   __pyx_v_ndims = 0;
74094   __pyx_v_idims = NULL;
74095 
74096   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1368
74097  *     """
74098  *     cdef int ndims=0, *idims = NULL
74099  *     try:             # <<<<<<<<<<<<<<
74100  *         ndims = <int>len(dims)
74101  *     except:
74102  */
74103   {
74104     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
74105     __Pyx_XGOTREF(__pyx_t_1);
74106     __Pyx_XGOTREF(__pyx_t_2);
74107     __Pyx_XGOTREF(__pyx_t_3);
74108     /*try:*/ {
74109 
74110       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1369
74111  *     cdef int ndims=0, *idims = NULL
74112  *     try:
74113  *         ndims = <int>len(dims)             # <<<<<<<<<<<<<<
74114  *     except:
74115  *         ndims = dims
74116  */
74117       __pyx_t_4 = PyObject_Length(__pyx_v_dims); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1369; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
74118       __pyx_v_ndims = ((int)__pyx_t_4);
74119     }
74120     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
74121     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
74122     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
74123     goto __pyx_L13_try_end;
74124     __pyx_L6_error:;
74125 
74126     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1370
74127  *     try:
74128  *         ndims = <int>len(dims)
74129  *     except:             # <<<<<<<<<<<<<<
74130  *         ndims = dims
74131  *         dims = [0] * ndims
74132  */
74133     /*except:*/ {
74134       __Pyx_AddTraceback("mpi4py.MPI.Compute_dims", __pyx_clineno, __pyx_lineno, __pyx_filename);
74135       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
74136       __Pyx_GOTREF(__pyx_t_5);
74137       __Pyx_GOTREF(__pyx_t_6);
74138       __Pyx_GOTREF(__pyx_t_7);
74139 
74140       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1371
74141  *         ndims = <int>len(dims)
74142  *     except:
74143  *         ndims = dims             # <<<<<<<<<<<<<<
74144  *         dims = [0] * ndims
74145  *     dims = chkarray_int(dims, ndims, &idims)
74146  */
74147       __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_v_dims); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
74148       __pyx_v_ndims = __pyx_t_8;
74149 
74150       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1372
74151  *     except:
74152  *         ndims = dims
74153  *         dims = [0] * ndims             # <<<<<<<<<<<<<<
74154  *     dims = chkarray_int(dims, ndims, &idims)
74155  *     CHKERR( MPI_Dims_create(nnodes, ndims, idims) )
74156  */
74157       __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
74158       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
74159       __Pyx_INCREF(__pyx_int_0);
74160       PyList_SET_ITEM(__pyx_t_9, 0, __pyx_int_0);
74161       __Pyx_GIVEREF(__pyx_int_0);
74162       __pyx_t_10 = PyInt_FromLong(__pyx_v_ndims); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
74163       __Pyx_GOTREF(__pyx_t_10);
74164       __pyx_t_11 = PyNumber_Multiply(((PyObject *)__pyx_t_9), __pyx_t_10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
74165       __Pyx_GOTREF(__pyx_t_11);
74166       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
74167       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
74168       __Pyx_DECREF(__pyx_v_dims);
74169       __pyx_v_dims = __pyx_t_11;
74170       __pyx_t_11 = 0;
74171       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
74172       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
74173       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
74174       goto __pyx_L7_exception_handled;
74175     }
74176     __pyx_L8_except_error:;
74177     __Pyx_XGIVEREF(__pyx_t_1);
74178     __Pyx_XGIVEREF(__pyx_t_2);
74179     __Pyx_XGIVEREF(__pyx_t_3);
74180     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
74181     goto __pyx_L1_error;
74182     __pyx_L7_exception_handled:;
74183     __Pyx_XGIVEREF(__pyx_t_1);
74184     __Pyx_XGIVEREF(__pyx_t_2);
74185     __Pyx_XGIVEREF(__pyx_t_3);
74186     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
74187     __pyx_L13_try_end:;
74188   }
74189 
74190   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1373
74191  *         ndims = dims
74192  *         dims = [0] * ndims
74193  *     dims = chkarray_int(dims, ndims, &idims)             # <<<<<<<<<<<<<<
74194  *     CHKERR( MPI_Dims_create(nnodes, ndims, idims) )
74195  *     return dims
74196  */
74197   __pyx_t_7 = __pyx_f_6mpi4py_3MPI_chkarray_int(__pyx_v_dims, __pyx_v_ndims, (&__pyx_v_idims)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74198   __Pyx_GOTREF(__pyx_t_7);
74199   __Pyx_DECREF(__pyx_v_dims);
74200   __pyx_v_dims = __pyx_t_7;
74201   __pyx_t_7 = 0;
74202 
74203   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1374
74204  *         dims = [0] * ndims
74205  *     dims = chkarray_int(dims, ndims, &idims)
74206  *     CHKERR( MPI_Dims_create(nnodes, ndims, idims) )             # <<<<<<<<<<<<<<
74207  *     return dims
74208  *
74209  */
74210   __pyx_t_8 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dims_create(__pyx_v_nnodes, __pyx_v_ndims, __pyx_v_idims)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74211 
74212   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1375
74213  *     dims = chkarray_int(dims, ndims, &idims)
74214  *     CHKERR( MPI_Dims_create(nnodes, ndims, idims) )
74215  *     return dims             # <<<<<<<<<<<<<<
74216  *
74217  *
74218  */
74219   __Pyx_XDECREF(__pyx_r);
74220   __Pyx_INCREF(__pyx_v_dims);
74221   __pyx_r = __pyx_v_dims;
74222   goto __pyx_L0;
74223 
74224   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74225   goto __pyx_L0;
74226   __pyx_L1_error:;
74227   __Pyx_XDECREF(__pyx_t_5);
74228   __Pyx_XDECREF(__pyx_t_6);
74229   __Pyx_XDECREF(__pyx_t_7);
74230   __Pyx_XDECREF(__pyx_t_9);
74231   __Pyx_XDECREF(__pyx_t_10);
74232   __Pyx_XDECREF(__pyx_t_11);
74233   __Pyx_AddTraceback("mpi4py.MPI.Compute_dims", __pyx_clineno, __pyx_lineno, __pyx_filename);
74234   __pyx_r = NULL;
74235   __pyx_L0:;
74236   __Pyx_XDECREF(__pyx_v_dims);
74237   __Pyx_XGIVEREF(__pyx_r);
74238   __Pyx_RefNannyFinishContext();
74239   return __pyx_r;
74240 }
74241 
74242 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1384
74243  *     """
74244  *
74245  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
74246  *         cdef int topo = MPI_GRAPH
74247  *         if self.ob_mpi != MPI_COMM_NULL:
74248  */
74249 
74250 static int __pyx_pf_6mpi4py_3MPI_9Graphcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)74251 static int __pyx_pf_6mpi4py_3MPI_9Graphcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74252   struct PyMPICommObject *__pyx_v_comm = 0;
74253   int __pyx_v_topo;
74254   int __pyx_r;
74255   __Pyx_RefNannyDeclarations
74256   int __pyx_t_1;
74257   int __pyx_t_2;
74258   PyObject *__pyx_t_3 = NULL;
74259   int __pyx_lineno = 0;
74260   const char *__pyx_filename = NULL;
74261   int __pyx_clineno = 0;
74262   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
74263   __Pyx_RefNannySetupContext("__cinit__");
74264   {
74265     PyObject* values[1] = {0};
74266     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
74267     if (unlikely(__pyx_kwds)) {
74268       Py_ssize_t kw_args;
74269       switch (PyTuple_GET_SIZE(__pyx_args)) {
74270         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
74271         case  0: break;
74272         default: goto __pyx_L5_argtuple_error;
74273       }
74274       kw_args = PyDict_Size(__pyx_kwds);
74275       switch (PyTuple_GET_SIZE(__pyx_args)) {
74276         case  0:
74277         if (kw_args > 0) {
74278           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
74279           if (value) { values[0] = value; kw_args--; }
74280         }
74281       }
74282       if (unlikely(kw_args > 0)) {
74283         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74284       }
74285     } else {
74286       switch (PyTuple_GET_SIZE(__pyx_args)) {
74287         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
74288         case  0: break;
74289         default: goto __pyx_L5_argtuple_error;
74290       }
74291     }
74292     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
74293   }
74294   goto __pyx_L4_argument_unpacking_done;
74295   __pyx_L5_argtuple_error:;
74296   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
74297   __pyx_L3_error:;
74298   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74299   __Pyx_RefNannyFinishContext();
74300   return -1;
74301   __pyx_L4_argument_unpacking_done:;
74302   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74303 
74304   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1385
74305  *
74306  *     def __cinit__(self, Comm comm=None):
74307  *         cdef int topo = MPI_GRAPH             # <<<<<<<<<<<<<<
74308  *         if self.ob_mpi != MPI_COMM_NULL:
74309  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
74310  */
74311   __pyx_v_topo = MPI_GRAPH;
74312 
74313   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1386
74314  *     def __cinit__(self, Comm comm=None):
74315  *         cdef int topo = MPI_GRAPH
74316  *         if self.ob_mpi != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
74317  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
74318  *             if topo != MPI_GRAPH: raise TypeError(
74319  */
74320   __pyx_t_1 = (((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi != MPI_COMM_NULL);
74321   if (__pyx_t_1) {
74322 
74323     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1387
74324  *         cdef int topo = MPI_GRAPH
74325  *         if self.ob_mpi != MPI_COMM_NULL:
74326  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )             # <<<<<<<<<<<<<<
74327  *             if topo != MPI_GRAPH: raise TypeError(
74328  *                 "expecting a general graph communicator")
74329  */
74330     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Topo_test(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_topo))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74331 
74332     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1388
74333  *         if self.ob_mpi != MPI_COMM_NULL:
74334  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
74335  *             if topo != MPI_GRAPH: raise TypeError(             # <<<<<<<<<<<<<<
74336  *                 "expecting a general graph communicator")
74337  *
74338  */
74339     __pyx_t_1 = (__pyx_v_topo != MPI_GRAPH);
74340     if (__pyx_t_1) {
74341       __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_92), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74342       __Pyx_GOTREF(__pyx_t_3);
74343       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
74344       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74345       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74346       goto __pyx_L7;
74347     }
74348     __pyx_L7:;
74349     goto __pyx_L6;
74350   }
74351   __pyx_L6:;
74352 
74353   __pyx_r = 0;
74354   goto __pyx_L0;
74355   __pyx_L1_error:;
74356   __Pyx_XDECREF(__pyx_t_3);
74357   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74358   __pyx_r = -1;
74359   __pyx_L0:;
74360   __Pyx_RefNannyFinishContext();
74361   return __pyx_r;
74362 }
74363 
74364 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1394
74365  *     # -------------------------
74366  *
74367  *     def Dup(self):             # <<<<<<<<<<<<<<
74368  *         """
74369  *         Duplicate an existing communicator
74370  */
74371 
74372 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
74373 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_1Dup[] = "Graphcomm.Dup(self)\n\n        Duplicate an existing communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_1Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)74374 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74375   struct PyMPIGraphcommObject *__pyx_v_comm = 0;
74376   PyObject *__pyx_r = NULL;
74377   __Pyx_RefNannyDeclarations
74378   PyObject *__pyx_t_1 = NULL;
74379   int __pyx_t_2;
74380   int __pyx_lineno = 0;
74381   const char *__pyx_filename = NULL;
74382   int __pyx_clineno = 0;
74383   __Pyx_RefNannySetupContext("Dup");
74384   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
74385     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
74386   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
74387 
74388   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1398
74389  *         Duplicate an existing communicator
74390  *         """
74391  *         cdef Graphcomm comm = <Graphcomm>type(self)()             # <<<<<<<<<<<<<<
74392  *         with nogil: CHKERR( MPI_Comm_dup(
74393  *             self.ob_mpi, &comm.ob_mpi) )
74394  */
74395   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74396   __Pyx_GOTREF(__pyx_t_1);
74397   __Pyx_INCREF(((PyObject *)((struct PyMPIGraphcommObject *)__pyx_t_1)));
74398   __pyx_v_comm = ((struct PyMPIGraphcommObject *)__pyx_t_1);
74399   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74400 
74401   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1399
74402  *         """
74403  *         cdef Graphcomm comm = <Graphcomm>type(self)()
74404  *         with nogil: CHKERR( MPI_Comm_dup(             # <<<<<<<<<<<<<<
74405  *             self.ob_mpi, &comm.ob_mpi) )
74406  *         return comm
74407  */
74408   {
74409       #ifdef WITH_THREAD
74410       PyThreadState *_save = NULL;
74411       #endif
74412       Py_UNBLOCK_THREADS
74413       /*try:*/ {
74414 
74415         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1400
74416  *         cdef Graphcomm comm = <Graphcomm>type(self)()
74417  *         with nogil: CHKERR( MPI_Comm_dup(
74418  *             self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
74419  *         return comm
74420  *
74421  */
74422         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L6;}
74423       }
74424 
74425       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1399
74426  *         """
74427  *         cdef Graphcomm comm = <Graphcomm>type(self)()
74428  *         with nogil: CHKERR( MPI_Comm_dup(             # <<<<<<<<<<<<<<
74429  *             self.ob_mpi, &comm.ob_mpi) )
74430  *         return comm
74431  */
74432       /*finally:*/ {
74433         int __pyx_why;
74434         __pyx_why = 0; goto __pyx_L7;
74435         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
74436         __pyx_L7:;
74437         Py_BLOCK_THREADS
74438         switch (__pyx_why) {
74439           case 4: goto __pyx_L1_error;
74440         }
74441       }
74442   }
74443 
74444   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1401
74445  *         with nogil: CHKERR( MPI_Comm_dup(
74446  *             self.ob_mpi, &comm.ob_mpi) )
74447  *         return comm             # <<<<<<<<<<<<<<
74448  *
74449  *     # Graph Inquiry Functions
74450  */
74451   __Pyx_XDECREF(__pyx_r);
74452   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
74453   __pyx_r = ((PyObject *)__pyx_v_comm);
74454   goto __pyx_L0;
74455 
74456   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74457   goto __pyx_L0;
74458   __pyx_L1_error:;
74459   __Pyx_XDECREF(__pyx_t_1);
74460   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
74461   __pyx_r = NULL;
74462   __pyx_L0:;
74463   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
74464   __Pyx_XGIVEREF(__pyx_r);
74465   __Pyx_RefNannyFinishContext();
74466   return __pyx_r;
74467 }
74468 
74469 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1406
74470  *     # -----------------------
74471  *
74472  *     def Get_dims(self):             # <<<<<<<<<<<<<<
74473  *         """
74474  *         Return the number of nodes and edges
74475  */
74476 
74477 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_2Get_dims(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
74478 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_2Get_dims[] = "Graphcomm.Get_dims(self)\n\n        Return the number of nodes and edges\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_2Get_dims(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)74479 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_2Get_dims(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74480   int __pyx_v_nnodes;
74481   int __pyx_v_nedges;
74482   PyObject *__pyx_r = NULL;
74483   __Pyx_RefNannyDeclarations
74484   int __pyx_t_1;
74485   PyObject *__pyx_t_2 = NULL;
74486   PyObject *__pyx_t_3 = NULL;
74487   PyObject *__pyx_t_4 = NULL;
74488   int __pyx_lineno = 0;
74489   const char *__pyx_filename = NULL;
74490   int __pyx_clineno = 0;
74491   __Pyx_RefNannySetupContext("Get_dims");
74492   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
74493     __Pyx_RaiseArgtupleInvalid("Get_dims", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
74494   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_dims", 0))) return NULL;
74495 
74496   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1410
74497  *         Return the number of nodes and edges
74498  *         """
74499  *         cdef int nnodes = 0, nedges = 0             # <<<<<<<<<<<<<<
74500  *         CHKERR( MPI_Graphdims_get(self.ob_mpi, &nnodes, &nedges) )
74501  *         return (nnodes, nedges)
74502  */
74503   __pyx_v_nnodes = 0;
74504   __pyx_v_nedges = 0;
74505 
74506   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1411
74507  *         """
74508  *         cdef int nnodes = 0, nedges = 0
74509  *         CHKERR( MPI_Graphdims_get(self.ob_mpi, &nnodes, &nedges) )             # <<<<<<<<<<<<<<
74510  *         return (nnodes, nedges)
74511  *
74512  */
74513   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graphdims_get(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_nnodes), (&__pyx_v_nedges))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74514 
74515   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1412
74516  *         cdef int nnodes = 0, nedges = 0
74517  *         CHKERR( MPI_Graphdims_get(self.ob_mpi, &nnodes, &nedges) )
74518  *         return (nnodes, nedges)             # <<<<<<<<<<<<<<
74519  *
74520  *     property dims:
74521  */
74522   __Pyx_XDECREF(__pyx_r);
74523   __pyx_t_2 = PyInt_FromLong(__pyx_v_nnodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74524   __Pyx_GOTREF(__pyx_t_2);
74525   __pyx_t_3 = PyInt_FromLong(__pyx_v_nedges); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74526   __Pyx_GOTREF(__pyx_t_3);
74527   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74528   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
74529   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
74530   __Pyx_GIVEREF(__pyx_t_2);
74531   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
74532   __Pyx_GIVEREF(__pyx_t_3);
74533   __pyx_t_2 = 0;
74534   __pyx_t_3 = 0;
74535   __pyx_r = ((PyObject *)__pyx_t_4);
74536   __pyx_t_4 = 0;
74537   goto __pyx_L0;
74538 
74539   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74540   goto __pyx_L0;
74541   __pyx_L1_error:;
74542   __Pyx_XDECREF(__pyx_t_2);
74543   __Pyx_XDECREF(__pyx_t_3);
74544   __Pyx_XDECREF(__pyx_t_4);
74545   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_dims", __pyx_clineno, __pyx_lineno, __pyx_filename);
74546   __pyx_r = NULL;
74547   __pyx_L0:;
74548   __Pyx_XGIVEREF(__pyx_r);
74549   __Pyx_RefNannyFinishContext();
74550   return __pyx_r;
74551 }
74552 
74553 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1416
74554  *     property dims:
74555  *         """number of nodes and edges"""
74556  *         def __get__(self):             # <<<<<<<<<<<<<<
74557  *             return self.Get_topo()
74558  *
74559  */
74560 
74561 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4dims___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_4dims___get__(PyObject * __pyx_v_self)74562 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4dims___get__(PyObject *__pyx_v_self) {
74563   PyObject *__pyx_r = NULL;
74564   __Pyx_RefNannyDeclarations
74565   PyObject *__pyx_t_1 = NULL;
74566   PyObject *__pyx_t_2 = NULL;
74567   int __pyx_lineno = 0;
74568   const char *__pyx_filename = NULL;
74569   int __pyx_clineno = 0;
74570   __Pyx_RefNannySetupContext("__get__");
74571 
74572   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1417
74573  *         """number of nodes and edges"""
74574  *         def __get__(self):
74575  *             return self.Get_topo()             # <<<<<<<<<<<<<<
74576  *
74577  *     property nnodes:
74578  */
74579   __Pyx_XDECREF(__pyx_r);
74580   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74581   __Pyx_GOTREF(__pyx_t_1);
74582   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74583   __Pyx_GOTREF(__pyx_t_2);
74584   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74585   __pyx_r = __pyx_t_2;
74586   __pyx_t_2 = 0;
74587   goto __pyx_L0;
74588 
74589   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74590   goto __pyx_L0;
74591   __pyx_L1_error:;
74592   __Pyx_XDECREF(__pyx_t_1);
74593   __Pyx_XDECREF(__pyx_t_2);
74594   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.dims.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74595   __pyx_r = NULL;
74596   __pyx_L0:;
74597   __Pyx_XGIVEREF(__pyx_r);
74598   __Pyx_RefNannyFinishContext();
74599   return __pyx_r;
74600 }
74601 
74602 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1421
74603  *     property nnodes:
74604  *         """number of nodes"""
74605  *         def __get__(self):             # <<<<<<<<<<<<<<
74606  *             return self.Get_topo()[0]
74607  *
74608  */
74609 
74610 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nnodes___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nnodes___get__(PyObject * __pyx_v_self)74611 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nnodes___get__(PyObject *__pyx_v_self) {
74612   PyObject *__pyx_r = NULL;
74613   __Pyx_RefNannyDeclarations
74614   PyObject *__pyx_t_1 = NULL;
74615   PyObject *__pyx_t_2 = NULL;
74616   int __pyx_lineno = 0;
74617   const char *__pyx_filename = NULL;
74618   int __pyx_clineno = 0;
74619   __Pyx_RefNannySetupContext("__get__");
74620 
74621   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1422
74622  *         """number of nodes"""
74623  *         def __get__(self):
74624  *             return self.Get_topo()[0]             # <<<<<<<<<<<<<<
74625  *
74626  *     property nedges:
74627  */
74628   __Pyx_XDECREF(__pyx_r);
74629   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74630   __Pyx_GOTREF(__pyx_t_1);
74631   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74632   __Pyx_GOTREF(__pyx_t_2);
74633   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74634   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74635   __Pyx_GOTREF(__pyx_t_1);
74636   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74637   __pyx_r = __pyx_t_1;
74638   __pyx_t_1 = 0;
74639   goto __pyx_L0;
74640 
74641   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74642   goto __pyx_L0;
74643   __pyx_L1_error:;
74644   __Pyx_XDECREF(__pyx_t_1);
74645   __Pyx_XDECREF(__pyx_t_2);
74646   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.nnodes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74647   __pyx_r = NULL;
74648   __pyx_L0:;
74649   __Pyx_XGIVEREF(__pyx_r);
74650   __Pyx_RefNannyFinishContext();
74651   return __pyx_r;
74652 }
74653 
74654 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1426
74655  *     property nedges:
74656  *         """number of edges"""
74657  *         def __get__(self):             # <<<<<<<<<<<<<<
74658  *             return self.Get_topo()[1]
74659  *
74660  */
74661 
74662 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nedges___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nedges___get__(PyObject * __pyx_v_self)74663 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6nedges___get__(PyObject *__pyx_v_self) {
74664   PyObject *__pyx_r = NULL;
74665   __Pyx_RefNannyDeclarations
74666   PyObject *__pyx_t_1 = NULL;
74667   PyObject *__pyx_t_2 = NULL;
74668   int __pyx_lineno = 0;
74669   const char *__pyx_filename = NULL;
74670   int __pyx_clineno = 0;
74671   __Pyx_RefNannySetupContext("__get__");
74672 
74673   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1427
74674  *         """number of edges"""
74675  *         def __get__(self):
74676  *             return self.Get_topo()[1]             # <<<<<<<<<<<<<<
74677  *
74678  *     def Get_topo(self):
74679  */
74680   __Pyx_XDECREF(__pyx_r);
74681   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74682   __Pyx_GOTREF(__pyx_t_1);
74683   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74684   __Pyx_GOTREF(__pyx_t_2);
74685   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74686   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74687   __Pyx_GOTREF(__pyx_t_1);
74688   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74689   __pyx_r = __pyx_t_1;
74690   __pyx_t_1 = 0;
74691   goto __pyx_L0;
74692 
74693   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74694   goto __pyx_L0;
74695   __pyx_L1_error:;
74696   __Pyx_XDECREF(__pyx_t_1);
74697   __Pyx_XDECREF(__pyx_t_2);
74698   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.nedges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74699   __pyx_r = NULL;
74700   __pyx_L0:;
74701   __Pyx_XGIVEREF(__pyx_r);
74702   __Pyx_RefNannyFinishContext();
74703   return __pyx_r;
74704 }
74705 
74706 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1429
74707  *             return self.Get_topo()[1]
74708  *
74709  *     def Get_topo(self):             # <<<<<<<<<<<<<<
74710  *         """
74711  *         Return index and edges
74712  */
74713 
74714 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_3Get_topo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
74715 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_3Get_topo[] = "Graphcomm.Get_topo(self)\n\n        Return index and edges\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_3Get_topo(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)74716 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_3Get_topo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74717   int __pyx_v_nindex;
74718   int __pyx_v_nedges;
74719   int *__pyx_v_iindex;
74720   PyObject *__pyx_v_tmp1 = 0;
74721   int *__pyx_v_iedges;
74722   PyObject *__pyx_v_tmp2 = 0;
74723   int __pyx_v_i;
74724   PyObject *__pyx_v_index = 0;
74725   PyObject *__pyx_v_edges = 0;
74726   PyObject *__pyx_r = NULL;
74727   __Pyx_RefNannyDeclarations
74728   int __pyx_t_1;
74729   PyObject *__pyx_t_2 = NULL;
74730   PyObject *__pyx_t_3 = NULL;
74731   int __pyx_lineno = 0;
74732   const char *__pyx_filename = NULL;
74733   int __pyx_clineno = 0;
74734   __Pyx_RefNannySetupContext("Get_topo");
74735   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
74736     __Pyx_RaiseArgtupleInvalid("Get_topo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
74737   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_topo", 0))) return NULL;
74738 
74739   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1433
74740  *         Return index and edges
74741  *         """
74742  *         cdef int nindex = 0, nedges = 0             # <<<<<<<<<<<<<<
74743  *         CHKERR( MPI_Graphdims_get( self.ob_mpi, &nindex, &nedges) )
74744  *         cdef int *iindex = NULL
74745  */
74746   __pyx_v_nindex = 0;
74747   __pyx_v_nedges = 0;
74748 
74749   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1434
74750  *         """
74751  *         cdef int nindex = 0, nedges = 0
74752  *         CHKERR( MPI_Graphdims_get( self.ob_mpi, &nindex, &nedges) )             # <<<<<<<<<<<<<<
74753  *         cdef int *iindex = NULL
74754  *         cdef tmp1 = newarray_int(nindex, &iindex)
74755  */
74756   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graphdims_get(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_nindex), (&__pyx_v_nedges))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74757 
74758   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1435
74759  *         cdef int nindex = 0, nedges = 0
74760  *         CHKERR( MPI_Graphdims_get( self.ob_mpi, &nindex, &nedges) )
74761  *         cdef int *iindex = NULL             # <<<<<<<<<<<<<<
74762  *         cdef tmp1 = newarray_int(nindex, &iindex)
74763  *         cdef int *iedges = NULL
74764  */
74765   __pyx_v_iindex = NULL;
74766 
74767   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1436
74768  *         CHKERR( MPI_Graphdims_get( self.ob_mpi, &nindex, &nedges) )
74769  *         cdef int *iindex = NULL
74770  *         cdef tmp1 = newarray_int(nindex, &iindex)             # <<<<<<<<<<<<<<
74771  *         cdef int *iedges = NULL
74772  *         cdef tmp2 = newarray_int(nedges, &iedges)
74773  */
74774   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_nindex, (&__pyx_v_iindex)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74775   __Pyx_GOTREF(__pyx_t_2);
74776   __pyx_v_tmp1 = __pyx_t_2;
74777   __pyx_t_2 = 0;
74778 
74779   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1437
74780  *         cdef int *iindex = NULL
74781  *         cdef tmp1 = newarray_int(nindex, &iindex)
74782  *         cdef int *iedges = NULL             # <<<<<<<<<<<<<<
74783  *         cdef tmp2 = newarray_int(nedges, &iedges)
74784  *         CHKERR( MPI_Graph_get(self.ob_mpi, nindex, nedges, iindex, iedges) )
74785  */
74786   __pyx_v_iedges = NULL;
74787 
74788   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1438
74789  *         cdef tmp1 = newarray_int(nindex, &iindex)
74790  *         cdef int *iedges = NULL
74791  *         cdef tmp2 = newarray_int(nedges, &iedges)             # <<<<<<<<<<<<<<
74792  *         CHKERR( MPI_Graph_get(self.ob_mpi, nindex, nedges, iindex, iedges) )
74793  *         cdef int i = 0
74794  */
74795   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_nedges, (&__pyx_v_iedges)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74796   __Pyx_GOTREF(__pyx_t_2);
74797   __pyx_v_tmp2 = __pyx_t_2;
74798   __pyx_t_2 = 0;
74799 
74800   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1439
74801  *         cdef int *iedges = NULL
74802  *         cdef tmp2 = newarray_int(nedges, &iedges)
74803  *         CHKERR( MPI_Graph_get(self.ob_mpi, nindex, nedges, iindex, iedges) )             # <<<<<<<<<<<<<<
74804  *         cdef int i = 0
74805  *         cdef object index = [iindex[i] for i from 0 <= i < nindex]
74806  */
74807   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_get(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_nindex, __pyx_v_nedges, __pyx_v_iindex, __pyx_v_iedges)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74808 
74809   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1440
74810  *         cdef tmp2 = newarray_int(nedges, &iedges)
74811  *         CHKERR( MPI_Graph_get(self.ob_mpi, nindex, nedges, iindex, iedges) )
74812  *         cdef int i = 0             # <<<<<<<<<<<<<<
74813  *         cdef object index = [iindex[i] for i from 0 <= i < nindex]
74814  *         cdef object edges = [iedges[i] for i from 0 <= i < nedges]
74815  */
74816   __pyx_v_i = 0;
74817 
74818   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1441
74819  *         CHKERR( MPI_Graph_get(self.ob_mpi, nindex, nedges, iindex, iedges) )
74820  *         cdef int i = 0
74821  *         cdef object index = [iindex[i] for i from 0 <= i < nindex]             # <<<<<<<<<<<<<<
74822  *         cdef object edges = [iedges[i] for i from 0 <= i < nedges]
74823  *         return (index, edges)
74824  */
74825   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74826   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
74827   __pyx_t_1 = __pyx_v_nindex;
74828   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
74829     __pyx_t_3 = PyInt_FromLong((__pyx_v_iindex[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74830     __Pyx_GOTREF(__pyx_t_3);
74831     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74832     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74833   }
74834   __Pyx_INCREF(((PyObject *)__pyx_t_2));
74835   __pyx_v_index = ((PyObject *)__pyx_t_2);
74836   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
74837 
74838   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1442
74839  *         cdef int i = 0
74840  *         cdef object index = [iindex[i] for i from 0 <= i < nindex]
74841  *         cdef object edges = [iedges[i] for i from 0 <= i < nedges]             # <<<<<<<<<<<<<<
74842  *         return (index, edges)
74843  *
74844  */
74845   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74846   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
74847   __pyx_t_1 = __pyx_v_nedges;
74848   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
74849     __pyx_t_3 = PyInt_FromLong((__pyx_v_iedges[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74850     __Pyx_GOTREF(__pyx_t_3);
74851     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74852     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
74853   }
74854   __Pyx_INCREF(((PyObject *)__pyx_t_2));
74855   __pyx_v_edges = ((PyObject *)__pyx_t_2);
74856   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
74857 
74858   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1443
74859  *         cdef object index = [iindex[i] for i from 0 <= i < nindex]
74860  *         cdef object edges = [iedges[i] for i from 0 <= i < nedges]
74861  *         return (index, edges)             # <<<<<<<<<<<<<<
74862  *
74863  *     property topo:
74864  */
74865   __Pyx_XDECREF(__pyx_r);
74866   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74867   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
74868   __Pyx_INCREF(__pyx_v_index);
74869   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_index);
74870   __Pyx_GIVEREF(__pyx_v_index);
74871   __Pyx_INCREF(__pyx_v_edges);
74872   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_edges);
74873   __Pyx_GIVEREF(__pyx_v_edges);
74874   __pyx_r = ((PyObject *)__pyx_t_2);
74875   __pyx_t_2 = 0;
74876   goto __pyx_L0;
74877 
74878   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74879   goto __pyx_L0;
74880   __pyx_L1_error:;
74881   __Pyx_XDECREF(__pyx_t_2);
74882   __Pyx_XDECREF(__pyx_t_3);
74883   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_topo", __pyx_clineno, __pyx_lineno, __pyx_filename);
74884   __pyx_r = NULL;
74885   __pyx_L0:;
74886   __Pyx_XDECREF(__pyx_v_tmp1);
74887   __Pyx_XDECREF(__pyx_v_tmp2);
74888   __Pyx_XDECREF(__pyx_v_index);
74889   __Pyx_XDECREF(__pyx_v_edges);
74890   __Pyx_XGIVEREF(__pyx_r);
74891   __Pyx_RefNannyFinishContext();
74892   return __pyx_r;
74893 }
74894 
74895 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1447
74896  *     property topo:
74897  *         """topology information"""
74898  *         def __get__(self):             # <<<<<<<<<<<<<<
74899  *             return self.Get_topo()
74900  *
74901  */
74902 
74903 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4topo___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_4topo___get__(PyObject * __pyx_v_self)74904 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4topo___get__(PyObject *__pyx_v_self) {
74905   PyObject *__pyx_r = NULL;
74906   __Pyx_RefNannyDeclarations
74907   PyObject *__pyx_t_1 = NULL;
74908   PyObject *__pyx_t_2 = NULL;
74909   int __pyx_lineno = 0;
74910   const char *__pyx_filename = NULL;
74911   int __pyx_clineno = 0;
74912   __Pyx_RefNannySetupContext("__get__");
74913 
74914   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1448
74915  *         """topology information"""
74916  *         def __get__(self):
74917  *             return self.Get_topo()             # <<<<<<<<<<<<<<
74918  *
74919  *     property index:
74920  */
74921   __Pyx_XDECREF(__pyx_r);
74922   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74923   __Pyx_GOTREF(__pyx_t_1);
74924   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74925   __Pyx_GOTREF(__pyx_t_2);
74926   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74927   __pyx_r = __pyx_t_2;
74928   __pyx_t_2 = 0;
74929   goto __pyx_L0;
74930 
74931   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74932   goto __pyx_L0;
74933   __pyx_L1_error:;
74934   __Pyx_XDECREF(__pyx_t_1);
74935   __Pyx_XDECREF(__pyx_t_2);
74936   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.topo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74937   __pyx_r = NULL;
74938   __pyx_L0:;
74939   __Pyx_XGIVEREF(__pyx_r);
74940   __Pyx_RefNannyFinishContext();
74941   return __pyx_r;
74942 }
74943 
74944 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1452
74945  *     property index:
74946  *         """index"""
74947  *         def __get__(self):             # <<<<<<<<<<<<<<
74948  *             return self.Get_topo()[0]
74949  *
74950  */
74951 
74952 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5index___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_5index___get__(PyObject * __pyx_v_self)74953 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5index___get__(PyObject *__pyx_v_self) {
74954   PyObject *__pyx_r = NULL;
74955   __Pyx_RefNannyDeclarations
74956   PyObject *__pyx_t_1 = NULL;
74957   PyObject *__pyx_t_2 = NULL;
74958   int __pyx_lineno = 0;
74959   const char *__pyx_filename = NULL;
74960   int __pyx_clineno = 0;
74961   __Pyx_RefNannySetupContext("__get__");
74962 
74963   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1453
74964  *         """index"""
74965  *         def __get__(self):
74966  *             return self.Get_topo()[0]             # <<<<<<<<<<<<<<
74967  *
74968  *     property edges:
74969  */
74970   __Pyx_XDECREF(__pyx_r);
74971   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74972   __Pyx_GOTREF(__pyx_t_1);
74973   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74974   __Pyx_GOTREF(__pyx_t_2);
74975   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
74976   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
74977   __Pyx_GOTREF(__pyx_t_1);
74978   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
74979   __pyx_r = __pyx_t_1;
74980   __pyx_t_1 = 0;
74981   goto __pyx_L0;
74982 
74983   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
74984   goto __pyx_L0;
74985   __pyx_L1_error:;
74986   __Pyx_XDECREF(__pyx_t_1);
74987   __Pyx_XDECREF(__pyx_t_2);
74988   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
74989   __pyx_r = NULL;
74990   __pyx_L0:;
74991   __Pyx_XGIVEREF(__pyx_r);
74992   __Pyx_RefNannyFinishContext();
74993   return __pyx_r;
74994 }
74995 
74996 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1457
74997  *     property edges:
74998  *         """edges"""
74999  *         def __get__(self):             # <<<<<<<<<<<<<<
75000  *             return self.Get_topo()
75001  *
75002  */
75003 
75004 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5edges___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_5edges___get__(PyObject * __pyx_v_self)75005 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5edges___get__(PyObject *__pyx_v_self) {
75006   PyObject *__pyx_r = NULL;
75007   __Pyx_RefNannyDeclarations
75008   PyObject *__pyx_t_1 = NULL;
75009   PyObject *__pyx_t_2 = NULL;
75010   int __pyx_lineno = 0;
75011   const char *__pyx_filename = NULL;
75012   int __pyx_clineno = 0;
75013   __Pyx_RefNannySetupContext("__get__");
75014 
75015   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1458
75016  *         """edges"""
75017  *         def __get__(self):
75018  *             return self.Get_topo()             # <<<<<<<<<<<<<<
75019  *
75020  *     # Graph Information Functions
75021  */
75022   __Pyx_XDECREF(__pyx_r);
75023   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_topo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75024   __Pyx_GOTREF(__pyx_t_1);
75025   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75026   __Pyx_GOTREF(__pyx_t_2);
75027   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75028   __pyx_r = __pyx_t_2;
75029   __pyx_t_2 = 0;
75030   goto __pyx_L0;
75031 
75032   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75033   goto __pyx_L0;
75034   __pyx_L1_error:;
75035   __Pyx_XDECREF(__pyx_t_1);
75036   __Pyx_XDECREF(__pyx_t_2);
75037   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.edges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
75038   __pyx_r = NULL;
75039   __pyx_L0:;
75040   __Pyx_XGIVEREF(__pyx_r);
75041   __Pyx_RefNannyFinishContext();
75042   return __pyx_r;
75043 }
75044 
75045 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1463
75046  *     # ---------------------------
75047  *
75048  *     def Get_neighbors_count(self, int rank):             # <<<<<<<<<<<<<<
75049  *         """
75050  *         Return number of neighbors of a process
75051  */
75052 
75053 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
75054 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count[] = "Graphcomm.Get_neighbors_count(self, int rank)\n\n        Return number of neighbors of a process\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75055 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75056   int __pyx_v_rank;
75057   int __pyx_v_nneighbors;
75058   PyObject *__pyx_r = NULL;
75059   __Pyx_RefNannyDeclarations
75060   int __pyx_t_1;
75061   PyObject *__pyx_t_2 = NULL;
75062   int __pyx_lineno = 0;
75063   const char *__pyx_filename = NULL;
75064   int __pyx_clineno = 0;
75065   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rank,0};
75066   __Pyx_RefNannySetupContext("Get_neighbors_count");
75067   {
75068     PyObject* values[1] = {0};
75069     if (unlikely(__pyx_kwds)) {
75070       Py_ssize_t kw_args;
75071       switch (PyTuple_GET_SIZE(__pyx_args)) {
75072         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75073         case  0: break;
75074         default: goto __pyx_L5_argtuple_error;
75075       }
75076       kw_args = PyDict_Size(__pyx_kwds);
75077       switch (PyTuple_GET_SIZE(__pyx_args)) {
75078         case  0:
75079         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
75080         if (likely(values[0])) kw_args--;
75081         else goto __pyx_L5_argtuple_error;
75082       }
75083       if (unlikely(kw_args > 0)) {
75084         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_neighbors_count") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75085       }
75086     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
75087       goto __pyx_L5_argtuple_error;
75088     } else {
75089       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75090     }
75091     __pyx_v_rank = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75092   }
75093   goto __pyx_L4_argument_unpacking_done;
75094   __pyx_L5_argtuple_error:;
75095   __Pyx_RaiseArgtupleInvalid("Get_neighbors_count", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75096   __pyx_L3_error:;
75097   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_neighbors_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
75098   __Pyx_RefNannyFinishContext();
75099   return NULL;
75100   __pyx_L4_argument_unpacking_done:;
75101 
75102   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1467
75103  *         Return number of neighbors of a process
75104  *         """
75105  *         cdef int nneighbors = 0             # <<<<<<<<<<<<<<
75106  *         CHKERR( MPI_Graph_neighbors_count(self.ob_mpi, rank, &nneighbors) )
75107  *         return nneighbors
75108  */
75109   __pyx_v_nneighbors = 0;
75110 
75111   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1468
75112  *         """
75113  *         cdef int nneighbors = 0
75114  *         CHKERR( MPI_Graph_neighbors_count(self.ob_mpi, rank, &nneighbors) )             # <<<<<<<<<<<<<<
75115  *         return nneighbors
75116  *
75117  */
75118   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_neighbors_count(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_rank, (&__pyx_v_nneighbors))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75119 
75120   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1469
75121  *         cdef int nneighbors = 0
75122  *         CHKERR( MPI_Graph_neighbors_count(self.ob_mpi, rank, &nneighbors) )
75123  *         return nneighbors             # <<<<<<<<<<<<<<
75124  *
75125  *     property nneighbors:
75126  */
75127   __Pyx_XDECREF(__pyx_r);
75128   __pyx_t_2 = PyInt_FromLong(__pyx_v_nneighbors); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75129   __Pyx_GOTREF(__pyx_t_2);
75130   __pyx_r = __pyx_t_2;
75131   __pyx_t_2 = 0;
75132   goto __pyx_L0;
75133 
75134   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75135   goto __pyx_L0;
75136   __pyx_L1_error:;
75137   __Pyx_XDECREF(__pyx_t_2);
75138   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_neighbors_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
75139   __pyx_r = NULL;
75140   __pyx_L0:;
75141   __Pyx_XGIVEREF(__pyx_r);
75142   __Pyx_RefNannyFinishContext();
75143   return __pyx_r;
75144 }
75145 
75146 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1473
75147  *     property nneighbors:
75148  *         """number of neighbors"""
75149  *         def __get__(self):             # <<<<<<<<<<<<<<
75150  *             cdef int rank = self.Get_rank()
75151  *             return self.Get_neighbors_count(rank)
75152  */
75153 
75154 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_10nneighbors___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_10nneighbors___get__(PyObject * __pyx_v_self)75155 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_10nneighbors___get__(PyObject *__pyx_v_self) {
75156   int __pyx_v_rank;
75157   PyObject *__pyx_r = NULL;
75158   __Pyx_RefNannyDeclarations
75159   PyObject *__pyx_t_1 = NULL;
75160   PyObject *__pyx_t_2 = NULL;
75161   int __pyx_t_3;
75162   PyObject *__pyx_t_4 = NULL;
75163   int __pyx_lineno = 0;
75164   const char *__pyx_filename = NULL;
75165   int __pyx_clineno = 0;
75166   __Pyx_RefNannySetupContext("__get__");
75167 
75168   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1474
75169  *         """number of neighbors"""
75170  *         def __get__(self):
75171  *             cdef int rank = self.Get_rank()             # <<<<<<<<<<<<<<
75172  *             return self.Get_neighbors_count(rank)
75173  *
75174  */
75175   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75176   __Pyx_GOTREF(__pyx_t_1);
75177   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75178   __Pyx_GOTREF(__pyx_t_2);
75179   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75180   __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75181   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
75182   __pyx_v_rank = __pyx_t_3;
75183 
75184   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1475
75185  *         def __get__(self):
75186  *             cdef int rank = self.Get_rank()
75187  *             return self.Get_neighbors_count(rank)             # <<<<<<<<<<<<<<
75188  *
75189  *     def Get_neighbors(self, int rank):
75190  */
75191   __Pyx_XDECREF(__pyx_r);
75192   __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_neighbors_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75193   __Pyx_GOTREF(__pyx_t_2);
75194   __pyx_t_1 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75195   __Pyx_GOTREF(__pyx_t_1);
75196   __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75197   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
75198   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
75199   __Pyx_GIVEREF(__pyx_t_1);
75200   __pyx_t_1 = 0;
75201   __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75202   __Pyx_GOTREF(__pyx_t_1);
75203   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
75204   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
75205   __pyx_r = __pyx_t_1;
75206   __pyx_t_1 = 0;
75207   goto __pyx_L0;
75208 
75209   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75210   goto __pyx_L0;
75211   __pyx_L1_error:;
75212   __Pyx_XDECREF(__pyx_t_1);
75213   __Pyx_XDECREF(__pyx_t_2);
75214   __Pyx_XDECREF(__pyx_t_4);
75215   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.nneighbors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
75216   __pyx_r = NULL;
75217   __pyx_L0:;
75218   __Pyx_XGIVEREF(__pyx_r);
75219   __Pyx_RefNannyFinishContext();
75220   return __pyx_r;
75221 }
75222 
75223 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1477
75224  *             return self.Get_neighbors_count(rank)
75225  *
75226  *     def Get_neighbors(self, int rank):             # <<<<<<<<<<<<<<
75227  *         """
75228  *         Return list of neighbors of a process
75229  */
75230 
75231 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5Get_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
75232 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_5Get_neighbors[] = "Graphcomm.Get_neighbors(self, int rank)\n\n        Return list of neighbors of a process\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_5Get_neighbors(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75233 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_5Get_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75234   int __pyx_v_rank;
75235   int __pyx_v_nneighbors;
75236   int *__pyx_v_ineighbors;
75237   PyObject *__pyx_v_tmp = 0;
75238   int __pyx_v_i;
75239   PyObject *__pyx_v_neighbors = 0;
75240   PyObject *__pyx_r = NULL;
75241   __Pyx_RefNannyDeclarations
75242   int __pyx_t_1;
75243   PyObject *__pyx_t_2 = NULL;
75244   PyObject *__pyx_t_3 = NULL;
75245   int __pyx_lineno = 0;
75246   const char *__pyx_filename = NULL;
75247   int __pyx_clineno = 0;
75248   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rank,0};
75249   __Pyx_RefNannySetupContext("Get_neighbors");
75250   {
75251     PyObject* values[1] = {0};
75252     if (unlikely(__pyx_kwds)) {
75253       Py_ssize_t kw_args;
75254       switch (PyTuple_GET_SIZE(__pyx_args)) {
75255         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75256         case  0: break;
75257         default: goto __pyx_L5_argtuple_error;
75258       }
75259       kw_args = PyDict_Size(__pyx_kwds);
75260       switch (PyTuple_GET_SIZE(__pyx_args)) {
75261         case  0:
75262         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
75263         if (likely(values[0])) kw_args--;
75264         else goto __pyx_L5_argtuple_error;
75265       }
75266       if (unlikely(kw_args > 0)) {
75267         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_neighbors") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75268       }
75269     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
75270       goto __pyx_L5_argtuple_error;
75271     } else {
75272       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75273     }
75274     __pyx_v_rank = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75275   }
75276   goto __pyx_L4_argument_unpacking_done;
75277   __pyx_L5_argtuple_error:;
75278   __Pyx_RaiseArgtupleInvalid("Get_neighbors", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75279   __pyx_L3_error:;
75280   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_neighbors", __pyx_clineno, __pyx_lineno, __pyx_filename);
75281   __Pyx_RefNannyFinishContext();
75282   return NULL;
75283   __pyx_L4_argument_unpacking_done:;
75284 
75285   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1481
75286  *         Return list of neighbors of a process
75287  *         """
75288  *         cdef int nneighbors = 0             # <<<<<<<<<<<<<<
75289  *         CHKERR( MPI_Graph_neighbors_count(
75290  *                 self.ob_mpi, rank, &nneighbors) )
75291  */
75292   __pyx_v_nneighbors = 0;
75293 
75294   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1483
75295  *         cdef int nneighbors = 0
75296  *         CHKERR( MPI_Graph_neighbors_count(
75297  *                 self.ob_mpi, rank, &nneighbors) )             # <<<<<<<<<<<<<<
75298  *         cdef int *ineighbors = NULL
75299  *         cdef tmp = newarray_int(nneighbors, &ineighbors)
75300  */
75301   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_neighbors_count(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_rank, (&__pyx_v_nneighbors))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75302 
75303   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1484
75304  *         CHKERR( MPI_Graph_neighbors_count(
75305  *                 self.ob_mpi, rank, &nneighbors) )
75306  *         cdef int *ineighbors = NULL             # <<<<<<<<<<<<<<
75307  *         cdef tmp = newarray_int(nneighbors, &ineighbors)
75308  *         CHKERR( MPI_Graph_neighbors(
75309  */
75310   __pyx_v_ineighbors = NULL;
75311 
75312   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1485
75313  *                 self.ob_mpi, rank, &nneighbors) )
75314  *         cdef int *ineighbors = NULL
75315  *         cdef tmp = newarray_int(nneighbors, &ineighbors)             # <<<<<<<<<<<<<<
75316  *         CHKERR( MPI_Graph_neighbors(
75317  *                 self.ob_mpi, rank, nneighbors, ineighbors) )
75318  */
75319   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_nneighbors, (&__pyx_v_ineighbors)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75320   __Pyx_GOTREF(__pyx_t_2);
75321   __pyx_v_tmp = __pyx_t_2;
75322   __pyx_t_2 = 0;
75323 
75324   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1487
75325  *         cdef tmp = newarray_int(nneighbors, &ineighbors)
75326  *         CHKERR( MPI_Graph_neighbors(
75327  *                 self.ob_mpi, rank, nneighbors, ineighbors) )             # <<<<<<<<<<<<<<
75328  *         cdef int i = 0
75329  *         cdef object neighbors = [ineighbors[i] for i from 0 <= i < nneighbors]
75330  */
75331   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_neighbors(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_rank, __pyx_v_nneighbors, __pyx_v_ineighbors)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75332 
75333   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1488
75334  *         CHKERR( MPI_Graph_neighbors(
75335  *                 self.ob_mpi, rank, nneighbors, ineighbors) )
75336  *         cdef int i = 0             # <<<<<<<<<<<<<<
75337  *         cdef object neighbors = [ineighbors[i] for i from 0 <= i < nneighbors]
75338  *         return neighbors
75339  */
75340   __pyx_v_i = 0;
75341 
75342   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1489
75343  *                 self.ob_mpi, rank, nneighbors, ineighbors) )
75344  *         cdef int i = 0
75345  *         cdef object neighbors = [ineighbors[i] for i from 0 <= i < nneighbors]             # <<<<<<<<<<<<<<
75346  *         return neighbors
75347  *
75348  */
75349   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75350   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
75351   __pyx_t_1 = __pyx_v_nneighbors;
75352   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
75353     __pyx_t_3 = PyInt_FromLong((__pyx_v_ineighbors[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75354     __Pyx_GOTREF(__pyx_t_3);
75355     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75356     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
75357   }
75358   __Pyx_INCREF(((PyObject *)__pyx_t_2));
75359   __pyx_v_neighbors = ((PyObject *)__pyx_t_2);
75360   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
75361 
75362   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1490
75363  *         cdef int i = 0
75364  *         cdef object neighbors = [ineighbors[i] for i from 0 <= i < nneighbors]
75365  *         return neighbors             # <<<<<<<<<<<<<<
75366  *
75367  *     property neighbors:
75368  */
75369   __Pyx_XDECREF(__pyx_r);
75370   __Pyx_INCREF(__pyx_v_neighbors);
75371   __pyx_r = __pyx_v_neighbors;
75372   goto __pyx_L0;
75373 
75374   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75375   goto __pyx_L0;
75376   __pyx_L1_error:;
75377   __Pyx_XDECREF(__pyx_t_2);
75378   __Pyx_XDECREF(__pyx_t_3);
75379   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Get_neighbors", __pyx_clineno, __pyx_lineno, __pyx_filename);
75380   __pyx_r = NULL;
75381   __pyx_L0:;
75382   __Pyx_XDECREF(__pyx_v_tmp);
75383   __Pyx_XDECREF(__pyx_v_neighbors);
75384   __Pyx_XGIVEREF(__pyx_r);
75385   __Pyx_RefNannyFinishContext();
75386   return __pyx_r;
75387 }
75388 
75389 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1494
75390  *     property neighbors:
75391  *         """neighbors"""
75392  *         def __get__(self):             # <<<<<<<<<<<<<<
75393  *             cdef int rank = self.Get_rank()
75394  *             return self.Get_neighbors(rank)
75395  */
75396 
75397 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_9neighbors___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Graphcomm_9neighbors___get__(PyObject * __pyx_v_self)75398 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_9neighbors___get__(PyObject *__pyx_v_self) {
75399   int __pyx_v_rank;
75400   PyObject *__pyx_r = NULL;
75401   __Pyx_RefNannyDeclarations
75402   PyObject *__pyx_t_1 = NULL;
75403   PyObject *__pyx_t_2 = NULL;
75404   int __pyx_t_3;
75405   PyObject *__pyx_t_4 = NULL;
75406   int __pyx_lineno = 0;
75407   const char *__pyx_filename = NULL;
75408   int __pyx_clineno = 0;
75409   __Pyx_RefNannySetupContext("__get__");
75410 
75411   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1495
75412  *         """neighbors"""
75413  *         def __get__(self):
75414  *             cdef int rank = self.Get_rank()             # <<<<<<<<<<<<<<
75415  *             return self.Get_neighbors(rank)
75416  *
75417  */
75418   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75419   __Pyx_GOTREF(__pyx_t_1);
75420   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75421   __Pyx_GOTREF(__pyx_t_2);
75422   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75423   __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75424   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
75425   __pyx_v_rank = __pyx_t_3;
75426 
75427   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1496
75428  *         def __get__(self):
75429  *             cdef int rank = self.Get_rank()
75430  *             return self.Get_neighbors(rank)             # <<<<<<<<<<<<<<
75431  *
75432  *     # Graph Low-Level Functions
75433  */
75434   __Pyx_XDECREF(__pyx_r);
75435   __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_neighbors); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75436   __Pyx_GOTREF(__pyx_t_2);
75437   __pyx_t_1 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75438   __Pyx_GOTREF(__pyx_t_1);
75439   __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75440   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
75441   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
75442   __Pyx_GIVEREF(__pyx_t_1);
75443   __pyx_t_1 = 0;
75444   __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75445   __Pyx_GOTREF(__pyx_t_1);
75446   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
75447   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
75448   __pyx_r = __pyx_t_1;
75449   __pyx_t_1 = 0;
75450   goto __pyx_L0;
75451 
75452   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75453   goto __pyx_L0;
75454   __pyx_L1_error:;
75455   __Pyx_XDECREF(__pyx_t_1);
75456   __Pyx_XDECREF(__pyx_t_2);
75457   __Pyx_XDECREF(__pyx_t_4);
75458   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.neighbors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
75459   __pyx_r = NULL;
75460   __pyx_L0:;
75461   __Pyx_XGIVEREF(__pyx_r);
75462   __Pyx_RefNannyFinishContext();
75463   return __pyx_r;
75464 }
75465 
75466 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1501
75467  *     # -------------------------
75468  *
75469  *     def Map(self, index, edges):             # <<<<<<<<<<<<<<
75470  *         """
75471  *         Return an optimal placement for the
75472  */
75473 
75474 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6Map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
75475 static char __pyx_doc_6mpi4py_3MPI_9Graphcomm_6Map[] = "Graphcomm.Map(self, index, edges)\n\n        Return an optimal placement for the\n        calling process on the physical machine\n        ";
__pyx_pf_6mpi4py_3MPI_9Graphcomm_6Map(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75476 static PyObject *__pyx_pf_6mpi4py_3MPI_9Graphcomm_6Map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75477   PyObject *__pyx_v_index = 0;
75478   PyObject *__pyx_v_edges = 0;
75479   int __pyx_v_nnodes;
75480   int *__pyx_v_iindex;
75481   int __pyx_v_nedges;
75482   int *__pyx_v_iedges;
75483   int __pyx_v_rank;
75484   PyObject *__pyx_r = NULL;
75485   __Pyx_RefNannyDeclarations
75486   PyObject *__pyx_t_1 = NULL;
75487   int __pyx_t_2;
75488   int __pyx_t_3;
75489   int __pyx_t_4;
75490   int __pyx_t_5;
75491   int __pyx_lineno = 0;
75492   const char *__pyx_filename = NULL;
75493   int __pyx_clineno = 0;
75494   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__index,&__pyx_n_s__edges,0};
75495   __Pyx_RefNannySetupContext("Map");
75496   {
75497     PyObject* values[2] = {0,0};
75498     if (unlikely(__pyx_kwds)) {
75499       Py_ssize_t kw_args;
75500       switch (PyTuple_GET_SIZE(__pyx_args)) {
75501         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
75502         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75503         case  0: break;
75504         default: goto __pyx_L5_argtuple_error;
75505       }
75506       kw_args = PyDict_Size(__pyx_kwds);
75507       switch (PyTuple_GET_SIZE(__pyx_args)) {
75508         case  0:
75509         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__index);
75510         if (likely(values[0])) kw_args--;
75511         else goto __pyx_L5_argtuple_error;
75512         case  1:
75513         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__edges);
75514         if (likely(values[1])) kw_args--;
75515         else {
75516           __Pyx_RaiseArgtupleInvalid("Map", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75517         }
75518       }
75519       if (unlikely(kw_args > 0)) {
75520         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Map") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75521       }
75522     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
75523       goto __pyx_L5_argtuple_error;
75524     } else {
75525       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75526       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
75527     }
75528     __pyx_v_index = values[0];
75529     __pyx_v_edges = values[1];
75530   }
75531   goto __pyx_L4_argument_unpacking_done;
75532   __pyx_L5_argtuple_error:;
75533   __Pyx_RaiseArgtupleInvalid("Map", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75534   __pyx_L3_error:;
75535   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Map", __pyx_clineno, __pyx_lineno, __pyx_filename);
75536   __Pyx_RefNannyFinishContext();
75537   return NULL;
75538   __pyx_L4_argument_unpacking_done:;
75539   __Pyx_INCREF(__pyx_v_index);
75540   __Pyx_INCREF(__pyx_v_edges);
75541 
75542   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1506
75543  *         calling process on the physical machine
75544  *         """
75545  *         cdef int nnodes = 0, *iindex = NULL             # <<<<<<<<<<<<<<
75546  *         index = getarray_int(index, &nnodes, &iindex)
75547  *         cdef int nedges = 0, *iedges = NULL
75548  */
75549   __pyx_v_nnodes = 0;
75550   __pyx_v_iindex = NULL;
75551 
75552   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1507
75553  *         """
75554  *         cdef int nnodes = 0, *iindex = NULL
75555  *         index = getarray_int(index, &nnodes, &iindex)             # <<<<<<<<<<<<<<
75556  *         cdef int nedges = 0, *iedges = NULL
75557  *         edges = getarray_int(edges, &nedges, &iedges)
75558  */
75559   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_index, (&__pyx_v_nnodes), (&__pyx_v_iindex)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75560   __Pyx_GOTREF(__pyx_t_1);
75561   __Pyx_DECREF(__pyx_v_index);
75562   __pyx_v_index = __pyx_t_1;
75563   __pyx_t_1 = 0;
75564 
75565   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1508
75566  *         cdef int nnodes = 0, *iindex = NULL
75567  *         index = getarray_int(index, &nnodes, &iindex)
75568  *         cdef int nedges = 0, *iedges = NULL             # <<<<<<<<<<<<<<
75569  *         edges = getarray_int(edges, &nedges, &iedges)
75570  *         # extension: accept more 'standard' adjacency arrays
75571  */
75572   __pyx_v_nedges = 0;
75573   __pyx_v_iedges = NULL;
75574 
75575   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1509
75576  *         index = getarray_int(index, &nnodes, &iindex)
75577  *         cdef int nedges = 0, *iedges = NULL
75578  *         edges = getarray_int(edges, &nedges, &iedges)             # <<<<<<<<<<<<<<
75579  *         # extension: accept more 'standard' adjacency arrays
75580  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:
75581  */
75582   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_getarray_int(__pyx_v_edges, (&__pyx_v_nedges), (&__pyx_v_iedges)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75583   __Pyx_GOTREF(__pyx_t_1);
75584   __Pyx_DECREF(__pyx_v_edges);
75585   __pyx_v_edges = __pyx_t_1;
75586   __pyx_t_1 = 0;
75587 
75588   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1511
75589  *         edges = getarray_int(edges, &nedges, &iedges)
75590  *         # extension: accept more 'standard' adjacency arrays
75591  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:             # <<<<<<<<<<<<<<
75592  *             nnodes -= 1; iindex += 1;
75593  *         cdef int rank = MPI_PROC_NULL
75594  */
75595   __pyx_t_2 = ((__pyx_v_iindex[0]) == 0);
75596   if (__pyx_t_2) {
75597     __pyx_t_3 = ((__pyx_v_iindex[(__pyx_v_nnodes - 1)]) == __pyx_v_nedges);
75598     __pyx_t_4 = __pyx_t_3;
75599   } else {
75600     __pyx_t_4 = __pyx_t_2;
75601   }
75602   if (__pyx_t_4) {
75603 
75604     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1512
75605  *         # extension: accept more 'standard' adjacency arrays
75606  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:
75607  *             nnodes -= 1; iindex += 1;             # <<<<<<<<<<<<<<
75608  *         cdef int rank = MPI_PROC_NULL
75609  *         CHKERR( MPI_Graph_map(self.ob_mpi, nnodes, iindex, iedges, &rank) )
75610  */
75611     __pyx_v_nnodes = (__pyx_v_nnodes - 1);
75612     __pyx_v_iindex = (__pyx_v_iindex + 1);
75613     goto __pyx_L6;
75614   }
75615   __pyx_L6:;
75616 
75617   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1513
75618  *         if iindex[0]==0 and iindex[nnodes-1]==nedges:
75619  *             nnodes -= 1; iindex += 1;
75620  *         cdef int rank = MPI_PROC_NULL             # <<<<<<<<<<<<<<
75621  *         CHKERR( MPI_Graph_map(self.ob_mpi, nnodes, iindex, iedges, &rank) )
75622  *         return rank
75623  */
75624   __pyx_v_rank = MPI_PROC_NULL;
75625 
75626   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1514
75627  *             nnodes -= 1; iindex += 1;
75628  *         cdef int rank = MPI_PROC_NULL
75629  *         CHKERR( MPI_Graph_map(self.ob_mpi, nnodes, iindex, iedges, &rank) )             # <<<<<<<<<<<<<<
75630  *         return rank
75631  *
75632  */
75633   __pyx_t_5 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Graph_map(((struct PyMPIGraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_nnodes, __pyx_v_iindex, __pyx_v_iedges, (&__pyx_v_rank))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75634 
75635   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1515
75636  *         cdef int rank = MPI_PROC_NULL
75637  *         CHKERR( MPI_Graph_map(self.ob_mpi, nnodes, iindex, iedges, &rank) )
75638  *         return rank             # <<<<<<<<<<<<<<
75639  *
75640  *
75641  */
75642   __Pyx_XDECREF(__pyx_r);
75643   __pyx_t_1 = PyInt_FromLong(__pyx_v_rank); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75644   __Pyx_GOTREF(__pyx_t_1);
75645   __pyx_r = __pyx_t_1;
75646   __pyx_t_1 = 0;
75647   goto __pyx_L0;
75648 
75649   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75650   goto __pyx_L0;
75651   __pyx_L1_error:;
75652   __Pyx_XDECREF(__pyx_t_1);
75653   __Pyx_AddTraceback("mpi4py.MPI.Graphcomm.Map", __pyx_clineno, __pyx_lineno, __pyx_filename);
75654   __pyx_r = NULL;
75655   __pyx_L0:;
75656   __Pyx_XDECREF(__pyx_v_index);
75657   __Pyx_XDECREF(__pyx_v_edges);
75658   __Pyx_XGIVEREF(__pyx_r);
75659   __Pyx_RefNannyFinishContext();
75660   return __pyx_r;
75661 }
75662 
75663 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1524
75664  *     """
75665  *
75666  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
75667  *         cdef int topo = MPI_DIST_GRAPH
75668  *         if self.ob_mpi != MPI_COMM_NULL:
75669  */
75670 
75671 static int __pyx_pf_6mpi4py_3MPI_13Distgraphcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_13Distgraphcomm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75672 static int __pyx_pf_6mpi4py_3MPI_13Distgraphcomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75673   struct PyMPICommObject *__pyx_v_comm = 0;
75674   int __pyx_v_topo;
75675   int __pyx_r;
75676   __Pyx_RefNannyDeclarations
75677   int __pyx_t_1;
75678   int __pyx_t_2;
75679   PyObject *__pyx_t_3 = NULL;
75680   int __pyx_lineno = 0;
75681   const char *__pyx_filename = NULL;
75682   int __pyx_clineno = 0;
75683   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
75684   __Pyx_RefNannySetupContext("__cinit__");
75685   {
75686     PyObject* values[1] = {0};
75687     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
75688     if (unlikely(__pyx_kwds)) {
75689       Py_ssize_t kw_args;
75690       switch (PyTuple_GET_SIZE(__pyx_args)) {
75691         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75692         case  0: break;
75693         default: goto __pyx_L5_argtuple_error;
75694       }
75695       kw_args = PyDict_Size(__pyx_kwds);
75696       switch (PyTuple_GET_SIZE(__pyx_args)) {
75697         case  0:
75698         if (kw_args > 0) {
75699           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
75700           if (value) { values[0] = value; kw_args--; }
75701         }
75702       }
75703       if (unlikely(kw_args > 0)) {
75704         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75705       }
75706     } else {
75707       switch (PyTuple_GET_SIZE(__pyx_args)) {
75708         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
75709         case  0: break;
75710         default: goto __pyx_L5_argtuple_error;
75711       }
75712     }
75713     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
75714   }
75715   goto __pyx_L4_argument_unpacking_done;
75716   __pyx_L5_argtuple_error:;
75717   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
75718   __pyx_L3_error:;
75719   __Pyx_AddTraceback("mpi4py.MPI.Distgraphcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
75720   __Pyx_RefNannyFinishContext();
75721   return -1;
75722   __pyx_L4_argument_unpacking_done:;
75723   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75724 
75725   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1525
75726  *
75727  *     def __cinit__(self, Comm comm=None):
75728  *         cdef int topo = MPI_DIST_GRAPH             # <<<<<<<<<<<<<<
75729  *         if self.ob_mpi != MPI_COMM_NULL:
75730  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
75731  */
75732   __pyx_v_topo = MPI_DIST_GRAPH;
75733 
75734   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1526
75735  *     def __cinit__(self, Comm comm=None):
75736  *         cdef int topo = MPI_DIST_GRAPH
75737  *         if self.ob_mpi != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
75738  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
75739  *             if topo != MPI_DIST_GRAPH: raise TypeError(
75740  */
75741   __pyx_t_1 = (((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi != MPI_COMM_NULL);
75742   if (__pyx_t_1) {
75743 
75744     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1527
75745  *         cdef int topo = MPI_DIST_GRAPH
75746  *         if self.ob_mpi != MPI_COMM_NULL:
75747  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )             # <<<<<<<<<<<<<<
75748  *             if topo != MPI_DIST_GRAPH: raise TypeError(
75749  *                 "expecting a distributed graph communicator")
75750  */
75751     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Topo_test(((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_topo))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75752 
75753     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1528
75754  *         if self.ob_mpi != MPI_COMM_NULL:
75755  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
75756  *             if topo != MPI_DIST_GRAPH: raise TypeError(             # <<<<<<<<<<<<<<
75757  *                 "expecting a distributed graph communicator")
75758  *
75759  */
75760     __pyx_t_1 = (__pyx_v_topo != MPI_DIST_GRAPH);
75761     if (__pyx_t_1) {
75762       __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_94), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75763       __Pyx_GOTREF(__pyx_t_3);
75764       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
75765       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
75766       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75767       goto __pyx_L7;
75768     }
75769     __pyx_L7:;
75770     goto __pyx_L6;
75771   }
75772   __pyx_L6:;
75773 
75774   __pyx_r = 0;
75775   goto __pyx_L0;
75776   __pyx_L1_error:;
75777   __Pyx_XDECREF(__pyx_t_3);
75778   __Pyx_AddTraceback("mpi4py.MPI.Distgraphcomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
75779   __pyx_r = -1;
75780   __pyx_L0:;
75781   __Pyx_RefNannyFinishContext();
75782   return __pyx_r;
75783 }
75784 
75785 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1534
75786  *     # -------------------------
75787  *
75788  *     def Dup(self):             # <<<<<<<<<<<<<<
75789  *         """
75790  *         Duplicate an existing communicator
75791  */
75792 
75793 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
75794 static char __pyx_doc_6mpi4py_3MPI_13Distgraphcomm_1Dup[] = "Distgraphcomm.Dup(self)\n\n        Duplicate an existing communicator\n        ";
__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_1Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75795 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_1Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75796   struct PyMPIDistgraphcommObject *__pyx_v_comm = 0;
75797   PyObject *__pyx_r = NULL;
75798   __Pyx_RefNannyDeclarations
75799   PyObject *__pyx_t_1 = NULL;
75800   int __pyx_t_2;
75801   int __pyx_lineno = 0;
75802   const char *__pyx_filename = NULL;
75803   int __pyx_clineno = 0;
75804   __Pyx_RefNannySetupContext("Dup");
75805   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
75806     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
75807   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
75808 
75809   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1538
75810  *         Duplicate an existing communicator
75811  *         """
75812  *         cdef Distgraphcomm comm = <Distgraphcomm>type(self)()             # <<<<<<<<<<<<<<
75813  *         with nogil: CHKERR( MPI_Comm_dup(
75814  *             self.ob_mpi, &comm.ob_mpi) )
75815  */
75816   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75817   __Pyx_GOTREF(__pyx_t_1);
75818   __Pyx_INCREF(((PyObject *)((struct PyMPIDistgraphcommObject *)__pyx_t_1)));
75819   __pyx_v_comm = ((struct PyMPIDistgraphcommObject *)__pyx_t_1);
75820   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
75821 
75822   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1539
75823  *         """
75824  *         cdef Distgraphcomm comm = <Distgraphcomm>type(self)()
75825  *         with nogil: CHKERR( MPI_Comm_dup(             # <<<<<<<<<<<<<<
75826  *             self.ob_mpi, &comm.ob_mpi) )
75827  *         return comm
75828  */
75829   {
75830       #ifdef WITH_THREAD
75831       PyThreadState *_save = NULL;
75832       #endif
75833       Py_UNBLOCK_THREADS
75834       /*try:*/ {
75835 
75836         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1540
75837  *         cdef Distgraphcomm comm = <Distgraphcomm>type(self)()
75838  *         with nogil: CHKERR( MPI_Comm_dup(
75839  *             self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
75840  *         return comm
75841  *
75842  */
75843         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L6;}
75844       }
75845 
75846       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1539
75847  *         """
75848  *         cdef Distgraphcomm comm = <Distgraphcomm>type(self)()
75849  *         with nogil: CHKERR( MPI_Comm_dup(             # <<<<<<<<<<<<<<
75850  *             self.ob_mpi, &comm.ob_mpi) )
75851  *         return comm
75852  */
75853       /*finally:*/ {
75854         int __pyx_why;
75855         __pyx_why = 0; goto __pyx_L7;
75856         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
75857         __pyx_L7:;
75858         Py_BLOCK_THREADS
75859         switch (__pyx_why) {
75860           case 4: goto __pyx_L1_error;
75861         }
75862       }
75863   }
75864 
75865   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1541
75866  *         with nogil: CHKERR( MPI_Comm_dup(
75867  *             self.ob_mpi, &comm.ob_mpi) )
75868  *         return comm             # <<<<<<<<<<<<<<
75869  *
75870  *     # Topology Inquiry Functions
75871  */
75872   __Pyx_XDECREF(__pyx_r);
75873   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
75874   __pyx_r = ((PyObject *)__pyx_v_comm);
75875   goto __pyx_L0;
75876 
75877   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75878   goto __pyx_L0;
75879   __pyx_L1_error:;
75880   __Pyx_XDECREF(__pyx_t_1);
75881   __Pyx_AddTraceback("mpi4py.MPI.Distgraphcomm.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
75882   __pyx_r = NULL;
75883   __pyx_L0:;
75884   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
75885   __Pyx_XGIVEREF(__pyx_r);
75886   __Pyx_RefNannyFinishContext();
75887   return __pyx_r;
75888 }
75889 
75890 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1546
75891  *     # --------------------------
75892  *
75893  *     def Get_dist_neighbors_count(self):             # <<<<<<<<<<<<<<
75894  *         """
75895  *         Return adjacency information for a distributed graph topology
75896  */
75897 
75898 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
75899 static char __pyx_doc_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count[] = "Distgraphcomm.Get_dist_neighbors_count(self)\n\n        Return adjacency information for a distributed graph topology\n        ";
__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)75900 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
75901   int __pyx_v_indegree;
75902   int __pyx_v_outdegree;
75903   int __pyx_v_weighted;
75904   PyObject *__pyx_r = NULL;
75905   __Pyx_RefNannyDeclarations
75906   int __pyx_t_1;
75907   PyObject *__pyx_t_2 = NULL;
75908   PyObject *__pyx_t_3 = NULL;
75909   PyObject *__pyx_t_4 = NULL;
75910   PyObject *__pyx_t_5 = NULL;
75911   int __pyx_lineno = 0;
75912   const char *__pyx_filename = NULL;
75913   int __pyx_clineno = 0;
75914   __Pyx_RefNannySetupContext("Get_dist_neighbors_count");
75915   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
75916     __Pyx_RaiseArgtupleInvalid("Get_dist_neighbors_count", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
75917   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_dist_neighbors_count", 0))) return NULL;
75918 
75919   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1550
75920  *         Return adjacency information for a distributed graph topology
75921  *         """
75922  *         cdef int indegree = 0             # <<<<<<<<<<<<<<
75923  *         cdef int outdegree = 0
75924  *         cdef int weighted = 0
75925  */
75926   __pyx_v_indegree = 0;
75927 
75928   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1551
75929  *         """
75930  *         cdef int indegree = 0
75931  *         cdef int outdegree = 0             # <<<<<<<<<<<<<<
75932  *         cdef int weighted = 0
75933  *         CHKERR( MPI_Dist_graph_neighbors_count(
75934  */
75935   __pyx_v_outdegree = 0;
75936 
75937   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1552
75938  *         cdef int indegree = 0
75939  *         cdef int outdegree = 0
75940  *         cdef int weighted = 0             # <<<<<<<<<<<<<<
75941  *         CHKERR( MPI_Dist_graph_neighbors_count(
75942  *                 self.ob_mpi, &indegree, &outdegree, &weighted) )
75943  */
75944   __pyx_v_weighted = 0;
75945 
75946   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1554
75947  *         cdef int weighted = 0
75948  *         CHKERR( MPI_Dist_graph_neighbors_count(
75949  *                 self.ob_mpi, &indegree, &outdegree, &weighted) )             # <<<<<<<<<<<<<<
75950  *         return (indegree, outdegree, <bint>weighted)
75951  *
75952  */
75953   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dist_graph_neighbors_count(((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_indegree), (&__pyx_v_outdegree), (&__pyx_v_weighted))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75954 
75955   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1555
75956  *         CHKERR( MPI_Dist_graph_neighbors_count(
75957  *                 self.ob_mpi, &indegree, &outdegree, &weighted) )
75958  *         return (indegree, outdegree, <bint>weighted)             # <<<<<<<<<<<<<<
75959  *
75960  *     def Get_dist_neighbors(self):
75961  */
75962   __Pyx_XDECREF(__pyx_r);
75963   __pyx_t_2 = PyInt_FromLong(__pyx_v_indegree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75964   __Pyx_GOTREF(__pyx_t_2);
75965   __pyx_t_3 = PyInt_FromLong(__pyx_v_outdegree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75966   __Pyx_GOTREF(__pyx_t_3);
75967   __pyx_t_4 = __Pyx_PyBool_FromLong(((int)__pyx_v_weighted)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75968   __Pyx_GOTREF(__pyx_t_4);
75969   __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
75970   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
75971   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
75972   __Pyx_GIVEREF(__pyx_t_2);
75973   PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
75974   __Pyx_GIVEREF(__pyx_t_3);
75975   PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
75976   __Pyx_GIVEREF(__pyx_t_4);
75977   __pyx_t_2 = 0;
75978   __pyx_t_3 = 0;
75979   __pyx_t_4 = 0;
75980   __pyx_r = ((PyObject *)__pyx_t_5);
75981   __pyx_t_5 = 0;
75982   goto __pyx_L0;
75983 
75984   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
75985   goto __pyx_L0;
75986   __pyx_L1_error:;
75987   __Pyx_XDECREF(__pyx_t_2);
75988   __Pyx_XDECREF(__pyx_t_3);
75989   __Pyx_XDECREF(__pyx_t_4);
75990   __Pyx_XDECREF(__pyx_t_5);
75991   __Pyx_AddTraceback("mpi4py.MPI.Distgraphcomm.Get_dist_neighbors_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
75992   __pyx_r = NULL;
75993   __pyx_L0:;
75994   __Pyx_XGIVEREF(__pyx_r);
75995   __Pyx_RefNannyFinishContext();
75996   return __pyx_r;
75997 }
75998 
75999 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1557
76000  *         return (indegree, outdegree, <bint>weighted)
76001  *
76002  *     def Get_dist_neighbors(self):             # <<<<<<<<<<<<<<
76003  *         """
76004  *         Return adjacency information for a distributed graph topology
76005  */
76006 
76007 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76008 static char __pyx_doc_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors[] = "Distgraphcomm.Get_dist_neighbors(self)\n\n        Return adjacency information for a distributed graph topology\n        ";
__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76009 static PyObject *__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76010   int __pyx_v_maxindegree;
76011   int __pyx_v_maxoutdegree;
76012   int __pyx_v_weighted;
76013   int *__pyx_v_sources;
76014   int *__pyx_v_destinations;
76015   int *__pyx_v_sourceweights;
76016   int *__pyx_v_destweights;
76017   PyObject *__pyx_v_tmp1 = 0;
76018   PyObject *__pyx_v_tmp2 = 0;
76019   PyObject *__pyx_v_tmp3 = 0;
76020   PyObject *__pyx_v_tmp4 = 0;
76021   int __pyx_v_i;
76022   PyObject *__pyx_v_src = 0;
76023   PyObject *__pyx_v_dst = 0;
76024   PyObject *__pyx_v_sw = 0;
76025   PyObject *__pyx_v_dw = 0;
76026   PyObject *__pyx_r = NULL;
76027   __Pyx_RefNannyDeclarations
76028   int __pyx_t_1;
76029   PyObject *__pyx_t_2 = NULL;
76030   PyObject *__pyx_t_3 = NULL;
76031   int __pyx_t_4;
76032   int __pyx_lineno = 0;
76033   const char *__pyx_filename = NULL;
76034   int __pyx_clineno = 0;
76035   __Pyx_RefNannySetupContext("Get_dist_neighbors");
76036   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
76037     __Pyx_RaiseArgtupleInvalid("Get_dist_neighbors", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
76038   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_dist_neighbors", 0))) return NULL;
76039 
76040   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1561
76041  *         Return adjacency information for a distributed graph topology
76042  *         """
76043  *         cdef int maxindegree = 0, maxoutdegree = 0, weighted = 0             # <<<<<<<<<<<<<<
76044  *         CHKERR( MPI_Dist_graph_neighbors_count(
76045  *                 self.ob_mpi, &maxindegree, &maxoutdegree, &weighted) )
76046  */
76047   __pyx_v_maxindegree = 0;
76048   __pyx_v_maxoutdegree = 0;
76049   __pyx_v_weighted = 0;
76050 
76051   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1563
76052  *         cdef int maxindegree = 0, maxoutdegree = 0, weighted = 0
76053  *         CHKERR( MPI_Dist_graph_neighbors_count(
76054  *                 self.ob_mpi, &maxindegree, &maxoutdegree, &weighted) )             # <<<<<<<<<<<<<<
76055  *         #
76056  *         cdef int *sources = NULL, *destinations = NULL
76057  */
76058   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dist_graph_neighbors_count(((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, (&__pyx_v_maxindegree), (&__pyx_v_maxoutdegree), (&__pyx_v_weighted))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76059 
76060   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1565
76061  *                 self.ob_mpi, &maxindegree, &maxoutdegree, &weighted) )
76062  *         #
76063  *         cdef int *sources = NULL, *destinations = NULL             # <<<<<<<<<<<<<<
76064  *         cdef int *sourceweights = MPI_UNWEIGHTED
76065  *         cdef int *destweights   = MPI_UNWEIGHTED
76066  */
76067   __pyx_v_sources = NULL;
76068   __pyx_v_destinations = NULL;
76069 
76070   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1566
76071  *         #
76072  *         cdef int *sources = NULL, *destinations = NULL
76073  *         cdef int *sourceweights = MPI_UNWEIGHTED             # <<<<<<<<<<<<<<
76074  *         cdef int *destweights   = MPI_UNWEIGHTED
76075  *         cdef tmp1, tmp2, tmp3, tmp4
76076  */
76077   __pyx_v_sourceweights = MPI_UNWEIGHTED;
76078 
76079   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1567
76080  *         cdef int *sources = NULL, *destinations = NULL
76081  *         cdef int *sourceweights = MPI_UNWEIGHTED
76082  *         cdef int *destweights   = MPI_UNWEIGHTED             # <<<<<<<<<<<<<<
76083  *         cdef tmp1, tmp2, tmp3, tmp4
76084  *         tmp1 = newarray_int(maxindegree,  &sources)
76085  */
76086   __pyx_v_destweights = MPI_UNWEIGHTED;
76087 
76088   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1569
76089  *         cdef int *destweights   = MPI_UNWEIGHTED
76090  *         cdef tmp1, tmp2, tmp3, tmp4
76091  *         tmp1 = newarray_int(maxindegree,  &sources)             # <<<<<<<<<<<<<<
76092  *         tmp2 = newarray_int(maxoutdegree, &destinations)
76093  *         cdef int i = 0
76094  */
76095   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_maxindegree, (&__pyx_v_sources)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76096   __Pyx_GOTREF(__pyx_t_2);
76097   __pyx_v_tmp1 = __pyx_t_2;
76098   __pyx_t_2 = 0;
76099 
76100   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1570
76101  *         cdef tmp1, tmp2, tmp3, tmp4
76102  *         tmp1 = newarray_int(maxindegree,  &sources)
76103  *         tmp2 = newarray_int(maxoutdegree, &destinations)             # <<<<<<<<<<<<<<
76104  *         cdef int i = 0
76105  *         if weighted:
76106  */
76107   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_maxoutdegree, (&__pyx_v_destinations)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76108   __Pyx_GOTREF(__pyx_t_2);
76109   __pyx_v_tmp2 = __pyx_t_2;
76110   __pyx_t_2 = 0;
76111 
76112   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1571
76113  *         tmp1 = newarray_int(maxindegree,  &sources)
76114  *         tmp2 = newarray_int(maxoutdegree, &destinations)
76115  *         cdef int i = 0             # <<<<<<<<<<<<<<
76116  *         if weighted:
76117  *             tmp3 = newarray_int(maxindegree,  &sourceweights)
76118  */
76119   __pyx_v_i = 0;
76120 
76121   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1572
76122  *         tmp2 = newarray_int(maxoutdegree, &destinations)
76123  *         cdef int i = 0
76124  *         if weighted:             # <<<<<<<<<<<<<<
76125  *             tmp3 = newarray_int(maxindegree,  &sourceweights)
76126  *             for i from 0 <= i < maxindegree:  sourceweights[i] = 1
76127  */
76128   if (__pyx_v_weighted) {
76129 
76130     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1573
76131  *         cdef int i = 0
76132  *         if weighted:
76133  *             tmp3 = newarray_int(maxindegree,  &sourceweights)             # <<<<<<<<<<<<<<
76134  *             for i from 0 <= i < maxindegree:  sourceweights[i] = 1
76135  *             tmp4 = newarray_int(maxoutdegree, &destweights)
76136  */
76137     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_maxindegree, (&__pyx_v_sourceweights)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76138     __Pyx_GOTREF(__pyx_t_2);
76139     __pyx_v_tmp3 = __pyx_t_2;
76140     __pyx_t_2 = 0;
76141 
76142     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1574
76143  *         if weighted:
76144  *             tmp3 = newarray_int(maxindegree,  &sourceweights)
76145  *             for i from 0 <= i < maxindegree:  sourceweights[i] = 1             # <<<<<<<<<<<<<<
76146  *             tmp4 = newarray_int(maxoutdegree, &destweights)
76147  *             for i from 0 <= i < maxoutdegree: destweights[i]   = 1
76148  */
76149     __pyx_t_1 = __pyx_v_maxindegree;
76150     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76151       (__pyx_v_sourceweights[__pyx_v_i]) = 1;
76152     }
76153 
76154     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1575
76155  *             tmp3 = newarray_int(maxindegree,  &sourceweights)
76156  *             for i from 0 <= i < maxindegree:  sourceweights[i] = 1
76157  *             tmp4 = newarray_int(maxoutdegree, &destweights)             # <<<<<<<<<<<<<<
76158  *             for i from 0 <= i < maxoutdegree: destweights[i]   = 1
76159  *         #
76160  */
76161     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_newarray_int(__pyx_v_maxoutdegree, (&__pyx_v_destweights)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76162     __Pyx_GOTREF(__pyx_t_2);
76163     __pyx_v_tmp4 = __pyx_t_2;
76164     __pyx_t_2 = 0;
76165 
76166     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1576
76167  *             for i from 0 <= i < maxindegree:  sourceweights[i] = 1
76168  *             tmp4 = newarray_int(maxoutdegree, &destweights)
76169  *             for i from 0 <= i < maxoutdegree: destweights[i]   = 1             # <<<<<<<<<<<<<<
76170  *         #
76171  *         CHKERR( MPI_Dist_graph_neighbors(
76172  */
76173     __pyx_t_1 = __pyx_v_maxoutdegree;
76174     for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76175       (__pyx_v_destweights[__pyx_v_i]) = 1;
76176     }
76177     goto __pyx_L5;
76178   }
76179   __pyx_L5:;
76180 
76181   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1581
76182  *                 self.ob_mpi,
76183  *                 maxindegree,  sources,      sourceweights,
76184  *                 maxoutdegree, destinations, destweights) )             # <<<<<<<<<<<<<<
76185  *         #
76186  *         cdef object src = [sources[i]      for i from 0 <= i < maxindegree]
76187  */
76188   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Dist_graph_neighbors(((struct PyMPIDistgraphcommObject *)__pyx_v_self)->__pyx_base.__pyx_base.ob_mpi, __pyx_v_maxindegree, __pyx_v_sources, __pyx_v_sourceweights, __pyx_v_maxoutdegree, __pyx_v_destinations, __pyx_v_destweights)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76189 
76190   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1583
76191  *                 maxoutdegree, destinations, destweights) )
76192  *         #
76193  *         cdef object src = [sources[i]      for i from 0 <= i < maxindegree]             # <<<<<<<<<<<<<<
76194  *         cdef object dst = [destinations[i] for i from 0 <= i < maxoutdegree]
76195  *         if not weighted: return (src, dst, None)
76196  */
76197   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76198   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76199   __pyx_t_1 = __pyx_v_maxindegree;
76200   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76201     __pyx_t_3 = PyInt_FromLong((__pyx_v_sources[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76202     __Pyx_GOTREF(__pyx_t_3);
76203     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76204     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
76205   }
76206   __Pyx_INCREF(((PyObject *)__pyx_t_2));
76207   __pyx_v_src = ((PyObject *)__pyx_t_2);
76208   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
76209 
76210   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1584
76211  *         #
76212  *         cdef object src = [sources[i]      for i from 0 <= i < maxindegree]
76213  *         cdef object dst = [destinations[i] for i from 0 <= i < maxoutdegree]             # <<<<<<<<<<<<<<
76214  *         if not weighted: return (src, dst, None)
76215  *         #
76216  */
76217   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76218   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76219   __pyx_t_1 = __pyx_v_maxoutdegree;
76220   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76221     __pyx_t_3 = PyInt_FromLong((__pyx_v_destinations[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76222     __Pyx_GOTREF(__pyx_t_3);
76223     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76224     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
76225   }
76226   __Pyx_INCREF(((PyObject *)__pyx_t_2));
76227   __pyx_v_dst = ((PyObject *)__pyx_t_2);
76228   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
76229 
76230   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1585
76231  *         cdef object src = [sources[i]      for i from 0 <= i < maxindegree]
76232  *         cdef object dst = [destinations[i] for i from 0 <= i < maxoutdegree]
76233  *         if not weighted: return (src, dst, None)             # <<<<<<<<<<<<<<
76234  *         #
76235  *         cdef object sw = [sourceweights[i] for i from 0 <= i < maxindegree]
76236  */
76237   __pyx_t_4 = (!__pyx_v_weighted);
76238   if (__pyx_t_4) {
76239     __Pyx_XDECREF(__pyx_r);
76240     __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76241     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76242     __Pyx_INCREF(__pyx_v_src);
76243     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_src);
76244     __Pyx_GIVEREF(__pyx_v_src);
76245     __Pyx_INCREF(__pyx_v_dst);
76246     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_dst);
76247     __Pyx_GIVEREF(__pyx_v_dst);
76248     __Pyx_INCREF(Py_None);
76249     PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
76250     __Pyx_GIVEREF(Py_None);
76251     __pyx_r = ((PyObject *)__pyx_t_2);
76252     __pyx_t_2 = 0;
76253     goto __pyx_L0;
76254     goto __pyx_L14;
76255   }
76256   __pyx_L14:;
76257 
76258   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1587
76259  *         if not weighted: return (src, dst, None)
76260  *         #
76261  *         cdef object sw = [sourceweights[i] for i from 0 <= i < maxindegree]             # <<<<<<<<<<<<<<
76262  *         cdef object dw = [destweights[i]   for i from 0 <= i < maxoutdegree]
76263  *         return (src, dst, (sw, dw))
76264  */
76265   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76266   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76267   __pyx_t_1 = __pyx_v_maxindegree;
76268   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76269     __pyx_t_3 = PyInt_FromLong((__pyx_v_sourceweights[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76270     __Pyx_GOTREF(__pyx_t_3);
76271     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76272     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
76273   }
76274   __Pyx_INCREF(((PyObject *)__pyx_t_2));
76275   __pyx_v_sw = ((PyObject *)__pyx_t_2);
76276   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
76277 
76278   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1588
76279  *         #
76280  *         cdef object sw = [sourceweights[i] for i from 0 <= i < maxindegree]
76281  *         cdef object dw = [destweights[i]   for i from 0 <= i < maxoutdegree]             # <<<<<<<<<<<<<<
76282  *         return (src, dst, (sw, dw))
76283  *
76284  */
76285   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76286   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76287   __pyx_t_1 = __pyx_v_maxoutdegree;
76288   for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
76289     __pyx_t_3 = PyInt_FromLong((__pyx_v_destweights[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76290     __Pyx_GOTREF(__pyx_t_3);
76291     if (unlikely(PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76292     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
76293   }
76294   __Pyx_INCREF(((PyObject *)__pyx_t_2));
76295   __pyx_v_dw = ((PyObject *)__pyx_t_2);
76296   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
76297 
76298   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1589
76299  *         cdef object sw = [sourceweights[i] for i from 0 <= i < maxindegree]
76300  *         cdef object dw = [destweights[i]   for i from 0 <= i < maxoutdegree]
76301  *         return (src, dst, (sw, dw))             # <<<<<<<<<<<<<<
76302  *
76303  *
76304  */
76305   __Pyx_XDECREF(__pyx_r);
76306   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76307   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
76308   __Pyx_INCREF(__pyx_v_sw);
76309   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_sw);
76310   __Pyx_GIVEREF(__pyx_v_sw);
76311   __Pyx_INCREF(__pyx_v_dw);
76312   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_dw);
76313   __Pyx_GIVEREF(__pyx_v_dw);
76314   __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76315   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
76316   __Pyx_INCREF(__pyx_v_src);
76317   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_src);
76318   __Pyx_GIVEREF(__pyx_v_src);
76319   __Pyx_INCREF(__pyx_v_dst);
76320   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_dst);
76321   __Pyx_GIVEREF(__pyx_v_dst);
76322   PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_t_2));
76323   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
76324   __pyx_t_2 = 0;
76325   __pyx_r = ((PyObject *)__pyx_t_3);
76326   __pyx_t_3 = 0;
76327   goto __pyx_L0;
76328 
76329   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76330   goto __pyx_L0;
76331   __pyx_L1_error:;
76332   __Pyx_XDECREF(__pyx_t_2);
76333   __Pyx_XDECREF(__pyx_t_3);
76334   __Pyx_AddTraceback("mpi4py.MPI.Distgraphcomm.Get_dist_neighbors", __pyx_clineno, __pyx_lineno, __pyx_filename);
76335   __pyx_r = NULL;
76336   __pyx_L0:;
76337   __Pyx_XDECREF(__pyx_v_tmp1);
76338   __Pyx_XDECREF(__pyx_v_tmp2);
76339   __Pyx_XDECREF(__pyx_v_tmp3);
76340   __Pyx_XDECREF(__pyx_v_tmp4);
76341   __Pyx_XDECREF(__pyx_v_src);
76342   __Pyx_XDECREF(__pyx_v_dst);
76343   __Pyx_XDECREF(__pyx_v_sw);
76344   __Pyx_XDECREF(__pyx_v_dw);
76345   __Pyx_XGIVEREF(__pyx_r);
76346   __Pyx_RefNannyFinishContext();
76347   return __pyx_r;
76348 }
76349 
76350 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1598
76351  *     """
76352  *
76353  *     def __cinit__(self, Comm comm=None):             # <<<<<<<<<<<<<<
76354  *         cdef int inter = 1
76355  *         if self.ob_mpi != MPI_COMM_NULL:
76356  */
76357 
76358 static int __pyx_pf_6mpi4py_3MPI_9Intercomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Intercomm___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76359 static int __pyx_pf_6mpi4py_3MPI_9Intercomm___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76360   struct PyMPICommObject *__pyx_v_comm = 0;
76361   int __pyx_v_inter;
76362   int __pyx_r;
76363   __Pyx_RefNannyDeclarations
76364   int __pyx_t_1;
76365   int __pyx_t_2;
76366   PyObject *__pyx_t_3 = NULL;
76367   int __pyx_lineno = 0;
76368   const char *__pyx_filename = NULL;
76369   int __pyx_clineno = 0;
76370   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,0};
76371   __Pyx_RefNannySetupContext("__cinit__");
76372   {
76373     PyObject* values[1] = {0};
76374     values[0] = (PyObject *)((struct PyMPICommObject *)Py_None);
76375     if (unlikely(__pyx_kwds)) {
76376       Py_ssize_t kw_args;
76377       switch (PyTuple_GET_SIZE(__pyx_args)) {
76378         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76379         case  0: break;
76380         default: goto __pyx_L5_argtuple_error;
76381       }
76382       kw_args = PyDict_Size(__pyx_kwds);
76383       switch (PyTuple_GET_SIZE(__pyx_args)) {
76384         case  0:
76385         if (kw_args > 0) {
76386           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
76387           if (value) { values[0] = value; kw_args--; }
76388         }
76389       }
76390       if (unlikely(kw_args > 0)) {
76391         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76392       }
76393     } else {
76394       switch (PyTuple_GET_SIZE(__pyx_args)) {
76395         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76396         case  0: break;
76397         default: goto __pyx_L5_argtuple_error;
76398       }
76399     }
76400     __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
76401   }
76402   goto __pyx_L4_argument_unpacking_done;
76403   __pyx_L5_argtuple_error:;
76404   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76405   __pyx_L3_error:;
76406   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
76407   __Pyx_RefNannyFinishContext();
76408   return -1;
76409   __pyx_L4_argument_unpacking_done:;
76410   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76411 
76412   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1599
76413  *
76414  *     def __cinit__(self, Comm comm=None):
76415  *         cdef int inter = 1             # <<<<<<<<<<<<<<
76416  *         if self.ob_mpi != MPI_COMM_NULL:
76417  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
76418  */
76419   __pyx_v_inter = 1;
76420 
76421   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1600
76422  *     def __cinit__(self, Comm comm=None):
76423  *         cdef int inter = 1
76424  *         if self.ob_mpi != MPI_COMM_NULL:             # <<<<<<<<<<<<<<
76425  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
76426  *             if not inter: raise TypeError(
76427  */
76428   __pyx_t_1 = (((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi != MPI_COMM_NULL);
76429   if (__pyx_t_1) {
76430 
76431     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1601
76432  *         cdef int inter = 1
76433  *         if self.ob_mpi != MPI_COMM_NULL:
76434  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )             # <<<<<<<<<<<<<<
76435  *             if not inter: raise TypeError(
76436  *                 "expecting an intercommunicator")
76437  */
76438     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_test_inter(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_inter))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76439 
76440     /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1602
76441  *         if self.ob_mpi != MPI_COMM_NULL:
76442  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
76443  *             if not inter: raise TypeError(             # <<<<<<<<<<<<<<
76444  *                 "expecting an intercommunicator")
76445  *
76446  */
76447     __pyx_t_1 = (!__pyx_v_inter);
76448     if (__pyx_t_1) {
76449       __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_96), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76450       __Pyx_GOTREF(__pyx_t_3);
76451       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
76452       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
76453       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76454       goto __pyx_L7;
76455     }
76456     __pyx_L7:;
76457     goto __pyx_L6;
76458   }
76459   __pyx_L6:;
76460 
76461   __pyx_r = 0;
76462   goto __pyx_L0;
76463   __pyx_L1_error:;
76464   __Pyx_XDECREF(__pyx_t_3);
76465   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
76466   __pyx_r = -1;
76467   __pyx_L0:;
76468   __Pyx_RefNannyFinishContext();
76469   return __pyx_r;
76470 }
76471 
76472 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1608
76473  *     # ---------------------------
76474  *
76475  *     def Get_remote_group(self):             # <<<<<<<<<<<<<<
76476  *         """
76477  *         Access the remote group associated
76478  */
76479 
76480 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_1Get_remote_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76481 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_1Get_remote_group[] = "Intercomm.Get_remote_group(self)\n\n        Access the remote group associated\n        with the inter-communicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_1Get_remote_group(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76482 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_1Get_remote_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76483   struct PyMPIGroupObject *__pyx_v_group = 0;
76484   PyObject *__pyx_r = NULL;
76485   __Pyx_RefNannyDeclarations
76486   PyObject *__pyx_t_1 = NULL;
76487   int __pyx_t_2;
76488   int __pyx_lineno = 0;
76489   const char *__pyx_filename = NULL;
76490   int __pyx_clineno = 0;
76491   __Pyx_RefNannySetupContext("Get_remote_group");
76492   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
76493     __Pyx_RaiseArgtupleInvalid("Get_remote_group", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
76494   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_remote_group", 0))) return NULL;
76495 
76496   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1613
76497  *         with the inter-communicator
76498  *         """
76499  *         cdef Group group = <Group>Group.__new__(Group)             # <<<<<<<<<<<<<<
76500  *         CHKERR( MPI_Comm_remote_group(self.ob_mpi, &group.ob_mpi) )
76501  *         return group
76502  */
76503   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76504   __Pyx_GOTREF(__pyx_t_1);
76505   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
76506   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
76507   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
76508 
76509   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1614
76510  *         """
76511  *         cdef Group group = <Group>Group.__new__(Group)
76512  *         CHKERR( MPI_Comm_remote_group(self.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
76513  *         return group
76514  *
76515  */
76516   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_group(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76517 
76518   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1615
76519  *         cdef Group group = <Group>Group.__new__(Group)
76520  *         CHKERR( MPI_Comm_remote_group(self.ob_mpi, &group.ob_mpi) )
76521  *         return group             # <<<<<<<<<<<<<<
76522  *
76523  *     property remote_group:
76524  */
76525   __Pyx_XDECREF(__pyx_r);
76526   __Pyx_INCREF(((PyObject *)__pyx_v_group));
76527   __pyx_r = ((PyObject *)__pyx_v_group);
76528   goto __pyx_L0;
76529 
76530   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76531   goto __pyx_L0;
76532   __pyx_L1_error:;
76533   __Pyx_XDECREF(__pyx_t_1);
76534   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Get_remote_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
76535   __pyx_r = NULL;
76536   __pyx_L0:;
76537   __Pyx_XDECREF((PyObject *)__pyx_v_group);
76538   __Pyx_XGIVEREF(__pyx_r);
76539   __Pyx_RefNannyFinishContext();
76540   return __pyx_r;
76541 }
76542 
76543 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1619
76544  *     property remote_group:
76545  *         """remote group"""
76546  *         def __get__(self):             # <<<<<<<<<<<<<<
76547  *             return self.Get_remote_group()
76548  *
76549  */
76550 
76551 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_12remote_group___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Intercomm_12remote_group___get__(PyObject * __pyx_v_self)76552 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_12remote_group___get__(PyObject *__pyx_v_self) {
76553   PyObject *__pyx_r = NULL;
76554   __Pyx_RefNannyDeclarations
76555   PyObject *__pyx_t_1 = NULL;
76556   PyObject *__pyx_t_2 = NULL;
76557   int __pyx_lineno = 0;
76558   const char *__pyx_filename = NULL;
76559   int __pyx_clineno = 0;
76560   __Pyx_RefNannySetupContext("__get__");
76561 
76562   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1620
76563  *         """remote group"""
76564  *         def __get__(self):
76565  *             return self.Get_remote_group()             # <<<<<<<<<<<<<<
76566  *
76567  *     def Get_remote_size(self):
76568  */
76569   __Pyx_XDECREF(__pyx_r);
76570   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_remote_group); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76571   __Pyx_GOTREF(__pyx_t_1);
76572   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76573   __Pyx_GOTREF(__pyx_t_2);
76574   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
76575   __pyx_r = __pyx_t_2;
76576   __pyx_t_2 = 0;
76577   goto __pyx_L0;
76578 
76579   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76580   goto __pyx_L0;
76581   __pyx_L1_error:;
76582   __Pyx_XDECREF(__pyx_t_1);
76583   __Pyx_XDECREF(__pyx_t_2);
76584   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.remote_group.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
76585   __pyx_r = NULL;
76586   __pyx_L0:;
76587   __Pyx_XGIVEREF(__pyx_r);
76588   __Pyx_RefNannyFinishContext();
76589   return __pyx_r;
76590 }
76591 
76592 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1622
76593  *             return self.Get_remote_group()
76594  *
76595  *     def Get_remote_size(self):             # <<<<<<<<<<<<<<
76596  *         """
76597  *         Intercommunicator remote size
76598  */
76599 
76600 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_2Get_remote_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76601 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_2Get_remote_size[] = "Intercomm.Get_remote_size(self)\n\n        Intercommunicator remote size\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_2Get_remote_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76602 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_2Get_remote_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76603   int __pyx_v_size;
76604   PyObject *__pyx_r = NULL;
76605   __Pyx_RefNannyDeclarations
76606   int __pyx_t_1;
76607   PyObject *__pyx_t_2 = NULL;
76608   int __pyx_lineno = 0;
76609   const char *__pyx_filename = NULL;
76610   int __pyx_clineno = 0;
76611   __Pyx_RefNannySetupContext("Get_remote_size");
76612   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
76613     __Pyx_RaiseArgtupleInvalid("Get_remote_size", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
76614   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_remote_size", 0))) return NULL;
76615 
76616   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1626
76617  *         Intercommunicator remote size
76618  *         """
76619  *         cdef int size = -1             # <<<<<<<<<<<<<<
76620  *         CHKERR( MPI_Comm_remote_size(self.ob_mpi, &size) )
76621  *         return size
76622  */
76623   __pyx_v_size = -1;
76624 
76625   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1627
76626  *         """
76627  *         cdef int size = -1
76628  *         CHKERR( MPI_Comm_remote_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
76629  *         return size
76630  *
76631  */
76632   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_remote_size(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76633 
76634   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1628
76635  *         cdef int size = -1
76636  *         CHKERR( MPI_Comm_remote_size(self.ob_mpi, &size) )
76637  *         return size             # <<<<<<<<<<<<<<
76638  *
76639  *     property remote_size:
76640  */
76641   __Pyx_XDECREF(__pyx_r);
76642   __pyx_t_2 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76643   __Pyx_GOTREF(__pyx_t_2);
76644   __pyx_r = __pyx_t_2;
76645   __pyx_t_2 = 0;
76646   goto __pyx_L0;
76647 
76648   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76649   goto __pyx_L0;
76650   __pyx_L1_error:;
76651   __Pyx_XDECREF(__pyx_t_2);
76652   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Get_remote_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
76653   __pyx_r = NULL;
76654   __pyx_L0:;
76655   __Pyx_XGIVEREF(__pyx_r);
76656   __Pyx_RefNannyFinishContext();
76657   return __pyx_r;
76658 }
76659 
76660 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1632
76661  *     property remote_size:
76662  *         """number of remote processes"""
76663  *         def __get__(self):             # <<<<<<<<<<<<<<
76664  *             return self.Get_remote_size()
76665  *
76666  */
76667 
76668 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_11remote_size___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_9Intercomm_11remote_size___get__(PyObject * __pyx_v_self)76669 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_11remote_size___get__(PyObject *__pyx_v_self) {
76670   PyObject *__pyx_r = NULL;
76671   __Pyx_RefNannyDeclarations
76672   PyObject *__pyx_t_1 = NULL;
76673   PyObject *__pyx_t_2 = NULL;
76674   int __pyx_lineno = 0;
76675   const char *__pyx_filename = NULL;
76676   int __pyx_clineno = 0;
76677   __Pyx_RefNannySetupContext("__get__");
76678 
76679   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1633
76680  *         """number of remote processes"""
76681  *         def __get__(self):
76682  *             return self.Get_remote_size()             # <<<<<<<<<<<<<<
76683  *
76684  *     # Communicator Constructors
76685  */
76686   __Pyx_XDECREF(__pyx_r);
76687   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_remote_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76688   __Pyx_GOTREF(__pyx_t_1);
76689   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76690   __Pyx_GOTREF(__pyx_t_2);
76691   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
76692   __pyx_r = __pyx_t_2;
76693   __pyx_t_2 = 0;
76694   goto __pyx_L0;
76695 
76696   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76697   goto __pyx_L0;
76698   __pyx_L1_error:;
76699   __Pyx_XDECREF(__pyx_t_1);
76700   __Pyx_XDECREF(__pyx_t_2);
76701   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.remote_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
76702   __pyx_r = NULL;
76703   __pyx_L0:;
76704   __Pyx_XGIVEREF(__pyx_r);
76705   __Pyx_RefNannyFinishContext();
76706   return __pyx_r;
76707 }
76708 
76709 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1638
76710  *     # -------------------------
76711  *
76712  *     def Dup(self):             # <<<<<<<<<<<<<<
76713  *         """
76714  *         Duplicate an existing intercommunicator
76715  */
76716 
76717 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_3Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76718 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_3Dup[] = "Intercomm.Dup(self)\n\n        Duplicate an existing intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_3Dup(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76719 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_3Dup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76720   struct PyMPIIntercommObject *__pyx_v_comm = 0;
76721   PyObject *__pyx_r = NULL;
76722   __Pyx_RefNannyDeclarations
76723   PyObject *__pyx_t_1 = NULL;
76724   int __pyx_t_2;
76725   int __pyx_lineno = 0;
76726   const char *__pyx_filename = NULL;
76727   int __pyx_clineno = 0;
76728   __Pyx_RefNannySetupContext("Dup");
76729   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
76730     __Pyx_RaiseArgtupleInvalid("Dup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
76731   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Dup", 0))) return NULL;
76732 
76733   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1642
76734  *         Duplicate an existing intercommunicator
76735  *         """
76736  *         cdef Intercomm comm = <Intercomm>type(self)()             # <<<<<<<<<<<<<<
76737  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
76738  *         return comm
76739  */
76740   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76741   __Pyx_GOTREF(__pyx_t_1);
76742   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
76743   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
76744   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
76745 
76746   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1643
76747  *         """
76748  *         cdef Intercomm comm = <Intercomm>type(self)()
76749  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
76750  *         return comm
76751  *
76752  */
76753   {
76754       #ifdef WITH_THREAD
76755       PyThreadState *_save = NULL;
76756       #endif
76757       Py_UNBLOCK_THREADS
76758       /*try:*/ {
76759         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_dup(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1643; __pyx_clineno = __LINE__; goto __pyx_L6;}
76760       }
76761       /*finally:*/ {
76762         int __pyx_why;
76763         __pyx_why = 0; goto __pyx_L7;
76764         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
76765         __pyx_L7:;
76766         Py_BLOCK_THREADS
76767         switch (__pyx_why) {
76768           case 4: goto __pyx_L1_error;
76769         }
76770       }
76771   }
76772 
76773   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1644
76774  *         cdef Intercomm comm = <Intercomm>type(self)()
76775  *         with nogil: CHKERR( MPI_Comm_dup(self.ob_mpi, &comm.ob_mpi) )
76776  *         return comm             # <<<<<<<<<<<<<<
76777  *
76778  *     def Create(self, Group group not None):
76779  */
76780   __Pyx_XDECREF(__pyx_r);
76781   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
76782   __pyx_r = ((PyObject *)__pyx_v_comm);
76783   goto __pyx_L0;
76784 
76785   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76786   goto __pyx_L0;
76787   __pyx_L1_error:;
76788   __Pyx_XDECREF(__pyx_t_1);
76789   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Dup", __pyx_clineno, __pyx_lineno, __pyx_filename);
76790   __pyx_r = NULL;
76791   __pyx_L0:;
76792   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
76793   __Pyx_XGIVEREF(__pyx_r);
76794   __Pyx_RefNannyFinishContext();
76795   return __pyx_r;
76796 }
76797 
76798 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1646
76799  *         return comm
76800  *
76801  *     def Create(self, Group group not None):             # <<<<<<<<<<<<<<
76802  *         """
76803  *         Create intercommunicator from group
76804  */
76805 
76806 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_4Create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76807 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_4Create[] = "Intercomm.Create(self, Group group)\n\n        Create intercommunicator from group\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_4Create(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76808 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_4Create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76809   struct PyMPIGroupObject *__pyx_v_group = 0;
76810   struct PyMPIIntercommObject *__pyx_v_comm = 0;
76811   PyObject *__pyx_r = NULL;
76812   __Pyx_RefNannyDeclarations
76813   PyObject *__pyx_t_1 = NULL;
76814   int __pyx_t_2;
76815   int __pyx_lineno = 0;
76816   const char *__pyx_filename = NULL;
76817   int __pyx_clineno = 0;
76818   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group,0};
76819   __Pyx_RefNannySetupContext("Create");
76820   {
76821     PyObject* values[1] = {0};
76822     if (unlikely(__pyx_kwds)) {
76823       Py_ssize_t kw_args;
76824       switch (PyTuple_GET_SIZE(__pyx_args)) {
76825         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76826         case  0: break;
76827         default: goto __pyx_L5_argtuple_error;
76828       }
76829       kw_args = PyDict_Size(__pyx_kwds);
76830       switch (PyTuple_GET_SIZE(__pyx_args)) {
76831         case  0:
76832         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group);
76833         if (likely(values[0])) kw_args--;
76834         else goto __pyx_L5_argtuple_error;
76835       }
76836       if (unlikely(kw_args > 0)) {
76837         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76838       }
76839     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
76840       goto __pyx_L5_argtuple_error;
76841     } else {
76842       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76843     }
76844     __pyx_v_group = ((struct PyMPIGroupObject *)values[0]);
76845   }
76846   goto __pyx_L4_argument_unpacking_done;
76847   __pyx_L5_argtuple_error:;
76848   __Pyx_RaiseArgtupleInvalid("Create", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76849   __pyx_L3_error:;
76850   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
76851   __Pyx_RefNannyFinishContext();
76852   return NULL;
76853   __pyx_L4_argument_unpacking_done:;
76854   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76855 
76856   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1650
76857  *         Create intercommunicator from group
76858  *         """
76859  *         cdef Intercomm comm = <Intercomm>type(self)()             # <<<<<<<<<<<<<<
76860  *         with nogil: CHKERR( MPI_Comm_create(
76861  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
76862  */
76863   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
76864   __Pyx_GOTREF(__pyx_t_1);
76865   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
76866   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
76867   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
76868 
76869   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1651
76870  *         """
76871  *         cdef Intercomm comm = <Intercomm>type(self)()
76872  *         with nogil: CHKERR( MPI_Comm_create(             # <<<<<<<<<<<<<<
76873  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
76874  *         return comm
76875  */
76876   {
76877       #ifdef WITH_THREAD
76878       PyThreadState *_save = NULL;
76879       #endif
76880       Py_UNBLOCK_THREADS
76881       /*try:*/ {
76882 
76883         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1652
76884  *         cdef Intercomm comm = <Intercomm>type(self)()
76885  *         with nogil: CHKERR( MPI_Comm_create(
76886  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
76887  *         return comm
76888  *
76889  */
76890         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_create(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_group->ob_mpi, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L7;}
76891       }
76892 
76893       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1651
76894  *         """
76895  *         cdef Intercomm comm = <Intercomm>type(self)()
76896  *         with nogil: CHKERR( MPI_Comm_create(             # <<<<<<<<<<<<<<
76897  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
76898  *         return comm
76899  */
76900       /*finally:*/ {
76901         int __pyx_why;
76902         __pyx_why = 0; goto __pyx_L8;
76903         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
76904         __pyx_L8:;
76905         Py_BLOCK_THREADS
76906         switch (__pyx_why) {
76907           case 4: goto __pyx_L1_error;
76908         }
76909       }
76910   }
76911 
76912   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1653
76913  *         with nogil: CHKERR( MPI_Comm_create(
76914  *             self.ob_mpi, group.ob_mpi, &comm.ob_mpi) )
76915  *         return comm             # <<<<<<<<<<<<<<
76916  *
76917  *     def Split(self, int color=0, int key=0):
76918  */
76919   __Pyx_XDECREF(__pyx_r);
76920   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
76921   __pyx_r = ((PyObject *)__pyx_v_comm);
76922   goto __pyx_L0;
76923 
76924   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
76925   goto __pyx_L0;
76926   __pyx_L1_error:;
76927   __Pyx_XDECREF(__pyx_t_1);
76928   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
76929   __pyx_r = NULL;
76930   __pyx_L0:;
76931   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
76932   __Pyx_XGIVEREF(__pyx_r);
76933   __Pyx_RefNannyFinishContext();
76934   return __pyx_r;
76935 }
76936 
76937 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1655
76938  *         return comm
76939  *
76940  *     def Split(self, int color=0, int key=0):             # <<<<<<<<<<<<<<
76941  *         """
76942  *         Split intercommunicator by color and key
76943  */
76944 
76945 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_5Split(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
76946 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_5Split[] = "Intercomm.Split(self, int color=0, int key=0)\n\n        Split intercommunicator by color and key\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_5Split(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)76947 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_5Split(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
76948   int __pyx_v_color;
76949   int __pyx_v_key;
76950   struct PyMPIIntercommObject *__pyx_v_comm = 0;
76951   PyObject *__pyx_r = NULL;
76952   __Pyx_RefNannyDeclarations
76953   PyObject *__pyx_t_1 = NULL;
76954   int __pyx_t_2;
76955   int __pyx_lineno = 0;
76956   const char *__pyx_filename = NULL;
76957   int __pyx_clineno = 0;
76958   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__color,&__pyx_n_s__key,0};
76959   __Pyx_RefNannySetupContext("Split");
76960   {
76961     PyObject* values[2] = {0,0};
76962     if (unlikely(__pyx_kwds)) {
76963       Py_ssize_t kw_args;
76964       switch (PyTuple_GET_SIZE(__pyx_args)) {
76965         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
76966         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76967         case  0: break;
76968         default: goto __pyx_L5_argtuple_error;
76969       }
76970       kw_args = PyDict_Size(__pyx_kwds);
76971       switch (PyTuple_GET_SIZE(__pyx_args)) {
76972         case  0:
76973         if (kw_args > 0) {
76974           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__color);
76975           if (value) { values[0] = value; kw_args--; }
76976         }
76977         case  1:
76978         if (kw_args > 0) {
76979           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
76980           if (value) { values[1] = value; kw_args--; }
76981         }
76982       }
76983       if (unlikely(kw_args > 0)) {
76984         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Split") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76985       }
76986     } else {
76987       switch (PyTuple_GET_SIZE(__pyx_args)) {
76988         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
76989         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
76990         case  0: break;
76991         default: goto __pyx_L5_argtuple_error;
76992       }
76993     }
76994     if (values[0]) {
76995       __pyx_v_color = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_color == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
76996     } else {
76997       __pyx_v_color = ((int)0);
76998     }
76999     if (values[1]) {
77000       __pyx_v_key = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_key == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77001     } else {
77002       __pyx_v_key = ((int)0);
77003     }
77004   }
77005   goto __pyx_L4_argument_unpacking_done;
77006   __pyx_L5_argtuple_error:;
77007   __Pyx_RaiseArgtupleInvalid("Split", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77008   __pyx_L3_error:;
77009   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Split", __pyx_clineno, __pyx_lineno, __pyx_filename);
77010   __Pyx_RefNannyFinishContext();
77011   return NULL;
77012   __pyx_L4_argument_unpacking_done:;
77013 
77014   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1659
77015  *         Split intercommunicator by color and key
77016  *         """
77017  *         cdef Intercomm comm = <Intercomm>type(self)()             # <<<<<<<<<<<<<<
77018  *         with nogil: CHKERR( MPI_Comm_split(
77019  *             self.ob_mpi, color, key, &comm.ob_mpi) )
77020  */
77021   __pyx_t_1 = PyObject_Call(((PyObject *)Py_TYPE(__pyx_v_self)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77022   __Pyx_GOTREF(__pyx_t_1);
77023   __Pyx_INCREF(((PyObject *)((struct PyMPIIntercommObject *)__pyx_t_1)));
77024   __pyx_v_comm = ((struct PyMPIIntercommObject *)__pyx_t_1);
77025   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
77026 
77027   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1660
77028  *         """
77029  *         cdef Intercomm comm = <Intercomm>type(self)()
77030  *         with nogil: CHKERR( MPI_Comm_split(             # <<<<<<<<<<<<<<
77031  *             self.ob_mpi, color, key, &comm.ob_mpi) )
77032  *         return comm
77033  */
77034   {
77035       #ifdef WITH_THREAD
77036       PyThreadState *_save = NULL;
77037       #endif
77038       Py_UNBLOCK_THREADS
77039       /*try:*/ {
77040 
77041         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1661
77042  *         cdef Intercomm comm = <Intercomm>type(self)()
77043  *         with nogil: CHKERR( MPI_Comm_split(
77044  *             self.ob_mpi, color, key, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
77045  *         return comm
77046  *
77047  */
77048         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Comm_split(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_color, __pyx_v_key, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L7;}
77049       }
77050 
77051       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1660
77052  *         """
77053  *         cdef Intercomm comm = <Intercomm>type(self)()
77054  *         with nogil: CHKERR( MPI_Comm_split(             # <<<<<<<<<<<<<<
77055  *             self.ob_mpi, color, key, &comm.ob_mpi) )
77056  *         return comm
77057  */
77058       /*finally:*/ {
77059         int __pyx_why;
77060         __pyx_why = 0; goto __pyx_L8;
77061         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77062         __pyx_L8:;
77063         Py_BLOCK_THREADS
77064         switch (__pyx_why) {
77065           case 4: goto __pyx_L1_error;
77066         }
77067       }
77068   }
77069 
77070   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1662
77071  *         with nogil: CHKERR( MPI_Comm_split(
77072  *             self.ob_mpi, color, key, &comm.ob_mpi) )
77073  *         return comm             # <<<<<<<<<<<<<<
77074  *
77075  *     def Merge(self, bint high=False):
77076  */
77077   __Pyx_XDECREF(__pyx_r);
77078   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
77079   __pyx_r = ((PyObject *)__pyx_v_comm);
77080   goto __pyx_L0;
77081 
77082   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77083   goto __pyx_L0;
77084   __pyx_L1_error:;
77085   __Pyx_XDECREF(__pyx_t_1);
77086   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Split", __pyx_clineno, __pyx_lineno, __pyx_filename);
77087   __pyx_r = NULL;
77088   __pyx_L0:;
77089   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
77090   __Pyx_XGIVEREF(__pyx_r);
77091   __Pyx_RefNannyFinishContext();
77092   return __pyx_r;
77093 }
77094 
77095 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1664
77096  *         return comm
77097  *
77098  *     def Merge(self, bint high=False):             # <<<<<<<<<<<<<<
77099  *         """
77100  *         Merge intercommunicator
77101  */
77102 
77103 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_6Merge(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77104 static char __pyx_doc_6mpi4py_3MPI_9Intercomm_6Merge[] = "Intercomm.Merge(self, int high=False)\n\n        Merge intercommunicator\n        ";
__pyx_pf_6mpi4py_3MPI_9Intercomm_6Merge(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77105 static PyObject *__pyx_pf_6mpi4py_3MPI_9Intercomm_6Merge(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77106   int __pyx_v_high;
77107   struct PyMPIIntracommObject *__pyx_v_comm = 0;
77108   PyObject *__pyx_r = NULL;
77109   __Pyx_RefNannyDeclarations
77110   PyObject *__pyx_t_1 = NULL;
77111   int __pyx_t_2;
77112   int __pyx_lineno = 0;
77113   const char *__pyx_filename = NULL;
77114   int __pyx_clineno = 0;
77115   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__high,0};
77116   __Pyx_RefNannySetupContext("Merge");
77117   {
77118     PyObject* values[1] = {0};
77119     if (unlikely(__pyx_kwds)) {
77120       Py_ssize_t kw_args;
77121       switch (PyTuple_GET_SIZE(__pyx_args)) {
77122         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77123         case  0: break;
77124         default: goto __pyx_L5_argtuple_error;
77125       }
77126       kw_args = PyDict_Size(__pyx_kwds);
77127       switch (PyTuple_GET_SIZE(__pyx_args)) {
77128         case  0:
77129         if (kw_args > 0) {
77130           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__high);
77131           if (value) { values[0] = value; kw_args--; }
77132         }
77133       }
77134       if (unlikely(kw_args > 0)) {
77135         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Merge") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77136       }
77137     } else {
77138       switch (PyTuple_GET_SIZE(__pyx_args)) {
77139         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77140         case  0: break;
77141         default: goto __pyx_L5_argtuple_error;
77142       }
77143     }
77144     if (values[0]) {
77145       __pyx_v_high = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_high == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77146     } else {
77147       __pyx_v_high = ((int)0);
77148     }
77149   }
77150   goto __pyx_L4_argument_unpacking_done;
77151   __pyx_L5_argtuple_error:;
77152   __Pyx_RaiseArgtupleInvalid("Merge", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77153   __pyx_L3_error:;
77154   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Merge", __pyx_clineno, __pyx_lineno, __pyx_filename);
77155   __Pyx_RefNannyFinishContext();
77156   return NULL;
77157   __pyx_L4_argument_unpacking_done:;
77158 
77159   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1668
77160  *         Merge intercommunicator
77161  *         """
77162  *         cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)             # <<<<<<<<<<<<<<
77163  *         with nogil: CHKERR( MPI_Intercomm_merge(
77164  *             self.ob_mpi, high, &comm.ob_mpi) )
77165  */
77166   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Intracomm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77167   __Pyx_GOTREF(__pyx_t_1);
77168   __Pyx_INCREF(((PyObject *)((struct PyMPIIntracommObject *)__pyx_t_1)));
77169   __pyx_v_comm = ((struct PyMPIIntracommObject *)__pyx_t_1);
77170   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
77171 
77172   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1669
77173  *         """
77174  *         cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
77175  *         with nogil: CHKERR( MPI_Intercomm_merge(             # <<<<<<<<<<<<<<
77176  *             self.ob_mpi, high, &comm.ob_mpi) )
77177  *         return comm
77178  */
77179   {
77180       #ifdef WITH_THREAD
77181       PyThreadState *_save = NULL;
77182       #endif
77183       Py_UNBLOCK_THREADS
77184       /*try:*/ {
77185 
77186         /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1670
77187  *         cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
77188  *         with nogil: CHKERR( MPI_Intercomm_merge(
77189  *             self.ob_mpi, high, &comm.ob_mpi) )             # <<<<<<<<<<<<<<
77190  *         return comm
77191  *
77192  */
77193         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Intercomm_merge(((struct PyMPIIntercommObject *)__pyx_v_self)->__pyx_base.ob_mpi, __pyx_v_high, (&__pyx_v_comm->__pyx_base.ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L7;}
77194       }
77195 
77196       /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1669
77197  *         """
77198  *         cdef Intracomm comm = <Intracomm>Intracomm.__new__(Intracomm)
77199  *         with nogil: CHKERR( MPI_Intercomm_merge(             # <<<<<<<<<<<<<<
77200  *             self.ob_mpi, high, &comm.ob_mpi) )
77201  *         return comm
77202  */
77203       /*finally:*/ {
77204         int __pyx_why;
77205         __pyx_why = 0; goto __pyx_L8;
77206         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77207         __pyx_L8:;
77208         Py_BLOCK_THREADS
77209         switch (__pyx_why) {
77210           case 4: goto __pyx_L1_error;
77211         }
77212       }
77213   }
77214 
77215   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1671
77216  *         with nogil: CHKERR( MPI_Intercomm_merge(
77217  *             self.ob_mpi, high, &comm.ob_mpi) )
77218  *         return comm             # <<<<<<<<<<<<<<
77219  *
77220  *
77221  */
77222   __Pyx_XDECREF(__pyx_r);
77223   __Pyx_INCREF(((PyObject *)__pyx_v_comm));
77224   __pyx_r = ((PyObject *)__pyx_v_comm);
77225   goto __pyx_L0;
77226 
77227   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77228   goto __pyx_L0;
77229   __pyx_L1_error:;
77230   __Pyx_XDECREF(__pyx_t_1);
77231   __Pyx_AddTraceback("mpi4py.MPI.Intercomm.Merge", __pyx_clineno, __pyx_lineno, __pyx_filename);
77232   __pyx_r = NULL;
77233   __pyx_L0:;
77234   __Pyx_XDECREF((PyObject *)__pyx_v_comm);
77235   __Pyx_XGIVEREF(__pyx_r);
77236   __Pyx_RefNannyFinishContext();
77237   return __pyx_r;
77238 }
77239 
77240 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1695
77241  * #: Upper bound of memory overhead for sending in buffered mode
77242  *
77243  * def Attach_buffer(memory):             # <<<<<<<<<<<<<<
77244  *     """
77245  *     Attach a user-provided buffer for
77246  */
77247 
77248 static PyObject *__pyx_pf_6mpi4py_3MPI_7Attach_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77249 static char __pyx_doc_6mpi4py_3MPI_7Attach_buffer[] = "Attach_buffer(memory)\n\n    Attach a user-provided buffer for\n    sending in buffered mode\n    ";
77250 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_7Attach_buffer = {__Pyx_NAMESTR("Attach_buffer"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Attach_buffer, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Attach_buffer)};
__pyx_pf_6mpi4py_3MPI_7Attach_buffer(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77251 static PyObject *__pyx_pf_6mpi4py_3MPI_7Attach_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77252   PyObject *__pyx_v_memory = 0;
77253   void *__pyx_v_base;
77254   int __pyx_v_size;
77255   PyObject *__pyx_r = NULL;
77256   __Pyx_RefNannyDeclarations
77257   int __pyx_t_1;
77258   int __pyx_lineno = 0;
77259   const char *__pyx_filename = NULL;
77260   int __pyx_clineno = 0;
77261   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__memory,0};
77262   __Pyx_RefNannySetupContext("Attach_buffer");
77263   __pyx_self = __pyx_self;
77264   {
77265     PyObject* values[1] = {0};
77266     if (unlikely(__pyx_kwds)) {
77267       Py_ssize_t kw_args;
77268       switch (PyTuple_GET_SIZE(__pyx_args)) {
77269         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77270         case  0: break;
77271         default: goto __pyx_L5_argtuple_error;
77272       }
77273       kw_args = PyDict_Size(__pyx_kwds);
77274       switch (PyTuple_GET_SIZE(__pyx_args)) {
77275         case  0:
77276         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__memory);
77277         if (likely(values[0])) kw_args--;
77278         else goto __pyx_L5_argtuple_error;
77279       }
77280       if (unlikely(kw_args > 0)) {
77281         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Attach_buffer") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77282       }
77283     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
77284       goto __pyx_L5_argtuple_error;
77285     } else {
77286       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77287     }
77288     __pyx_v_memory = values[0];
77289   }
77290   goto __pyx_L4_argument_unpacking_done;
77291   __pyx_L5_argtuple_error:;
77292   __Pyx_RaiseArgtupleInvalid("Attach_buffer", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77293   __pyx_L3_error:;
77294   __Pyx_AddTraceback("mpi4py.MPI.Attach_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
77295   __Pyx_RefNannyFinishContext();
77296   return NULL;
77297   __pyx_L4_argument_unpacking_done:;
77298 
77299   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1700
77300  *     sending in buffered mode
77301  *     """
77302  *     cdef void *base = NULL             # <<<<<<<<<<<<<<
77303  *     cdef int size = 0
77304  *     attach_buffer(memory, &base, &size)
77305  */
77306   __pyx_v_base = NULL;
77307 
77308   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1701
77309  *     """
77310  *     cdef void *base = NULL
77311  *     cdef int size = 0             # <<<<<<<<<<<<<<
77312  *     attach_buffer(memory, &base, &size)
77313  *     with nogil: CHKERR( MPI_Buffer_attach(base, size) )
77314  */
77315   __pyx_v_size = 0;
77316 
77317   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1702
77318  *     cdef void *base = NULL
77319  *     cdef int size = 0
77320  *     attach_buffer(memory, &base, &size)             # <<<<<<<<<<<<<<
77321  *     with nogil: CHKERR( MPI_Buffer_attach(base, size) )
77322  *
77323  */
77324   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_attach_buffer(__pyx_v_memory, (&__pyx_v_base), (&__pyx_v_size)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77325 
77326   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1703
77327  *     cdef int size = 0
77328  *     attach_buffer(memory, &base, &size)
77329  *     with nogil: CHKERR( MPI_Buffer_attach(base, size) )             # <<<<<<<<<<<<<<
77330  *
77331  * def Detach_buffer():
77332  */
77333   {
77334       #ifdef WITH_THREAD
77335       PyThreadState *_save = NULL;
77336       #endif
77337       Py_UNBLOCK_THREADS
77338       /*try:*/ {
77339         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Buffer_attach(__pyx_v_base, __pyx_v_size)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1703; __pyx_clineno = __LINE__; goto __pyx_L7;}
77340       }
77341       /*finally:*/ {
77342         int __pyx_why;
77343         __pyx_why = 0; goto __pyx_L8;
77344         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77345         __pyx_L8:;
77346         Py_BLOCK_THREADS
77347         switch (__pyx_why) {
77348           case 4: goto __pyx_L1_error;
77349         }
77350       }
77351   }
77352 
77353   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77354   goto __pyx_L0;
77355   __pyx_L1_error:;
77356   __Pyx_AddTraceback("mpi4py.MPI.Attach_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
77357   __pyx_r = NULL;
77358   __pyx_L0:;
77359   __Pyx_XGIVEREF(__pyx_r);
77360   __Pyx_RefNannyFinishContext();
77361   return __pyx_r;
77362 }
77363 
77364 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1705
77365  *     with nogil: CHKERR( MPI_Buffer_attach(base, size) )
77366  *
77367  * def Detach_buffer():             # <<<<<<<<<<<<<<
77368  *     """
77369  *     Remove an existing attached buffer
77370  */
77371 
77372 static PyObject *__pyx_pf_6mpi4py_3MPI_8Detach_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77373 static char __pyx_doc_6mpi4py_3MPI_8Detach_buffer[] = "Detach_buffer()\n\n    Remove an existing attached buffer\n    ";
77374 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_8Detach_buffer = {__Pyx_NAMESTR("Detach_buffer"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Detach_buffer, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Detach_buffer)};
__pyx_pf_6mpi4py_3MPI_8Detach_buffer(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77375 static PyObject *__pyx_pf_6mpi4py_3MPI_8Detach_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77376   void *__pyx_v_base;
77377   int __pyx_v_size;
77378   PyObject *__pyx_r = NULL;
77379   __Pyx_RefNannyDeclarations
77380   int __pyx_t_1;
77381   PyObject *__pyx_t_2 = NULL;
77382   int __pyx_lineno = 0;
77383   const char *__pyx_filename = NULL;
77384   int __pyx_clineno = 0;
77385   __Pyx_RefNannySetupContext("Detach_buffer");
77386   __pyx_self = __pyx_self;
77387   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
77388     __Pyx_RaiseArgtupleInvalid("Detach_buffer", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
77389   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Detach_buffer", 0))) return NULL;
77390 
77391   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1709
77392  *     Remove an existing attached buffer
77393  *     """
77394  *     cdef void *base = NULL             # <<<<<<<<<<<<<<
77395  *     cdef int size = 0
77396  *     with nogil: CHKERR( MPI_Buffer_detach(&base, &size) )
77397  */
77398   __pyx_v_base = NULL;
77399 
77400   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1710
77401  *     """
77402  *     cdef void *base = NULL
77403  *     cdef int size = 0             # <<<<<<<<<<<<<<
77404  *     with nogil: CHKERR( MPI_Buffer_detach(&base, &size) )
77405  *     return detach_buffer(base, size)
77406  */
77407   __pyx_v_size = 0;
77408 
77409   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1711
77410  *     cdef void *base = NULL
77411  *     cdef int size = 0
77412  *     with nogil: CHKERR( MPI_Buffer_detach(&base, &size) )             # <<<<<<<<<<<<<<
77413  *     return detach_buffer(base, size)
77414  *
77415  */
77416   {
77417       #ifdef WITH_THREAD
77418       PyThreadState *_save = NULL;
77419       #endif
77420       Py_UNBLOCK_THREADS
77421       /*try:*/ {
77422         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Buffer_detach((&__pyx_v_base), (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L6;}
77423       }
77424       /*finally:*/ {
77425         int __pyx_why;
77426         __pyx_why = 0; goto __pyx_L7;
77427         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
77428         __pyx_L7:;
77429         Py_BLOCK_THREADS
77430         switch (__pyx_why) {
77431           case 4: goto __pyx_L1_error;
77432         }
77433       }
77434   }
77435 
77436   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1712
77437  *     cdef int size = 0
77438  *     with nogil: CHKERR( MPI_Buffer_detach(&base, &size) )
77439  *     return detach_buffer(base, size)             # <<<<<<<<<<<<<<
77440  *
77441  *
77442  */
77443   __Pyx_XDECREF(__pyx_r);
77444   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_detach_buffer(__pyx_v_base, __pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77445   __Pyx_GOTREF(__pyx_t_2);
77446   __pyx_r = __pyx_t_2;
77447   __pyx_t_2 = 0;
77448   goto __pyx_L0;
77449 
77450   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77451   goto __pyx_L0;
77452   __pyx_L1_error:;
77453   __Pyx_XDECREF(__pyx_t_2);
77454   __Pyx_AddTraceback("mpi4py.MPI.Detach_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
77455   __pyx_r = NULL;
77456   __pyx_L0:;
77457   __Pyx_XGIVEREF(__pyx_r);
77458   __Pyx_RefNannyFinishContext();
77459   return __pyx_r;
77460 }
77461 
77462 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1722
77463  * # -----------------------
77464  *
77465  * def Open_port(Info info=INFO_NULL):             # <<<<<<<<<<<<<<
77466  *     """
77467  *     Return an address that can be used to establish
77468  */
77469 
77470 static PyObject *__pyx_pf_6mpi4py_3MPI_9Open_port(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77471 static char __pyx_doc_6mpi4py_3MPI_9Open_port[] = "Open_port(Info info=INFO_NULL)\n\n    Return an address that can be used to establish\n    connections between groups of MPI processes\n    ";
77472 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_9Open_port = {__Pyx_NAMESTR("Open_port"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Open_port, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Open_port)};
__pyx_pf_6mpi4py_3MPI_9Open_port(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77473 static PyObject *__pyx_pf_6mpi4py_3MPI_9Open_port(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77474   struct PyMPIInfoObject *__pyx_v_info = 0;
77475   MPI_Info __pyx_v_cinfo;
77476   char __pyx_v_cportname[(MPI_MAX_PORT_NAME + 1)];
77477   PyObject *__pyx_r = NULL;
77478   __Pyx_RefNannyDeclarations
77479   int __pyx_t_1;
77480   PyObject *__pyx_t_2 = NULL;
77481   int __pyx_lineno = 0;
77482   const char *__pyx_filename = NULL;
77483   int __pyx_clineno = 0;
77484   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__info,0};
77485   __Pyx_RefNannySetupContext("Open_port");
77486   __pyx_self = __pyx_self;
77487   {
77488     PyObject* values[1] = {0};
77489     values[0] = (PyObject *)__pyx_k_97;
77490     if (unlikely(__pyx_kwds)) {
77491       Py_ssize_t kw_args;
77492       switch (PyTuple_GET_SIZE(__pyx_args)) {
77493         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77494         case  0: break;
77495         default: goto __pyx_L5_argtuple_error;
77496       }
77497       kw_args = PyDict_Size(__pyx_kwds);
77498       switch (PyTuple_GET_SIZE(__pyx_args)) {
77499         case  0:
77500         if (kw_args > 0) {
77501           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
77502           if (value) { values[0] = value; kw_args--; }
77503         }
77504       }
77505       if (unlikely(kw_args > 0)) {
77506         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Open_port") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77507       }
77508     } else {
77509       switch (PyTuple_GET_SIZE(__pyx_args)) {
77510         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77511         case  0: break;
77512         default: goto __pyx_L5_argtuple_error;
77513       }
77514     }
77515     __pyx_v_info = ((struct PyMPIInfoObject *)values[0]);
77516   }
77517   goto __pyx_L4_argument_unpacking_done;
77518   __pyx_L5_argtuple_error:;
77519   __Pyx_RaiseArgtupleInvalid("Open_port", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77520   __pyx_L3_error:;
77521   __Pyx_AddTraceback("mpi4py.MPI.Open_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
77522   __Pyx_RefNannyFinishContext();
77523   return NULL;
77524   __pyx_L4_argument_unpacking_done:;
77525   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77526 
77527   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1727
77528  *     connections between groups of MPI processes
77529  *     """
77530  *     cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
77531  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
77532  *     with nogil: CHKERR( MPI_Open_port(cinfo, cportname) )
77533  */
77534   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
77535 
77536   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1729
77537  *     cdef MPI_Info cinfo = arg_Info(info)
77538  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
77539  *     with nogil: CHKERR( MPI_Open_port(cinfo, cportname) )             # <<<<<<<<<<<<<<
77540  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case
77541  *     return mpistr(cportname)
77542  */
77543   {
77544       #ifdef WITH_THREAD
77545       PyThreadState *_save = NULL;
77546       #endif
77547       Py_UNBLOCK_THREADS
77548       /*try:*/ {
77549         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Open_port(__pyx_v_cinfo, __pyx_v_cportname)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L7;}
77550       }
77551       /*finally:*/ {
77552         int __pyx_why;
77553         __pyx_why = 0; goto __pyx_L8;
77554         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77555         __pyx_L8:;
77556         Py_BLOCK_THREADS
77557         switch (__pyx_why) {
77558           case 4: goto __pyx_L1_error;
77559         }
77560       }
77561   }
77562 
77563   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1730
77564  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
77565  *     with nogil: CHKERR( MPI_Open_port(cinfo, cportname) )
77566  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case             # <<<<<<<<<<<<<<
77567  *     return mpistr(cportname)
77568  *
77569  */
77570   (__pyx_v_cportname[MPI_MAX_PORT_NAME]) = 0;
77571 
77572   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1731
77573  *     with nogil: CHKERR( MPI_Open_port(cinfo, cportname) )
77574  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case
77575  *     return mpistr(cportname)             # <<<<<<<<<<<<<<
77576  *
77577  * def Close_port(port_name):
77578  */
77579   __Pyx_XDECREF(__pyx_r);
77580   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_cportname); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77581   __Pyx_GOTREF(__pyx_t_2);
77582   __pyx_r = __pyx_t_2;
77583   __pyx_t_2 = 0;
77584   goto __pyx_L0;
77585 
77586   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77587   goto __pyx_L0;
77588   __pyx_L1_error:;
77589   __Pyx_XDECREF(__pyx_t_2);
77590   __Pyx_AddTraceback("mpi4py.MPI.Open_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
77591   __pyx_r = NULL;
77592   __pyx_L0:;
77593   __Pyx_XGIVEREF(__pyx_r);
77594   __Pyx_RefNannyFinishContext();
77595   return __pyx_r;
77596 }
77597 
77598 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1733
77599  *     return mpistr(cportname)
77600  *
77601  * def Close_port(port_name):             # <<<<<<<<<<<<<<
77602  *     """
77603  *     Close a port
77604  */
77605 
77606 static PyObject *__pyx_pf_6mpi4py_3MPI_10Close_port(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77607 static char __pyx_doc_6mpi4py_3MPI_10Close_port[] = "Close_port(port_name)\n\n    Close a port\n    ";
77608 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_10Close_port = {__Pyx_NAMESTR("Close_port"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_10Close_port, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_10Close_port)};
__pyx_pf_6mpi4py_3MPI_10Close_port(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77609 static PyObject *__pyx_pf_6mpi4py_3MPI_10Close_port(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77610   PyObject *__pyx_v_port_name = 0;
77611   char *__pyx_v_cportname;
77612   PyObject *__pyx_r = NULL;
77613   __Pyx_RefNannyDeclarations
77614   PyObject *__pyx_t_1 = NULL;
77615   int __pyx_t_2;
77616   int __pyx_lineno = 0;
77617   const char *__pyx_filename = NULL;
77618   int __pyx_clineno = 0;
77619   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__port_name,0};
77620   __Pyx_RefNannySetupContext("Close_port");
77621   __pyx_self = __pyx_self;
77622   {
77623     PyObject* values[1] = {0};
77624     if (unlikely(__pyx_kwds)) {
77625       Py_ssize_t kw_args;
77626       switch (PyTuple_GET_SIZE(__pyx_args)) {
77627         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77628         case  0: break;
77629         default: goto __pyx_L5_argtuple_error;
77630       }
77631       kw_args = PyDict_Size(__pyx_kwds);
77632       switch (PyTuple_GET_SIZE(__pyx_args)) {
77633         case  0:
77634         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__port_name);
77635         if (likely(values[0])) kw_args--;
77636         else goto __pyx_L5_argtuple_error;
77637       }
77638       if (unlikely(kw_args > 0)) {
77639         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Close_port") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77640       }
77641     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
77642       goto __pyx_L5_argtuple_error;
77643     } else {
77644       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77645     }
77646     __pyx_v_port_name = values[0];
77647   }
77648   goto __pyx_L4_argument_unpacking_done;
77649   __pyx_L5_argtuple_error:;
77650   __Pyx_RaiseArgtupleInvalid("Close_port", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77651   __pyx_L3_error:;
77652   __Pyx_AddTraceback("mpi4py.MPI.Close_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
77653   __Pyx_RefNannyFinishContext();
77654   return NULL;
77655   __pyx_L4_argument_unpacking_done:;
77656   __Pyx_INCREF(__pyx_v_port_name);
77657 
77658   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1737
77659  *     Close a port
77660  *     """
77661  *     cdef char *cportname = NULL             # <<<<<<<<<<<<<<
77662  *     port_name = asmpistr(port_name, &cportname, NULL)
77663  *     with nogil: CHKERR( MPI_Close_port(cportname) )
77664  */
77665   __pyx_v_cportname = NULL;
77666 
77667   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1738
77668  *     """
77669  *     cdef char *cportname = NULL
77670  *     port_name = asmpistr(port_name, &cportname, NULL)             # <<<<<<<<<<<<<<
77671  *     with nogil: CHKERR( MPI_Close_port(cportname) )
77672  *
77673  */
77674   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_port_name, (&__pyx_v_cportname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77675   __Pyx_GOTREF(__pyx_t_1);
77676   __Pyx_DECREF(__pyx_v_port_name);
77677   __pyx_v_port_name = __pyx_t_1;
77678   __pyx_t_1 = 0;
77679 
77680   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1739
77681  *     cdef char *cportname = NULL
77682  *     port_name = asmpistr(port_name, &cportname, NULL)
77683  *     with nogil: CHKERR( MPI_Close_port(cportname) )             # <<<<<<<<<<<<<<
77684  *
77685  * # [5.4.4] Name Publishing
77686  */
77687   {
77688       #ifdef WITH_THREAD
77689       PyThreadState *_save = NULL;
77690       #endif
77691       Py_UNBLOCK_THREADS
77692       /*try:*/ {
77693         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Close_port(__pyx_v_cportname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L7;}
77694       }
77695       /*finally:*/ {
77696         int __pyx_why;
77697         __pyx_why = 0; goto __pyx_L8;
77698         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77699         __pyx_L8:;
77700         Py_BLOCK_THREADS
77701         switch (__pyx_why) {
77702           case 4: goto __pyx_L1_error;
77703         }
77704       }
77705   }
77706 
77707   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77708   goto __pyx_L0;
77709   __pyx_L1_error:;
77710   __Pyx_XDECREF(__pyx_t_1);
77711   __Pyx_AddTraceback("mpi4py.MPI.Close_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
77712   __pyx_r = NULL;
77713   __pyx_L0:;
77714   __Pyx_XDECREF(__pyx_v_port_name);
77715   __Pyx_XGIVEREF(__pyx_r);
77716   __Pyx_RefNannyFinishContext();
77717   return __pyx_r;
77718 }
77719 
77720 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1744
77721  * # -----------------------
77722  *
77723  * def Publish_name(service_name, Info info, port_name):             # <<<<<<<<<<<<<<
77724  *     """
77725  *     Publish a service name
77726  */
77727 
77728 static PyObject *__pyx_pf_6mpi4py_3MPI_11Publish_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77729 static char __pyx_doc_6mpi4py_3MPI_11Publish_name[] = "Publish_name(service_name, Info info, port_name)\n\n    Publish a service name\n    ";
77730 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_11Publish_name = {__Pyx_NAMESTR("Publish_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_11Publish_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_11Publish_name)};
__pyx_pf_6mpi4py_3MPI_11Publish_name(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77731 static PyObject *__pyx_pf_6mpi4py_3MPI_11Publish_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77732   PyObject *__pyx_v_service_name = 0;
77733   struct PyMPIInfoObject *__pyx_v_info = 0;
77734   PyObject *__pyx_v_port_name = 0;
77735   char *__pyx_v_csrvcname;
77736   char *__pyx_v_cportname;
77737   MPI_Info __pyx_v_cinfo;
77738   PyObject *__pyx_r = NULL;
77739   __Pyx_RefNannyDeclarations
77740   PyObject *__pyx_t_1 = NULL;
77741   int __pyx_t_2;
77742   int __pyx_lineno = 0;
77743   const char *__pyx_filename = NULL;
77744   int __pyx_clineno = 0;
77745   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__service_name,&__pyx_n_s__info,&__pyx_n_s__port_name,0};
77746   __Pyx_RefNannySetupContext("Publish_name");
77747   __pyx_self = __pyx_self;
77748   {
77749     PyObject* values[3] = {0,0,0};
77750     if (unlikely(__pyx_kwds)) {
77751       Py_ssize_t kw_args;
77752       switch (PyTuple_GET_SIZE(__pyx_args)) {
77753         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
77754         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
77755         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77756         case  0: break;
77757         default: goto __pyx_L5_argtuple_error;
77758       }
77759       kw_args = PyDict_Size(__pyx_kwds);
77760       switch (PyTuple_GET_SIZE(__pyx_args)) {
77761         case  0:
77762         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__service_name);
77763         if (likely(values[0])) kw_args--;
77764         else goto __pyx_L5_argtuple_error;
77765         case  1:
77766         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
77767         if (likely(values[1])) kw_args--;
77768         else {
77769           __Pyx_RaiseArgtupleInvalid("Publish_name", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77770         }
77771         case  2:
77772         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__port_name);
77773         if (likely(values[2])) kw_args--;
77774         else {
77775           __Pyx_RaiseArgtupleInvalid("Publish_name", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77776         }
77777       }
77778       if (unlikely(kw_args > 0)) {
77779         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Publish_name") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77780       }
77781     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
77782       goto __pyx_L5_argtuple_error;
77783     } else {
77784       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77785       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
77786       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
77787     }
77788     __pyx_v_service_name = values[0];
77789     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
77790     __pyx_v_port_name = values[2];
77791   }
77792   goto __pyx_L4_argument_unpacking_done;
77793   __pyx_L5_argtuple_error:;
77794   __Pyx_RaiseArgtupleInvalid("Publish_name", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77795   __pyx_L3_error:;
77796   __Pyx_AddTraceback("mpi4py.MPI.Publish_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
77797   __Pyx_RefNannyFinishContext();
77798   return NULL;
77799   __pyx_L4_argument_unpacking_done:;
77800   __Pyx_INCREF(__pyx_v_service_name);
77801   __Pyx_INCREF(__pyx_v_port_name);
77802   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77803 
77804   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1748
77805  *     Publish a service name
77806  *     """
77807  *     cdef char *csrvcname = NULL             # <<<<<<<<<<<<<<
77808  *     service_name = asmpistr(service_name, &csrvcname, NULL)
77809  *     cdef char *cportname = NULL
77810  */
77811   __pyx_v_csrvcname = NULL;
77812 
77813   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1749
77814  *     """
77815  *     cdef char *csrvcname = NULL
77816  *     service_name = asmpistr(service_name, &csrvcname, NULL)             # <<<<<<<<<<<<<<
77817  *     cdef char *cportname = NULL
77818  *     port_name = asmpistr(port_name, &cportname, NULL)
77819  */
77820   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_service_name, (&__pyx_v_csrvcname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77821   __Pyx_GOTREF(__pyx_t_1);
77822   __Pyx_DECREF(__pyx_v_service_name);
77823   __pyx_v_service_name = __pyx_t_1;
77824   __pyx_t_1 = 0;
77825 
77826   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1750
77827  *     cdef char *csrvcname = NULL
77828  *     service_name = asmpistr(service_name, &csrvcname, NULL)
77829  *     cdef char *cportname = NULL             # <<<<<<<<<<<<<<
77830  *     port_name = asmpistr(port_name, &cportname, NULL)
77831  *     cdef MPI_Info cinfo = arg_Info(info)
77832  */
77833   __pyx_v_cportname = NULL;
77834 
77835   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1751
77836  *     service_name = asmpistr(service_name, &csrvcname, NULL)
77837  *     cdef char *cportname = NULL
77838  *     port_name = asmpistr(port_name, &cportname, NULL)             # <<<<<<<<<<<<<<
77839  *     cdef MPI_Info cinfo = arg_Info(info)
77840  *     with nogil: CHKERR( MPI_Publish_name(csrvcname, cinfo, cportname) )
77841  */
77842   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_port_name, (&__pyx_v_cportname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77843   __Pyx_GOTREF(__pyx_t_1);
77844   __Pyx_DECREF(__pyx_v_port_name);
77845   __pyx_v_port_name = __pyx_t_1;
77846   __pyx_t_1 = 0;
77847 
77848   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1752
77849  *     cdef char *cportname = NULL
77850  *     port_name = asmpistr(port_name, &cportname, NULL)
77851  *     cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
77852  *     with nogil: CHKERR( MPI_Publish_name(csrvcname, cinfo, cportname) )
77853  *
77854  */
77855   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
77856 
77857   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1753
77858  *     port_name = asmpistr(port_name, &cportname, NULL)
77859  *     cdef MPI_Info cinfo = arg_Info(info)
77860  *     with nogil: CHKERR( MPI_Publish_name(csrvcname, cinfo, cportname) )             # <<<<<<<<<<<<<<
77861  *
77862  * def Unpublish_name(service_name, Info info, port_name):
77863  */
77864   {
77865       #ifdef WITH_THREAD
77866       PyThreadState *_save = NULL;
77867       #endif
77868       Py_UNBLOCK_THREADS
77869       /*try:*/ {
77870         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Publish_name(__pyx_v_csrvcname, __pyx_v_cinfo, __pyx_v_cportname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L7;}
77871       }
77872       /*finally:*/ {
77873         int __pyx_why;
77874         __pyx_why = 0; goto __pyx_L8;
77875         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
77876         __pyx_L8:;
77877         Py_BLOCK_THREADS
77878         switch (__pyx_why) {
77879           case 4: goto __pyx_L1_error;
77880         }
77881       }
77882   }
77883 
77884   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
77885   goto __pyx_L0;
77886   __pyx_L1_error:;
77887   __Pyx_XDECREF(__pyx_t_1);
77888   __Pyx_AddTraceback("mpi4py.MPI.Publish_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
77889   __pyx_r = NULL;
77890   __pyx_L0:;
77891   __Pyx_XDECREF(__pyx_v_service_name);
77892   __Pyx_XDECREF(__pyx_v_port_name);
77893   __Pyx_XGIVEREF(__pyx_r);
77894   __Pyx_RefNannyFinishContext();
77895   return __pyx_r;
77896 }
77897 
77898 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1755
77899  *     with nogil: CHKERR( MPI_Publish_name(csrvcname, cinfo, cportname) )
77900  *
77901  * def Unpublish_name(service_name, Info info, port_name):             # <<<<<<<<<<<<<<
77902  *     """
77903  *     Unpublish a service name
77904  */
77905 
77906 static PyObject *__pyx_pf_6mpi4py_3MPI_12Unpublish_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
77907 static char __pyx_doc_6mpi4py_3MPI_12Unpublish_name[] = "Unpublish_name(service_name, Info info, port_name)\n\n    Unpublish a service name\n    ";
77908 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_12Unpublish_name = {__Pyx_NAMESTR("Unpublish_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_12Unpublish_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_12Unpublish_name)};
__pyx_pf_6mpi4py_3MPI_12Unpublish_name(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)77909 static PyObject *__pyx_pf_6mpi4py_3MPI_12Unpublish_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
77910   PyObject *__pyx_v_service_name = 0;
77911   struct PyMPIInfoObject *__pyx_v_info = 0;
77912   PyObject *__pyx_v_port_name = 0;
77913   char *__pyx_v_csrvcname;
77914   char *__pyx_v_cportname;
77915   MPI_Info __pyx_v_cinfo;
77916   PyObject *__pyx_r = NULL;
77917   __Pyx_RefNannyDeclarations
77918   PyObject *__pyx_t_1 = NULL;
77919   int __pyx_t_2;
77920   int __pyx_lineno = 0;
77921   const char *__pyx_filename = NULL;
77922   int __pyx_clineno = 0;
77923   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__service_name,&__pyx_n_s__info,&__pyx_n_s__port_name,0};
77924   __Pyx_RefNannySetupContext("Unpublish_name");
77925   __pyx_self = __pyx_self;
77926   {
77927     PyObject* values[3] = {0,0,0};
77928     if (unlikely(__pyx_kwds)) {
77929       Py_ssize_t kw_args;
77930       switch (PyTuple_GET_SIZE(__pyx_args)) {
77931         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
77932         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
77933         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77934         case  0: break;
77935         default: goto __pyx_L5_argtuple_error;
77936       }
77937       kw_args = PyDict_Size(__pyx_kwds);
77938       switch (PyTuple_GET_SIZE(__pyx_args)) {
77939         case  0:
77940         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__service_name);
77941         if (likely(values[0])) kw_args--;
77942         else goto __pyx_L5_argtuple_error;
77943         case  1:
77944         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
77945         if (likely(values[1])) kw_args--;
77946         else {
77947           __Pyx_RaiseArgtupleInvalid("Unpublish_name", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77948         }
77949         case  2:
77950         values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__port_name);
77951         if (likely(values[2])) kw_args--;
77952         else {
77953           __Pyx_RaiseArgtupleInvalid("Unpublish_name", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77954         }
77955       }
77956       if (unlikely(kw_args > 0)) {
77957         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Unpublish_name") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77958       }
77959     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
77960       goto __pyx_L5_argtuple_error;
77961     } else {
77962       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
77963       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
77964       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
77965     }
77966     __pyx_v_service_name = values[0];
77967     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
77968     __pyx_v_port_name = values[2];
77969   }
77970   goto __pyx_L4_argument_unpacking_done;
77971   __pyx_L5_argtuple_error:;
77972   __Pyx_RaiseArgtupleInvalid("Unpublish_name", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
77973   __pyx_L3_error:;
77974   __Pyx_AddTraceback("mpi4py.MPI.Unpublish_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
77975   __Pyx_RefNannyFinishContext();
77976   return NULL;
77977   __pyx_L4_argument_unpacking_done:;
77978   __Pyx_INCREF(__pyx_v_service_name);
77979   __Pyx_INCREF(__pyx_v_port_name);
77980   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77981 
77982   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1759
77983  *     Unpublish a service name
77984  *     """
77985  *     cdef char *csrvcname = NULL             # <<<<<<<<<<<<<<
77986  *     service_name = asmpistr(service_name, &csrvcname, NULL)
77987  *     cdef char *cportname = NULL
77988  */
77989   __pyx_v_csrvcname = NULL;
77990 
77991   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1760
77992  *     """
77993  *     cdef char *csrvcname = NULL
77994  *     service_name = asmpistr(service_name, &csrvcname, NULL)             # <<<<<<<<<<<<<<
77995  *     cdef char *cportname = NULL
77996  *     port_name = asmpistr(port_name, &cportname, NULL)
77997  */
77998   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_service_name, (&__pyx_v_csrvcname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
77999   __Pyx_GOTREF(__pyx_t_1);
78000   __Pyx_DECREF(__pyx_v_service_name);
78001   __pyx_v_service_name = __pyx_t_1;
78002   __pyx_t_1 = 0;
78003 
78004   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1761
78005  *     cdef char *csrvcname = NULL
78006  *     service_name = asmpistr(service_name, &csrvcname, NULL)
78007  *     cdef char *cportname = NULL             # <<<<<<<<<<<<<<
78008  *     port_name = asmpistr(port_name, &cportname, NULL)
78009  *     cdef MPI_Info cinfo = arg_Info(info)
78010  */
78011   __pyx_v_cportname = NULL;
78012 
78013   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1762
78014  *     service_name = asmpistr(service_name, &csrvcname, NULL)
78015  *     cdef char *cportname = NULL
78016  *     port_name = asmpistr(port_name, &cportname, NULL)             # <<<<<<<<<<<<<<
78017  *     cdef MPI_Info cinfo = arg_Info(info)
78018  *     with nogil: CHKERR( MPI_Unpublish_name(csrvcname, cinfo, cportname) )
78019  */
78020   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_port_name, (&__pyx_v_cportname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78021   __Pyx_GOTREF(__pyx_t_1);
78022   __Pyx_DECREF(__pyx_v_port_name);
78023   __pyx_v_port_name = __pyx_t_1;
78024   __pyx_t_1 = 0;
78025 
78026   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1763
78027  *     cdef char *cportname = NULL
78028  *     port_name = asmpistr(port_name, &cportname, NULL)
78029  *     cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
78030  *     with nogil: CHKERR( MPI_Unpublish_name(csrvcname, cinfo, cportname) )
78031  *
78032  */
78033   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
78034 
78035   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1764
78036  *     port_name = asmpistr(port_name, &cportname, NULL)
78037  *     cdef MPI_Info cinfo = arg_Info(info)
78038  *     with nogil: CHKERR( MPI_Unpublish_name(csrvcname, cinfo, cportname) )             # <<<<<<<<<<<<<<
78039  *
78040  * def Lookup_name(service_name, Info info=INFO_NULL):
78041  */
78042   {
78043       #ifdef WITH_THREAD
78044       PyThreadState *_save = NULL;
78045       #endif
78046       Py_UNBLOCK_THREADS
78047       /*try:*/ {
78048         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Unpublish_name(__pyx_v_csrvcname, __pyx_v_cinfo, __pyx_v_cportname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L7;}
78049       }
78050       /*finally:*/ {
78051         int __pyx_why;
78052         __pyx_why = 0; goto __pyx_L8;
78053         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
78054         __pyx_L8:;
78055         Py_BLOCK_THREADS
78056         switch (__pyx_why) {
78057           case 4: goto __pyx_L1_error;
78058         }
78059       }
78060   }
78061 
78062   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78063   goto __pyx_L0;
78064   __pyx_L1_error:;
78065   __Pyx_XDECREF(__pyx_t_1);
78066   __Pyx_AddTraceback("mpi4py.MPI.Unpublish_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
78067   __pyx_r = NULL;
78068   __pyx_L0:;
78069   __Pyx_XDECREF(__pyx_v_service_name);
78070   __Pyx_XDECREF(__pyx_v_port_name);
78071   __Pyx_XGIVEREF(__pyx_r);
78072   __Pyx_RefNannyFinishContext();
78073   return __pyx_r;
78074 }
78075 
78076 /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1766
78077  *     with nogil: CHKERR( MPI_Unpublish_name(csrvcname, cinfo, cportname) )
78078  *
78079  * def Lookup_name(service_name, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
78080  *     """
78081  *     Lookup a port name given a service name
78082  */
78083 
78084 static PyObject *__pyx_pf_6mpi4py_3MPI_13Lookup_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
78085 static char __pyx_doc_6mpi4py_3MPI_13Lookup_name[] = "Lookup_name(service_name, Info info=INFO_NULL)\n\n    Lookup a port name given a service name\n    ";
78086 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_13Lookup_name = {__Pyx_NAMESTR("Lookup_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_13Lookup_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_13Lookup_name)};
__pyx_pf_6mpi4py_3MPI_13Lookup_name(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)78087 static PyObject *__pyx_pf_6mpi4py_3MPI_13Lookup_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
78088   PyObject *__pyx_v_service_name = 0;
78089   struct PyMPIInfoObject *__pyx_v_info = 0;
78090   char *__pyx_v_csrvcname;
78091   MPI_Info __pyx_v_cinfo;
78092   char __pyx_v_cportname[(MPI_MAX_PORT_NAME + 1)];
78093   PyObject *__pyx_r = NULL;
78094   __Pyx_RefNannyDeclarations
78095   PyObject *__pyx_t_1 = NULL;
78096   int __pyx_t_2;
78097   int __pyx_lineno = 0;
78098   const char *__pyx_filename = NULL;
78099   int __pyx_clineno = 0;
78100   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__service_name,&__pyx_n_s__info,0};
78101   __Pyx_RefNannySetupContext("Lookup_name");
78102   __pyx_self = __pyx_self;
78103   {
78104     PyObject* values[2] = {0,0};
78105     values[1] = (PyObject *)__pyx_k_98;
78106     if (unlikely(__pyx_kwds)) {
78107       Py_ssize_t kw_args;
78108       switch (PyTuple_GET_SIZE(__pyx_args)) {
78109         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
78110         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78111         case  0: break;
78112         default: goto __pyx_L5_argtuple_error;
78113       }
78114       kw_args = PyDict_Size(__pyx_kwds);
78115       switch (PyTuple_GET_SIZE(__pyx_args)) {
78116         case  0:
78117         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__service_name);
78118         if (likely(values[0])) kw_args--;
78119         else goto __pyx_L5_argtuple_error;
78120         case  1:
78121         if (kw_args > 0) {
78122           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
78123           if (value) { values[1] = value; kw_args--; }
78124         }
78125       }
78126       if (unlikely(kw_args > 0)) {
78127         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Lookup_name") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78128       }
78129     } else {
78130       switch (PyTuple_GET_SIZE(__pyx_args)) {
78131         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
78132         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78133         break;
78134         default: goto __pyx_L5_argtuple_error;
78135       }
78136     }
78137     __pyx_v_service_name = values[0];
78138     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
78139   }
78140   goto __pyx_L4_argument_unpacking_done;
78141   __pyx_L5_argtuple_error:;
78142   __Pyx_RaiseArgtupleInvalid("Lookup_name", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78143   __pyx_L3_error:;
78144   __Pyx_AddTraceback("mpi4py.MPI.Lookup_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
78145   __Pyx_RefNannyFinishContext();
78146   return NULL;
78147   __pyx_L4_argument_unpacking_done:;
78148   __Pyx_INCREF(__pyx_v_service_name);
78149   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78150 
78151   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1770
78152  *     Lookup a port name given a service name
78153  *     """
78154  *     cdef char *csrvcname = NULL             # <<<<<<<<<<<<<<
78155  *     service_name = asmpistr(service_name, &csrvcname, NULL)
78156  *     cdef MPI_Info cinfo = arg_Info(info)
78157  */
78158   __pyx_v_csrvcname = NULL;
78159 
78160   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1771
78161  *     """
78162  *     cdef char *csrvcname = NULL
78163  *     service_name = asmpistr(service_name, &csrvcname, NULL)             # <<<<<<<<<<<<<<
78164  *     cdef MPI_Info cinfo = arg_Info(info)
78165  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
78166  */
78167   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_service_name, (&__pyx_v_csrvcname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78168   __Pyx_GOTREF(__pyx_t_1);
78169   __Pyx_DECREF(__pyx_v_service_name);
78170   __pyx_v_service_name = __pyx_t_1;
78171   __pyx_t_1 = 0;
78172 
78173   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1772
78174  *     cdef char *csrvcname = NULL
78175  *     service_name = asmpistr(service_name, &csrvcname, NULL)
78176  *     cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
78177  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
78178  *     with nogil: CHKERR( MPI_Lookup_name(csrvcname, cinfo, cportname) )
78179  */
78180   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
78181 
78182   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1774
78183  *     cdef MPI_Info cinfo = arg_Info(info)
78184  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
78185  *     with nogil: CHKERR( MPI_Lookup_name(csrvcname, cinfo, cportname) )             # <<<<<<<<<<<<<<
78186  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case
78187  *     return mpistr(cportname)
78188  */
78189   {
78190       #ifdef WITH_THREAD
78191       PyThreadState *_save = NULL;
78192       #endif
78193       Py_UNBLOCK_THREADS
78194       /*try:*/ {
78195         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Lookup_name(__pyx_v_csrvcname, __pyx_v_cinfo, __pyx_v_cportname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L7;}
78196       }
78197       /*finally:*/ {
78198         int __pyx_why;
78199         __pyx_why = 0; goto __pyx_L8;
78200         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
78201         __pyx_L8:;
78202         Py_BLOCK_THREADS
78203         switch (__pyx_why) {
78204           case 4: goto __pyx_L1_error;
78205         }
78206       }
78207   }
78208 
78209   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1775
78210  *     cdef char cportname[MPI_MAX_PORT_NAME+1]
78211  *     with nogil: CHKERR( MPI_Lookup_name(csrvcname, cinfo, cportname) )
78212  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case             # <<<<<<<<<<<<<<
78213  *     return mpistr(cportname)
78214  */
78215   (__pyx_v_cportname[MPI_MAX_PORT_NAME]) = 0;
78216 
78217   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1776
78218  *     with nogil: CHKERR( MPI_Lookup_name(csrvcname, cinfo, cportname) )
78219  *     cportname[MPI_MAX_PORT_NAME] = 0 # just in case
78220  *     return mpistr(cportname)             # <<<<<<<<<<<<<<
78221  */
78222   __Pyx_XDECREF(__pyx_r);
78223   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_cportname); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78224   __Pyx_GOTREF(__pyx_t_1);
78225   __pyx_r = __pyx_t_1;
78226   __pyx_t_1 = 0;
78227   goto __pyx_L0;
78228 
78229   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78230   goto __pyx_L0;
78231   __pyx_L1_error:;
78232   __Pyx_XDECREF(__pyx_t_1);
78233   __Pyx_AddTraceback("mpi4py.MPI.Lookup_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
78234   __pyx_r = NULL;
78235   __pyx_L0:;
78236   __Pyx_XDECREF(__pyx_v_service_name);
78237   __Pyx_XGIVEREF(__pyx_r);
78238   __Pyx_RefNannyFinishContext();
78239   return __pyx_r;
78240 }
78241 
78242 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":23
78243  *     """
78244  *
78245  *     def __cinit__(self, Win win=None):             # <<<<<<<<<<<<<<
78246  *         self.ob_mpi = MPI_WIN_NULL
78247  *         if win is not None:
78248  */
78249 
78250 static int __pyx_pf_6mpi4py_3MPI_3Win___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)78251 static int __pyx_pf_6mpi4py_3MPI_3Win___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
78252   struct PyMPIWinObject *__pyx_v_win = 0;
78253   int __pyx_r;
78254   __Pyx_RefNannyDeclarations
78255   int __pyx_t_1;
78256   int __pyx_lineno = 0;
78257   const char *__pyx_filename = NULL;
78258   int __pyx_clineno = 0;
78259   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__win,0};
78260   __Pyx_RefNannySetupContext("__cinit__");
78261   {
78262     PyObject* values[1] = {0};
78263     values[0] = (PyObject *)((struct PyMPIWinObject *)Py_None);
78264     if (unlikely(__pyx_kwds)) {
78265       Py_ssize_t kw_args;
78266       switch (PyTuple_GET_SIZE(__pyx_args)) {
78267         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78268         case  0: break;
78269         default: goto __pyx_L5_argtuple_error;
78270       }
78271       kw_args = PyDict_Size(__pyx_kwds);
78272       switch (PyTuple_GET_SIZE(__pyx_args)) {
78273         case  0:
78274         if (kw_args > 0) {
78275           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__win);
78276           if (value) { values[0] = value; kw_args--; }
78277         }
78278       }
78279       if (unlikely(kw_args > 0)) {
78280         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78281       }
78282     } else {
78283       switch (PyTuple_GET_SIZE(__pyx_args)) {
78284         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78285         case  0: break;
78286         default: goto __pyx_L5_argtuple_error;
78287       }
78288     }
78289     __pyx_v_win = ((struct PyMPIWinObject *)values[0]);
78290   }
78291   goto __pyx_L4_argument_unpacking_done;
78292   __pyx_L5_argtuple_error:;
78293   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78294   __pyx_L3_error:;
78295   __Pyx_AddTraceback("mpi4py.MPI.Win.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
78296   __Pyx_RefNannyFinishContext();
78297   return -1;
78298   __pyx_L4_argument_unpacking_done:;
78299   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_win), __pyx_ptype_6mpi4py_3MPI_Win, 1, "win", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78300 
78301   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":24
78302  *
78303  *     def __cinit__(self, Win win=None):
78304  *         self.ob_mpi = MPI_WIN_NULL             # <<<<<<<<<<<<<<
78305  *         if win is not None:
78306  *             self.ob_mpi =  win.ob_mpi
78307  */
78308   ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi = MPI_WIN_NULL;
78309 
78310   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":25
78311  *     def __cinit__(self, Win win=None):
78312  *         self.ob_mpi = MPI_WIN_NULL
78313  *         if win is not None:             # <<<<<<<<<<<<<<
78314  *             self.ob_mpi =  win.ob_mpi
78315  *
78316  */
78317   __pyx_t_1 = (((PyObject *)__pyx_v_win) != Py_None);
78318   if (__pyx_t_1) {
78319 
78320     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":26
78321  *         self.ob_mpi = MPI_WIN_NULL
78322  *         if win is not None:
78323  *             self.ob_mpi =  win.ob_mpi             # <<<<<<<<<<<<<<
78324  *
78325  *     def __dealloc__(self):
78326  */
78327     ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi = __pyx_v_win->ob_mpi;
78328     goto __pyx_L6;
78329   }
78330   __pyx_L6:;
78331 
78332   __pyx_r = 0;
78333   goto __pyx_L0;
78334   __pyx_L1_error:;
78335   __Pyx_AddTraceback("mpi4py.MPI.Win.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
78336   __pyx_r = -1;
78337   __pyx_L0:;
78338   __Pyx_RefNannyFinishContext();
78339   return __pyx_r;
78340 }
78341 
78342 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":28
78343  *             self.ob_mpi =  win.ob_mpi
78344  *
78345  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
78346  *         if not (self.flags & PyMPI_OWNED): return
78347  *         CHKERR( del_Win(&self.ob_mpi) )
78348  */
78349 
78350 static void __pyx_pf_6mpi4py_3MPI_3Win_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_1__dealloc__(PyObject * __pyx_v_self)78351 static void __pyx_pf_6mpi4py_3MPI_3Win_1__dealloc__(PyObject *__pyx_v_self) {
78352   __Pyx_RefNannyDeclarations
78353   int __pyx_t_1;
78354   int __pyx_t_2;
78355   int __pyx_lineno = 0;
78356   const char *__pyx_filename = NULL;
78357   int __pyx_clineno = 0;
78358   __Pyx_RefNannySetupContext("__dealloc__");
78359 
78360   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":29
78361  *
78362  *     def __dealloc__(self):
78363  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
78364  *         CHKERR( del_Win(&self.ob_mpi) )
78365  *
78366  */
78367   __pyx_t_1 = (!(((struct PyMPIWinObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
78368   if (__pyx_t_1) {
78369     goto __pyx_L0;
78370     goto __pyx_L5;
78371   }
78372   __pyx_L5:;
78373 
78374   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":30
78375  *     def __dealloc__(self):
78376  *         if not (self.flags & PyMPI_OWNED): return
78377  *         CHKERR( del_Win(&self.ob_mpi) )             # <<<<<<<<<<<<<<
78378  *
78379  *     def __richcmp__(self, other, int op):
78380  */
78381   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_Win((&((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78382 
78383   goto __pyx_L0;
78384   __pyx_L1_error:;
78385   __Pyx_AddTraceback("mpi4py.MPI.Win.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
78386   __pyx_L0:;
78387   __Pyx_RefNannyFinishContext();
78388 }
78389 
78390 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":32
78391  *         CHKERR( del_Win(&self.ob_mpi) )
78392  *
78393  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
78394  *         if not isinstance(self,  Win): return NotImplemented
78395  *         if not isinstance(other, Win): return NotImplemented
78396  */
78397 
78398 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)78399 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
78400   struct PyMPIWinObject *__pyx_v_s = 0;
78401   struct PyMPIWinObject *__pyx_v_o = 0;
78402   PyObject *__pyx_r = NULL;
78403   __Pyx_RefNannyDeclarations
78404   PyObject *__pyx_t_1 = NULL;
78405   int __pyx_t_2;
78406   int __pyx_t_3;
78407   int __pyx_lineno = 0;
78408   const char *__pyx_filename = NULL;
78409   int __pyx_clineno = 0;
78410   __Pyx_RefNannySetupContext("__richcmp__");
78411 
78412   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":33
78413  *
78414  *     def __richcmp__(self, other, int op):
78415  *         if not isinstance(self,  Win): return NotImplemented             # <<<<<<<<<<<<<<
78416  *         if not isinstance(other, Win): return NotImplemented
78417  *         cdef Win s = <Win>self, o = <Win>other
78418  */
78419   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Win));
78420   __Pyx_INCREF(__pyx_t_1);
78421   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
78422   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
78423   __pyx_t_3 = (!__pyx_t_2);
78424   if (__pyx_t_3) {
78425     __Pyx_XDECREF(__pyx_r);
78426     __Pyx_INCREF(__pyx_builtin_NotImplemented);
78427     __pyx_r = __pyx_builtin_NotImplemented;
78428     goto __pyx_L0;
78429     goto __pyx_L5;
78430   }
78431   __pyx_L5:;
78432 
78433   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":34
78434  *     def __richcmp__(self, other, int op):
78435  *         if not isinstance(self,  Win): return NotImplemented
78436  *         if not isinstance(other, Win): return NotImplemented             # <<<<<<<<<<<<<<
78437  *         cdef Win s = <Win>self, o = <Win>other
78438  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
78439  */
78440   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Win));
78441   __Pyx_INCREF(__pyx_t_1);
78442   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
78443   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
78444   __pyx_t_2 = (!__pyx_t_3);
78445   if (__pyx_t_2) {
78446     __Pyx_XDECREF(__pyx_r);
78447     __Pyx_INCREF(__pyx_builtin_NotImplemented);
78448     __pyx_r = __pyx_builtin_NotImplemented;
78449     goto __pyx_L0;
78450     goto __pyx_L6;
78451   }
78452   __pyx_L6:;
78453 
78454   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":35
78455  *         if not isinstance(self,  Win): return NotImplemented
78456  *         if not isinstance(other, Win): return NotImplemented
78457  *         cdef Win s = <Win>self, o = <Win>other             # <<<<<<<<<<<<<<
78458  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
78459  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
78460  */
78461   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_v_self)));
78462   __pyx_v_s = ((struct PyMPIWinObject *)__pyx_v_self);
78463   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_v_other)));
78464   __pyx_v_o = ((struct PyMPIWinObject *)__pyx_v_other);
78465 
78466   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":37
78467  *         cdef Win s = <Win>self, o = <Win>other
78468  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
78469  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
78470  *         else: raise TypeError("only '==' and '!='")
78471  *
78472  */
78473   switch (__pyx_v_op) {
78474 
78475     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":36
78476  *         if not isinstance(other, Win): return NotImplemented
78477  *         cdef Win s = <Win>self, o = <Win>other
78478  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
78479  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
78480  *         else: raise TypeError("only '==' and '!='")
78481  */
78482     case Py_EQ:
78483     __Pyx_XDECREF(__pyx_r);
78484     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78485     __Pyx_GOTREF(__pyx_t_1);
78486     __pyx_r = __pyx_t_1;
78487     __pyx_t_1 = 0;
78488     goto __pyx_L0;
78489     break;
78490 
78491     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":37
78492  *         cdef Win s = <Win>self, o = <Win>other
78493  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
78494  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
78495  *         else: raise TypeError("only '==' and '!='")
78496  *
78497  */
78498     case Py_NE:
78499     __Pyx_XDECREF(__pyx_r);
78500     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78501     __Pyx_GOTREF(__pyx_t_1);
78502     __pyx_r = __pyx_t_1;
78503     __pyx_t_1 = 0;
78504     goto __pyx_L0;
78505     break;
78506     default:
78507 
78508     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":38
78509  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
78510  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
78511  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
78512  *
78513  *     def __bool__(self):
78514  */
78515     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_99), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78516     __Pyx_GOTREF(__pyx_t_1);
78517     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
78518     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
78519     {__pyx_filename = __pyx_f[25]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78520     break;
78521   }
78522 
78523   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78524   goto __pyx_L0;
78525   __pyx_L1_error:;
78526   __Pyx_XDECREF(__pyx_t_1);
78527   __Pyx_AddTraceback("mpi4py.MPI.Win.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
78528   __pyx_r = NULL;
78529   __pyx_L0:;
78530   __Pyx_XDECREF((PyObject *)__pyx_v_s);
78531   __Pyx_XDECREF((PyObject *)__pyx_v_o);
78532   __Pyx_XGIVEREF(__pyx_r);
78533   __Pyx_RefNannyFinishContext();
78534   return __pyx_r;
78535 }
78536 
78537 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":40
78538  *         else: raise TypeError("only '==' and '!='")
78539  *
78540  *     def __bool__(self):             # <<<<<<<<<<<<<<
78541  *         return self.ob_mpi != MPI_WIN_NULL
78542  *
78543  */
78544 
78545 static int __pyx_pf_6mpi4py_3MPI_3Win_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_3__bool__(PyObject * __pyx_v_self)78546 static int __pyx_pf_6mpi4py_3MPI_3Win_3__bool__(PyObject *__pyx_v_self) {
78547   int __pyx_r;
78548   __Pyx_RefNannyDeclarations
78549   __Pyx_RefNannySetupContext("__bool__");
78550 
78551   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":41
78552  *
78553  *     def __bool__(self):
78554  *         return self.ob_mpi != MPI_WIN_NULL             # <<<<<<<<<<<<<<
78555  *
78556  *     # [6.2] Initialization
78557  */
78558   __pyx_r = (((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi != MPI_WIN_NULL);
78559   goto __pyx_L0;
78560 
78561   __pyx_r = 0;
78562   __pyx_L0:;
78563   __Pyx_RefNannyFinishContext();
78564   return __pyx_r;
78565 }
78566 
78567 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":50
78568  *
78569  *     @classmethod
78570  *     def Create(cls, memory, int disp_unit=1,             # <<<<<<<<<<<<<<
78571  *                Info info=INFO_NULL, Intracomm comm not None=COMM_SELF):
78572  *         """
78573  */
78574 
78575 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_4Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
78576 static char __pyx_doc_6mpi4py_3MPI_3Win_4Create[] = "Win.Create(type cls, memory, int disp_unit=1, Info info=INFO_NULL, Intracomm comm=COMM_SELF)\n\n        Create an window object for one-sided communication\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_4Create(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)78577 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_4Create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
78578   PyObject *__pyx_v_memory = 0;
78579   int __pyx_v_disp_unit;
78580   struct PyMPIInfoObject *__pyx_v_info = 0;
78581   struct PyMPIIntracommObject *__pyx_v_comm = 0;
78582   void *__pyx_v_base;
78583   MPI_Aint __pyx_v_size;
78584   MPI_Info __pyx_v_cinfo;
78585   struct PyMPIWinObject *__pyx_v_win = 0;
78586   PyObject *__pyx_r = NULL;
78587   __Pyx_RefNannyDeclarations
78588   int __pyx_t_1;
78589   PyObject *__pyx_t_2 = NULL;
78590   int __pyx_t_3;
78591   int __pyx_lineno = 0;
78592   const char *__pyx_filename = NULL;
78593   int __pyx_clineno = 0;
78594   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__memory,&__pyx_n_s__disp_unit,&__pyx_n_s__info,&__pyx_n_s__comm,0};
78595   __Pyx_RefNannySetupContext("Create");
78596   {
78597     PyObject* values[4] = {0,0,0,0};
78598     values[2] = (PyObject *)__pyx_k_100;
78599     values[3] = (PyObject *)__pyx_k_101;
78600     if (unlikely(__pyx_kwds)) {
78601       Py_ssize_t kw_args;
78602       switch (PyTuple_GET_SIZE(__pyx_args)) {
78603         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
78604         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
78605         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
78606         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78607         case  0: break;
78608         default: goto __pyx_L5_argtuple_error;
78609       }
78610       kw_args = PyDict_Size(__pyx_kwds);
78611       switch (PyTuple_GET_SIZE(__pyx_args)) {
78612         case  0:
78613         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__memory);
78614         if (likely(values[0])) kw_args--;
78615         else goto __pyx_L5_argtuple_error;
78616         case  1:
78617         if (kw_args > 0) {
78618           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__disp_unit);
78619           if (value) { values[1] = value; kw_args--; }
78620         }
78621         case  2:
78622         if (kw_args > 0) {
78623           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
78624           if (value) { values[2] = value; kw_args--; }
78625         }
78626         case  3:
78627         if (kw_args > 0) {
78628           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
78629           if (value) { values[3] = value; kw_args--; }
78630         }
78631       }
78632       if (unlikely(kw_args > 0)) {
78633         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78634       }
78635     } else {
78636       switch (PyTuple_GET_SIZE(__pyx_args)) {
78637         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
78638         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
78639         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
78640         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
78641         break;
78642         default: goto __pyx_L5_argtuple_error;
78643       }
78644     }
78645     __pyx_v_memory = values[0];
78646     if (values[1]) {
78647       __pyx_v_disp_unit = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_disp_unit == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78648     } else {
78649       __pyx_v_disp_unit = ((int)1);
78650     }
78651     __pyx_v_info = ((struct PyMPIInfoObject *)values[2]);
78652     __pyx_v_comm = ((struct PyMPIIntracommObject *)values[3]);
78653   }
78654   goto __pyx_L4_argument_unpacking_done;
78655   __pyx_L5_argtuple_error:;
78656   __Pyx_RaiseArgtupleInvalid("Create", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
78657   __pyx_L3_error:;
78658   __Pyx_AddTraceback("mpi4py.MPI.Win.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
78659   __Pyx_RefNannyFinishContext();
78660   return NULL;
78661   __pyx_L4_argument_unpacking_done:;
78662   __Pyx_INCREF(__pyx_v_memory);
78663   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78664   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Intracomm, 0, "comm", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78665 
78666   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":55
78667  *         Create an window object for one-sided communication
78668  *         """
78669  *         cdef void *base = NULL             # <<<<<<<<<<<<<<
78670  *         cdef MPI_Aint size = 0
78671  *         if memory is __BOTTOM__:
78672  */
78673   __pyx_v_base = NULL;
78674 
78675   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":56
78676  *         """
78677  *         cdef void *base = NULL
78678  *         cdef MPI_Aint size = 0             # <<<<<<<<<<<<<<
78679  *         if memory is __BOTTOM__:
78680  *             base = MPI_BOTTOM
78681  */
78682   __pyx_v_size = 0;
78683 
78684   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":57
78685  *         cdef void *base = NULL
78686  *         cdef MPI_Aint size = 0
78687  *         if memory is __BOTTOM__:             # <<<<<<<<<<<<<<
78688  *             base = MPI_BOTTOM
78689  *             memory = None
78690  */
78691   __pyx_t_1 = (__pyx_v_memory == __pyx_v_6mpi4py_3MPI___BOTTOM__);
78692   if (__pyx_t_1) {
78693 
78694     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":58
78695  *         cdef MPI_Aint size = 0
78696  *         if memory is __BOTTOM__:
78697  *             base = MPI_BOTTOM             # <<<<<<<<<<<<<<
78698  *             memory = None
78699  *         elif memory is not None:
78700  */
78701     __pyx_v_base = MPI_BOTTOM;
78702 
78703     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":59
78704  *         if memory is __BOTTOM__:
78705  *             base = MPI_BOTTOM
78706  *             memory = None             # <<<<<<<<<<<<<<
78707  *         elif memory is not None:
78708  *             memory = getbuffer_w(memory, &base, &size)
78709  */
78710     __Pyx_INCREF(Py_None);
78711     __Pyx_DECREF(__pyx_v_memory);
78712     __pyx_v_memory = Py_None;
78713     goto __pyx_L6;
78714   }
78715 
78716   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":60
78717  *             base = MPI_BOTTOM
78718  *             memory = None
78719  *         elif memory is not None:             # <<<<<<<<<<<<<<
78720  *             memory = getbuffer_w(memory, &base, &size)
78721  *         cdef MPI_Info cinfo = arg_Info(info)
78722  */
78723   __pyx_t_1 = (__pyx_v_memory != Py_None);
78724   if (__pyx_t_1) {
78725 
78726     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":61
78727  *             memory = None
78728  *         elif memory is not None:
78729  *             memory = getbuffer_w(memory, &base, &size)             # <<<<<<<<<<<<<<
78730  *         cdef MPI_Info cinfo = arg_Info(info)
78731  *         cdef Win win = <Win>cls()
78732  */
78733     __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_getbuffer_w(__pyx_v_memory, (&__pyx_v_base), (&__pyx_v_size))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78734     __Pyx_GOTREF(__pyx_t_2);
78735     __Pyx_DECREF(__pyx_v_memory);
78736     __pyx_v_memory = __pyx_t_2;
78737     __pyx_t_2 = 0;
78738     goto __pyx_L6;
78739   }
78740   __pyx_L6:;
78741 
78742   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":62
78743  *         elif memory is not None:
78744  *             memory = getbuffer_w(memory, &base, &size)
78745  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
78746  *         cdef Win win = <Win>cls()
78747  *         with nogil:
78748  */
78749   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
78750 
78751   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":63
78752  *             memory = getbuffer_w(memory, &base, &size)
78753  *         cdef MPI_Info cinfo = arg_Info(info)
78754  *         cdef Win win = <Win>cls()             # <<<<<<<<<<<<<<
78755  *         with nogil:
78756  *             CHKERR( MPI_Win_create(
78757  */
78758   __pyx_t_2 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78759   __Pyx_GOTREF(__pyx_t_2);
78760   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_t_2)));
78761   __pyx_v_win = ((struct PyMPIWinObject *)__pyx_t_2);
78762   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
78763 
78764   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":64
78765  *         cdef MPI_Info cinfo = arg_Info(info)
78766  *         cdef Win win = <Win>cls()
78767  *         with nogil:             # <<<<<<<<<<<<<<
78768  *             CHKERR( MPI_Win_create(
78769  *                     base, size, disp_unit,
78770  */
78771   {
78772       #ifdef WITH_THREAD
78773       PyThreadState *_save = NULL;
78774       #endif
78775       Py_UNBLOCK_THREADS
78776       /*try:*/ {
78777 
78778         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":67
78779  *             CHKERR( MPI_Win_create(
78780  *                     base, size, disp_unit,
78781  *                     cinfo, comm.ob_mpi, &win.ob_mpi) )             # <<<<<<<<<<<<<<
78782  *             CHKERR( MPI_Win_set_errhandler(
78783  *                     win.ob_mpi, MPI_ERRORS_RETURN) )
78784  */
78785         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_create(__pyx_v_base, __pyx_v_size, __pyx_v_disp_unit, __pyx_v_cinfo, __pyx_v_comm->__pyx_base.ob_mpi, (&__pyx_v_win->ob_mpi))); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L8;}
78786 
78787         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":69
78788  *                     cinfo, comm.ob_mpi, &win.ob_mpi) )
78789  *             CHKERR( MPI_Win_set_errhandler(
78790  *                     win.ob_mpi, MPI_ERRORS_RETURN) )             # <<<<<<<<<<<<<<
78791  *         CHKERR( PyMPI_Win_setup(win.ob_mpi, memory) )
78792  *         return win
78793  */
78794         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_set_errhandler(__pyx_v_win->ob_mpi, MPI_ERRORS_RETURN)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L8;}
78795       }
78796 
78797       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":64
78798  *         cdef MPI_Info cinfo = arg_Info(info)
78799  *         cdef Win win = <Win>cls()
78800  *         with nogil:             # <<<<<<<<<<<<<<
78801  *             CHKERR( MPI_Win_create(
78802  *                     base, size, disp_unit,
78803  */
78804       /*finally:*/ {
78805         int __pyx_why;
78806         __pyx_why = 0; goto __pyx_L9;
78807         __pyx_L8: __pyx_why = 4; goto __pyx_L9;
78808         __pyx_L9:;
78809         Py_BLOCK_THREADS
78810         switch (__pyx_why) {
78811           case 4: goto __pyx_L1_error;
78812         }
78813       }
78814   }
78815 
78816   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":70
78817  *             CHKERR( MPI_Win_set_errhandler(
78818  *                     win.ob_mpi, MPI_ERRORS_RETURN) )
78819  *         CHKERR( PyMPI_Win_setup(win.ob_mpi, memory) )             # <<<<<<<<<<<<<<
78820  *         return win
78821  *
78822  */
78823   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_PyMPI_Win_setup(__pyx_v_win->ob_mpi, __pyx_v_memory)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78824 
78825   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":71
78826  *                     win.ob_mpi, MPI_ERRORS_RETURN) )
78827  *         CHKERR( PyMPI_Win_setup(win.ob_mpi, memory) )
78828  *         return win             # <<<<<<<<<<<<<<
78829  *
78830  *     def Free(self):
78831  */
78832   __Pyx_XDECREF(__pyx_r);
78833   __Pyx_INCREF(((PyObject *)__pyx_v_win));
78834   __pyx_r = ((PyObject *)__pyx_v_win);
78835   goto __pyx_L0;
78836 
78837   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78838   goto __pyx_L0;
78839   __pyx_L1_error:;
78840   __Pyx_XDECREF(__pyx_t_2);
78841   __Pyx_AddTraceback("mpi4py.MPI.Win.Create", __pyx_clineno, __pyx_lineno, __pyx_filename);
78842   __pyx_r = NULL;
78843   __pyx_L0:;
78844   __Pyx_XDECREF((PyObject *)__pyx_v_win);
78845   __Pyx_XDECREF(__pyx_v_memory);
78846   __Pyx_XGIVEREF(__pyx_r);
78847   __Pyx_RefNannyFinishContext();
78848   return __pyx_r;
78849 }
78850 
78851 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":73
78852  *         return win
78853  *
78854  *     def Free(self):             # <<<<<<<<<<<<<<
78855  *         """
78856  *         Free a window
78857  */
78858 
78859 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
78860 static char __pyx_doc_6mpi4py_3MPI_3Win_5Free[] = "Win.Free(self)\n\n        Free a window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_5Free(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)78861 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5Free(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
78862   PyObject *__pyx_r = NULL;
78863   __Pyx_RefNannyDeclarations
78864   int __pyx_t_1;
78865   int __pyx_lineno = 0;
78866   const char *__pyx_filename = NULL;
78867   int __pyx_clineno = 0;
78868   __Pyx_RefNannySetupContext("Free");
78869   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
78870     __Pyx_RaiseArgtupleInvalid("Free", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
78871   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Free", 0))) return NULL;
78872 
78873   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":77
78874  *         Free a window
78875  *         """
78876  *         with nogil: CHKERR( MPI_Win_free(&self.ob_mpi) )             # <<<<<<<<<<<<<<
78877  *
78878  *     # [6.2.2] Window Attributes
78879  */
78880   {
78881       #ifdef WITH_THREAD
78882       PyThreadState *_save = NULL;
78883       #endif
78884       Py_UNBLOCK_THREADS
78885       /*try:*/ {
78886         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_free((&((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L6;}
78887       }
78888       /*finally:*/ {
78889         int __pyx_why;
78890         __pyx_why = 0; goto __pyx_L7;
78891         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
78892         __pyx_L7:;
78893         Py_BLOCK_THREADS
78894         switch (__pyx_why) {
78895           case 4: goto __pyx_L1_error;
78896         }
78897       }
78898   }
78899 
78900   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78901   goto __pyx_L0;
78902   __pyx_L1_error:;
78903   __Pyx_AddTraceback("mpi4py.MPI.Win.Free", __pyx_clineno, __pyx_lineno, __pyx_filename);
78904   __pyx_r = NULL;
78905   __pyx_L0:;
78906   __Pyx_XGIVEREF(__pyx_r);
78907   __Pyx_RefNannyFinishContext();
78908   return __pyx_r;
78909 }
78910 
78911 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":82
78912  *     # -------------------------
78913  *
78914  *     def Get_group(self):             # <<<<<<<<<<<<<<
78915  *         """
78916  *         Return a duplicate of the group of the
78917  */
78918 
78919 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_6Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
78920 static char __pyx_doc_6mpi4py_3MPI_3Win_6Get_group[] = "Win.Get_group(self)\n\n        Return a duplicate of the group of the\n        communicator used to create the window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_6Get_group(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)78921 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_6Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
78922   struct PyMPIGroupObject *__pyx_v_group = 0;
78923   PyObject *__pyx_r = NULL;
78924   __Pyx_RefNannyDeclarations
78925   PyObject *__pyx_t_1 = NULL;
78926   int __pyx_t_2;
78927   int __pyx_lineno = 0;
78928   const char *__pyx_filename = NULL;
78929   int __pyx_clineno = 0;
78930   __Pyx_RefNannySetupContext("Get_group");
78931   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
78932     __Pyx_RaiseArgtupleInvalid("Get_group", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
78933   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_group", 0))) return NULL;
78934 
78935   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":87
78936  *         communicator used to create the window
78937  *         """
78938  *         cdef Group group = Group()             # <<<<<<<<<<<<<<
78939  *         with nogil: CHKERR( MPI_Win_get_group(self.ob_mpi, &group.ob_mpi) )
78940  *         return group
78941  */
78942   __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
78943   __Pyx_GOTREF(__pyx_t_1);
78944   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
78945   __pyx_t_1 = 0;
78946 
78947   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":88
78948  *         """
78949  *         cdef Group group = Group()
78950  *         with nogil: CHKERR( MPI_Win_get_group(self.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
78951  *         return group
78952  *
78953  */
78954   {
78955       #ifdef WITH_THREAD
78956       PyThreadState *_save = NULL;
78957       #endif
78958       Py_UNBLOCK_THREADS
78959       /*try:*/ {
78960         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_group(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L6;}
78961       }
78962       /*finally:*/ {
78963         int __pyx_why;
78964         __pyx_why = 0; goto __pyx_L7;
78965         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
78966         __pyx_L7:;
78967         Py_BLOCK_THREADS
78968         switch (__pyx_why) {
78969           case 4: goto __pyx_L1_error;
78970         }
78971       }
78972   }
78973 
78974   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":89
78975  *         cdef Group group = Group()
78976  *         with nogil: CHKERR( MPI_Win_get_group(self.ob_mpi, &group.ob_mpi) )
78977  *         return group             # <<<<<<<<<<<<<<
78978  *
78979  *     property group:
78980  */
78981   __Pyx_XDECREF(__pyx_r);
78982   __Pyx_INCREF(((PyObject *)__pyx_v_group));
78983   __pyx_r = ((PyObject *)__pyx_v_group);
78984   goto __pyx_L0;
78985 
78986   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
78987   goto __pyx_L0;
78988   __pyx_L1_error:;
78989   __Pyx_XDECREF(__pyx_t_1);
78990   __Pyx_AddTraceback("mpi4py.MPI.Win.Get_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
78991   __pyx_r = NULL;
78992   __pyx_L0:;
78993   __Pyx_XDECREF((PyObject *)__pyx_v_group);
78994   __Pyx_XGIVEREF(__pyx_r);
78995   __Pyx_RefNannyFinishContext();
78996   return __pyx_r;
78997 }
78998 
78999 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":93
79000  *     property group:
79001  *         """window group"""
79002  *         def __get__(self):             # <<<<<<<<<<<<<<
79003  *             return self.Get_group()
79004  *
79005  */
79006 
79007 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5group___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_5group___get__(PyObject * __pyx_v_self)79008 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5group___get__(PyObject *__pyx_v_self) {
79009   PyObject *__pyx_r = NULL;
79010   __Pyx_RefNannyDeclarations
79011   PyObject *__pyx_t_1 = NULL;
79012   PyObject *__pyx_t_2 = NULL;
79013   int __pyx_lineno = 0;
79014   const char *__pyx_filename = NULL;
79015   int __pyx_clineno = 0;
79016   __Pyx_RefNannySetupContext("__get__");
79017 
79018   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":94
79019  *         """window group"""
79020  *         def __get__(self):
79021  *             return self.Get_group()             # <<<<<<<<<<<<<<
79022  *
79023  *     def Get_attr(self, int keyval):
79024  */
79025   __Pyx_XDECREF(__pyx_r);
79026   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_group); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79027   __Pyx_GOTREF(__pyx_t_1);
79028   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79029   __Pyx_GOTREF(__pyx_t_2);
79030   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
79031   __pyx_r = __pyx_t_2;
79032   __pyx_t_2 = 0;
79033   goto __pyx_L0;
79034 
79035   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79036   goto __pyx_L0;
79037   __pyx_L1_error:;
79038   __Pyx_XDECREF(__pyx_t_1);
79039   __Pyx_XDECREF(__pyx_t_2);
79040   __Pyx_AddTraceback("mpi4py.MPI.Win.group.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
79041   __pyx_r = NULL;
79042   __pyx_L0:;
79043   __Pyx_XGIVEREF(__pyx_r);
79044   __Pyx_RefNannyFinishContext();
79045   return __pyx_r;
79046 }
79047 
79048 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":96
79049  *             return self.Get_group()
79050  *
79051  *     def Get_attr(self, int keyval):             # <<<<<<<<<<<<<<
79052  *         """
79053  *         Retrieve attribute value by key
79054  */
79055 
79056 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_7Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
79057 static char __pyx_doc_6mpi4py_3MPI_3Win_7Get_attr[] = "Win.Get_attr(self, int keyval)\n\n        Retrieve attribute value by key\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_7Get_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)79058 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_7Get_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
79059   int __pyx_v_keyval;
79060   void *__pyx_v_attrval;
79061   int __pyx_v_flag;
79062   PyObject *__pyx_r = NULL;
79063   __Pyx_RefNannyDeclarations
79064   int __pyx_t_1;
79065   int __pyx_t_2;
79066   PyObject *__pyx_t_3 = NULL;
79067   int __pyx_lineno = 0;
79068   const char *__pyx_filename = NULL;
79069   int __pyx_clineno = 0;
79070   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
79071   __Pyx_RefNannySetupContext("Get_attr");
79072   {
79073     PyObject* values[1] = {0};
79074     if (unlikely(__pyx_kwds)) {
79075       Py_ssize_t kw_args;
79076       switch (PyTuple_GET_SIZE(__pyx_args)) {
79077         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79078         case  0: break;
79079         default: goto __pyx_L5_argtuple_error;
79080       }
79081       kw_args = PyDict_Size(__pyx_kwds);
79082       switch (PyTuple_GET_SIZE(__pyx_args)) {
79083         case  0:
79084         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
79085         if (likely(values[0])) kw_args--;
79086         else goto __pyx_L5_argtuple_error;
79087       }
79088       if (unlikely(kw_args > 0)) {
79089         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_attr") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79090       }
79091     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
79092       goto __pyx_L5_argtuple_error;
79093     } else {
79094       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79095     }
79096     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79097   }
79098   goto __pyx_L4_argument_unpacking_done;
79099   __pyx_L5_argtuple_error:;
79100   __Pyx_RaiseArgtupleInvalid("Get_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79101   __pyx_L3_error:;
79102   __Pyx_AddTraceback("mpi4py.MPI.Win.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79103   __Pyx_RefNannyFinishContext();
79104   return NULL;
79105   __pyx_L4_argument_unpacking_done:;
79106 
79107   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":100
79108  *         Retrieve attribute value by key
79109  *         """
79110  *         cdef void *attrval = NULL             # <<<<<<<<<<<<<<
79111  *         cdef int flag = 0
79112  *         CHKERR( MPI_Win_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
79113  */
79114   __pyx_v_attrval = NULL;
79115 
79116   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":101
79117  *         """
79118  *         cdef void *attrval = NULL
79119  *         cdef int flag = 0             # <<<<<<<<<<<<<<
79120  *         CHKERR( MPI_Win_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
79121  *         if not flag: return None
79122  */
79123   __pyx_v_flag = 0;
79124 
79125   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":102
79126  *         cdef void *attrval = NULL
79127  *         cdef int flag = 0
79128  *         CHKERR( MPI_Win_get_attr(self.ob_mpi, keyval, &attrval, &flag) )             # <<<<<<<<<<<<<<
79129  *         if not flag: return None
79130  *         if not attrval: return 0
79131  */
79132   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, (&__pyx_v_attrval), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79133 
79134   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":103
79135  *         cdef int flag = 0
79136  *         CHKERR( MPI_Win_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
79137  *         if not flag: return None             # <<<<<<<<<<<<<<
79138  *         if not attrval: return 0
79139  *         # handle predefined keyvals
79140  */
79141   __pyx_t_2 = (!__pyx_v_flag);
79142   if (__pyx_t_2) {
79143     __Pyx_XDECREF(__pyx_r);
79144     __Pyx_INCREF(Py_None);
79145     __pyx_r = Py_None;
79146     goto __pyx_L0;
79147     goto __pyx_L6;
79148   }
79149   __pyx_L6:;
79150 
79151   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":104
79152  *         CHKERR( MPI_Win_get_attr(self.ob_mpi, keyval, &attrval, &flag) )
79153  *         if not flag: return None
79154  *         if not attrval: return 0             # <<<<<<<<<<<<<<
79155  *         # handle predefined keyvals
79156  *         if (keyval == <int>MPI_WIN_BASE):
79157  */
79158   __pyx_t_2 = (!(__pyx_v_attrval != 0));
79159   if (__pyx_t_2) {
79160     __Pyx_XDECREF(__pyx_r);
79161     __Pyx_INCREF(__pyx_int_0);
79162     __pyx_r = __pyx_int_0;
79163     goto __pyx_L0;
79164     goto __pyx_L7;
79165   }
79166   __pyx_L7:;
79167 
79168   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":106
79169  *         if not attrval: return 0
79170  *         # handle predefined keyvals
79171  *         if (keyval == <int>MPI_WIN_BASE):             # <<<<<<<<<<<<<<
79172  *             return <MPI_Aint>attrval
79173  *         elif (keyval == <int>MPI_WIN_SIZE):
79174  */
79175   __pyx_t_2 = (__pyx_v_keyval == ((int)MPI_WIN_BASE));
79176   if (__pyx_t_2) {
79177 
79178     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":107
79179  *         # handle predefined keyvals
79180  *         if (keyval == <int>MPI_WIN_BASE):
79181  *             return <MPI_Aint>attrval             # <<<<<<<<<<<<<<
79182  *         elif (keyval == <int>MPI_WIN_SIZE):
79183  *             return (<MPI_Aint*>attrval)[0]
79184  */
79185     __Pyx_XDECREF(__pyx_r);
79186     __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint(((MPI_Aint)__pyx_v_attrval)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79187     __Pyx_GOTREF(__pyx_t_3);
79188     __pyx_r = __pyx_t_3;
79189     __pyx_t_3 = 0;
79190     goto __pyx_L0;
79191     goto __pyx_L8;
79192   }
79193 
79194   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":108
79195  *         if (keyval == <int>MPI_WIN_BASE):
79196  *             return <MPI_Aint>attrval
79197  *         elif (keyval == <int>MPI_WIN_SIZE):             # <<<<<<<<<<<<<<
79198  *             return (<MPI_Aint*>attrval)[0]
79199  *         elif (keyval == <int>MPI_WIN_DISP_UNIT):
79200  */
79201   __pyx_t_2 = (__pyx_v_keyval == ((int)MPI_WIN_SIZE));
79202   if (__pyx_t_2) {
79203 
79204     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":109
79205  *             return <MPI_Aint>attrval
79206  *         elif (keyval == <int>MPI_WIN_SIZE):
79207  *             return (<MPI_Aint*>attrval)[0]             # <<<<<<<<<<<<<<
79208  *         elif (keyval == <int>MPI_WIN_DISP_UNIT):
79209  *             return (<int*>attrval)[0]
79210  */
79211     __Pyx_XDECREF(__pyx_r);
79212     __pyx_t_3 = __Pyx_PyInt_to_py_MPI_Aint((((MPI_Aint *)__pyx_v_attrval)[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79213     __Pyx_GOTREF(__pyx_t_3);
79214     __pyx_r = __pyx_t_3;
79215     __pyx_t_3 = 0;
79216     goto __pyx_L0;
79217     goto __pyx_L8;
79218   }
79219 
79220   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":110
79221  *         elif (keyval == <int>MPI_WIN_SIZE):
79222  *             return (<MPI_Aint*>attrval)[0]
79223  *         elif (keyval == <int>MPI_WIN_DISP_UNIT):             # <<<<<<<<<<<<<<
79224  *             return (<int*>attrval)[0]
79225  *         # likely be a user-defined keyval
79226  */
79227   __pyx_t_2 = (__pyx_v_keyval == ((int)MPI_WIN_DISP_UNIT));
79228   if (__pyx_t_2) {
79229 
79230     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":111
79231  *             return (<MPI_Aint*>attrval)[0]
79232  *         elif (keyval == <int>MPI_WIN_DISP_UNIT):
79233  *             return (<int*>attrval)[0]             # <<<<<<<<<<<<<<
79234  *         # likely be a user-defined keyval
79235  *         elif keyval in win_keyval:
79236  */
79237     __Pyx_XDECREF(__pyx_r);
79238     __pyx_t_3 = PyInt_FromLong((((int *)__pyx_v_attrval)[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79239     __Pyx_GOTREF(__pyx_t_3);
79240     __pyx_r = __pyx_t_3;
79241     __pyx_t_3 = 0;
79242     goto __pyx_L0;
79243     goto __pyx_L8;
79244   }
79245 
79246   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":113
79247  *             return (<int*>attrval)[0]
79248  *         # likely be a user-defined keyval
79249  *         elif keyval in win_keyval:             # <<<<<<<<<<<<<<
79250  *             return <object>attrval
79251  *         else:
79252  */
79253   __pyx_t_3 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79254   __Pyx_GOTREF(__pyx_t_3);
79255   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval) == Py_None)) {
79256     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79257   }
79258   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_t_3))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79259   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
79260   if (__pyx_t_2) {
79261 
79262     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":114
79263  *         # likely be a user-defined keyval
79264  *         elif keyval in win_keyval:
79265  *             return <object>attrval             # <<<<<<<<<<<<<<
79266  *         else:
79267  *             return PyLong_FromVoidPtr(attrval)
79268  */
79269     __Pyx_XDECREF(__pyx_r);
79270     __Pyx_INCREF(((PyObject *)__pyx_v_attrval));
79271     __pyx_r = ((PyObject *)__pyx_v_attrval);
79272     goto __pyx_L0;
79273     goto __pyx_L8;
79274   }
79275   /*else*/ {
79276 
79277     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":116
79278  *             return <object>attrval
79279  *         else:
79280  *             return PyLong_FromVoidPtr(attrval)             # <<<<<<<<<<<<<<
79281  *
79282  *     def Set_attr(self, int keyval, object attrval):
79283  */
79284     __Pyx_XDECREF(__pyx_r);
79285     __pyx_t_3 = PyLong_FromVoidPtr(__pyx_v_attrval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79286     __Pyx_GOTREF(__pyx_t_3);
79287     __pyx_r = __pyx_t_3;
79288     __pyx_t_3 = 0;
79289     goto __pyx_L0;
79290   }
79291   __pyx_L8:;
79292 
79293   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79294   goto __pyx_L0;
79295   __pyx_L1_error:;
79296   __Pyx_XDECREF(__pyx_t_3);
79297   __Pyx_AddTraceback("mpi4py.MPI.Win.Get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79298   __pyx_r = NULL;
79299   __pyx_L0:;
79300   __Pyx_XGIVEREF(__pyx_r);
79301   __Pyx_RefNannyFinishContext();
79302   return __pyx_r;
79303 }
79304 
79305 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":118
79306  *             return PyLong_FromVoidPtr(attrval)
79307  *
79308  *     def Set_attr(self, int keyval, object attrval):             # <<<<<<<<<<<<<<
79309  *         """
79310  *         Store attribute value associated with a key
79311  */
79312 
79313 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_8Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
79314 static char __pyx_doc_6mpi4py_3MPI_3Win_8Set_attr[] = "Win.Set_attr(self, int keyval, attrval)\n\n        Store attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_8Set_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)79315 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_8Set_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
79316   int __pyx_v_keyval;
79317   PyObject *__pyx_v_attrval = 0;
79318   void *__pyx_v_ptrval;
79319   int __pyx_v_incref;
79320   PyObject *__pyx_r = NULL;
79321   __Pyx_RefNannyDeclarations
79322   PyObject *__pyx_t_1 = NULL;
79323   int __pyx_t_2;
79324   int __pyx_t_3;
79325   int __pyx_lineno = 0;
79326   const char *__pyx_filename = NULL;
79327   int __pyx_clineno = 0;
79328   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,&__pyx_n_s__attrval,0};
79329   __Pyx_RefNannySetupContext("Set_attr");
79330   {
79331     PyObject* values[2] = {0,0};
79332     if (unlikely(__pyx_kwds)) {
79333       Py_ssize_t kw_args;
79334       switch (PyTuple_GET_SIZE(__pyx_args)) {
79335         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
79336         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79337         case  0: break;
79338         default: goto __pyx_L5_argtuple_error;
79339       }
79340       kw_args = PyDict_Size(__pyx_kwds);
79341       switch (PyTuple_GET_SIZE(__pyx_args)) {
79342         case  0:
79343         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
79344         if (likely(values[0])) kw_args--;
79345         else goto __pyx_L5_argtuple_error;
79346         case  1:
79347         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrval);
79348         if (likely(values[1])) kw_args--;
79349         else {
79350           __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79351         }
79352       }
79353       if (unlikely(kw_args > 0)) {
79354         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_attr") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79355       }
79356     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
79357       goto __pyx_L5_argtuple_error;
79358     } else {
79359       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79360       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
79361     }
79362     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79363     __pyx_v_attrval = values[1];
79364   }
79365   goto __pyx_L4_argument_unpacking_done;
79366   __pyx_L5_argtuple_error:;
79367   __Pyx_RaiseArgtupleInvalid("Set_attr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79368   __pyx_L3_error:;
79369   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79370   __Pyx_RefNannyFinishContext();
79371   return NULL;
79372   __pyx_L4_argument_unpacking_done:;
79373 
79374   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":122
79375  *         Store attribute value associated with a key
79376  *         """
79377  *         cdef void *ptrval = NULL             # <<<<<<<<<<<<<<
79378  *         cdef int incref = 0
79379  *         if keyval in win_keyval:
79380  */
79381   __pyx_v_ptrval = NULL;
79382 
79383   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":123
79384  *         """
79385  *         cdef void *ptrval = NULL
79386  *         cdef int incref = 0             # <<<<<<<<<<<<<<
79387  *         if keyval in win_keyval:
79388  *             ptrval = <void*>attrval
79389  */
79390   __pyx_v_incref = 0;
79391 
79392   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":124
79393  *         cdef void *ptrval = NULL
79394  *         cdef int incref = 0
79395  *         if keyval in win_keyval:             # <<<<<<<<<<<<<<
79396  *             ptrval = <void*>attrval
79397  *             incref = 1
79398  */
79399   __pyx_t_1 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79400   __Pyx_GOTREF(__pyx_t_1);
79401   if (unlikely(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval) == Py_None)) {
79402     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79403   }
79404   __pyx_t_2 = ((PyDict_Contains(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval), __pyx_t_1))); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79405   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
79406   if (__pyx_t_2) {
79407 
79408     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":125
79409  *         cdef int incref = 0
79410  *         if keyval in win_keyval:
79411  *             ptrval = <void*>attrval             # <<<<<<<<<<<<<<
79412  *             incref = 1
79413  *         else:
79414  */
79415     __pyx_v_ptrval = ((void *)__pyx_v_attrval);
79416 
79417     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":126
79418  *         if keyval in win_keyval:
79419  *             ptrval = <void*>attrval
79420  *             incref = 1             # <<<<<<<<<<<<<<
79421  *         else:
79422  *             ptrval = PyLong_AsVoidPtr(attrval)
79423  */
79424     __pyx_v_incref = 1;
79425     goto __pyx_L6;
79426   }
79427   /*else*/ {
79428 
79429     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":128
79430  *             incref = 1
79431  *         else:
79432  *             ptrval = PyLong_AsVoidPtr(attrval)             # <<<<<<<<<<<<<<
79433  *             incref = 0
79434  *         CHKERR(MPI_Win_set_attr(self.ob_mpi, keyval, ptrval) )
79435  */
79436     __pyx_v_ptrval = PyLong_AsVoidPtr(__pyx_v_attrval);
79437 
79438     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":129
79439  *         else:
79440  *             ptrval = PyLong_AsVoidPtr(attrval)
79441  *             incref = 0             # <<<<<<<<<<<<<<
79442  *         CHKERR(MPI_Win_set_attr(self.ob_mpi, keyval, ptrval) )
79443  *         if incref: Py_INCREF(attrval)
79444  */
79445     __pyx_v_incref = 0;
79446   }
79447   __pyx_L6:;
79448 
79449   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":130
79450  *             ptrval = PyLong_AsVoidPtr(attrval)
79451  *             incref = 0
79452  *         CHKERR(MPI_Win_set_attr(self.ob_mpi, keyval, ptrval) )             # <<<<<<<<<<<<<<
79453  *         if incref: Py_INCREF(attrval)
79454  *
79455  */
79456   __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_set_attr(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval, __pyx_v_ptrval)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79457 
79458   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":131
79459  *             incref = 0
79460  *         CHKERR(MPI_Win_set_attr(self.ob_mpi, keyval, ptrval) )
79461  *         if incref: Py_INCREF(attrval)             # <<<<<<<<<<<<<<
79462  *
79463  *     def Delete_attr(self, int keyval):
79464  */
79465   if (__pyx_v_incref) {
79466     Py_INCREF(__pyx_v_attrval);
79467     goto __pyx_L7;
79468   }
79469   __pyx_L7:;
79470 
79471   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79472   goto __pyx_L0;
79473   __pyx_L1_error:;
79474   __Pyx_XDECREF(__pyx_t_1);
79475   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79476   __pyx_r = NULL;
79477   __pyx_L0:;
79478   __Pyx_XGIVEREF(__pyx_r);
79479   __Pyx_RefNannyFinishContext();
79480   return __pyx_r;
79481 }
79482 
79483 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":133
79484  *         if incref: Py_INCREF(attrval)
79485  *
79486  *     def Delete_attr(self, int keyval):             # <<<<<<<<<<<<<<
79487  *         """
79488  *         Delete attribute value associated with a key
79489  */
79490 
79491 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_9Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
79492 static char __pyx_doc_6mpi4py_3MPI_3Win_9Delete_attr[] = "Win.Delete_attr(self, int keyval)\n\n        Delete attribute value associated with a key\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_9Delete_attr(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)79493 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_9Delete_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
79494   int __pyx_v_keyval;
79495   PyObject *__pyx_r = NULL;
79496   __Pyx_RefNannyDeclarations
79497   int __pyx_t_1;
79498   int __pyx_lineno = 0;
79499   const char *__pyx_filename = NULL;
79500   int __pyx_clineno = 0;
79501   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
79502   __Pyx_RefNannySetupContext("Delete_attr");
79503   {
79504     PyObject* values[1] = {0};
79505     if (unlikely(__pyx_kwds)) {
79506       Py_ssize_t kw_args;
79507       switch (PyTuple_GET_SIZE(__pyx_args)) {
79508         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79509         case  0: break;
79510         default: goto __pyx_L5_argtuple_error;
79511       }
79512       kw_args = PyDict_Size(__pyx_kwds);
79513       switch (PyTuple_GET_SIZE(__pyx_args)) {
79514         case  0:
79515         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
79516         if (likely(values[0])) kw_args--;
79517         else goto __pyx_L5_argtuple_error;
79518       }
79519       if (unlikely(kw_args > 0)) {
79520         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Delete_attr") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79521       }
79522     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
79523       goto __pyx_L5_argtuple_error;
79524     } else {
79525       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79526     }
79527     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79528   }
79529   goto __pyx_L4_argument_unpacking_done;
79530   __pyx_L5_argtuple_error:;
79531   __Pyx_RaiseArgtupleInvalid("Delete_attr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79532   __pyx_L3_error:;
79533   __Pyx_AddTraceback("mpi4py.MPI.Win.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79534   __Pyx_RefNannyFinishContext();
79535   return NULL;
79536   __pyx_L4_argument_unpacking_done:;
79537 
79538   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":137
79539  *         Delete attribute value associated with a key
79540  *         """
79541  *         CHKERR(MPI_Win_delete_attr(self.ob_mpi, keyval) )             # <<<<<<<<<<<<<<
79542  *
79543  *     @classmethod
79544  */
79545   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_delete_attr(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_keyval)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79546 
79547   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79548   goto __pyx_L0;
79549   __pyx_L1_error:;
79550   __Pyx_AddTraceback("mpi4py.MPI.Win.Delete_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
79551   __pyx_r = NULL;
79552   __pyx_L0:;
79553   __Pyx_XGIVEREF(__pyx_r);
79554   __Pyx_RefNannyFinishContext();
79555   return __pyx_r;
79556 }
79557 
79558 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":140
79559  *
79560  *     @classmethod
79561  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
79562  *         """
79563  *         Create a new attribute key for windows
79564  */
79565 
79566 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_10Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
79567 static char __pyx_doc_6mpi4py_3MPI_3Win_10Create_keyval[] = "Win.Create_keyval(type cls, copy_fn=None, delete_fn=None)\n\n        Create a new attribute key for windows\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_10Create_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)79568 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_10Create_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
79569   PyObject *__pyx_v_copy_fn = 0;
79570   PyObject *__pyx_v_delete_fn = 0;
79571   int __pyx_v_keyval;
79572   MPI_Win_copy_attr_function *__pyx_v__copy;
79573   MPI_Win_delete_attr_function *__pyx_v__del;
79574   void *__pyx_v_extra_state;
79575   PyObject *__pyx_r = NULL;
79576   __Pyx_RefNannyDeclarations
79577   int __pyx_t_1;
79578   PyObject *__pyx_t_2 = NULL;
79579   int __pyx_lineno = 0;
79580   const char *__pyx_filename = NULL;
79581   int __pyx_clineno = 0;
79582   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__copy_fn,&__pyx_n_s__delete_fn,0};
79583   __Pyx_RefNannySetupContext("Create_keyval");
79584   {
79585     PyObject* values[2] = {0,0};
79586     values[0] = ((PyObject *)Py_None);
79587     values[1] = ((PyObject *)Py_None);
79588     if (unlikely(__pyx_kwds)) {
79589       Py_ssize_t kw_args;
79590       switch (PyTuple_GET_SIZE(__pyx_args)) {
79591         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
79592         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79593         case  0: break;
79594         default: goto __pyx_L5_argtuple_error;
79595       }
79596       kw_args = PyDict_Size(__pyx_kwds);
79597       switch (PyTuple_GET_SIZE(__pyx_args)) {
79598         case  0:
79599         if (kw_args > 0) {
79600           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__copy_fn);
79601           if (value) { values[0] = value; kw_args--; }
79602         }
79603         case  1:
79604         if (kw_args > 0) {
79605           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delete_fn);
79606           if (value) { values[1] = value; kw_args--; }
79607         }
79608       }
79609       if (unlikely(kw_args > 0)) {
79610         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Create_keyval") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79611       }
79612     } else {
79613       switch (PyTuple_GET_SIZE(__pyx_args)) {
79614         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
79615         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79616         case  0: break;
79617         default: goto __pyx_L5_argtuple_error;
79618       }
79619     }
79620     __pyx_v_copy_fn = values[0];
79621     __pyx_v_delete_fn = values[1];
79622   }
79623   goto __pyx_L4_argument_unpacking_done;
79624   __pyx_L5_argtuple_error:;
79625   __Pyx_RaiseArgtupleInvalid("Create_keyval", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79626   __pyx_L3_error:;
79627   __Pyx_AddTraceback("mpi4py.MPI.Win.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
79628   __Pyx_RefNannyFinishContext();
79629   return NULL;
79630   __pyx_L4_argument_unpacking_done:;
79631 
79632   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":144
79633  *         Create a new attribute key for windows
79634  *         """
79635  *         cdef int keyval = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
79636  *         cdef MPI_Win_copy_attr_function *_copy = win_attr_copy_fn
79637  *         cdef MPI_Win_delete_attr_function *_del = win_attr_delete_fn
79638  */
79639   __pyx_v_keyval = MPI_KEYVAL_INVALID;
79640 
79641   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":145
79642  *         """
79643  *         cdef int keyval = MPI_KEYVAL_INVALID
79644  *         cdef MPI_Win_copy_attr_function *_copy = win_attr_copy_fn             # <<<<<<<<<<<<<<
79645  *         cdef MPI_Win_delete_attr_function *_del = win_attr_delete_fn
79646  *         cdef void *extra_state = NULL
79647  */
79648   __pyx_v__copy = __pyx_f_6mpi4py_3MPI_win_attr_copy_fn;
79649 
79650   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":146
79651  *         cdef int keyval = MPI_KEYVAL_INVALID
79652  *         cdef MPI_Win_copy_attr_function *_copy = win_attr_copy_fn
79653  *         cdef MPI_Win_delete_attr_function *_del = win_attr_delete_fn             # <<<<<<<<<<<<<<
79654  *         cdef void *extra_state = NULL
79655  *         CHKERR( MPI_Win_create_keyval(_copy, _del, &keyval, extra_state) )
79656  */
79657   __pyx_v__del = __pyx_f_6mpi4py_3MPI_win_attr_delete_fn;
79658 
79659   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":147
79660  *         cdef MPI_Win_copy_attr_function *_copy = win_attr_copy_fn
79661  *         cdef MPI_Win_delete_attr_function *_del = win_attr_delete_fn
79662  *         cdef void *extra_state = NULL             # <<<<<<<<<<<<<<
79663  *         CHKERR( MPI_Win_create_keyval(_copy, _del, &keyval, extra_state) )
79664  *         win_keyval_new(keyval, copy_fn, delete_fn)
79665  */
79666   __pyx_v_extra_state = NULL;
79667 
79668   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":148
79669  *         cdef MPI_Win_delete_attr_function *_del = win_attr_delete_fn
79670  *         cdef void *extra_state = NULL
79671  *         CHKERR( MPI_Win_create_keyval(_copy, _del, &keyval, extra_state) )             # <<<<<<<<<<<<<<
79672  *         win_keyval_new(keyval, copy_fn, delete_fn)
79673  *         return keyval
79674  */
79675   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_create_keyval(__pyx_v__copy, __pyx_v__del, (&__pyx_v_keyval), __pyx_v_extra_state)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79676 
79677   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":149
79678  *         cdef void *extra_state = NULL
79679  *         CHKERR( MPI_Win_create_keyval(_copy, _del, &keyval, extra_state) )
79680  *         win_keyval_new(keyval, copy_fn, delete_fn)             # <<<<<<<<<<<<<<
79681  *         return keyval
79682  *
79683  */
79684   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_win_keyval_new(__pyx_v_keyval, __pyx_v_copy_fn, __pyx_v_delete_fn); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79685 
79686   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":150
79687  *         CHKERR( MPI_Win_create_keyval(_copy, _del, &keyval, extra_state) )
79688  *         win_keyval_new(keyval, copy_fn, delete_fn)
79689  *         return keyval             # <<<<<<<<<<<<<<
79690  *
79691  *     @classmethod
79692  */
79693   __Pyx_XDECREF(__pyx_r);
79694   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79695   __Pyx_GOTREF(__pyx_t_2);
79696   __pyx_r = __pyx_t_2;
79697   __pyx_t_2 = 0;
79698   goto __pyx_L0;
79699 
79700   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79701   goto __pyx_L0;
79702   __pyx_L1_error:;
79703   __Pyx_XDECREF(__pyx_t_2);
79704   __Pyx_AddTraceback("mpi4py.MPI.Win.Create_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
79705   __pyx_r = NULL;
79706   __pyx_L0:;
79707   __Pyx_XGIVEREF(__pyx_r);
79708   __Pyx_RefNannyFinishContext();
79709   return __pyx_r;
79710 }
79711 
79712 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":153
79713  *
79714  *     @classmethod
79715  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
79716  *         """
79717  *         Free and attribute key for windows
79718  */
79719 
79720 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_11Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
79721 static char __pyx_doc_6mpi4py_3MPI_3Win_11Free_keyval[] = "Win.Free_keyval(type cls, int keyval)\n\n        Free and attribute key for windows\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_11Free_keyval(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)79722 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_11Free_keyval(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
79723   int __pyx_v_keyval;
79724   int __pyx_v_keyval_save;
79725   PyObject *__pyx_r = NULL;
79726   __Pyx_RefNannyDeclarations
79727   int __pyx_t_1;
79728   PyObject *__pyx_t_2 = NULL;
79729   int __pyx_lineno = 0;
79730   const char *__pyx_filename = NULL;
79731   int __pyx_clineno = 0;
79732   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyval,0};
79733   __Pyx_RefNannySetupContext("Free_keyval");
79734   {
79735     PyObject* values[1] = {0};
79736     if (unlikely(__pyx_kwds)) {
79737       Py_ssize_t kw_args;
79738       switch (PyTuple_GET_SIZE(__pyx_args)) {
79739         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79740         case  0: break;
79741         default: goto __pyx_L5_argtuple_error;
79742       }
79743       kw_args = PyDict_Size(__pyx_kwds);
79744       switch (PyTuple_GET_SIZE(__pyx_args)) {
79745         case  0:
79746         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
79747         if (likely(values[0])) kw_args--;
79748         else goto __pyx_L5_argtuple_error;
79749       }
79750       if (unlikely(kw_args > 0)) {
79751         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Free_keyval") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79752       }
79753     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
79754       goto __pyx_L5_argtuple_error;
79755     } else {
79756       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
79757     }
79758     __pyx_v_keyval = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_keyval == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79759   }
79760   goto __pyx_L4_argument_unpacking_done;
79761   __pyx_L5_argtuple_error:;
79762   __Pyx_RaiseArgtupleInvalid("Free_keyval", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
79763   __pyx_L3_error:;
79764   __Pyx_AddTraceback("mpi4py.MPI.Win.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
79765   __Pyx_RefNannyFinishContext();
79766   return NULL;
79767   __pyx_L4_argument_unpacking_done:;
79768 
79769   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":157
79770  *         Free and attribute key for windows
79771  *         """
79772  *         cdef int keyval_save = keyval             # <<<<<<<<<<<<<<
79773  *         CHKERR( MPI_Win_free_keyval (&keyval) )
79774  *         win_keyval_del(keyval_save)
79775  */
79776   __pyx_v_keyval_save = __pyx_v_keyval;
79777 
79778   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":158
79779  *         """
79780  *         cdef int keyval_save = keyval
79781  *         CHKERR( MPI_Win_free_keyval (&keyval) )             # <<<<<<<<<<<<<<
79782  *         win_keyval_del(keyval_save)
79783  *         return keyval
79784  */
79785   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_free_keyval((&__pyx_v_keyval))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79786 
79787   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":159
79788  *         cdef int keyval_save = keyval
79789  *         CHKERR( MPI_Win_free_keyval (&keyval) )
79790  *         win_keyval_del(keyval_save)             # <<<<<<<<<<<<<<
79791  *         return keyval
79792  *
79793  */
79794   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_win_keyval_del(__pyx_v_keyval_save); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79795 
79796   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":160
79797  *         CHKERR( MPI_Win_free_keyval (&keyval) )
79798  *         win_keyval_del(keyval_save)
79799  *         return keyval             # <<<<<<<<<<<<<<
79800  *
79801  *     property attrs:
79802  */
79803   __Pyx_XDECREF(__pyx_r);
79804   __pyx_t_2 = PyInt_FromLong(__pyx_v_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79805   __Pyx_GOTREF(__pyx_t_2);
79806   __pyx_r = __pyx_t_2;
79807   __pyx_t_2 = 0;
79808   goto __pyx_L0;
79809 
79810   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
79811   goto __pyx_L0;
79812   __pyx_L1_error:;
79813   __Pyx_XDECREF(__pyx_t_2);
79814   __Pyx_AddTraceback("mpi4py.MPI.Win.Free_keyval", __pyx_clineno, __pyx_lineno, __pyx_filename);
79815   __pyx_r = NULL;
79816   __pyx_L0:;
79817   __Pyx_XGIVEREF(__pyx_r);
79818   __Pyx_RefNannyFinishContext();
79819   return __pyx_r;
79820 }
79821 
79822 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":164
79823  *     property attrs:
79824  *         "window attributes"
79825  *         def __get__(self):             # <<<<<<<<<<<<<<
79826  *             cdef MPI_Win win = self.ob_mpi
79827  *             cdef void *base = NULL, *pbase = NULL
79828  */
79829 
79830 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5attrs___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_5attrs___get__(PyObject * __pyx_v_self)79831 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_5attrs___get__(PyObject *__pyx_v_self) {
79832   MPI_Win __pyx_v_win;
79833   void *__pyx_v_base;
79834   void *__pyx_v_pbase;
79835   MPI_Aint __pyx_v_size;
79836   MPI_Aint *__pyx_v_psize;
79837   int __pyx_v_disp;
79838   int *__pyx_v_pdisp;
79839   int __pyx_v_attr;
79840   int __pyx_v_flag;
79841   PyObject *__pyx_r = NULL;
79842   __Pyx_RefNannyDeclarations
79843   int __pyx_t_1;
79844   int __pyx_t_2;
79845   int __pyx_t_3;
79846   PyObject *__pyx_t_4 = NULL;
79847   PyObject *__pyx_t_5 = NULL;
79848   PyObject *__pyx_t_6 = NULL;
79849   PyObject *__pyx_t_7 = NULL;
79850   int __pyx_lineno = 0;
79851   const char *__pyx_filename = NULL;
79852   int __pyx_clineno = 0;
79853   __Pyx_RefNannySetupContext("__get__");
79854 
79855   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":165
79856  *         "window attributes"
79857  *         def __get__(self):
79858  *             cdef MPI_Win win = self.ob_mpi             # <<<<<<<<<<<<<<
79859  *             cdef void *base = NULL, *pbase = NULL
79860  *             cdef MPI_Aint size = 0, *psize = NULL
79861  */
79862   __pyx_v_win = ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi;
79863 
79864   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":166
79865  *         def __get__(self):
79866  *             cdef MPI_Win win = self.ob_mpi
79867  *             cdef void *base = NULL, *pbase = NULL             # <<<<<<<<<<<<<<
79868  *             cdef MPI_Aint size = 0, *psize = NULL
79869  *             cdef int      disp = 0, *pdisp = NULL
79870  */
79871   __pyx_v_base = NULL;
79872   __pyx_v_pbase = NULL;
79873 
79874   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":167
79875  *             cdef MPI_Win win = self.ob_mpi
79876  *             cdef void *base = NULL, *pbase = NULL
79877  *             cdef MPI_Aint size = 0, *psize = NULL             # <<<<<<<<<<<<<<
79878  *             cdef int      disp = 0, *pdisp = NULL
79879  *             cdef int attr = MPI_KEYVAL_INVALID
79880  */
79881   __pyx_v_size = 0;
79882   __pyx_v_psize = NULL;
79883 
79884   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":168
79885  *             cdef void *base = NULL, *pbase = NULL
79886  *             cdef MPI_Aint size = 0, *psize = NULL
79887  *             cdef int      disp = 0, *pdisp = NULL             # <<<<<<<<<<<<<<
79888  *             cdef int attr = MPI_KEYVAL_INVALID
79889  *             cdef int flag = 0
79890  */
79891   __pyx_v_disp = 0;
79892   __pyx_v_pdisp = NULL;
79893 
79894   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":169
79895  *             cdef MPI_Aint size = 0, *psize = NULL
79896  *             cdef int      disp = 0, *pdisp = NULL
79897  *             cdef int attr = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
79898  *             cdef int flag = 0
79899  *             #
79900  */
79901   __pyx_v_attr = MPI_KEYVAL_INVALID;
79902 
79903   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":170
79904  *             cdef int      disp = 0, *pdisp = NULL
79905  *             cdef int attr = MPI_KEYVAL_INVALID
79906  *             cdef int flag = 0             # <<<<<<<<<<<<<<
79907  *             #
79908  *             attr = MPI_WIN_BASE
79909  */
79910   __pyx_v_flag = 0;
79911 
79912   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":172
79913  *             cdef int flag = 0
79914  *             #
79915  *             attr = MPI_WIN_BASE             # <<<<<<<<<<<<<<
79916  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )
79917  *             if flag and pbase != NULL: base = pbase
79918  */
79919   __pyx_v_attr = MPI_WIN_BASE;
79920 
79921   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":173
79922  *             #
79923  *             attr = MPI_WIN_BASE
79924  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )             # <<<<<<<<<<<<<<
79925  *             if flag and pbase != NULL: base = pbase
79926  *             #
79927  */
79928   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(__pyx_v_win, __pyx_v_attr, (&__pyx_v_pbase), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79929 
79930   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":174
79931  *             attr = MPI_WIN_BASE
79932  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )
79933  *             if flag and pbase != NULL: base = pbase             # <<<<<<<<<<<<<<
79934  *             #
79935  *             attr = MPI_WIN_SIZE
79936  */
79937   if (__pyx_v_flag) {
79938     __pyx_t_2 = (__pyx_v_pbase != NULL);
79939     __pyx_t_3 = __pyx_t_2;
79940   } else {
79941     __pyx_t_3 = __pyx_v_flag;
79942   }
79943   if (__pyx_t_3) {
79944     __pyx_v_base = __pyx_v_pbase;
79945     goto __pyx_L5;
79946   }
79947   __pyx_L5:;
79948 
79949   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":176
79950  *             if flag and pbase != NULL: base = pbase
79951  *             #
79952  *             attr = MPI_WIN_SIZE             # <<<<<<<<<<<<<<
79953  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )
79954  *             if flag and psize != NULL: size = psize[0]
79955  */
79956   __pyx_v_attr = MPI_WIN_SIZE;
79957 
79958   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":177
79959  *             #
79960  *             attr = MPI_WIN_SIZE
79961  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )             # <<<<<<<<<<<<<<
79962  *             if flag and psize != NULL: size = psize[0]
79963  *             #
79964  */
79965   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(__pyx_v_win, __pyx_v_attr, (&__pyx_v_psize), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
79966 
79967   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":178
79968  *             attr = MPI_WIN_SIZE
79969  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )
79970  *             if flag and psize != NULL: size = psize[0]             # <<<<<<<<<<<<<<
79971  *             #
79972  *             attr = MPI_WIN_DISP_UNIT
79973  */
79974   if (__pyx_v_flag) {
79975     __pyx_t_3 = (__pyx_v_psize != NULL);
79976     __pyx_t_2 = __pyx_t_3;
79977   } else {
79978     __pyx_t_2 = __pyx_v_flag;
79979   }
79980   if (__pyx_t_2) {
79981     __pyx_v_size = (__pyx_v_psize[0]);
79982     goto __pyx_L6;
79983   }
79984   __pyx_L6:;
79985 
79986   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":180
79987  *             if flag and psize != NULL: size = psize[0]
79988  *             #
79989  *             attr = MPI_WIN_DISP_UNIT             # <<<<<<<<<<<<<<
79990  *             CHKERR( MPI_Win_get_attr(win, attr, &pdisp, &flag) )
79991  *             if flag and pdisp != NULL: disp = pdisp[0]
79992  */
79993   __pyx_v_attr = MPI_WIN_DISP_UNIT;
79994 
79995   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":181
79996  *             #
79997  *             attr = MPI_WIN_DISP_UNIT
79998  *             CHKERR( MPI_Win_get_attr(win, attr, &pdisp, &flag) )             # <<<<<<<<<<<<<<
79999  *             if flag and pdisp != NULL: disp = pdisp[0]
80000  *             #
80001  */
80002   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(__pyx_v_win, __pyx_v_attr, (&__pyx_v_pdisp), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80003 
80004   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":182
80005  *             attr = MPI_WIN_DISP_UNIT
80006  *             CHKERR( MPI_Win_get_attr(win, attr, &pdisp, &flag) )
80007  *             if flag and pdisp != NULL: disp = pdisp[0]             # <<<<<<<<<<<<<<
80008  *             #
80009  *             return (<MPI_Aint>base, size, disp)
80010  */
80011   if (__pyx_v_flag) {
80012     __pyx_t_2 = (__pyx_v_pdisp != NULL);
80013     __pyx_t_3 = __pyx_t_2;
80014   } else {
80015     __pyx_t_3 = __pyx_v_flag;
80016   }
80017   if (__pyx_t_3) {
80018     __pyx_v_disp = (__pyx_v_pdisp[0]);
80019     goto __pyx_L7;
80020   }
80021   __pyx_L7:;
80022 
80023   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":184
80024  *             if flag and pdisp != NULL: disp = pdisp[0]
80025  *             #
80026  *             return (<MPI_Aint>base, size, disp)             # <<<<<<<<<<<<<<
80027  *
80028  *     property memory:
80029  */
80030   __Pyx_XDECREF(__pyx_r);
80031   __pyx_t_4 = __Pyx_PyInt_to_py_MPI_Aint(((MPI_Aint)__pyx_v_base)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80032   __Pyx_GOTREF(__pyx_t_4);
80033   __pyx_t_5 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80034   __Pyx_GOTREF(__pyx_t_5);
80035   __pyx_t_6 = PyInt_FromLong(__pyx_v_disp); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80036   __Pyx_GOTREF(__pyx_t_6);
80037   __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80038   __Pyx_GOTREF(((PyObject *)__pyx_t_7));
80039   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
80040   __Pyx_GIVEREF(__pyx_t_4);
80041   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
80042   __Pyx_GIVEREF(__pyx_t_5);
80043   PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
80044   __Pyx_GIVEREF(__pyx_t_6);
80045   __pyx_t_4 = 0;
80046   __pyx_t_5 = 0;
80047   __pyx_t_6 = 0;
80048   __pyx_r = ((PyObject *)__pyx_t_7);
80049   __pyx_t_7 = 0;
80050   goto __pyx_L0;
80051 
80052   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80053   goto __pyx_L0;
80054   __pyx_L1_error:;
80055   __Pyx_XDECREF(__pyx_t_4);
80056   __Pyx_XDECREF(__pyx_t_5);
80057   __Pyx_XDECREF(__pyx_t_6);
80058   __Pyx_XDECREF(__pyx_t_7);
80059   __Pyx_AddTraceback("mpi4py.MPI.Win.attrs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
80060   __pyx_r = NULL;
80061   __pyx_L0:;
80062   __Pyx_XGIVEREF(__pyx_r);
80063   __Pyx_RefNannyFinishContext();
80064   return __pyx_r;
80065 }
80066 
80067 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":188
80068  *     property memory:
80069  *         """window memory buffer"""
80070  *         def __get__(self):             # <<<<<<<<<<<<<<
80071  *             cdef MPI_Win win = self.ob_mpi
80072  *             cdef void *base = NULL, *pbase = NULL
80073  */
80074 
80075 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_6memory___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_6memory___get__(PyObject * __pyx_v_self)80076 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_6memory___get__(PyObject *__pyx_v_self) {
80077   MPI_Win __pyx_v_win;
80078   void *__pyx_v_base;
80079   void *__pyx_v_pbase;
80080   MPI_Aint __pyx_v_size;
80081   MPI_Aint *__pyx_v_psize;
80082   int __pyx_v_attr;
80083   int __pyx_v_flag;
80084   PyObject *__pyx_r = NULL;
80085   __Pyx_RefNannyDeclarations
80086   int __pyx_t_1;
80087   int __pyx_t_2;
80088   int __pyx_t_3;
80089   PyObject *__pyx_t_4 = NULL;
80090   int __pyx_lineno = 0;
80091   const char *__pyx_filename = NULL;
80092   int __pyx_clineno = 0;
80093   __Pyx_RefNannySetupContext("__get__");
80094 
80095   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":189
80096  *         """window memory buffer"""
80097  *         def __get__(self):
80098  *             cdef MPI_Win win = self.ob_mpi             # <<<<<<<<<<<<<<
80099  *             cdef void *base = NULL, *pbase = NULL
80100  *             cdef MPI_Aint size = 0, *psize = NULL
80101  */
80102   __pyx_v_win = ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi;
80103 
80104   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":190
80105  *         def __get__(self):
80106  *             cdef MPI_Win win = self.ob_mpi
80107  *             cdef void *base = NULL, *pbase = NULL             # <<<<<<<<<<<<<<
80108  *             cdef MPI_Aint size = 0, *psize = NULL
80109  *             cdef int attr = MPI_KEYVAL_INVALID
80110  */
80111   __pyx_v_base = NULL;
80112   __pyx_v_pbase = NULL;
80113 
80114   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":191
80115  *             cdef MPI_Win win = self.ob_mpi
80116  *             cdef void *base = NULL, *pbase = NULL
80117  *             cdef MPI_Aint size = 0, *psize = NULL             # <<<<<<<<<<<<<<
80118  *             cdef int attr = MPI_KEYVAL_INVALID
80119  *             cdef int flag = 0
80120  */
80121   __pyx_v_size = 0;
80122   __pyx_v_psize = NULL;
80123 
80124   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":192
80125  *             cdef void *base = NULL, *pbase = NULL
80126  *             cdef MPI_Aint size = 0, *psize = NULL
80127  *             cdef int attr = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
80128  *             cdef int flag = 0
80129  *             #
80130  */
80131   __pyx_v_attr = MPI_KEYVAL_INVALID;
80132 
80133   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":193
80134  *             cdef MPI_Aint size = 0, *psize = NULL
80135  *             cdef int attr = MPI_KEYVAL_INVALID
80136  *             cdef int flag = 0             # <<<<<<<<<<<<<<
80137  *             #
80138  *             attr = MPI_WIN_BASE
80139  */
80140   __pyx_v_flag = 0;
80141 
80142   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":195
80143  *             cdef int flag = 0
80144  *             #
80145  *             attr = MPI_WIN_BASE             # <<<<<<<<<<<<<<
80146  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )
80147  *             if flag and pbase != NULL: base = pbase
80148  */
80149   __pyx_v_attr = MPI_WIN_BASE;
80150 
80151   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":196
80152  *             #
80153  *             attr = MPI_WIN_BASE
80154  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )             # <<<<<<<<<<<<<<
80155  *             if flag and pbase != NULL: base = pbase
80156  *             #
80157  */
80158   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(__pyx_v_win, __pyx_v_attr, (&__pyx_v_pbase), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80159 
80160   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":197
80161  *             attr = MPI_WIN_BASE
80162  *             CHKERR( MPI_Win_get_attr(win, attr, &pbase, &flag) )
80163  *             if flag and pbase != NULL: base = pbase             # <<<<<<<<<<<<<<
80164  *             #
80165  *             attr = MPI_WIN_SIZE
80166  */
80167   if (__pyx_v_flag) {
80168     __pyx_t_2 = (__pyx_v_pbase != NULL);
80169     __pyx_t_3 = __pyx_t_2;
80170   } else {
80171     __pyx_t_3 = __pyx_v_flag;
80172   }
80173   if (__pyx_t_3) {
80174     __pyx_v_base = __pyx_v_pbase;
80175     goto __pyx_L5;
80176   }
80177   __pyx_L5:;
80178 
80179   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":199
80180  *             if flag and pbase != NULL: base = pbase
80181  *             #
80182  *             attr = MPI_WIN_SIZE             # <<<<<<<<<<<<<<
80183  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )
80184  *             if flag and psize != NULL: size = psize[0]
80185  */
80186   __pyx_v_attr = MPI_WIN_SIZE;
80187 
80188   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":200
80189  *             #
80190  *             attr = MPI_WIN_SIZE
80191  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )             # <<<<<<<<<<<<<<
80192  *             if flag and psize != NULL: size = psize[0]
80193  *             #
80194  */
80195   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_attr(__pyx_v_win, __pyx_v_attr, (&__pyx_v_psize), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80196 
80197   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":201
80198  *             attr = MPI_WIN_SIZE
80199  *             CHKERR( MPI_Win_get_attr(win, attr, &psize, &flag) )
80200  *             if flag and psize != NULL: size = psize[0]             # <<<<<<<<<<<<<<
80201  *             #
80202  *             return tomemory(base, size)
80203  */
80204   if (__pyx_v_flag) {
80205     __pyx_t_3 = (__pyx_v_psize != NULL);
80206     __pyx_t_2 = __pyx_t_3;
80207   } else {
80208     __pyx_t_2 = __pyx_v_flag;
80209   }
80210   if (__pyx_t_2) {
80211     __pyx_v_size = (__pyx_v_psize[0]);
80212     goto __pyx_L6;
80213   }
80214   __pyx_L6:;
80215 
80216   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":203
80217  *             if flag and psize != NULL: size = psize[0]
80218  *             #
80219  *             return tomemory(base, size)             # <<<<<<<<<<<<<<
80220  *
80221  *     # [6.3] Communication Calls
80222  */
80223   __Pyx_XDECREF(__pyx_r);
80224   __pyx_t_4 = __pyx_f_6mpi4py_3MPI_tomemory(__pyx_v_base, __pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80225   __Pyx_GOTREF(__pyx_t_4);
80226   __pyx_r = __pyx_t_4;
80227   __pyx_t_4 = 0;
80228   goto __pyx_L0;
80229 
80230   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80231   goto __pyx_L0;
80232   __pyx_L1_error:;
80233   __Pyx_XDECREF(__pyx_t_4);
80234   __Pyx_AddTraceback("mpi4py.MPI.Win.memory.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
80235   __pyx_r = NULL;
80236   __pyx_L0:;
80237   __Pyx_XGIVEREF(__pyx_r);
80238   __Pyx_RefNannyFinishContext();
80239   return __pyx_r;
80240 }
80241 
80242 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":211
80243  *     # -----------
80244  *
80245  *     def Put(self, origin, int target_rank, target=None):             # <<<<<<<<<<<<<<
80246  *         """
80247  *         Put data into a memory window on a remote process.
80248  */
80249 
80250 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_12Put(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80251 static char __pyx_doc_6mpi4py_3MPI_3Win_12Put[] = "Win.Put(self, origin, int target_rank, target=None)\n\n        Put data into a memory window on a remote process.\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_12Put(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80252 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_12Put(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80253   PyObject *__pyx_v_origin = 0;
80254   int __pyx_v_target_rank;
80255   PyObject *__pyx_v_target = 0;
80256   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_msg = 0;
80257   PyObject *__pyx_r = NULL;
80258   __Pyx_RefNannyDeclarations
80259   PyObject *__pyx_t_1 = NULL;
80260   int __pyx_t_2;
80261   int __pyx_lineno = 0;
80262   const char *__pyx_filename = NULL;
80263   int __pyx_clineno = 0;
80264   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__origin,&__pyx_n_s__target_rank,&__pyx_n_s__target,0};
80265   __Pyx_RefNannySetupContext("Put");
80266   {
80267     PyObject* values[3] = {0,0,0};
80268     values[2] = ((PyObject *)Py_None);
80269     if (unlikely(__pyx_kwds)) {
80270       Py_ssize_t kw_args;
80271       switch (PyTuple_GET_SIZE(__pyx_args)) {
80272         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80273         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80274         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80275         case  0: break;
80276         default: goto __pyx_L5_argtuple_error;
80277       }
80278       kw_args = PyDict_Size(__pyx_kwds);
80279       switch (PyTuple_GET_SIZE(__pyx_args)) {
80280         case  0:
80281         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__origin);
80282         if (likely(values[0])) kw_args--;
80283         else goto __pyx_L5_argtuple_error;
80284         case  1:
80285         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target_rank);
80286         if (likely(values[1])) kw_args--;
80287         else {
80288           __Pyx_RaiseArgtupleInvalid("Put", 0, 2, 3, 1); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80289         }
80290         case  2:
80291         if (kw_args > 0) {
80292           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target);
80293           if (value) { values[2] = value; kw_args--; }
80294         }
80295       }
80296       if (unlikely(kw_args > 0)) {
80297         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Put") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80298       }
80299     } else {
80300       switch (PyTuple_GET_SIZE(__pyx_args)) {
80301         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80302         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80303         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80304         break;
80305         default: goto __pyx_L5_argtuple_error;
80306       }
80307     }
80308     __pyx_v_origin = values[0];
80309     __pyx_v_target_rank = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_target_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80310     __pyx_v_target = values[2];
80311   }
80312   goto __pyx_L4_argument_unpacking_done;
80313   __pyx_L5_argtuple_error:;
80314   __Pyx_RaiseArgtupleInvalid("Put", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80315   __pyx_L3_error:;
80316   __Pyx_AddTraceback("mpi4py.MPI.Win.Put", __pyx_clineno, __pyx_lineno, __pyx_filename);
80317   __Pyx_RefNannyFinishContext();
80318   return NULL;
80319   __pyx_L4_argument_unpacking_done:;
80320 
80321   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":215
80322  *         Put data into a memory window on a remote process.
80323  *         """
80324  *         cdef _p_msg_rma msg = message_rma()             # <<<<<<<<<<<<<<
80325  *         msg.for_put(origin, target_rank, target)
80326  *         with nogil: CHKERR( MPI_Put(
80327  */
80328   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_rma()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80329   __Pyx_GOTREF(__pyx_t_1);
80330   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_t_1);
80331   __pyx_t_1 = 0;
80332 
80333   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":216
80334  *         """
80335  *         cdef _p_msg_rma msg = message_rma()
80336  *         msg.for_put(origin, target_rank, target)             # <<<<<<<<<<<<<<
80337  *         with nogil: CHKERR( MPI_Put(
80338  *             msg.oaddr, msg.ocount, msg.otype,
80339  */
80340   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_msg->__pyx_vtab)->for_put(__pyx_v_msg, __pyx_v_origin, __pyx_v_target_rank, __pyx_v_target); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80341 
80342   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":217
80343  *         cdef _p_msg_rma msg = message_rma()
80344  *         msg.for_put(origin, target_rank, target)
80345  *         with nogil: CHKERR( MPI_Put(             # <<<<<<<<<<<<<<
80346  *             msg.oaddr, msg.ocount, msg.otype,
80347  *             target_rank,
80348  */
80349   {
80350       #ifdef WITH_THREAD
80351       PyThreadState *_save = NULL;
80352       #endif
80353       Py_UNBLOCK_THREADS
80354       /*try:*/ {
80355 
80356         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":221
80357  *             target_rank,
80358  *             msg.tdisp, msg.tcount, msg.ttype,
80359  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
80360  *
80361  *     # [6.3.2] Get
80362  */
80363         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Put(__pyx_v_msg->oaddr, __pyx_v_msg->ocount, __pyx_v_msg->otype, __pyx_v_target_rank, __pyx_v_msg->tdisp, __pyx_v_msg->tcount, __pyx_v_msg->ttype, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L7;}
80364       }
80365 
80366       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":217
80367  *         cdef _p_msg_rma msg = message_rma()
80368  *         msg.for_put(origin, target_rank, target)
80369  *         with nogil: CHKERR( MPI_Put(             # <<<<<<<<<<<<<<
80370  *             msg.oaddr, msg.ocount, msg.otype,
80371  *             target_rank,
80372  */
80373       /*finally:*/ {
80374         int __pyx_why;
80375         __pyx_why = 0; goto __pyx_L8;
80376         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
80377         __pyx_L8:;
80378         Py_BLOCK_THREADS
80379         switch (__pyx_why) {
80380           case 4: goto __pyx_L1_error;
80381         }
80382       }
80383   }
80384 
80385   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80386   goto __pyx_L0;
80387   __pyx_L1_error:;
80388   __Pyx_XDECREF(__pyx_t_1);
80389   __Pyx_AddTraceback("mpi4py.MPI.Win.Put", __pyx_clineno, __pyx_lineno, __pyx_filename);
80390   __pyx_r = NULL;
80391   __pyx_L0:;
80392   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
80393   __Pyx_XGIVEREF(__pyx_r);
80394   __Pyx_RefNannyFinishContext();
80395   return __pyx_r;
80396 }
80397 
80398 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":226
80399  *     # -----------
80400  *
80401  *     def Get(self, origin, int target_rank, target=None):             # <<<<<<<<<<<<<<
80402  *         """
80403  *         Get data from a memory window on a remote process.
80404  */
80405 
80406 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_13Get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80407 static char __pyx_doc_6mpi4py_3MPI_3Win_13Get[] = "Win.Get(self, origin, int target_rank, target=None)\n\n        Get data from a memory window on a remote process.\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_13Get(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80408 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_13Get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80409   PyObject *__pyx_v_origin = 0;
80410   int __pyx_v_target_rank;
80411   PyObject *__pyx_v_target = 0;
80412   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_msg = 0;
80413   PyObject *__pyx_r = NULL;
80414   __Pyx_RefNannyDeclarations
80415   PyObject *__pyx_t_1 = NULL;
80416   int __pyx_t_2;
80417   int __pyx_lineno = 0;
80418   const char *__pyx_filename = NULL;
80419   int __pyx_clineno = 0;
80420   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__origin,&__pyx_n_s__target_rank,&__pyx_n_s__target,0};
80421   __Pyx_RefNannySetupContext("Get");
80422   {
80423     PyObject* values[3] = {0,0,0};
80424     values[2] = ((PyObject *)Py_None);
80425     if (unlikely(__pyx_kwds)) {
80426       Py_ssize_t kw_args;
80427       switch (PyTuple_GET_SIZE(__pyx_args)) {
80428         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80429         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80430         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80431         case  0: break;
80432         default: goto __pyx_L5_argtuple_error;
80433       }
80434       kw_args = PyDict_Size(__pyx_kwds);
80435       switch (PyTuple_GET_SIZE(__pyx_args)) {
80436         case  0:
80437         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__origin);
80438         if (likely(values[0])) kw_args--;
80439         else goto __pyx_L5_argtuple_error;
80440         case  1:
80441         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target_rank);
80442         if (likely(values[1])) kw_args--;
80443         else {
80444           __Pyx_RaiseArgtupleInvalid("Get", 0, 2, 3, 1); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80445         }
80446         case  2:
80447         if (kw_args > 0) {
80448           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target);
80449           if (value) { values[2] = value; kw_args--; }
80450         }
80451       }
80452       if (unlikely(kw_args > 0)) {
80453         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80454       }
80455     } else {
80456       switch (PyTuple_GET_SIZE(__pyx_args)) {
80457         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80458         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80459         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80460         break;
80461         default: goto __pyx_L5_argtuple_error;
80462       }
80463     }
80464     __pyx_v_origin = values[0];
80465     __pyx_v_target_rank = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_target_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80466     __pyx_v_target = values[2];
80467   }
80468   goto __pyx_L4_argument_unpacking_done;
80469   __pyx_L5_argtuple_error:;
80470   __Pyx_RaiseArgtupleInvalid("Get", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80471   __pyx_L3_error:;
80472   __Pyx_AddTraceback("mpi4py.MPI.Win.Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
80473   __Pyx_RefNannyFinishContext();
80474   return NULL;
80475   __pyx_L4_argument_unpacking_done:;
80476 
80477   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":230
80478  *         Get data from a memory window on a remote process.
80479  *         """
80480  *         cdef _p_msg_rma msg = message_rma()             # <<<<<<<<<<<<<<
80481  *         msg.for_get(origin, target_rank, target)
80482  *         with nogil: CHKERR( MPI_Get(
80483  */
80484   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_rma()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80485   __Pyx_GOTREF(__pyx_t_1);
80486   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_t_1);
80487   __pyx_t_1 = 0;
80488 
80489   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":231
80490  *         """
80491  *         cdef _p_msg_rma msg = message_rma()
80492  *         msg.for_get(origin, target_rank, target)             # <<<<<<<<<<<<<<
80493  *         with nogil: CHKERR( MPI_Get(
80494  *             msg.oaddr, msg.ocount, msg.otype,
80495  */
80496   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_msg->__pyx_vtab)->for_get(__pyx_v_msg, __pyx_v_origin, __pyx_v_target_rank, __pyx_v_target); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80497 
80498   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":232
80499  *         cdef _p_msg_rma msg = message_rma()
80500  *         msg.for_get(origin, target_rank, target)
80501  *         with nogil: CHKERR( MPI_Get(             # <<<<<<<<<<<<<<
80502  *             msg.oaddr, msg.ocount, msg.otype,
80503  *             target_rank,
80504  */
80505   {
80506       #ifdef WITH_THREAD
80507       PyThreadState *_save = NULL;
80508       #endif
80509       Py_UNBLOCK_THREADS
80510       /*try:*/ {
80511 
80512         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":236
80513  *             target_rank,
80514  *             msg.tdisp, msg.tcount, msg.ttype,
80515  *             self.ob_mpi) )             # <<<<<<<<<<<<<<
80516  *
80517  *     # [6.3.4] Accumulate Functions
80518  */
80519         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get(__pyx_v_msg->oaddr, __pyx_v_msg->ocount, __pyx_v_msg->otype, __pyx_v_target_rank, __pyx_v_msg->tdisp, __pyx_v_msg->tcount, __pyx_v_msg->ttype, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L7;}
80520       }
80521 
80522       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":232
80523  *         cdef _p_msg_rma msg = message_rma()
80524  *         msg.for_get(origin, target_rank, target)
80525  *         with nogil: CHKERR( MPI_Get(             # <<<<<<<<<<<<<<
80526  *             msg.oaddr, msg.ocount, msg.otype,
80527  *             target_rank,
80528  */
80529       /*finally:*/ {
80530         int __pyx_why;
80531         __pyx_why = 0; goto __pyx_L8;
80532         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
80533         __pyx_L8:;
80534         Py_BLOCK_THREADS
80535         switch (__pyx_why) {
80536           case 4: goto __pyx_L1_error;
80537         }
80538       }
80539   }
80540 
80541   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80542   goto __pyx_L0;
80543   __pyx_L1_error:;
80544   __Pyx_XDECREF(__pyx_t_1);
80545   __Pyx_AddTraceback("mpi4py.MPI.Win.Get", __pyx_clineno, __pyx_lineno, __pyx_filename);
80546   __pyx_r = NULL;
80547   __pyx_L0:;
80548   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
80549   __Pyx_XGIVEREF(__pyx_r);
80550   __Pyx_RefNannyFinishContext();
80551   return __pyx_r;
80552 }
80553 
80554 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":241
80555  *     # ----------------------------
80556  *
80557  *     def Accumulate(self, origin, int target_rank,             # <<<<<<<<<<<<<<
80558  *                    target=None, Op op not None=SUM):
80559  *         """
80560  */
80561 
80562 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_14Accumulate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80563 static char __pyx_doc_6mpi4py_3MPI_3Win_14Accumulate[] = "Win.Accumulate(self, origin, int target_rank, target=None, Op op=SUM)\n\n        Accumulate data into the target process\n        using remote memory access.\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_14Accumulate(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80564 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_14Accumulate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80565   PyObject *__pyx_v_origin = 0;
80566   int __pyx_v_target_rank;
80567   PyObject *__pyx_v_target = 0;
80568   struct PyMPIOpObject *__pyx_v_op = 0;
80569   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *__pyx_v_msg = 0;
80570   PyObject *__pyx_r = NULL;
80571   __Pyx_RefNannyDeclarations
80572   PyObject *__pyx_t_1 = NULL;
80573   int __pyx_t_2;
80574   int __pyx_lineno = 0;
80575   const char *__pyx_filename = NULL;
80576   int __pyx_clineno = 0;
80577   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__origin,&__pyx_n_s__target_rank,&__pyx_n_s__target,&__pyx_n_s__op,0};
80578   __Pyx_RefNannySetupContext("Accumulate");
80579   {
80580     PyObject* values[4] = {0,0,0,0};
80581 
80582     /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":242
80583  *
80584  *     def Accumulate(self, origin, int target_rank,
80585  *                    target=None, Op op not None=SUM):             # <<<<<<<<<<<<<<
80586  *         """
80587  *         Accumulate data into the target process
80588  */
80589     values[2] = ((PyObject *)Py_None);
80590     values[3] = (PyObject *)__pyx_k_102;
80591     if (unlikely(__pyx_kwds)) {
80592       Py_ssize_t kw_args;
80593       switch (PyTuple_GET_SIZE(__pyx_args)) {
80594         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
80595         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80596         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80597         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80598         case  0: break;
80599         default: goto __pyx_L5_argtuple_error;
80600       }
80601       kw_args = PyDict_Size(__pyx_kwds);
80602       switch (PyTuple_GET_SIZE(__pyx_args)) {
80603         case  0:
80604         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__origin);
80605         if (likely(values[0])) kw_args--;
80606         else goto __pyx_L5_argtuple_error;
80607         case  1:
80608         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target_rank);
80609         if (likely(values[1])) kw_args--;
80610         else {
80611           __Pyx_RaiseArgtupleInvalid("Accumulate", 0, 2, 4, 1); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80612         }
80613         case  2:
80614         if (kw_args > 0) {
80615           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target);
80616           if (value) { values[2] = value; kw_args--; }
80617         }
80618         case  3:
80619         if (kw_args > 0) {
80620           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__op);
80621           if (value) { values[3] = value; kw_args--; }
80622         }
80623       }
80624       if (unlikely(kw_args > 0)) {
80625         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Accumulate") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80626       }
80627     } else {
80628       switch (PyTuple_GET_SIZE(__pyx_args)) {
80629         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
80630         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
80631         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80632         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80633         break;
80634         default: goto __pyx_L5_argtuple_error;
80635       }
80636     }
80637     __pyx_v_origin = values[0];
80638     __pyx_v_target_rank = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_target_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80639     __pyx_v_target = values[2];
80640     __pyx_v_op = ((struct PyMPIOpObject *)values[3]);
80641   }
80642   goto __pyx_L4_argument_unpacking_done;
80643   __pyx_L5_argtuple_error:;
80644   __Pyx_RaiseArgtupleInvalid("Accumulate", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80645   __pyx_L3_error:;
80646   __Pyx_AddTraceback("mpi4py.MPI.Win.Accumulate", __pyx_clineno, __pyx_lineno, __pyx_filename);
80647   __Pyx_RefNannyFinishContext();
80648   return NULL;
80649   __pyx_L4_argument_unpacking_done:;
80650   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_6mpi4py_3MPI_Op, 0, "op", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80651 
80652   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":247
80653  *         using remote memory access.
80654  *         """
80655  *         cdef _p_msg_rma msg = message_rma()             # <<<<<<<<<<<<<<
80656  *         msg.for_acc(origin, target_rank, target)
80657  *         with nogil: CHKERR( MPI_Accumulate(
80658  */
80659   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_rma()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80660   __Pyx_GOTREF(__pyx_t_1);
80661   __pyx_v_msg = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)__pyx_t_1);
80662   __pyx_t_1 = 0;
80663 
80664   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":248
80665  *         """
80666  *         cdef _p_msg_rma msg = message_rma()
80667  *         msg.for_acc(origin, target_rank, target)             # <<<<<<<<<<<<<<
80668  *         with nogil: CHKERR( MPI_Accumulate(
80669  *             msg.oaddr, msg.ocount, msg.otype,
80670  */
80671   __pyx_t_2 = ((struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma *)__pyx_v_msg->__pyx_vtab)->for_acc(__pyx_v_msg, __pyx_v_origin, __pyx_v_target_rank, __pyx_v_target); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80672 
80673   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":249
80674  *         cdef _p_msg_rma msg = message_rma()
80675  *         msg.for_acc(origin, target_rank, target)
80676  *         with nogil: CHKERR( MPI_Accumulate(             # <<<<<<<<<<<<<<
80677  *             msg.oaddr, msg.ocount, msg.otype,
80678  *             target_rank,
80679  */
80680   {
80681       #ifdef WITH_THREAD
80682       PyThreadState *_save = NULL;
80683       #endif
80684       Py_UNBLOCK_THREADS
80685       /*try:*/ {
80686 
80687         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":253
80688  *             target_rank,
80689  *             msg.tdisp, msg.tcount, msg.ttype,
80690  *             op.ob_mpi, self.ob_mpi) )             # <<<<<<<<<<<<<<
80691  *
80692  *     # [6.4] Synchronization Calls
80693  */
80694         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Accumulate(__pyx_v_msg->oaddr, __pyx_v_msg->ocount, __pyx_v_msg->otype, __pyx_v_target_rank, __pyx_v_msg->tdisp, __pyx_v_msg->tcount, __pyx_v_msg->ttype, __pyx_v_op->ob_mpi, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L7;}
80695       }
80696 
80697       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":249
80698  *         cdef _p_msg_rma msg = message_rma()
80699  *         msg.for_acc(origin, target_rank, target)
80700  *         with nogil: CHKERR( MPI_Accumulate(             # <<<<<<<<<<<<<<
80701  *             msg.oaddr, msg.ocount, msg.otype,
80702  *             target_rank,
80703  */
80704       /*finally:*/ {
80705         int __pyx_why;
80706         __pyx_why = 0; goto __pyx_L8;
80707         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
80708         __pyx_L8:;
80709         Py_BLOCK_THREADS
80710         switch (__pyx_why) {
80711           case 4: goto __pyx_L1_error;
80712         }
80713       }
80714   }
80715 
80716   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80717   goto __pyx_L0;
80718   __pyx_L1_error:;
80719   __Pyx_XDECREF(__pyx_t_1);
80720   __Pyx_AddTraceback("mpi4py.MPI.Win.Accumulate", __pyx_clineno, __pyx_lineno, __pyx_filename);
80721   __pyx_r = NULL;
80722   __pyx_L0:;
80723   __Pyx_XDECREF((PyObject *)__pyx_v_msg);
80724   __Pyx_XGIVEREF(__pyx_r);
80725   __Pyx_RefNannyFinishContext();
80726   return __pyx_r;
80727 }
80728 
80729 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":261
80730  *     # -------------
80731  *
80732  *     def Fence(self, int assertion=0):             # <<<<<<<<<<<<<<
80733  *         """
80734  *         Perform an MPI fence synchronization on a window
80735  */
80736 
80737 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_15Fence(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80738 static char __pyx_doc_6mpi4py_3MPI_3Win_15Fence[] = "Win.Fence(self, int assertion=0)\n\n        Perform an MPI fence synchronization on a window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_15Fence(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80739 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_15Fence(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80740   int __pyx_v_assertion;
80741   PyObject *__pyx_r = NULL;
80742   __Pyx_RefNannyDeclarations
80743   int __pyx_t_1;
80744   int __pyx_lineno = 0;
80745   const char *__pyx_filename = NULL;
80746   int __pyx_clineno = 0;
80747   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__assertion,0};
80748   __Pyx_RefNannySetupContext("Fence");
80749   {
80750     PyObject* values[1] = {0};
80751     if (unlikely(__pyx_kwds)) {
80752       Py_ssize_t kw_args;
80753       switch (PyTuple_GET_SIZE(__pyx_args)) {
80754         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80755         case  0: break;
80756         default: goto __pyx_L5_argtuple_error;
80757       }
80758       kw_args = PyDict_Size(__pyx_kwds);
80759       switch (PyTuple_GET_SIZE(__pyx_args)) {
80760         case  0:
80761         if (kw_args > 0) {
80762           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__assertion);
80763           if (value) { values[0] = value; kw_args--; }
80764         }
80765       }
80766       if (unlikely(kw_args > 0)) {
80767         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Fence") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80768       }
80769     } else {
80770       switch (PyTuple_GET_SIZE(__pyx_args)) {
80771         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80772         case  0: break;
80773         default: goto __pyx_L5_argtuple_error;
80774       }
80775     }
80776     if (values[0]) {
80777       __pyx_v_assertion = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_assertion == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80778     } else {
80779       __pyx_v_assertion = ((int)0);
80780     }
80781   }
80782   goto __pyx_L4_argument_unpacking_done;
80783   __pyx_L5_argtuple_error:;
80784   __Pyx_RaiseArgtupleInvalid("Fence", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80785   __pyx_L3_error:;
80786   __Pyx_AddTraceback("mpi4py.MPI.Win.Fence", __pyx_clineno, __pyx_lineno, __pyx_filename);
80787   __Pyx_RefNannyFinishContext();
80788   return NULL;
80789   __pyx_L4_argument_unpacking_done:;
80790 
80791   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":265
80792  *         Perform an MPI fence synchronization on a window
80793  *         """
80794  *         with nogil: CHKERR( MPI_Win_fence(assertion, self.ob_mpi) )             # <<<<<<<<<<<<<<
80795  *
80796  *     # [6.4.2] General Active Target Synchronization
80797  */
80798   {
80799       #ifdef WITH_THREAD
80800       PyThreadState *_save = NULL;
80801       #endif
80802       Py_UNBLOCK_THREADS
80803       /*try:*/ {
80804         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_fence(__pyx_v_assertion, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L7;}
80805       }
80806       /*finally:*/ {
80807         int __pyx_why;
80808         __pyx_why = 0; goto __pyx_L8;
80809         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
80810         __pyx_L8:;
80811         Py_BLOCK_THREADS
80812         switch (__pyx_why) {
80813           case 4: goto __pyx_L1_error;
80814         }
80815       }
80816   }
80817 
80818   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80819   goto __pyx_L0;
80820   __pyx_L1_error:;
80821   __Pyx_AddTraceback("mpi4py.MPI.Win.Fence", __pyx_clineno, __pyx_lineno, __pyx_filename);
80822   __pyx_r = NULL;
80823   __pyx_L0:;
80824   __Pyx_XGIVEREF(__pyx_r);
80825   __Pyx_RefNannyFinishContext();
80826   return __pyx_r;
80827 }
80828 
80829 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":270
80830  *     # ---------------------------------------------
80831  *
80832  *     def Start(self, Group group not None, int assertion=0):             # <<<<<<<<<<<<<<
80833  *         """
80834  *         Start an RMA access epoch for MPI
80835  */
80836 
80837 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_16Start(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80838 static char __pyx_doc_6mpi4py_3MPI_3Win_16Start[] = "Win.Start(self, Group group, int assertion=0)\n\n        Start an RMA access epoch for MPI\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_16Start(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80839 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_16Start(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80840   struct PyMPIGroupObject *__pyx_v_group = 0;
80841   int __pyx_v_assertion;
80842   PyObject *__pyx_r = NULL;
80843   __Pyx_RefNannyDeclarations
80844   int __pyx_t_1;
80845   int __pyx_lineno = 0;
80846   const char *__pyx_filename = NULL;
80847   int __pyx_clineno = 0;
80848   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group,&__pyx_n_s__assertion,0};
80849   __Pyx_RefNannySetupContext("Start");
80850   {
80851     PyObject* values[2] = {0,0};
80852     if (unlikely(__pyx_kwds)) {
80853       Py_ssize_t kw_args;
80854       switch (PyTuple_GET_SIZE(__pyx_args)) {
80855         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80856         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80857         case  0: break;
80858         default: goto __pyx_L5_argtuple_error;
80859       }
80860       kw_args = PyDict_Size(__pyx_kwds);
80861       switch (PyTuple_GET_SIZE(__pyx_args)) {
80862         case  0:
80863         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group);
80864         if (likely(values[0])) kw_args--;
80865         else goto __pyx_L5_argtuple_error;
80866         case  1:
80867         if (kw_args > 0) {
80868           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__assertion);
80869           if (value) { values[1] = value; kw_args--; }
80870         }
80871       }
80872       if (unlikely(kw_args > 0)) {
80873         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Start") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80874       }
80875     } else {
80876       switch (PyTuple_GET_SIZE(__pyx_args)) {
80877         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
80878         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
80879         break;
80880         default: goto __pyx_L5_argtuple_error;
80881       }
80882     }
80883     __pyx_v_group = ((struct PyMPIGroupObject *)values[0]);
80884     if (values[1]) {
80885       __pyx_v_assertion = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_assertion == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80886     } else {
80887       __pyx_v_assertion = ((int)0);
80888     }
80889   }
80890   goto __pyx_L4_argument_unpacking_done;
80891   __pyx_L5_argtuple_error:;
80892   __Pyx_RaiseArgtupleInvalid("Start", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
80893   __pyx_L3_error:;
80894   __Pyx_AddTraceback("mpi4py.MPI.Win.Start", __pyx_clineno, __pyx_lineno, __pyx_filename);
80895   __Pyx_RefNannyFinishContext();
80896   return NULL;
80897   __pyx_L4_argument_unpacking_done:;
80898   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
80899 
80900   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":274
80901  *         Start an RMA access epoch for MPI
80902  *         """
80903  *         with nogil: CHKERR( MPI_Win_start(             # <<<<<<<<<<<<<<
80904  *             group.ob_mpi, assertion, self.ob_mpi) )
80905  *
80906  */
80907   {
80908       #ifdef WITH_THREAD
80909       PyThreadState *_save = NULL;
80910       #endif
80911       Py_UNBLOCK_THREADS
80912       /*try:*/ {
80913 
80914         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":275
80915  *         """
80916  *         with nogil: CHKERR( MPI_Win_start(
80917  *             group.ob_mpi, assertion, self.ob_mpi) )             # <<<<<<<<<<<<<<
80918  *
80919  *     def Complete(self):
80920  */
80921         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_start(__pyx_v_group->ob_mpi, __pyx_v_assertion, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L7;}
80922       }
80923 
80924       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":274
80925  *         Start an RMA access epoch for MPI
80926  *         """
80927  *         with nogil: CHKERR( MPI_Win_start(             # <<<<<<<<<<<<<<
80928  *             group.ob_mpi, assertion, self.ob_mpi) )
80929  *
80930  */
80931       /*finally:*/ {
80932         int __pyx_why;
80933         __pyx_why = 0; goto __pyx_L8;
80934         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
80935         __pyx_L8:;
80936         Py_BLOCK_THREADS
80937         switch (__pyx_why) {
80938           case 4: goto __pyx_L1_error;
80939         }
80940       }
80941   }
80942 
80943   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
80944   goto __pyx_L0;
80945   __pyx_L1_error:;
80946   __Pyx_AddTraceback("mpi4py.MPI.Win.Start", __pyx_clineno, __pyx_lineno, __pyx_filename);
80947   __pyx_r = NULL;
80948   __pyx_L0:;
80949   __Pyx_XGIVEREF(__pyx_r);
80950   __Pyx_RefNannyFinishContext();
80951   return __pyx_r;
80952 }
80953 
80954 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":277
80955  *             group.ob_mpi, assertion, self.ob_mpi) )
80956  *
80957  *     def Complete(self):             # <<<<<<<<<<<<<<
80958  *         """
80959  *         Completes an RMA operations begun after an `Win.Start()`
80960  */
80961 
80962 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_17Complete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80963 static char __pyx_doc_6mpi4py_3MPI_3Win_17Complete[] = "Win.Complete(self)\n\n        Completes an RMA operations begun after an `Win.Start()`\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_17Complete(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)80964 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_17Complete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
80965   PyObject *__pyx_r = NULL;
80966   __Pyx_RefNannyDeclarations
80967   int __pyx_t_1;
80968   int __pyx_lineno = 0;
80969   const char *__pyx_filename = NULL;
80970   int __pyx_clineno = 0;
80971   __Pyx_RefNannySetupContext("Complete");
80972   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
80973     __Pyx_RaiseArgtupleInvalid("Complete", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
80974   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Complete", 0))) return NULL;
80975 
80976   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":281
80977  *         Completes an RMA operations begun after an `Win.Start()`
80978  *         """
80979  *         with nogil: CHKERR( MPI_Win_complete(self.ob_mpi) )             # <<<<<<<<<<<<<<
80980  *
80981  *     def Post(self, Group group not None, int assertion=0):
80982  */
80983   {
80984       #ifdef WITH_THREAD
80985       PyThreadState *_save = NULL;
80986       #endif
80987       Py_UNBLOCK_THREADS
80988       /*try:*/ {
80989         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_complete(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L6;}
80990       }
80991       /*finally:*/ {
80992         int __pyx_why;
80993         __pyx_why = 0; goto __pyx_L7;
80994         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
80995         __pyx_L7:;
80996         Py_BLOCK_THREADS
80997         switch (__pyx_why) {
80998           case 4: goto __pyx_L1_error;
80999         }
81000       }
81001   }
81002 
81003   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81004   goto __pyx_L0;
81005   __pyx_L1_error:;
81006   __Pyx_AddTraceback("mpi4py.MPI.Win.Complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
81007   __pyx_r = NULL;
81008   __pyx_L0:;
81009   __Pyx_XGIVEREF(__pyx_r);
81010   __Pyx_RefNannyFinishContext();
81011   return __pyx_r;
81012 }
81013 
81014 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":283
81015  *         with nogil: CHKERR( MPI_Win_complete(self.ob_mpi) )
81016  *
81017  *     def Post(self, Group group not None, int assertion=0):             # <<<<<<<<<<<<<<
81018  *         """
81019  *         Start an RMA exposure epoch
81020  */
81021 
81022 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_18Post(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81023 static char __pyx_doc_6mpi4py_3MPI_3Win_18Post[] = "Win.Post(self, Group group, int assertion=0)\n\n        Start an RMA exposure epoch\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_18Post(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81024 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_18Post(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81025   struct PyMPIGroupObject *__pyx_v_group = 0;
81026   int __pyx_v_assertion;
81027   PyObject *__pyx_r = NULL;
81028   __Pyx_RefNannyDeclarations
81029   int __pyx_t_1;
81030   int __pyx_lineno = 0;
81031   const char *__pyx_filename = NULL;
81032   int __pyx_clineno = 0;
81033   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__group,&__pyx_n_s__assertion,0};
81034   __Pyx_RefNannySetupContext("Post");
81035   {
81036     PyObject* values[2] = {0,0};
81037     if (unlikely(__pyx_kwds)) {
81038       Py_ssize_t kw_args;
81039       switch (PyTuple_GET_SIZE(__pyx_args)) {
81040         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
81041         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81042         case  0: break;
81043         default: goto __pyx_L5_argtuple_error;
81044       }
81045       kw_args = PyDict_Size(__pyx_kwds);
81046       switch (PyTuple_GET_SIZE(__pyx_args)) {
81047         case  0:
81048         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__group);
81049         if (likely(values[0])) kw_args--;
81050         else goto __pyx_L5_argtuple_error;
81051         case  1:
81052         if (kw_args > 0) {
81053           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__assertion);
81054           if (value) { values[1] = value; kw_args--; }
81055         }
81056       }
81057       if (unlikely(kw_args > 0)) {
81058         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Post") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81059       }
81060     } else {
81061       switch (PyTuple_GET_SIZE(__pyx_args)) {
81062         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
81063         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81064         break;
81065         default: goto __pyx_L5_argtuple_error;
81066       }
81067     }
81068     __pyx_v_group = ((struct PyMPIGroupObject *)values[0]);
81069     if (values[1]) {
81070       __pyx_v_assertion = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_assertion == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81071     } else {
81072       __pyx_v_assertion = ((int)0);
81073     }
81074   }
81075   goto __pyx_L4_argument_unpacking_done;
81076   __pyx_L5_argtuple_error:;
81077   __Pyx_RaiseArgtupleInvalid("Post", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81078   __pyx_L3_error:;
81079   __Pyx_AddTraceback("mpi4py.MPI.Win.Post", __pyx_clineno, __pyx_lineno, __pyx_filename);
81080   __Pyx_RefNannyFinishContext();
81081   return NULL;
81082   __pyx_L4_argument_unpacking_done:;
81083   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group), __pyx_ptype_6mpi4py_3MPI_Group, 0, "group", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81084 
81085   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":287
81086  *         Start an RMA exposure epoch
81087  *         """
81088  *         with nogil: CHKERR( MPI_Win_post(             # <<<<<<<<<<<<<<
81089  *             group.ob_mpi, assertion, self.ob_mpi) )
81090  *
81091  */
81092   {
81093       #ifdef WITH_THREAD
81094       PyThreadState *_save = NULL;
81095       #endif
81096       Py_UNBLOCK_THREADS
81097       /*try:*/ {
81098 
81099         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":288
81100  *         """
81101  *         with nogil: CHKERR( MPI_Win_post(
81102  *             group.ob_mpi, assertion, self.ob_mpi) )             # <<<<<<<<<<<<<<
81103  *
81104  *     def Wait(self):
81105  */
81106         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_post(__pyx_v_group->ob_mpi, __pyx_v_assertion, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L7;}
81107       }
81108 
81109       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":287
81110  *         Start an RMA exposure epoch
81111  *         """
81112  *         with nogil: CHKERR( MPI_Win_post(             # <<<<<<<<<<<<<<
81113  *             group.ob_mpi, assertion, self.ob_mpi) )
81114  *
81115  */
81116       /*finally:*/ {
81117         int __pyx_why;
81118         __pyx_why = 0; goto __pyx_L8;
81119         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
81120         __pyx_L8:;
81121         Py_BLOCK_THREADS
81122         switch (__pyx_why) {
81123           case 4: goto __pyx_L1_error;
81124         }
81125       }
81126   }
81127 
81128   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81129   goto __pyx_L0;
81130   __pyx_L1_error:;
81131   __Pyx_AddTraceback("mpi4py.MPI.Win.Post", __pyx_clineno, __pyx_lineno, __pyx_filename);
81132   __pyx_r = NULL;
81133   __pyx_L0:;
81134   __Pyx_XGIVEREF(__pyx_r);
81135   __Pyx_RefNannyFinishContext();
81136   return __pyx_r;
81137 }
81138 
81139 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":290
81140  *             group.ob_mpi, assertion, self.ob_mpi) )
81141  *
81142  *     def Wait(self):             # <<<<<<<<<<<<<<
81143  *         """
81144  *         Complete an RMA exposure epoch begun with `Win.Post()`
81145  */
81146 
81147 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_19Wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81148 static char __pyx_doc_6mpi4py_3MPI_3Win_19Wait[] = "Win.Wait(self)\n\n        Complete an RMA exposure epoch begun with `Win.Post()`\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_19Wait(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81149 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_19Wait(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81150   PyObject *__pyx_r = NULL;
81151   __Pyx_RefNannyDeclarations
81152   int __pyx_t_1;
81153   int __pyx_lineno = 0;
81154   const char *__pyx_filename = NULL;
81155   int __pyx_clineno = 0;
81156   __Pyx_RefNannySetupContext("Wait");
81157   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
81158     __Pyx_RaiseArgtupleInvalid("Wait", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
81159   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Wait", 0))) return NULL;
81160 
81161   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":294
81162  *         Complete an RMA exposure epoch begun with `Win.Post()`
81163  *         """
81164  *         with nogil: CHKERR( MPI_Win_wait(self.ob_mpi) )             # <<<<<<<<<<<<<<
81165  *
81166  *     def Test(self):
81167  */
81168   {
81169       #ifdef WITH_THREAD
81170       PyThreadState *_save = NULL;
81171       #endif
81172       Py_UNBLOCK_THREADS
81173       /*try:*/ {
81174         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_wait(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L6;}
81175       }
81176       /*finally:*/ {
81177         int __pyx_why;
81178         __pyx_why = 0; goto __pyx_L7;
81179         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
81180         __pyx_L7:;
81181         Py_BLOCK_THREADS
81182         switch (__pyx_why) {
81183           case 4: goto __pyx_L1_error;
81184         }
81185       }
81186   }
81187 
81188   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81189   goto __pyx_L0;
81190   __pyx_L1_error:;
81191   __Pyx_AddTraceback("mpi4py.MPI.Win.Wait", __pyx_clineno, __pyx_lineno, __pyx_filename);
81192   __pyx_r = NULL;
81193   __pyx_L0:;
81194   __Pyx_XGIVEREF(__pyx_r);
81195   __Pyx_RefNannyFinishContext();
81196   return __pyx_r;
81197 }
81198 
81199 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":296
81200  *         with nogil: CHKERR( MPI_Win_wait(self.ob_mpi) )
81201  *
81202  *     def Test(self):             # <<<<<<<<<<<<<<
81203  *         """
81204  *         Test whether an RMA exposure epoch has completed
81205  */
81206 
81207 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_20Test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81208 static char __pyx_doc_6mpi4py_3MPI_3Win_20Test[] = "Win.Test(self)\n\n        Test whether an RMA exposure epoch has completed\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_20Test(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81209 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_20Test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81210   int __pyx_v_flag;
81211   PyObject *__pyx_r = NULL;
81212   __Pyx_RefNannyDeclarations
81213   int __pyx_t_1;
81214   PyObject *__pyx_t_2 = NULL;
81215   int __pyx_lineno = 0;
81216   const char *__pyx_filename = NULL;
81217   int __pyx_clineno = 0;
81218   __Pyx_RefNannySetupContext("Test");
81219   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
81220     __Pyx_RaiseArgtupleInvalid("Test", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
81221   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Test", 0))) return NULL;
81222 
81223   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":300
81224  *         Test whether an RMA exposure epoch has completed
81225  *         """
81226  *         cdef bint flag = 0             # <<<<<<<<<<<<<<
81227  *         with nogil: CHKERR( MPI_Win_test(self.ob_mpi, &flag) )
81228  *         return flag
81229  */
81230   __pyx_v_flag = 0;
81231 
81232   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":301
81233  *         """
81234  *         cdef bint flag = 0
81235  *         with nogil: CHKERR( MPI_Win_test(self.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
81236  *         return flag
81237  *
81238  */
81239   {
81240       #ifdef WITH_THREAD
81241       PyThreadState *_save = NULL;
81242       #endif
81243       Py_UNBLOCK_THREADS
81244       /*try:*/ {
81245         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_test(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, ((int *)(&__pyx_v_flag)))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L6;}
81246       }
81247       /*finally:*/ {
81248         int __pyx_why;
81249         __pyx_why = 0; goto __pyx_L7;
81250         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
81251         __pyx_L7:;
81252         Py_BLOCK_THREADS
81253         switch (__pyx_why) {
81254           case 4: goto __pyx_L1_error;
81255         }
81256       }
81257   }
81258 
81259   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":302
81260  *         cdef bint flag = 0
81261  *         with nogil: CHKERR( MPI_Win_test(self.ob_mpi, &flag) )
81262  *         return flag             # <<<<<<<<<<<<<<
81263  *
81264  *     # [6.4.3] Lock
81265  */
81266   __Pyx_XDECREF(__pyx_r);
81267   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_flag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81268   __Pyx_GOTREF(__pyx_t_2);
81269   __pyx_r = __pyx_t_2;
81270   __pyx_t_2 = 0;
81271   goto __pyx_L0;
81272 
81273   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81274   goto __pyx_L0;
81275   __pyx_L1_error:;
81276   __Pyx_XDECREF(__pyx_t_2);
81277   __Pyx_AddTraceback("mpi4py.MPI.Win.Test", __pyx_clineno, __pyx_lineno, __pyx_filename);
81278   __pyx_r = NULL;
81279   __pyx_L0:;
81280   __Pyx_XGIVEREF(__pyx_r);
81281   __Pyx_RefNannyFinishContext();
81282   return __pyx_r;
81283 }
81284 
81285 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":307
81286  *     # ------------
81287  *
81288  *     def Lock(self, int lock_type, int rank, int assertion=0):             # <<<<<<<<<<<<<<
81289  *         """
81290  *         Begin an RMA access epoch at the target process
81291  */
81292 
81293 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_21Lock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81294 static char __pyx_doc_6mpi4py_3MPI_3Win_21Lock[] = "Win.Lock(self, int lock_type, int rank, int assertion=0)\n\n        Begin an RMA access epoch at the target process\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_21Lock(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81295 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_21Lock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81296   int __pyx_v_lock_type;
81297   int __pyx_v_rank;
81298   int __pyx_v_assertion;
81299   PyObject *__pyx_r = NULL;
81300   __Pyx_RefNannyDeclarations
81301   int __pyx_t_1;
81302   int __pyx_lineno = 0;
81303   const char *__pyx_filename = NULL;
81304   int __pyx_clineno = 0;
81305   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lock_type,&__pyx_n_s__rank,&__pyx_n_s__assertion,0};
81306   __Pyx_RefNannySetupContext("Lock");
81307   {
81308     PyObject* values[3] = {0,0,0};
81309     if (unlikely(__pyx_kwds)) {
81310       Py_ssize_t kw_args;
81311       switch (PyTuple_GET_SIZE(__pyx_args)) {
81312         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
81313         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
81314         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81315         case  0: break;
81316         default: goto __pyx_L5_argtuple_error;
81317       }
81318       kw_args = PyDict_Size(__pyx_kwds);
81319       switch (PyTuple_GET_SIZE(__pyx_args)) {
81320         case  0:
81321         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lock_type);
81322         if (likely(values[0])) kw_args--;
81323         else goto __pyx_L5_argtuple_error;
81324         case  1:
81325         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
81326         if (likely(values[1])) kw_args--;
81327         else {
81328           __Pyx_RaiseArgtupleInvalid("Lock", 0, 2, 3, 1); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81329         }
81330         case  2:
81331         if (kw_args > 0) {
81332           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__assertion);
81333           if (value) { values[2] = value; kw_args--; }
81334         }
81335       }
81336       if (unlikely(kw_args > 0)) {
81337         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Lock") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81338       }
81339     } else {
81340       switch (PyTuple_GET_SIZE(__pyx_args)) {
81341         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
81342         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
81343         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81344         break;
81345         default: goto __pyx_L5_argtuple_error;
81346       }
81347     }
81348     __pyx_v_lock_type = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_lock_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81349     __pyx_v_rank = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81350     if (values[2]) {
81351       __pyx_v_assertion = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_assertion == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81352     } else {
81353       __pyx_v_assertion = ((int)0);
81354     }
81355   }
81356   goto __pyx_L4_argument_unpacking_done;
81357   __pyx_L5_argtuple_error:;
81358   __Pyx_RaiseArgtupleInvalid("Lock", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81359   __pyx_L3_error:;
81360   __Pyx_AddTraceback("mpi4py.MPI.Win.Lock", __pyx_clineno, __pyx_lineno, __pyx_filename);
81361   __Pyx_RefNannyFinishContext();
81362   return NULL;
81363   __pyx_L4_argument_unpacking_done:;
81364 
81365   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":311
81366  *         Begin an RMA access epoch at the target process
81367  *         """
81368  *         with nogil: CHKERR( MPI_Win_lock(             # <<<<<<<<<<<<<<
81369  *             lock_type, rank, assertion, self.ob_mpi) )
81370  *
81371  */
81372   {
81373       #ifdef WITH_THREAD
81374       PyThreadState *_save = NULL;
81375       #endif
81376       Py_UNBLOCK_THREADS
81377       /*try:*/ {
81378 
81379         /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":312
81380  *         """
81381  *         with nogil: CHKERR( MPI_Win_lock(
81382  *             lock_type, rank, assertion, self.ob_mpi) )             # <<<<<<<<<<<<<<
81383  *
81384  *     def Unlock(self, int rank):
81385  */
81386         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_lock(__pyx_v_lock_type, __pyx_v_rank, __pyx_v_assertion, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L7;}
81387       }
81388 
81389       /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":311
81390  *         Begin an RMA access epoch at the target process
81391  *         """
81392  *         with nogil: CHKERR( MPI_Win_lock(             # <<<<<<<<<<<<<<
81393  *             lock_type, rank, assertion, self.ob_mpi) )
81394  *
81395  */
81396       /*finally:*/ {
81397         int __pyx_why;
81398         __pyx_why = 0; goto __pyx_L8;
81399         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
81400         __pyx_L8:;
81401         Py_BLOCK_THREADS
81402         switch (__pyx_why) {
81403           case 4: goto __pyx_L1_error;
81404         }
81405       }
81406   }
81407 
81408   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81409   goto __pyx_L0;
81410   __pyx_L1_error:;
81411   __Pyx_AddTraceback("mpi4py.MPI.Win.Lock", __pyx_clineno, __pyx_lineno, __pyx_filename);
81412   __pyx_r = NULL;
81413   __pyx_L0:;
81414   __Pyx_XGIVEREF(__pyx_r);
81415   __Pyx_RefNannyFinishContext();
81416   return __pyx_r;
81417 }
81418 
81419 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":314
81420  *             lock_type, rank, assertion, self.ob_mpi) )
81421  *
81422  *     def Unlock(self, int rank):             # <<<<<<<<<<<<<<
81423  *         """
81424  *         Complete an RMA access epoch at the target process
81425  */
81426 
81427 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_22Unlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81428 static char __pyx_doc_6mpi4py_3MPI_3Win_22Unlock[] = "Win.Unlock(self, int rank)\n\n        Complete an RMA access epoch at the target process\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_22Unlock(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81429 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_22Unlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81430   int __pyx_v_rank;
81431   PyObject *__pyx_r = NULL;
81432   __Pyx_RefNannyDeclarations
81433   int __pyx_t_1;
81434   int __pyx_lineno = 0;
81435   const char *__pyx_filename = NULL;
81436   int __pyx_clineno = 0;
81437   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rank,0};
81438   __Pyx_RefNannySetupContext("Unlock");
81439   {
81440     PyObject* values[1] = {0};
81441     if (unlikely(__pyx_kwds)) {
81442       Py_ssize_t kw_args;
81443       switch (PyTuple_GET_SIZE(__pyx_args)) {
81444         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81445         case  0: break;
81446         default: goto __pyx_L5_argtuple_error;
81447       }
81448       kw_args = PyDict_Size(__pyx_kwds);
81449       switch (PyTuple_GET_SIZE(__pyx_args)) {
81450         case  0:
81451         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rank);
81452         if (likely(values[0])) kw_args--;
81453         else goto __pyx_L5_argtuple_error;
81454       }
81455       if (unlikely(kw_args > 0)) {
81456         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Unlock") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81457       }
81458     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
81459       goto __pyx_L5_argtuple_error;
81460     } else {
81461       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81462     }
81463     __pyx_v_rank = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_rank == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81464   }
81465   goto __pyx_L4_argument_unpacking_done;
81466   __pyx_L5_argtuple_error:;
81467   __Pyx_RaiseArgtupleInvalid("Unlock", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81468   __pyx_L3_error:;
81469   __Pyx_AddTraceback("mpi4py.MPI.Win.Unlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
81470   __Pyx_RefNannyFinishContext();
81471   return NULL;
81472   __pyx_L4_argument_unpacking_done:;
81473 
81474   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":318
81475  *         Complete an RMA access epoch at the target process
81476  *         """
81477  *         with nogil: CHKERR( MPI_Win_unlock(rank, self.ob_mpi) )             # <<<<<<<<<<<<<<
81478  *
81479  *     # [6.6] Error Handling
81480  */
81481   {
81482       #ifdef WITH_THREAD
81483       PyThreadState *_save = NULL;
81484       #endif
81485       Py_UNBLOCK_THREADS
81486       /*try:*/ {
81487         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_unlock(__pyx_v_rank, ((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L7;}
81488       }
81489       /*finally:*/ {
81490         int __pyx_why;
81491         __pyx_why = 0; goto __pyx_L8;
81492         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
81493         __pyx_L8:;
81494         Py_BLOCK_THREADS
81495         switch (__pyx_why) {
81496           case 4: goto __pyx_L1_error;
81497         }
81498       }
81499   }
81500 
81501   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81502   goto __pyx_L0;
81503   __pyx_L1_error:;
81504   __Pyx_AddTraceback("mpi4py.MPI.Win.Unlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
81505   __pyx_r = NULL;
81506   __pyx_L0:;
81507   __Pyx_XGIVEREF(__pyx_r);
81508   __Pyx_RefNannyFinishContext();
81509   return __pyx_r;
81510 }
81511 
81512 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":323
81513  *     # --------------------
81514  *
81515  *     def Get_errhandler(self):             # <<<<<<<<<<<<<<
81516  *         """
81517  *         Get the error handler for a window
81518  */
81519 
81520 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_23Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81521 static char __pyx_doc_6mpi4py_3MPI_3Win_23Get_errhandler[] = "Win.Get_errhandler(self)\n\n        Get the error handler for a window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_23Get_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81522 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_23Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81523   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
81524   PyObject *__pyx_r = NULL;
81525   __Pyx_RefNannyDeclarations
81526   PyObject *__pyx_t_1 = NULL;
81527   int __pyx_t_2;
81528   int __pyx_lineno = 0;
81529   const char *__pyx_filename = NULL;
81530   int __pyx_clineno = 0;
81531   __Pyx_RefNannySetupContext("Get_errhandler");
81532   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
81533     __Pyx_RaiseArgtupleInvalid("Get_errhandler", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
81534   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_errhandler", 0))) return NULL;
81535 
81536   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":327
81537  *         Get the error handler for a window
81538  *         """
81539  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)             # <<<<<<<<<<<<<<
81540  *         CHKERR( MPI_Win_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
81541  *         return errhandler
81542  */
81543   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81544   __Pyx_GOTREF(__pyx_t_1);
81545   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
81546   __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
81547   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
81548 
81549   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":328
81550  *         """
81551  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
81552  *         CHKERR( MPI_Win_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
81553  *         return errhandler
81554  *
81555  */
81556   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_errhandler(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_errhandler->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81557 
81558   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":329
81559  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
81560  *         CHKERR( MPI_Win_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
81561  *         return errhandler             # <<<<<<<<<<<<<<
81562  *
81563  *     def Set_errhandler(self, Errhandler errhandler not None):
81564  */
81565   __Pyx_XDECREF(__pyx_r);
81566   __Pyx_INCREF(((PyObject *)__pyx_v_errhandler));
81567   __pyx_r = ((PyObject *)__pyx_v_errhandler);
81568   goto __pyx_L0;
81569 
81570   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81571   goto __pyx_L0;
81572   __pyx_L1_error:;
81573   __Pyx_XDECREF(__pyx_t_1);
81574   __Pyx_AddTraceback("mpi4py.MPI.Win.Get_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
81575   __pyx_r = NULL;
81576   __pyx_L0:;
81577   __Pyx_XDECREF((PyObject *)__pyx_v_errhandler);
81578   __Pyx_XGIVEREF(__pyx_r);
81579   __Pyx_RefNannyFinishContext();
81580   return __pyx_r;
81581 }
81582 
81583 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":331
81584  *         return errhandler
81585  *
81586  *     def Set_errhandler(self, Errhandler errhandler not None):             # <<<<<<<<<<<<<<
81587  *         """
81588  *         Set the error handler for a window
81589  */
81590 
81591 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_24Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81592 static char __pyx_doc_6mpi4py_3MPI_3Win_24Set_errhandler[] = "Win.Set_errhandler(self, Errhandler errhandler)\n\n        Set the error handler for a window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_24Set_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81593 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_24Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81594   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
81595   PyObject *__pyx_r = NULL;
81596   __Pyx_RefNannyDeclarations
81597   int __pyx_t_1;
81598   int __pyx_lineno = 0;
81599   const char *__pyx_filename = NULL;
81600   int __pyx_clineno = 0;
81601   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errhandler,0};
81602   __Pyx_RefNannySetupContext("Set_errhandler");
81603   {
81604     PyObject* values[1] = {0};
81605     if (unlikely(__pyx_kwds)) {
81606       Py_ssize_t kw_args;
81607       switch (PyTuple_GET_SIZE(__pyx_args)) {
81608         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81609         case  0: break;
81610         default: goto __pyx_L5_argtuple_error;
81611       }
81612       kw_args = PyDict_Size(__pyx_kwds);
81613       switch (PyTuple_GET_SIZE(__pyx_args)) {
81614         case  0:
81615         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errhandler);
81616         if (likely(values[0])) kw_args--;
81617         else goto __pyx_L5_argtuple_error;
81618       }
81619       if (unlikely(kw_args > 0)) {
81620         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_errhandler") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81621       }
81622     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
81623       goto __pyx_L5_argtuple_error;
81624     } else {
81625       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81626     }
81627     __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)values[0]);
81628   }
81629   goto __pyx_L4_argument_unpacking_done;
81630   __pyx_L5_argtuple_error:;
81631   __Pyx_RaiseArgtupleInvalid("Set_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81632   __pyx_L3_error:;
81633   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
81634   __Pyx_RefNannyFinishContext();
81635   return NULL;
81636   __pyx_L4_argument_unpacking_done:;
81637   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_errhandler), __pyx_ptype_6mpi4py_3MPI_Errhandler, 0, "errhandler", 0))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81638 
81639   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":335
81640  *         Set the error handler for a window
81641  *         """
81642  *         CHKERR( MPI_Win_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
81643  *
81644  *     def Call_errhandler(self, int errorcode):
81645  */
81646   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_set_errhandler(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_errhandler->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81647 
81648   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81649   goto __pyx_L0;
81650   __pyx_L1_error:;
81651   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
81652   __pyx_r = NULL;
81653   __pyx_L0:;
81654   __Pyx_XGIVEREF(__pyx_r);
81655   __Pyx_RefNannyFinishContext();
81656   return __pyx_r;
81657 }
81658 
81659 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":337
81660  *         CHKERR( MPI_Win_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )
81661  *
81662  *     def Call_errhandler(self, int errorcode):             # <<<<<<<<<<<<<<
81663  *         """
81664  *         Call the error handler installed on a window
81665  */
81666 
81667 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_25Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81668 static char __pyx_doc_6mpi4py_3MPI_3Win_25Call_errhandler[] = "Win.Call_errhandler(self, int errorcode)\n\n        Call the error handler installed on a window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_25Call_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81669 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_25Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81670   int __pyx_v_errorcode;
81671   PyObject *__pyx_r = NULL;
81672   __Pyx_RefNannyDeclarations
81673   int __pyx_t_1;
81674   int __pyx_lineno = 0;
81675   const char *__pyx_filename = NULL;
81676   int __pyx_clineno = 0;
81677   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
81678   __Pyx_RefNannySetupContext("Call_errhandler");
81679   {
81680     PyObject* values[1] = {0};
81681     if (unlikely(__pyx_kwds)) {
81682       Py_ssize_t kw_args;
81683       switch (PyTuple_GET_SIZE(__pyx_args)) {
81684         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81685         case  0: break;
81686         default: goto __pyx_L5_argtuple_error;
81687       }
81688       kw_args = PyDict_Size(__pyx_kwds);
81689       switch (PyTuple_GET_SIZE(__pyx_args)) {
81690         case  0:
81691         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
81692         if (likely(values[0])) kw_args--;
81693         else goto __pyx_L5_argtuple_error;
81694       }
81695       if (unlikely(kw_args > 0)) {
81696         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Call_errhandler") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81697       }
81698     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
81699       goto __pyx_L5_argtuple_error;
81700     } else {
81701       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81702     }
81703     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81704   }
81705   goto __pyx_L4_argument_unpacking_done;
81706   __pyx_L5_argtuple_error:;
81707   __Pyx_RaiseArgtupleInvalid("Call_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81708   __pyx_L3_error:;
81709   __Pyx_AddTraceback("mpi4py.MPI.Win.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
81710   __Pyx_RefNannyFinishContext();
81711   return NULL;
81712   __pyx_L4_argument_unpacking_done:;
81713 
81714   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":341
81715  *         Call the error handler installed on a window
81716  *         """
81717  *         CHKERR( MPI_Win_call_errhandler(self.ob_mpi, errorcode) )             # <<<<<<<<<<<<<<
81718  *
81719  *
81720  */
81721   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_call_errhandler(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_errorcode)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81722 
81723   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81724   goto __pyx_L0;
81725   __pyx_L1_error:;
81726   __Pyx_AddTraceback("mpi4py.MPI.Win.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
81727   __pyx_r = NULL;
81728   __pyx_L0:;
81729   __Pyx_XGIVEREF(__pyx_r);
81730   __Pyx_RefNannyFinishContext();
81731   return __pyx_r;
81732 }
81733 
81734 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":347
81735  *     # --------------------
81736  *
81737  *     def Get_name(self):             # <<<<<<<<<<<<<<
81738  *         """
81739  *         Get the print name associated with the window
81740  */
81741 
81742 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_26Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81743 static char __pyx_doc_6mpi4py_3MPI_3Win_26Get_name[] = "Win.Get_name(self)\n\n        Get the print name associated with the window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_26Get_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81744 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_26Get_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81745   char __pyx_v_name[(MPI_MAX_OBJECT_NAME + 1)];
81746   int __pyx_v_nlen;
81747   PyObject *__pyx_r = NULL;
81748   __Pyx_RefNannyDeclarations
81749   int __pyx_t_1;
81750   PyObject *__pyx_t_2 = NULL;
81751   int __pyx_lineno = 0;
81752   const char *__pyx_filename = NULL;
81753   int __pyx_clineno = 0;
81754   __Pyx_RefNannySetupContext("Get_name");
81755   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
81756     __Pyx_RaiseArgtupleInvalid("Get_name", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
81757   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_name", 0))) return NULL;
81758 
81759   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":352
81760  *         """
81761  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
81762  *         cdef int nlen = 0             # <<<<<<<<<<<<<<
81763  *         CHKERR( MPI_Win_get_name(self.ob_mpi, name, &nlen) )
81764  *         return tompistr(name, nlen)
81765  */
81766   __pyx_v_nlen = 0;
81767 
81768   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":353
81769  *         cdef char name[MPI_MAX_OBJECT_NAME+1]
81770  *         cdef int nlen = 0
81771  *         CHKERR( MPI_Win_get_name(self.ob_mpi, name, &nlen) )             # <<<<<<<<<<<<<<
81772  *         return tompistr(name, nlen)
81773  *
81774  */
81775   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_get_name(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_name, (&__pyx_v_nlen))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81776 
81777   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":354
81778  *         cdef int nlen = 0
81779  *         CHKERR( MPI_Win_get_name(self.ob_mpi, name, &nlen) )
81780  *         return tompistr(name, nlen)             # <<<<<<<<<<<<<<
81781  *
81782  *     def Set_name(self, name):
81783  */
81784   __Pyx_XDECREF(__pyx_r);
81785   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_name, __pyx_v_nlen); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81786   __Pyx_GOTREF(__pyx_t_2);
81787   __pyx_r = __pyx_t_2;
81788   __pyx_t_2 = 0;
81789   goto __pyx_L0;
81790 
81791   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81792   goto __pyx_L0;
81793   __pyx_L1_error:;
81794   __Pyx_XDECREF(__pyx_t_2);
81795   __Pyx_AddTraceback("mpi4py.MPI.Win.Get_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
81796   __pyx_r = NULL;
81797   __pyx_L0:;
81798   __Pyx_XGIVEREF(__pyx_r);
81799   __Pyx_RefNannyFinishContext();
81800   return __pyx_r;
81801 }
81802 
81803 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":356
81804  *         return tompistr(name, nlen)
81805  *
81806  *     def Set_name(self, name):             # <<<<<<<<<<<<<<
81807  *         """
81808  *         Set the print name associated with the window
81809  */
81810 
81811 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_27Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
81812 static char __pyx_doc_6mpi4py_3MPI_3Win_27Set_name[] = "Win.Set_name(self, name)\n\n        Set the print name associated with the window\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_27Set_name(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)81813 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_27Set_name(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
81814   PyObject *__pyx_v_name = 0;
81815   char *__pyx_v_cname;
81816   PyObject *__pyx_r = NULL;
81817   __Pyx_RefNannyDeclarations
81818   PyObject *__pyx_t_1 = NULL;
81819   int __pyx_t_2;
81820   int __pyx_lineno = 0;
81821   const char *__pyx_filename = NULL;
81822   int __pyx_clineno = 0;
81823   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,0};
81824   __Pyx_RefNannySetupContext("Set_name");
81825   {
81826     PyObject* values[1] = {0};
81827     if (unlikely(__pyx_kwds)) {
81828       Py_ssize_t kw_args;
81829       switch (PyTuple_GET_SIZE(__pyx_args)) {
81830         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81831         case  0: break;
81832         default: goto __pyx_L5_argtuple_error;
81833       }
81834       kw_args = PyDict_Size(__pyx_kwds);
81835       switch (PyTuple_GET_SIZE(__pyx_args)) {
81836         case  0:
81837         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
81838         if (likely(values[0])) kw_args--;
81839         else goto __pyx_L5_argtuple_error;
81840       }
81841       if (unlikely(kw_args > 0)) {
81842         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_name") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81843       }
81844     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
81845       goto __pyx_L5_argtuple_error;
81846     } else {
81847       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
81848     }
81849     __pyx_v_name = values[0];
81850   }
81851   goto __pyx_L4_argument_unpacking_done;
81852   __pyx_L5_argtuple_error:;
81853   __Pyx_RaiseArgtupleInvalid("Set_name", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
81854   __pyx_L3_error:;
81855   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
81856   __Pyx_RefNannyFinishContext();
81857   return NULL;
81858   __pyx_L4_argument_unpacking_done:;
81859   __Pyx_INCREF(__pyx_v_name);
81860 
81861   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":360
81862  *         Set the print name associated with the window
81863  *         """
81864  *         cdef char *cname = NULL             # <<<<<<<<<<<<<<
81865  *         name = asmpistr(name, &cname, NULL)
81866  *         CHKERR( MPI_Win_set_name(self.ob_mpi, cname) )
81867  */
81868   __pyx_v_cname = NULL;
81869 
81870   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":361
81871  *         """
81872  *         cdef char *cname = NULL
81873  *         name = asmpistr(name, &cname, NULL)             # <<<<<<<<<<<<<<
81874  *         CHKERR( MPI_Win_set_name(self.ob_mpi, cname) )
81875  *
81876  */
81877   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_name, (&__pyx_v_cname), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81878   __Pyx_GOTREF(__pyx_t_1);
81879   __Pyx_DECREF(__pyx_v_name);
81880   __pyx_v_name = __pyx_t_1;
81881   __pyx_t_1 = 0;
81882 
81883   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":362
81884  *         cdef char *cname = NULL
81885  *         name = asmpistr(name, &cname, NULL)
81886  *         CHKERR( MPI_Win_set_name(self.ob_mpi, cname) )             # <<<<<<<<<<<<<<
81887  *
81888  *     property name:
81889  */
81890   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Win_set_name(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi, __pyx_v_cname)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81891 
81892   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81893   goto __pyx_L0;
81894   __pyx_L1_error:;
81895   __Pyx_XDECREF(__pyx_t_1);
81896   __Pyx_AddTraceback("mpi4py.MPI.Win.Set_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
81897   __pyx_r = NULL;
81898   __pyx_L0:;
81899   __Pyx_XDECREF(__pyx_v_name);
81900   __Pyx_XGIVEREF(__pyx_r);
81901   __Pyx_RefNannyFinishContext();
81902   return __pyx_r;
81903 }
81904 
81905 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":366
81906  *     property name:
81907  *         """window name"""
81908  *         def __get__(self):             # <<<<<<<<<<<<<<
81909  *             return self.Get_name()
81910  *         def __set__(self, value):
81911  */
81912 
81913 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_4name___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_4name___get__(PyObject * __pyx_v_self)81914 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_4name___get__(PyObject *__pyx_v_self) {
81915   PyObject *__pyx_r = NULL;
81916   __Pyx_RefNannyDeclarations
81917   PyObject *__pyx_t_1 = NULL;
81918   PyObject *__pyx_t_2 = NULL;
81919   int __pyx_lineno = 0;
81920   const char *__pyx_filename = NULL;
81921   int __pyx_clineno = 0;
81922   __Pyx_RefNannySetupContext("__get__");
81923 
81924   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":367
81925  *         """window name"""
81926  *         def __get__(self):
81927  *             return self.Get_name()             # <<<<<<<<<<<<<<
81928  *         def __set__(self, value):
81929  *             self.Set_name(value)
81930  */
81931   __Pyx_XDECREF(__pyx_r);
81932   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81933   __Pyx_GOTREF(__pyx_t_1);
81934   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81935   __Pyx_GOTREF(__pyx_t_2);
81936   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
81937   __pyx_r = __pyx_t_2;
81938   __pyx_t_2 = 0;
81939   goto __pyx_L0;
81940 
81941   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
81942   goto __pyx_L0;
81943   __pyx_L1_error:;
81944   __Pyx_XDECREF(__pyx_t_1);
81945   __Pyx_XDECREF(__pyx_t_2);
81946   __Pyx_AddTraceback("mpi4py.MPI.Win.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
81947   __pyx_r = NULL;
81948   __pyx_L0:;
81949   __Pyx_XGIVEREF(__pyx_r);
81950   __Pyx_RefNannyFinishContext();
81951   return __pyx_r;
81952 }
81953 
81954 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":368
81955  *         def __get__(self):
81956  *             return self.Get_name()
81957  *         def __set__(self, value):             # <<<<<<<<<<<<<<
81958  *             self.Set_name(value)
81959  *
81960  */
81961 
81962 static int __pyx_pf_6mpi4py_3MPI_3Win_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_3Win_4name_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)81963 static int __pyx_pf_6mpi4py_3MPI_3Win_4name_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
81964   int __pyx_r;
81965   __Pyx_RefNannyDeclarations
81966   PyObject *__pyx_t_1 = NULL;
81967   PyObject *__pyx_t_2 = NULL;
81968   PyObject *__pyx_t_3 = NULL;
81969   int __pyx_lineno = 0;
81970   const char *__pyx_filename = NULL;
81971   int __pyx_clineno = 0;
81972   __Pyx_RefNannySetupContext("__set__");
81973 
81974   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":369
81975  *             return self.Get_name()
81976  *         def __set__(self, value):
81977  *             self.Set_name(value)             # <<<<<<<<<<<<<<
81978  *
81979  *     # Fortran Handle
81980  */
81981   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81982   __Pyx_GOTREF(__pyx_t_1);
81983   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81984   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
81985   __Pyx_INCREF(__pyx_v_value);
81986   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
81987   __Pyx_GIVEREF(__pyx_v_value);
81988   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
81989   __Pyx_GOTREF(__pyx_t_3);
81990   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
81991   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
81992   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
81993 
81994   __pyx_r = 0;
81995   goto __pyx_L0;
81996   __pyx_L1_error:;
81997   __Pyx_XDECREF(__pyx_t_1);
81998   __Pyx_XDECREF(__pyx_t_2);
81999   __Pyx_XDECREF(__pyx_t_3);
82000   __Pyx_AddTraceback("mpi4py.MPI.Win.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
82001   __pyx_r = -1;
82002   __pyx_L0:;
82003   __Pyx_RefNannyFinishContext();
82004   return __pyx_r;
82005 }
82006 
82007 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":374
82008  *     # --------------
82009  *
82010  *     def py2f(self):             # <<<<<<<<<<<<<<
82011  *         """
82012  *         """
82013  */
82014 
82015 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_28py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82016 static char __pyx_doc_6mpi4py_3MPI_3Win_28py2f[] = "Win.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_28py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)82017 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_28py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82018   PyObject *__pyx_r = NULL;
82019   __Pyx_RefNannyDeclarations
82020   PyObject *__pyx_t_1 = NULL;
82021   int __pyx_lineno = 0;
82022   const char *__pyx_filename = NULL;
82023   int __pyx_clineno = 0;
82024   __Pyx_RefNannySetupContext("py2f");
82025   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
82026     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
82027   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
82028 
82029   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":377
82030  *         """
82031  *         """
82032  *         return MPI_Win_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
82033  *
82034  *     @classmethod
82035  */
82036   __Pyx_XDECREF(__pyx_r);
82037   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_Win_c2f(((struct PyMPIWinObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82038   __Pyx_GOTREF(__pyx_t_1);
82039   __pyx_r = __pyx_t_1;
82040   __pyx_t_1 = 0;
82041   goto __pyx_L0;
82042 
82043   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82044   goto __pyx_L0;
82045   __pyx_L1_error:;
82046   __Pyx_XDECREF(__pyx_t_1);
82047   __Pyx_AddTraceback("mpi4py.MPI.Win.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
82048   __pyx_r = NULL;
82049   __pyx_L0:;
82050   __Pyx_XGIVEREF(__pyx_r);
82051   __Pyx_RefNannyFinishContext();
82052   return __pyx_r;
82053 }
82054 
82055 /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":380
82056  *
82057  *     @classmethod
82058  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
82059  *         """
82060  *         """
82061  */
82062 
82063 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_29f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82064 static char __pyx_doc_6mpi4py_3MPI_3Win_29f2py[] = "Win.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_3Win_29f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)82065 static PyObject *__pyx_pf_6mpi4py_3MPI_3Win_29f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82066   PyObject *__pyx_v_arg = 0;
82067   struct PyMPIWinObject *__pyx_v_win = 0;
82068   PyObject *__pyx_r = NULL;
82069   __Pyx_RefNannyDeclarations
82070   PyObject *__pyx_t_1 = NULL;
82071   MPI_Fint __pyx_t_2;
82072   int __pyx_lineno = 0;
82073   const char *__pyx_filename = NULL;
82074   int __pyx_clineno = 0;
82075   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
82076   __Pyx_RefNannySetupContext("f2py");
82077   {
82078     PyObject* values[1] = {0};
82079     if (unlikely(__pyx_kwds)) {
82080       Py_ssize_t kw_args;
82081       switch (PyTuple_GET_SIZE(__pyx_args)) {
82082         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82083         case  0: break;
82084         default: goto __pyx_L5_argtuple_error;
82085       }
82086       kw_args = PyDict_Size(__pyx_kwds);
82087       switch (PyTuple_GET_SIZE(__pyx_args)) {
82088         case  0:
82089         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
82090         if (likely(values[0])) kw_args--;
82091         else goto __pyx_L5_argtuple_error;
82092       }
82093       if (unlikely(kw_args > 0)) {
82094         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82095       }
82096     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
82097       goto __pyx_L5_argtuple_error;
82098     } else {
82099       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82100     }
82101     __pyx_v_arg = values[0];
82102   }
82103   goto __pyx_L4_argument_unpacking_done;
82104   __pyx_L5_argtuple_error:;
82105   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82106   __pyx_L3_error:;
82107   __Pyx_AddTraceback("mpi4py.MPI.Win.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
82108   __Pyx_RefNannyFinishContext();
82109   return NULL;
82110   __pyx_L4_argument_unpacking_done:;
82111 
82112   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":383
82113  *         """
82114  *         """
82115  *         cdef Win win = <Win>cls()             # <<<<<<<<<<<<<<
82116  *         win.ob_mpi = MPI_Win_f2c(arg)
82117  *         return win
82118  */
82119   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82120   __Pyx_GOTREF(__pyx_t_1);
82121   __Pyx_INCREF(((PyObject *)((struct PyMPIWinObject *)__pyx_t_1)));
82122   __pyx_v_win = ((struct PyMPIWinObject *)__pyx_t_1);
82123   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
82124 
82125   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":384
82126  *         """
82127  *         cdef Win win = <Win>cls()
82128  *         win.ob_mpi = MPI_Win_f2c(arg)             # <<<<<<<<<<<<<<
82129  *         return win
82130  *
82131  */
82132   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82133   __pyx_v_win->ob_mpi = MPI_Win_f2c(__pyx_t_2);
82134 
82135   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":385
82136  *         cdef Win win = <Win>cls()
82137  *         win.ob_mpi = MPI_Win_f2c(arg)
82138  *         return win             # <<<<<<<<<<<<<<
82139  *
82140  *
82141  */
82142   __Pyx_XDECREF(__pyx_r);
82143   __Pyx_INCREF(((PyObject *)__pyx_v_win));
82144   __pyx_r = ((PyObject *)__pyx_v_win);
82145   goto __pyx_L0;
82146 
82147   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82148   goto __pyx_L0;
82149   __pyx_L1_error:;
82150   __Pyx_XDECREF(__pyx_t_1);
82151   __Pyx_AddTraceback("mpi4py.MPI.Win.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
82152   __pyx_r = NULL;
82153   __pyx_L0:;
82154   __Pyx_XDECREF((PyObject *)__pyx_v_win);
82155   __Pyx_XGIVEREF(__pyx_r);
82156   __Pyx_RefNannyFinishContext();
82157   return __pyx_r;
82158 }
82159 
82160 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":31
82161  *     """
82162  *
82163  *     def __cinit__(self, File file=None):             # <<<<<<<<<<<<<<
82164  *         self.ob_mpi = MPI_FILE_NULL
82165  *         if file is not None:
82166  */
82167 
82168 static int __pyx_pf_6mpi4py_3MPI_4File___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File___cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)82169 static int __pyx_pf_6mpi4py_3MPI_4File___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82170   struct PyMPIFileObject *__pyx_v_file = 0;
82171   int __pyx_r;
82172   __Pyx_RefNannyDeclarations
82173   int __pyx_t_1;
82174   int __pyx_lineno = 0;
82175   const char *__pyx_filename = NULL;
82176   int __pyx_clineno = 0;
82177   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,0};
82178   __Pyx_RefNannySetupContext("__cinit__");
82179   {
82180     PyObject* values[1] = {0};
82181     values[0] = (PyObject *)((struct PyMPIFileObject *)Py_None);
82182     if (unlikely(__pyx_kwds)) {
82183       Py_ssize_t kw_args;
82184       switch (PyTuple_GET_SIZE(__pyx_args)) {
82185         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82186         case  0: break;
82187         default: goto __pyx_L5_argtuple_error;
82188       }
82189       kw_args = PyDict_Size(__pyx_kwds);
82190       switch (PyTuple_GET_SIZE(__pyx_args)) {
82191         case  0:
82192         if (kw_args > 0) {
82193           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__file);
82194           if (value) { values[0] = value; kw_args--; }
82195         }
82196       }
82197       if (unlikely(kw_args > 0)) {
82198         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82199       }
82200     } else {
82201       switch (PyTuple_GET_SIZE(__pyx_args)) {
82202         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82203         case  0: break;
82204         default: goto __pyx_L5_argtuple_error;
82205       }
82206     }
82207     __pyx_v_file = ((struct PyMPIFileObject *)values[0]);
82208   }
82209   goto __pyx_L4_argument_unpacking_done;
82210   __pyx_L5_argtuple_error:;
82211   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82212   __pyx_L3_error:;
82213   __Pyx_AddTraceback("mpi4py.MPI.File.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
82214   __Pyx_RefNannyFinishContext();
82215   return -1;
82216   __pyx_L4_argument_unpacking_done:;
82217   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file), __pyx_ptype_6mpi4py_3MPI_File, 1, "file", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82218 
82219   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":32
82220  *
82221  *     def __cinit__(self, File file=None):
82222  *         self.ob_mpi = MPI_FILE_NULL             # <<<<<<<<<<<<<<
82223  *         if file is not None:
82224  *             self.ob_mpi = file.ob_mpi
82225  */
82226   ((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi = MPI_FILE_NULL;
82227 
82228   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":33
82229  *     def __cinit__(self, File file=None):
82230  *         self.ob_mpi = MPI_FILE_NULL
82231  *         if file is not None:             # <<<<<<<<<<<<<<
82232  *             self.ob_mpi = file.ob_mpi
82233  *
82234  */
82235   __pyx_t_1 = (((PyObject *)__pyx_v_file) != Py_None);
82236   if (__pyx_t_1) {
82237 
82238     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":34
82239  *         self.ob_mpi = MPI_FILE_NULL
82240  *         if file is not None:
82241  *             self.ob_mpi = file.ob_mpi             # <<<<<<<<<<<<<<
82242  *
82243  *     def __dealloc__(self):
82244  */
82245     ((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi = __pyx_v_file->ob_mpi;
82246     goto __pyx_L6;
82247   }
82248   __pyx_L6:;
82249 
82250   __pyx_r = 0;
82251   goto __pyx_L0;
82252   __pyx_L1_error:;
82253   __Pyx_AddTraceback("mpi4py.MPI.File.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
82254   __pyx_r = -1;
82255   __pyx_L0:;
82256   __Pyx_RefNannyFinishContext();
82257   return __pyx_r;
82258 }
82259 
82260 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":36
82261  *             self.ob_mpi = file.ob_mpi
82262  *
82263  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
82264  *         if not (self.flags & PyMPI_OWNED): return
82265  *         CHKERR( del_File(&self.ob_mpi) )
82266  */
82267 
82268 static void __pyx_pf_6mpi4py_3MPI_4File_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_1__dealloc__(PyObject * __pyx_v_self)82269 static void __pyx_pf_6mpi4py_3MPI_4File_1__dealloc__(PyObject *__pyx_v_self) {
82270   __Pyx_RefNannyDeclarations
82271   int __pyx_t_1;
82272   int __pyx_t_2;
82273   int __pyx_lineno = 0;
82274   const char *__pyx_filename = NULL;
82275   int __pyx_clineno = 0;
82276   __Pyx_RefNannySetupContext("__dealloc__");
82277 
82278   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":37
82279  *
82280  *     def __dealloc__(self):
82281  *         if not (self.flags & PyMPI_OWNED): return             # <<<<<<<<<<<<<<
82282  *         CHKERR( del_File(&self.ob_mpi) )
82283  *
82284  */
82285   __pyx_t_1 = (!(((struct PyMPIFileObject *)__pyx_v_self)->flags & __pyx_e_6mpi4py_3MPI_PyMPI_OWNED));
82286   if (__pyx_t_1) {
82287     goto __pyx_L0;
82288     goto __pyx_L5;
82289   }
82290   __pyx_L5:;
82291 
82292   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":38
82293  *     def __dealloc__(self):
82294  *         if not (self.flags & PyMPI_OWNED): return
82295  *         CHKERR( del_File(&self.ob_mpi) )             # <<<<<<<<<<<<<<
82296  *
82297  *     def __richcmp__(self, other, int op):
82298  */
82299   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(__pyx_f_6mpi4py_3MPI_del_File((&((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82300 
82301   goto __pyx_L0;
82302   __pyx_L1_error:;
82303   __Pyx_AddTraceback("mpi4py.MPI.File.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename);
82304   __pyx_L0:;
82305   __Pyx_RefNannyFinishContext();
82306 }
82307 
82308 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":40
82309  *         CHKERR( del_File(&self.ob_mpi) )
82310  *
82311  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
82312  *         if not isinstance(self,  File): return NotImplemented
82313  *         if not isinstance(other, File): return NotImplemented
82314  */
82315 
82316 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_2__richcmp__(PyObject * __pyx_v_self,PyObject * __pyx_v_other,int __pyx_v_op)82317 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
82318   struct PyMPIFileObject *__pyx_v_s = 0;
82319   struct PyMPIFileObject *__pyx_v_o = 0;
82320   PyObject *__pyx_r = NULL;
82321   __Pyx_RefNannyDeclarations
82322   PyObject *__pyx_t_1 = NULL;
82323   int __pyx_t_2;
82324   int __pyx_t_3;
82325   int __pyx_lineno = 0;
82326   const char *__pyx_filename = NULL;
82327   int __pyx_clineno = 0;
82328   __Pyx_RefNannySetupContext("__richcmp__");
82329 
82330   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":41
82331  *
82332  *     def __richcmp__(self, other, int op):
82333  *         if not isinstance(self,  File): return NotImplemented             # <<<<<<<<<<<<<<
82334  *         if not isinstance(other, File): return NotImplemented
82335  *         cdef File s = <File>self, o = <File>other
82336  */
82337   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_File));
82338   __Pyx_INCREF(__pyx_t_1);
82339   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_self, __pyx_t_1);
82340   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
82341   __pyx_t_3 = (!__pyx_t_2);
82342   if (__pyx_t_3) {
82343     __Pyx_XDECREF(__pyx_r);
82344     __Pyx_INCREF(__pyx_builtin_NotImplemented);
82345     __pyx_r = __pyx_builtin_NotImplemented;
82346     goto __pyx_L0;
82347     goto __pyx_L5;
82348   }
82349   __pyx_L5:;
82350 
82351   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":42
82352  *     def __richcmp__(self, other, int op):
82353  *         if not isinstance(self,  File): return NotImplemented
82354  *         if not isinstance(other, File): return NotImplemented             # <<<<<<<<<<<<<<
82355  *         cdef File s = <File>self, o = <File>other
82356  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
82357  */
82358   __pyx_t_1 = ((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI_File));
82359   __Pyx_INCREF(__pyx_t_1);
82360   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_other, __pyx_t_1);
82361   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
82362   __pyx_t_2 = (!__pyx_t_3);
82363   if (__pyx_t_2) {
82364     __Pyx_XDECREF(__pyx_r);
82365     __Pyx_INCREF(__pyx_builtin_NotImplemented);
82366     __pyx_r = __pyx_builtin_NotImplemented;
82367     goto __pyx_L0;
82368     goto __pyx_L6;
82369   }
82370   __pyx_L6:;
82371 
82372   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":43
82373  *         if not isinstance(self,  File): return NotImplemented
82374  *         if not isinstance(other, File): return NotImplemented
82375  *         cdef File s = <File>self, o = <File>other             # <<<<<<<<<<<<<<
82376  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
82377  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
82378  */
82379   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_v_self)));
82380   __pyx_v_s = ((struct PyMPIFileObject *)__pyx_v_self);
82381   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_v_other)));
82382   __pyx_v_o = ((struct PyMPIFileObject *)__pyx_v_other);
82383 
82384   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":45
82385  *         cdef File s = <File>self, o = <File>other
82386  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
82387  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
82388  *         else: raise TypeError("only '==' and '!='")
82389  *
82390  */
82391   switch (__pyx_v_op) {
82392 
82393     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":44
82394  *         if not isinstance(other, File): return NotImplemented
82395  *         cdef File s = <File>self, o = <File>other
82396  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)             # <<<<<<<<<<<<<<
82397  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
82398  *         else: raise TypeError("only '==' and '!='")
82399  */
82400     case Py_EQ:
82401     __Pyx_XDECREF(__pyx_r);
82402     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi == __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82403     __Pyx_GOTREF(__pyx_t_1);
82404     __pyx_r = __pyx_t_1;
82405     __pyx_t_1 = 0;
82406     goto __pyx_L0;
82407     break;
82408 
82409     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":45
82410  *         cdef File s = <File>self, o = <File>other
82411  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
82412  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)             # <<<<<<<<<<<<<<
82413  *         else: raise TypeError("only '==' and '!='")
82414  *
82415  */
82416     case Py_NE:
82417     __Pyx_XDECREF(__pyx_r);
82418     __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_s->ob_mpi != __pyx_v_o->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82419     __Pyx_GOTREF(__pyx_t_1);
82420     __pyx_r = __pyx_t_1;
82421     __pyx_t_1 = 0;
82422     goto __pyx_L0;
82423     break;
82424     default:
82425 
82426     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":46
82427  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
82428  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
82429  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
82430  *
82431  *     def __bool__(self):
82432  */
82433     __pyx_t_1 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_103), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82434     __Pyx_GOTREF(__pyx_t_1);
82435     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
82436     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
82437     {__pyx_filename = __pyx_f[26]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82438     break;
82439   }
82440 
82441   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82442   goto __pyx_L0;
82443   __pyx_L1_error:;
82444   __Pyx_XDECREF(__pyx_t_1);
82445   __Pyx_AddTraceback("mpi4py.MPI.File.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
82446   __pyx_r = NULL;
82447   __pyx_L0:;
82448   __Pyx_XDECREF((PyObject *)__pyx_v_s);
82449   __Pyx_XDECREF((PyObject *)__pyx_v_o);
82450   __Pyx_XGIVEREF(__pyx_r);
82451   __Pyx_RefNannyFinishContext();
82452   return __pyx_r;
82453 }
82454 
82455 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":48
82456  *         else: raise TypeError("only '==' and '!='")
82457  *
82458  *     def __bool__(self):             # <<<<<<<<<<<<<<
82459  *         return self.ob_mpi != MPI_FILE_NULL
82460  *
82461  */
82462 
82463 static int __pyx_pf_6mpi4py_3MPI_4File_3__bool__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_3__bool__(PyObject * __pyx_v_self)82464 static int __pyx_pf_6mpi4py_3MPI_4File_3__bool__(PyObject *__pyx_v_self) {
82465   int __pyx_r;
82466   __Pyx_RefNannyDeclarations
82467   __Pyx_RefNannySetupContext("__bool__");
82468 
82469   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":49
82470  *
82471  *     def __bool__(self):
82472  *         return self.ob_mpi != MPI_FILE_NULL             # <<<<<<<<<<<<<<
82473  *
82474  *     # [9.2] File Manipulation
82475  */
82476   __pyx_r = (((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi != MPI_FILE_NULL);
82477   goto __pyx_L0;
82478 
82479   __pyx_r = 0;
82480   __pyx_L0:;
82481   __Pyx_RefNannyFinishContext();
82482   return __pyx_r;
82483 }
82484 
82485 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":58
82486  *
82487  *     @classmethod
82488  *     def Open(cls, Intracomm comm not None, filename,             # <<<<<<<<<<<<<<
82489  *              int amode=MODE_RDONLY, Info info=INFO_NULL):
82490  *         """
82491  */
82492 
82493 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4Open(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82494 static char __pyx_doc_6mpi4py_3MPI_4File_4Open[] = "File.Open(type cls, Intracomm comm, filename, int amode=MODE_RDONLY, Info info=INFO_NULL)\n\n        Open a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_4Open(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)82495 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4Open(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82496   struct PyMPIIntracommObject *__pyx_v_comm = 0;
82497   PyObject *__pyx_v_filename = 0;
82498   int __pyx_v_amode;
82499   struct PyMPIInfoObject *__pyx_v_info = 0;
82500   char *__pyx_v_cfilename;
82501   MPI_Info __pyx_v_cinfo;
82502   struct PyMPIFileObject *__pyx_v_file = 0;
82503   PyObject *__pyx_r = NULL;
82504   __Pyx_RefNannyDeclarations
82505   PyObject *__pyx_t_1 = NULL;
82506   int __pyx_t_2;
82507   int __pyx_lineno = 0;
82508   const char *__pyx_filename = NULL;
82509   int __pyx_clineno = 0;
82510   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__comm,&__pyx_n_s__filename,&__pyx_n_s__amode,&__pyx_n_s__info,0};
82511   __Pyx_RefNannySetupContext("Open");
82512   {
82513     PyObject* values[4] = {0,0,0,0};
82514     values[3] = (PyObject *)__pyx_k_104;
82515     if (unlikely(__pyx_kwds)) {
82516       Py_ssize_t kw_args;
82517       switch (PyTuple_GET_SIZE(__pyx_args)) {
82518         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
82519         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
82520         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
82521         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82522         case  0: break;
82523         default: goto __pyx_L5_argtuple_error;
82524       }
82525       kw_args = PyDict_Size(__pyx_kwds);
82526       switch (PyTuple_GET_SIZE(__pyx_args)) {
82527         case  0:
82528         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comm);
82529         if (likely(values[0])) kw_args--;
82530         else goto __pyx_L5_argtuple_error;
82531         case  1:
82532         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename);
82533         if (likely(values[1])) kw_args--;
82534         else {
82535           __Pyx_RaiseArgtupleInvalid("Open", 0, 2, 4, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82536         }
82537         case  2:
82538         if (kw_args > 0) {
82539           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__amode);
82540           if (value) { values[2] = value; kw_args--; }
82541         }
82542         case  3:
82543         if (kw_args > 0) {
82544           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
82545           if (value) { values[3] = value; kw_args--; }
82546         }
82547       }
82548       if (unlikely(kw_args > 0)) {
82549         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Open") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82550       }
82551     } else {
82552       switch (PyTuple_GET_SIZE(__pyx_args)) {
82553         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
82554         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
82555         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
82556         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82557         break;
82558         default: goto __pyx_L5_argtuple_error;
82559       }
82560     }
82561     __pyx_v_comm = ((struct PyMPIIntracommObject *)values[0]);
82562     __pyx_v_filename = values[1];
82563     if (values[2]) {
82564       __pyx_v_amode = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_amode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82565     } else {
82566       __pyx_v_amode = __pyx_k_105;
82567     }
82568     __pyx_v_info = ((struct PyMPIInfoObject *)values[3]);
82569   }
82570   goto __pyx_L4_argument_unpacking_done;
82571   __pyx_L5_argtuple_error:;
82572   __Pyx_RaiseArgtupleInvalid("Open", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82573   __pyx_L3_error:;
82574   __Pyx_AddTraceback("mpi4py.MPI.File.Open", __pyx_clineno, __pyx_lineno, __pyx_filename);
82575   __Pyx_RefNannyFinishContext();
82576   return NULL;
82577   __pyx_L4_argument_unpacking_done:;
82578   __Pyx_INCREF(__pyx_v_filename);
82579   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Intracomm, 0, "comm", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82580   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82581 
82582   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":63
82583  *         Open a file
82584  *         """
82585  *         cdef char *cfilename = NULL             # <<<<<<<<<<<<<<
82586  *         filename = asmpistr(filename, &cfilename, NULL)
82587  *         cdef MPI_Info cinfo = arg_Info(info)
82588  */
82589   __pyx_v_cfilename = NULL;
82590 
82591   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":64
82592  *         """
82593  *         cdef char *cfilename = NULL
82594  *         filename = asmpistr(filename, &cfilename, NULL)             # <<<<<<<<<<<<<<
82595  *         cdef MPI_Info cinfo = arg_Info(info)
82596  *         cdef File file = <File>cls()
82597  */
82598   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_filename, (&__pyx_v_cfilename), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82599   __Pyx_GOTREF(__pyx_t_1);
82600   __Pyx_DECREF(__pyx_v_filename);
82601   __pyx_v_filename = __pyx_t_1;
82602   __pyx_t_1 = 0;
82603 
82604   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":65
82605  *         cdef char *cfilename = NULL
82606  *         filename = asmpistr(filename, &cfilename, NULL)
82607  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
82608  *         cdef File file = <File>cls()
82609  *         with nogil: CHKERR( MPI_File_open(
82610  */
82611   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
82612 
82613   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":66
82614  *         filename = asmpistr(filename, &cfilename, NULL)
82615  *         cdef MPI_Info cinfo = arg_Info(info)
82616  *         cdef File file = <File>cls()             # <<<<<<<<<<<<<<
82617  *         with nogil: CHKERR( MPI_File_open(
82618  *             comm.ob_mpi, cfilename, amode, cinfo, &file.ob_mpi) )
82619  */
82620   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82621   __Pyx_GOTREF(__pyx_t_1);
82622   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_t_1)));
82623   __pyx_v_file = ((struct PyMPIFileObject *)__pyx_t_1);
82624   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
82625 
82626   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":67
82627  *         cdef MPI_Info cinfo = arg_Info(info)
82628  *         cdef File file = <File>cls()
82629  *         with nogil: CHKERR( MPI_File_open(             # <<<<<<<<<<<<<<
82630  *             comm.ob_mpi, cfilename, amode, cinfo, &file.ob_mpi) )
82631  *         return file
82632  */
82633   {
82634       #ifdef WITH_THREAD
82635       PyThreadState *_save = NULL;
82636       #endif
82637       Py_UNBLOCK_THREADS
82638       /*try:*/ {
82639 
82640         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":68
82641  *         cdef File file = <File>cls()
82642  *         with nogil: CHKERR( MPI_File_open(
82643  *             comm.ob_mpi, cfilename, amode, cinfo, &file.ob_mpi) )             # <<<<<<<<<<<<<<
82644  *         return file
82645  *
82646  */
82647         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_open(__pyx_v_comm->__pyx_base.ob_mpi, __pyx_v_cfilename, __pyx_v_amode, __pyx_v_cinfo, (&__pyx_v_file->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L7;}
82648       }
82649 
82650       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":67
82651  *         cdef MPI_Info cinfo = arg_Info(info)
82652  *         cdef File file = <File>cls()
82653  *         with nogil: CHKERR( MPI_File_open(             # <<<<<<<<<<<<<<
82654  *             comm.ob_mpi, cfilename, amode, cinfo, &file.ob_mpi) )
82655  *         return file
82656  */
82657       /*finally:*/ {
82658         int __pyx_why;
82659         __pyx_why = 0; goto __pyx_L8;
82660         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
82661         __pyx_L8:;
82662         Py_BLOCK_THREADS
82663         switch (__pyx_why) {
82664           case 4: goto __pyx_L1_error;
82665         }
82666       }
82667   }
82668 
82669   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":69
82670  *         with nogil: CHKERR( MPI_File_open(
82671  *             comm.ob_mpi, cfilename, amode, cinfo, &file.ob_mpi) )
82672  *         return file             # <<<<<<<<<<<<<<
82673  *
82674  *     # [9.2.2] Closing a File
82675  */
82676   __Pyx_XDECREF(__pyx_r);
82677   __Pyx_INCREF(((PyObject *)__pyx_v_file));
82678   __pyx_r = ((PyObject *)__pyx_v_file);
82679   goto __pyx_L0;
82680 
82681   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82682   goto __pyx_L0;
82683   __pyx_L1_error:;
82684   __Pyx_XDECREF(__pyx_t_1);
82685   __Pyx_AddTraceback("mpi4py.MPI.File.Open", __pyx_clineno, __pyx_lineno, __pyx_filename);
82686   __pyx_r = NULL;
82687   __pyx_L0:;
82688   __Pyx_XDECREF((PyObject *)__pyx_v_file);
82689   __Pyx_XDECREF(__pyx_v_filename);
82690   __Pyx_XGIVEREF(__pyx_r);
82691   __Pyx_RefNannyFinishContext();
82692   return __pyx_r;
82693 }
82694 
82695 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":74
82696  *     # ----------------------
82697  *
82698  *     def Close(self):             # <<<<<<<<<<<<<<
82699  *         """
82700  *         Close a file
82701  */
82702 
82703 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5Close(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82704 static char __pyx_doc_6mpi4py_3MPI_4File_5Close[] = "File.Close(self)\n\n        Close a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_5Close(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)82705 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5Close(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82706   PyObject *__pyx_r = NULL;
82707   __Pyx_RefNannyDeclarations
82708   int __pyx_t_1;
82709   int __pyx_lineno = 0;
82710   const char *__pyx_filename = NULL;
82711   int __pyx_clineno = 0;
82712   __Pyx_RefNannySetupContext("Close");
82713   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
82714     __Pyx_RaiseArgtupleInvalid("Close", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
82715   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Close", 0))) return NULL;
82716 
82717   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":78
82718  *         Close a file
82719  *         """
82720  *         with nogil: CHKERR( MPI_File_close(&self.ob_mpi) )             # <<<<<<<<<<<<<<
82721  *
82722  *     # [9.2.3] Deleting a File
82723  */
82724   {
82725       #ifdef WITH_THREAD
82726       PyThreadState *_save = NULL;
82727       #endif
82728       Py_UNBLOCK_THREADS
82729       /*try:*/ {
82730         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_close((&((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L6;}
82731       }
82732       /*finally:*/ {
82733         int __pyx_why;
82734         __pyx_why = 0; goto __pyx_L7;
82735         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
82736         __pyx_L7:;
82737         Py_BLOCK_THREADS
82738         switch (__pyx_why) {
82739           case 4: goto __pyx_L1_error;
82740         }
82741       }
82742   }
82743 
82744   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82745   goto __pyx_L0;
82746   __pyx_L1_error:;
82747   __Pyx_AddTraceback("mpi4py.MPI.File.Close", __pyx_clineno, __pyx_lineno, __pyx_filename);
82748   __pyx_r = NULL;
82749   __pyx_L0:;
82750   __Pyx_XGIVEREF(__pyx_r);
82751   __Pyx_RefNannyFinishContext();
82752   return __pyx_r;
82753 }
82754 
82755 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":84
82756  *
82757  *     @classmethod
82758  *     def Delete(cls, filename, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
82759  *         """
82760  *         Delete a file
82761  */
82762 
82763 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_6Delete(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82764 static char __pyx_doc_6mpi4py_3MPI_4File_6Delete[] = "File.Delete(type cls, filename, Info info=INFO_NULL)\n\n        Delete a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_6Delete(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)82765 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_6Delete(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82766   PyObject *__pyx_v_filename = 0;
82767   struct PyMPIInfoObject *__pyx_v_info = 0;
82768   char *__pyx_v_cfilename;
82769   MPI_Info __pyx_v_cinfo;
82770   PyObject *__pyx_r = NULL;
82771   __Pyx_RefNannyDeclarations
82772   PyObject *__pyx_t_1 = NULL;
82773   int __pyx_t_2;
82774   int __pyx_lineno = 0;
82775   const char *__pyx_filename = NULL;
82776   int __pyx_clineno = 0;
82777   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filename,&__pyx_n_s__info,0};
82778   __Pyx_RefNannySetupContext("Delete");
82779   {
82780     PyObject* values[2] = {0,0};
82781     values[1] = (PyObject *)__pyx_k_106;
82782     if (unlikely(__pyx_kwds)) {
82783       Py_ssize_t kw_args;
82784       switch (PyTuple_GET_SIZE(__pyx_args)) {
82785         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
82786         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82787         case  0: break;
82788         default: goto __pyx_L5_argtuple_error;
82789       }
82790       kw_args = PyDict_Size(__pyx_kwds);
82791       switch (PyTuple_GET_SIZE(__pyx_args)) {
82792         case  0:
82793         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename);
82794         if (likely(values[0])) kw_args--;
82795         else goto __pyx_L5_argtuple_error;
82796         case  1:
82797         if (kw_args > 0) {
82798           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
82799           if (value) { values[1] = value; kw_args--; }
82800         }
82801       }
82802       if (unlikely(kw_args > 0)) {
82803         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Delete") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82804       }
82805     } else {
82806       switch (PyTuple_GET_SIZE(__pyx_args)) {
82807         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
82808         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82809         break;
82810         default: goto __pyx_L5_argtuple_error;
82811       }
82812     }
82813     __pyx_v_filename = values[0];
82814     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
82815   }
82816   goto __pyx_L4_argument_unpacking_done;
82817   __pyx_L5_argtuple_error:;
82818   __Pyx_RaiseArgtupleInvalid("Delete", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82819   __pyx_L3_error:;
82820   __Pyx_AddTraceback("mpi4py.MPI.File.Delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
82821   __Pyx_RefNannyFinishContext();
82822   return NULL;
82823   __pyx_L4_argument_unpacking_done:;
82824   __Pyx_INCREF(__pyx_v_filename);
82825   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82826 
82827   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":88
82828  *         Delete a file
82829  *         """
82830  *         cdef char *cfilename = NULL             # <<<<<<<<<<<<<<
82831  *         filename = asmpistr(filename, &cfilename, NULL)
82832  *         cdef MPI_Info cinfo = arg_Info(info)
82833  */
82834   __pyx_v_cfilename = NULL;
82835 
82836   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":89
82837  *         """
82838  *         cdef char *cfilename = NULL
82839  *         filename = asmpistr(filename, &cfilename, NULL)             # <<<<<<<<<<<<<<
82840  *         cdef MPI_Info cinfo = arg_Info(info)
82841  *         with nogil: CHKERR( MPI_File_delete(cfilename, cinfo) )
82842  */
82843   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_filename, (&__pyx_v_cfilename), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
82844   __Pyx_GOTREF(__pyx_t_1);
82845   __Pyx_DECREF(__pyx_v_filename);
82846   __pyx_v_filename = __pyx_t_1;
82847   __pyx_t_1 = 0;
82848 
82849   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":90
82850  *         cdef char *cfilename = NULL
82851  *         filename = asmpistr(filename, &cfilename, NULL)
82852  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
82853  *         with nogil: CHKERR( MPI_File_delete(cfilename, cinfo) )
82854  *
82855  */
82856   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
82857 
82858   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":91
82859  *         filename = asmpistr(filename, &cfilename, NULL)
82860  *         cdef MPI_Info cinfo = arg_Info(info)
82861  *         with nogil: CHKERR( MPI_File_delete(cfilename, cinfo) )             # <<<<<<<<<<<<<<
82862  *
82863  *     # [9.2.4] Resizing a File
82864  */
82865   {
82866       #ifdef WITH_THREAD
82867       PyThreadState *_save = NULL;
82868       #endif
82869       Py_UNBLOCK_THREADS
82870       /*try:*/ {
82871         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_delete(__pyx_v_cfilename, __pyx_v_cinfo)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L7;}
82872       }
82873       /*finally:*/ {
82874         int __pyx_why;
82875         __pyx_why = 0; goto __pyx_L8;
82876         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
82877         __pyx_L8:;
82878         Py_BLOCK_THREADS
82879         switch (__pyx_why) {
82880           case 4: goto __pyx_L1_error;
82881         }
82882       }
82883   }
82884 
82885   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82886   goto __pyx_L0;
82887   __pyx_L1_error:;
82888   __Pyx_XDECREF(__pyx_t_1);
82889   __Pyx_AddTraceback("mpi4py.MPI.File.Delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
82890   __pyx_r = NULL;
82891   __pyx_L0:;
82892   __Pyx_XDECREF(__pyx_v_filename);
82893   __Pyx_XGIVEREF(__pyx_r);
82894   __Pyx_RefNannyFinishContext();
82895   return __pyx_r;
82896 }
82897 
82898 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":96
82899  *     # -----------------------
82900  *
82901  *     def Set_size(self, Offset size):             # <<<<<<<<<<<<<<
82902  *         """
82903  *         Sets the file size
82904  */
82905 
82906 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_7Set_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
82907 static char __pyx_doc_6mpi4py_3MPI_4File_7Set_size[] = "File.Set_size(self, Offset size)\n\n        Sets the file size\n        ";
__pyx_pf_6mpi4py_3MPI_4File_7Set_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)82908 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_7Set_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82909   MPI_Offset __pyx_v_size;
82910   PyObject *__pyx_r = NULL;
82911   __Pyx_RefNannyDeclarations
82912   int __pyx_t_1;
82913   int __pyx_lineno = 0;
82914   const char *__pyx_filename = NULL;
82915   int __pyx_clineno = 0;
82916   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,0};
82917   __Pyx_RefNannySetupContext("Set_size");
82918   {
82919     PyObject* values[1] = {0};
82920     if (unlikely(__pyx_kwds)) {
82921       Py_ssize_t kw_args;
82922       switch (PyTuple_GET_SIZE(__pyx_args)) {
82923         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82924         case  0: break;
82925         default: goto __pyx_L5_argtuple_error;
82926       }
82927       kw_args = PyDict_Size(__pyx_kwds);
82928       switch (PyTuple_GET_SIZE(__pyx_args)) {
82929         case  0:
82930         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
82931         if (likely(values[0])) kw_args--;
82932         else goto __pyx_L5_argtuple_error;
82933       }
82934       if (unlikely(kw_args > 0)) {
82935         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_size") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82936       }
82937     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
82938       goto __pyx_L5_argtuple_error;
82939     } else {
82940       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
82941     }
82942     __pyx_v_size = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_size == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82943   }
82944   goto __pyx_L4_argument_unpacking_done;
82945   __pyx_L5_argtuple_error:;
82946   __Pyx_RaiseArgtupleInvalid("Set_size", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
82947   __pyx_L3_error:;
82948   __Pyx_AddTraceback("mpi4py.MPI.File.Set_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
82949   __Pyx_RefNannyFinishContext();
82950   return NULL;
82951   __pyx_L4_argument_unpacking_done:;
82952 
82953   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":100
82954  *         Sets the file size
82955  *         """
82956  *         with nogil: CHKERR( MPI_File_set_size(self.ob_mpi, size) )             # <<<<<<<<<<<<<<
82957  *
82958  *     # [9.2.5] Preallocating Space for a File
82959  */
82960   {
82961       #ifdef WITH_THREAD
82962       PyThreadState *_save = NULL;
82963       #endif
82964       Py_UNBLOCK_THREADS
82965       /*try:*/ {
82966         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_set_size(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_size)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L7;}
82967       }
82968       /*finally:*/ {
82969         int __pyx_why;
82970         __pyx_why = 0; goto __pyx_L8;
82971         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
82972         __pyx_L8:;
82973         Py_BLOCK_THREADS
82974         switch (__pyx_why) {
82975           case 4: goto __pyx_L1_error;
82976         }
82977       }
82978   }
82979 
82980   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
82981   goto __pyx_L0;
82982   __pyx_L1_error:;
82983   __Pyx_AddTraceback("mpi4py.MPI.File.Set_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
82984   __pyx_r = NULL;
82985   __pyx_L0:;
82986   __Pyx_XGIVEREF(__pyx_r);
82987   __Pyx_RefNannyFinishContext();
82988   return __pyx_r;
82989 }
82990 
82991 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":105
82992  *     # --------------------------------------
82993  *
82994  *     def Preallocate(self, Offset size):             # <<<<<<<<<<<<<<
82995  *         """
82996  *         Preallocate storage space for a file
82997  */
82998 
82999 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_8Preallocate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83000 static char __pyx_doc_6mpi4py_3MPI_4File_8Preallocate[] = "File.Preallocate(self, Offset size)\n\n        Preallocate storage space for a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_8Preallocate(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83001 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_8Preallocate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83002   MPI_Offset __pyx_v_size;
83003   PyObject *__pyx_r = NULL;
83004   __Pyx_RefNannyDeclarations
83005   int __pyx_t_1;
83006   int __pyx_lineno = 0;
83007   const char *__pyx_filename = NULL;
83008   int __pyx_clineno = 0;
83009   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,0};
83010   __Pyx_RefNannySetupContext("Preallocate");
83011   {
83012     PyObject* values[1] = {0};
83013     if (unlikely(__pyx_kwds)) {
83014       Py_ssize_t kw_args;
83015       switch (PyTuple_GET_SIZE(__pyx_args)) {
83016         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83017         case  0: break;
83018         default: goto __pyx_L5_argtuple_error;
83019       }
83020       kw_args = PyDict_Size(__pyx_kwds);
83021       switch (PyTuple_GET_SIZE(__pyx_args)) {
83022         case  0:
83023         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
83024         if (likely(values[0])) kw_args--;
83025         else goto __pyx_L5_argtuple_error;
83026       }
83027       if (unlikely(kw_args > 0)) {
83028         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Preallocate") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83029       }
83030     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
83031       goto __pyx_L5_argtuple_error;
83032     } else {
83033       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83034     }
83035     __pyx_v_size = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_size == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83036   }
83037   goto __pyx_L4_argument_unpacking_done;
83038   __pyx_L5_argtuple_error:;
83039   __Pyx_RaiseArgtupleInvalid("Preallocate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83040   __pyx_L3_error:;
83041   __Pyx_AddTraceback("mpi4py.MPI.File.Preallocate", __pyx_clineno, __pyx_lineno, __pyx_filename);
83042   __Pyx_RefNannyFinishContext();
83043   return NULL;
83044   __pyx_L4_argument_unpacking_done:;
83045 
83046   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":109
83047  *         Preallocate storage space for a file
83048  *         """
83049  *         with nogil: CHKERR( MPI_File_preallocate(self.ob_mpi, size) )             # <<<<<<<<<<<<<<
83050  *
83051  *     # [9.2.6] Querying the Size of a File
83052  */
83053   {
83054       #ifdef WITH_THREAD
83055       PyThreadState *_save = NULL;
83056       #endif
83057       Py_UNBLOCK_THREADS
83058       /*try:*/ {
83059         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_preallocate(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_size)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L7;}
83060       }
83061       /*finally:*/ {
83062         int __pyx_why;
83063         __pyx_why = 0; goto __pyx_L8;
83064         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
83065         __pyx_L8:;
83066         Py_BLOCK_THREADS
83067         switch (__pyx_why) {
83068           case 4: goto __pyx_L1_error;
83069         }
83070       }
83071   }
83072 
83073   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83074   goto __pyx_L0;
83075   __pyx_L1_error:;
83076   __Pyx_AddTraceback("mpi4py.MPI.File.Preallocate", __pyx_clineno, __pyx_lineno, __pyx_filename);
83077   __pyx_r = NULL;
83078   __pyx_L0:;
83079   __Pyx_XGIVEREF(__pyx_r);
83080   __Pyx_RefNannyFinishContext();
83081   return __pyx_r;
83082 }
83083 
83084 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":113
83085  *     # [9.2.6] Querying the Size of a File
83086  *     # -----------------------------------
83087  *     def Get_size(self):             # <<<<<<<<<<<<<<
83088  *         """
83089  *         Return the file size
83090  */
83091 
83092 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_9Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83093 static char __pyx_doc_6mpi4py_3MPI_4File_9Get_size[] = "File.Get_size(self)\n\n        Return the file size\n        ";
__pyx_pf_6mpi4py_3MPI_4File_9Get_size(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83094 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_9Get_size(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83095   MPI_Offset __pyx_v_size;
83096   PyObject *__pyx_r = NULL;
83097   __Pyx_RefNannyDeclarations
83098   int __pyx_t_1;
83099   PyObject *__pyx_t_2 = NULL;
83100   int __pyx_lineno = 0;
83101   const char *__pyx_filename = NULL;
83102   int __pyx_clineno = 0;
83103   __Pyx_RefNannySetupContext("Get_size");
83104   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
83105     __Pyx_RaiseArgtupleInvalid("Get_size", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
83106   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_size", 0))) return NULL;
83107 
83108   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":117
83109  *         Return the file size
83110  *         """
83111  *         cdef MPI_Offset size = 0             # <<<<<<<<<<<<<<
83112  *         with nogil: CHKERR( MPI_File_get_size(self.ob_mpi, &size) )
83113  *         return size
83114  */
83115   __pyx_v_size = 0;
83116 
83117   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":118
83118  *         """
83119  *         cdef MPI_Offset size = 0
83120  *         with nogil: CHKERR( MPI_File_get_size(self.ob_mpi, &size) )             # <<<<<<<<<<<<<<
83121  *         return size
83122  *
83123  */
83124   {
83125       #ifdef WITH_THREAD
83126       PyThreadState *_save = NULL;
83127       #endif
83128       Py_UNBLOCK_THREADS
83129       /*try:*/ {
83130         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_size(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L6;}
83131       }
83132       /*finally:*/ {
83133         int __pyx_why;
83134         __pyx_why = 0; goto __pyx_L7;
83135         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
83136         __pyx_L7:;
83137         Py_BLOCK_THREADS
83138         switch (__pyx_why) {
83139           case 4: goto __pyx_L1_error;
83140         }
83141       }
83142   }
83143 
83144   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":119
83145  *         cdef MPI_Offset size = 0
83146  *         with nogil: CHKERR( MPI_File_get_size(self.ob_mpi, &size) )
83147  *         return size             # <<<<<<<<<<<<<<
83148  *
83149  *     property size:
83150  */
83151   __Pyx_XDECREF(__pyx_r);
83152   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Offset(__pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83153   __Pyx_GOTREF(__pyx_t_2);
83154   __pyx_r = __pyx_t_2;
83155   __pyx_t_2 = 0;
83156   goto __pyx_L0;
83157 
83158   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83159   goto __pyx_L0;
83160   __pyx_L1_error:;
83161   __Pyx_XDECREF(__pyx_t_2);
83162   __Pyx_AddTraceback("mpi4py.MPI.File.Get_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
83163   __pyx_r = NULL;
83164   __pyx_L0:;
83165   __Pyx_XGIVEREF(__pyx_r);
83166   __Pyx_RefNannyFinishContext();
83167   return __pyx_r;
83168 }
83169 
83170 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":123
83171  *     property size:
83172  *         """file size"""
83173  *         def __get__(self):             # <<<<<<<<<<<<<<
83174  *             return self.Get_size()
83175  *
83176  */
83177 
83178 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4size___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_4size___get__(PyObject * __pyx_v_self)83179 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4size___get__(PyObject *__pyx_v_self) {
83180   PyObject *__pyx_r = NULL;
83181   __Pyx_RefNannyDeclarations
83182   PyObject *__pyx_t_1 = NULL;
83183   PyObject *__pyx_t_2 = NULL;
83184   int __pyx_lineno = 0;
83185   const char *__pyx_filename = NULL;
83186   int __pyx_clineno = 0;
83187   __Pyx_RefNannySetupContext("__get__");
83188 
83189   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":124
83190  *         """file size"""
83191  *         def __get__(self):
83192  *             return self.Get_size()             # <<<<<<<<<<<<<<
83193  *
83194  *     # [9.2.7] Querying File Parameters
83195  */
83196   __Pyx_XDECREF(__pyx_r);
83197   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83198   __Pyx_GOTREF(__pyx_t_1);
83199   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83200   __Pyx_GOTREF(__pyx_t_2);
83201   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83202   __pyx_r = __pyx_t_2;
83203   __pyx_t_2 = 0;
83204   goto __pyx_L0;
83205 
83206   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83207   goto __pyx_L0;
83208   __pyx_L1_error:;
83209   __Pyx_XDECREF(__pyx_t_1);
83210   __Pyx_XDECREF(__pyx_t_2);
83211   __Pyx_AddTraceback("mpi4py.MPI.File.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
83212   __pyx_r = NULL;
83213   __pyx_L0:;
83214   __Pyx_XGIVEREF(__pyx_r);
83215   __Pyx_RefNannyFinishContext();
83216   return __pyx_r;
83217 }
83218 
83219 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":129
83220  *     # --------------------------------
83221  *
83222  *     def Get_group(self):             # <<<<<<<<<<<<<<
83223  *         """
83224  *         Return the group of processes
83225  */
83226 
83227 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_10Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83228 static char __pyx_doc_6mpi4py_3MPI_4File_10Get_group[] = "File.Get_group(self)\n\n        Return the group of processes\n        that opened the file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_10Get_group(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83229 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_10Get_group(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83230   struct PyMPIGroupObject *__pyx_v_group = 0;
83231   PyObject *__pyx_r = NULL;
83232   __Pyx_RefNannyDeclarations
83233   PyObject *__pyx_t_1 = NULL;
83234   int __pyx_t_2;
83235   int __pyx_lineno = 0;
83236   const char *__pyx_filename = NULL;
83237   int __pyx_clineno = 0;
83238   __Pyx_RefNannySetupContext("Get_group");
83239   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
83240     __Pyx_RaiseArgtupleInvalid("Get_group", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
83241   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_group", 0))) return NULL;
83242 
83243   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":134
83244  *         that opened the file
83245  *         """
83246  *         cdef Group group = <Group>Group.__new__(Group)             # <<<<<<<<<<<<<<
83247  *         with nogil: CHKERR( MPI_File_get_group(self.ob_mpi, &group.ob_mpi) )
83248  *         return group
83249  */
83250   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Group)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83251   __Pyx_GOTREF(__pyx_t_1);
83252   __Pyx_INCREF(((PyObject *)((struct PyMPIGroupObject *)__pyx_t_1)));
83253   __pyx_v_group = ((struct PyMPIGroupObject *)__pyx_t_1);
83254   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83255 
83256   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":135
83257  *         """
83258  *         cdef Group group = <Group>Group.__new__(Group)
83259  *         with nogil: CHKERR( MPI_File_get_group(self.ob_mpi, &group.ob_mpi) )             # <<<<<<<<<<<<<<
83260  *         return group
83261  *
83262  */
83263   {
83264       #ifdef WITH_THREAD
83265       PyThreadState *_save = NULL;
83266       #endif
83267       Py_UNBLOCK_THREADS
83268       /*try:*/ {
83269         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_group(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_group->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L6;}
83270       }
83271       /*finally:*/ {
83272         int __pyx_why;
83273         __pyx_why = 0; goto __pyx_L7;
83274         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
83275         __pyx_L7:;
83276         Py_BLOCK_THREADS
83277         switch (__pyx_why) {
83278           case 4: goto __pyx_L1_error;
83279         }
83280       }
83281   }
83282 
83283   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":136
83284  *         cdef Group group = <Group>Group.__new__(Group)
83285  *         with nogil: CHKERR( MPI_File_get_group(self.ob_mpi, &group.ob_mpi) )
83286  *         return group             # <<<<<<<<<<<<<<
83287  *
83288  *     property group:
83289  */
83290   __Pyx_XDECREF(__pyx_r);
83291   __Pyx_INCREF(((PyObject *)__pyx_v_group));
83292   __pyx_r = ((PyObject *)__pyx_v_group);
83293   goto __pyx_L0;
83294 
83295   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83296   goto __pyx_L0;
83297   __pyx_L1_error:;
83298   __Pyx_XDECREF(__pyx_t_1);
83299   __Pyx_AddTraceback("mpi4py.MPI.File.Get_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
83300   __pyx_r = NULL;
83301   __pyx_L0:;
83302   __Pyx_XDECREF((PyObject *)__pyx_v_group);
83303   __Pyx_XGIVEREF(__pyx_r);
83304   __Pyx_RefNannyFinishContext();
83305   return __pyx_r;
83306 }
83307 
83308 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":140
83309  *     property group:
83310  *         """file group"""
83311  *         def __get__(self):             # <<<<<<<<<<<<<<
83312  *             return self.Get_group()
83313  *
83314  */
83315 
83316 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5group___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_5group___get__(PyObject * __pyx_v_self)83317 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5group___get__(PyObject *__pyx_v_self) {
83318   PyObject *__pyx_r = NULL;
83319   __Pyx_RefNannyDeclarations
83320   PyObject *__pyx_t_1 = NULL;
83321   PyObject *__pyx_t_2 = NULL;
83322   int __pyx_lineno = 0;
83323   const char *__pyx_filename = NULL;
83324   int __pyx_clineno = 0;
83325   __Pyx_RefNannySetupContext("__get__");
83326 
83327   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":141
83328  *         """file group"""
83329  *         def __get__(self):
83330  *             return self.Get_group()             # <<<<<<<<<<<<<<
83331  *
83332  *     def Get_amode(self):
83333  */
83334   __Pyx_XDECREF(__pyx_r);
83335   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_group); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83336   __Pyx_GOTREF(__pyx_t_1);
83337   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83338   __Pyx_GOTREF(__pyx_t_2);
83339   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83340   __pyx_r = __pyx_t_2;
83341   __pyx_t_2 = 0;
83342   goto __pyx_L0;
83343 
83344   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83345   goto __pyx_L0;
83346   __pyx_L1_error:;
83347   __Pyx_XDECREF(__pyx_t_1);
83348   __Pyx_XDECREF(__pyx_t_2);
83349   __Pyx_AddTraceback("mpi4py.MPI.File.group.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
83350   __pyx_r = NULL;
83351   __pyx_L0:;
83352   __Pyx_XGIVEREF(__pyx_r);
83353   __Pyx_RefNannyFinishContext();
83354   return __pyx_r;
83355 }
83356 
83357 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":143
83358  *             return self.Get_group()
83359  *
83360  *     def Get_amode(self):             # <<<<<<<<<<<<<<
83361  *         """
83362  *         Return the file access mode
83363  */
83364 
83365 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_11Get_amode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83366 static char __pyx_doc_6mpi4py_3MPI_4File_11Get_amode[] = "File.Get_amode(self)\n\n        Return the file access mode\n        ";
__pyx_pf_6mpi4py_3MPI_4File_11Get_amode(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83367 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_11Get_amode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83368   int __pyx_v_amode;
83369   PyObject *__pyx_r = NULL;
83370   __Pyx_RefNannyDeclarations
83371   int __pyx_t_1;
83372   PyObject *__pyx_t_2 = NULL;
83373   int __pyx_lineno = 0;
83374   const char *__pyx_filename = NULL;
83375   int __pyx_clineno = 0;
83376   __Pyx_RefNannySetupContext("Get_amode");
83377   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
83378     __Pyx_RaiseArgtupleInvalid("Get_amode", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
83379   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_amode", 0))) return NULL;
83380 
83381   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":147
83382  *         Return the file access mode
83383  *         """
83384  *         cdef int amode = 0             # <<<<<<<<<<<<<<
83385  *         with nogil: CHKERR( MPI_File_get_amode(self.ob_mpi, &amode) )
83386  *         return amode
83387  */
83388   __pyx_v_amode = 0;
83389 
83390   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":148
83391  *         """
83392  *         cdef int amode = 0
83393  *         with nogil: CHKERR( MPI_File_get_amode(self.ob_mpi, &amode) )             # <<<<<<<<<<<<<<
83394  *         return amode
83395  *
83396  */
83397   {
83398       #ifdef WITH_THREAD
83399       PyThreadState *_save = NULL;
83400       #endif
83401       Py_UNBLOCK_THREADS
83402       /*try:*/ {
83403         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_amode(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_amode))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L6;}
83404       }
83405       /*finally:*/ {
83406         int __pyx_why;
83407         __pyx_why = 0; goto __pyx_L7;
83408         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
83409         __pyx_L7:;
83410         Py_BLOCK_THREADS
83411         switch (__pyx_why) {
83412           case 4: goto __pyx_L1_error;
83413         }
83414       }
83415   }
83416 
83417   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":149
83418  *         cdef int amode = 0
83419  *         with nogil: CHKERR( MPI_File_get_amode(self.ob_mpi, &amode) )
83420  *         return amode             # <<<<<<<<<<<<<<
83421  *
83422  *     property amode:
83423  */
83424   __Pyx_XDECREF(__pyx_r);
83425   __pyx_t_2 = PyInt_FromLong(__pyx_v_amode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83426   __Pyx_GOTREF(__pyx_t_2);
83427   __pyx_r = __pyx_t_2;
83428   __pyx_t_2 = 0;
83429   goto __pyx_L0;
83430 
83431   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83432   goto __pyx_L0;
83433   __pyx_L1_error:;
83434   __Pyx_XDECREF(__pyx_t_2);
83435   __Pyx_AddTraceback("mpi4py.MPI.File.Get_amode", __pyx_clineno, __pyx_lineno, __pyx_filename);
83436   __pyx_r = NULL;
83437   __pyx_L0:;
83438   __Pyx_XGIVEREF(__pyx_r);
83439   __Pyx_RefNannyFinishContext();
83440   return __pyx_r;
83441 }
83442 
83443 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":153
83444  *     property amode:
83445  *         """file access mode"""
83446  *         def __get__(self):             # <<<<<<<<<<<<<<
83447  *             return self.Get_amode()
83448  *
83449  */
83450 
83451 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5amode___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_5amode___get__(PyObject * __pyx_v_self)83452 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_5amode___get__(PyObject *__pyx_v_self) {
83453   PyObject *__pyx_r = NULL;
83454   __Pyx_RefNannyDeclarations
83455   PyObject *__pyx_t_1 = NULL;
83456   PyObject *__pyx_t_2 = NULL;
83457   int __pyx_lineno = 0;
83458   const char *__pyx_filename = NULL;
83459   int __pyx_clineno = 0;
83460   __Pyx_RefNannySetupContext("__get__");
83461 
83462   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":154
83463  *         """file access mode"""
83464  *         def __get__(self):
83465  *             return self.Get_amode()             # <<<<<<<<<<<<<<
83466  *
83467  *     # [9.2.8] File Info
83468  */
83469   __Pyx_XDECREF(__pyx_r);
83470   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_amode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83471   __Pyx_GOTREF(__pyx_t_1);
83472   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83473   __Pyx_GOTREF(__pyx_t_2);
83474   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83475   __pyx_r = __pyx_t_2;
83476   __pyx_t_2 = 0;
83477   goto __pyx_L0;
83478 
83479   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83480   goto __pyx_L0;
83481   __pyx_L1_error:;
83482   __Pyx_XDECREF(__pyx_t_1);
83483   __Pyx_XDECREF(__pyx_t_2);
83484   __Pyx_AddTraceback("mpi4py.MPI.File.amode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
83485   __pyx_r = NULL;
83486   __pyx_L0:;
83487   __Pyx_XGIVEREF(__pyx_r);
83488   __Pyx_RefNannyFinishContext();
83489   return __pyx_r;
83490 }
83491 
83492 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":159
83493  *     # -----------------
83494  *
83495  *     def Set_info(self, Info info not None):             # <<<<<<<<<<<<<<
83496  *         """
83497  *         Set new values for the hints
83498  */
83499 
83500 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_12Set_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83501 static char __pyx_doc_6mpi4py_3MPI_4File_12Set_info[] = "File.Set_info(self, Info info)\n\n        Set new values for the hints\n        associated with a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_12Set_info(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83502 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_12Set_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83503   struct PyMPIInfoObject *__pyx_v_info = 0;
83504   PyObject *__pyx_r = NULL;
83505   __Pyx_RefNannyDeclarations
83506   int __pyx_t_1;
83507   int __pyx_lineno = 0;
83508   const char *__pyx_filename = NULL;
83509   int __pyx_clineno = 0;
83510   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__info,0};
83511   __Pyx_RefNannySetupContext("Set_info");
83512   {
83513     PyObject* values[1] = {0};
83514     if (unlikely(__pyx_kwds)) {
83515       Py_ssize_t kw_args;
83516       switch (PyTuple_GET_SIZE(__pyx_args)) {
83517         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83518         case  0: break;
83519         default: goto __pyx_L5_argtuple_error;
83520       }
83521       kw_args = PyDict_Size(__pyx_kwds);
83522       switch (PyTuple_GET_SIZE(__pyx_args)) {
83523         case  0:
83524         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
83525         if (likely(values[0])) kw_args--;
83526         else goto __pyx_L5_argtuple_error;
83527       }
83528       if (unlikely(kw_args > 0)) {
83529         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_info") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83530       }
83531     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
83532       goto __pyx_L5_argtuple_error;
83533     } else {
83534       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83535     }
83536     __pyx_v_info = ((struct PyMPIInfoObject *)values[0]);
83537   }
83538   goto __pyx_L4_argument_unpacking_done;
83539   __pyx_L5_argtuple_error:;
83540   __Pyx_RaiseArgtupleInvalid("Set_info", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83541   __pyx_L3_error:;
83542   __Pyx_AddTraceback("mpi4py.MPI.File.Set_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
83543   __Pyx_RefNannyFinishContext();
83544   return NULL;
83545   __pyx_L4_argument_unpacking_done:;
83546   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 0, "info", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83547 
83548   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":164
83549  *         associated with a file
83550  *         """
83551  *         with nogil: CHKERR( MPI_File_set_info(self.ob_mpi, info.ob_mpi) )             # <<<<<<<<<<<<<<
83552  *
83553  *     def Get_info(self):
83554  */
83555   {
83556       #ifdef WITH_THREAD
83557       PyThreadState *_save = NULL;
83558       #endif
83559       Py_UNBLOCK_THREADS
83560       /*try:*/ {
83561         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_set_info(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_info->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L7;}
83562       }
83563       /*finally:*/ {
83564         int __pyx_why;
83565         __pyx_why = 0; goto __pyx_L8;
83566         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
83567         __pyx_L8:;
83568         Py_BLOCK_THREADS
83569         switch (__pyx_why) {
83570           case 4: goto __pyx_L1_error;
83571         }
83572       }
83573   }
83574 
83575   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83576   goto __pyx_L0;
83577   __pyx_L1_error:;
83578   __Pyx_AddTraceback("mpi4py.MPI.File.Set_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
83579   __pyx_r = NULL;
83580   __pyx_L0:;
83581   __Pyx_XGIVEREF(__pyx_r);
83582   __Pyx_RefNannyFinishContext();
83583   return __pyx_r;
83584 }
83585 
83586 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":166
83587  *         with nogil: CHKERR( MPI_File_set_info(self.ob_mpi, info.ob_mpi) )
83588  *
83589  *     def Get_info(self):             # <<<<<<<<<<<<<<
83590  *         """
83591  *         Return the hints for a file that
83592  */
83593 
83594 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_13Get_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83595 static char __pyx_doc_6mpi4py_3MPI_4File_13Get_info[] = "File.Get_info(self)\n\n        Return the hints for a file that\n        are actually being used by MPI\n        ";
__pyx_pf_6mpi4py_3MPI_4File_13Get_info(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83596 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_13Get_info(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83597   struct PyMPIInfoObject *__pyx_v_info = 0;
83598   PyObject *__pyx_r = NULL;
83599   __Pyx_RefNannyDeclarations
83600   PyObject *__pyx_t_1 = NULL;
83601   int __pyx_t_2;
83602   int __pyx_lineno = 0;
83603   const char *__pyx_filename = NULL;
83604   int __pyx_clineno = 0;
83605   __Pyx_RefNannySetupContext("Get_info");
83606   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
83607     __Pyx_RaiseArgtupleInvalid("Get_info", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
83608   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_info", 0))) return NULL;
83609 
83610   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":171
83611  *         are actually being used by MPI
83612  *         """
83613  *         cdef Info info = <Info>Info.__new__(Info)             # <<<<<<<<<<<<<<
83614  *         with nogil: CHKERR( MPI_File_get_info(self.ob_mpi, &info.ob_mpi) )
83615  *         return info
83616  */
83617   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Info)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83618   __Pyx_GOTREF(__pyx_t_1);
83619   __Pyx_INCREF(((PyObject *)((struct PyMPIInfoObject *)__pyx_t_1)));
83620   __pyx_v_info = ((struct PyMPIInfoObject *)__pyx_t_1);
83621   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83622 
83623   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":172
83624  *         """
83625  *         cdef Info info = <Info>Info.__new__(Info)
83626  *         with nogil: CHKERR( MPI_File_get_info(self.ob_mpi, &info.ob_mpi) )             # <<<<<<<<<<<<<<
83627  *         return info
83628  *
83629  */
83630   {
83631       #ifdef WITH_THREAD
83632       PyThreadState *_save = NULL;
83633       #endif
83634       Py_UNBLOCK_THREADS
83635       /*try:*/ {
83636         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_info(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_info->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L6;}
83637       }
83638       /*finally:*/ {
83639         int __pyx_why;
83640         __pyx_why = 0; goto __pyx_L7;
83641         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
83642         __pyx_L7:;
83643         Py_BLOCK_THREADS
83644         switch (__pyx_why) {
83645           case 4: goto __pyx_L1_error;
83646         }
83647       }
83648   }
83649 
83650   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":173
83651  *         cdef Info info = <Info>Info.__new__(Info)
83652  *         with nogil: CHKERR( MPI_File_get_info(self.ob_mpi, &info.ob_mpi) )
83653  *         return info             # <<<<<<<<<<<<<<
83654  *
83655  *     property info:
83656  */
83657   __Pyx_XDECREF(__pyx_r);
83658   __Pyx_INCREF(((PyObject *)__pyx_v_info));
83659   __pyx_r = ((PyObject *)__pyx_v_info);
83660   goto __pyx_L0;
83661 
83662   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83663   goto __pyx_L0;
83664   __pyx_L1_error:;
83665   __Pyx_XDECREF(__pyx_t_1);
83666   __Pyx_AddTraceback("mpi4py.MPI.File.Get_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
83667   __pyx_r = NULL;
83668   __pyx_L0:;
83669   __Pyx_XDECREF((PyObject *)__pyx_v_info);
83670   __Pyx_XGIVEREF(__pyx_r);
83671   __Pyx_RefNannyFinishContext();
83672   return __pyx_r;
83673 }
83674 
83675 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":177
83676  *     property info:
83677  *         """file info"""
83678  *         def __get__(self):             # <<<<<<<<<<<<<<
83679  *             return self.Get_info()
83680  *         def __set__(self, info):
83681  */
83682 
83683 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4info___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_4info___get__(PyObject * __pyx_v_self)83684 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_4info___get__(PyObject *__pyx_v_self) {
83685   PyObject *__pyx_r = NULL;
83686   __Pyx_RefNannyDeclarations
83687   PyObject *__pyx_t_1 = NULL;
83688   PyObject *__pyx_t_2 = NULL;
83689   int __pyx_lineno = 0;
83690   const char *__pyx_filename = NULL;
83691   int __pyx_clineno = 0;
83692   __Pyx_RefNannySetupContext("__get__");
83693 
83694   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":178
83695  *         """file info"""
83696  *         def __get__(self):
83697  *             return self.Get_info()             # <<<<<<<<<<<<<<
83698  *         def __set__(self, info):
83699  *             self.Set_info(info)
83700  */
83701   __Pyx_XDECREF(__pyx_r);
83702   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83703   __Pyx_GOTREF(__pyx_t_1);
83704   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83705   __Pyx_GOTREF(__pyx_t_2);
83706   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83707   __pyx_r = __pyx_t_2;
83708   __pyx_t_2 = 0;
83709   goto __pyx_L0;
83710 
83711   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
83712   goto __pyx_L0;
83713   __pyx_L1_error:;
83714   __Pyx_XDECREF(__pyx_t_1);
83715   __Pyx_XDECREF(__pyx_t_2);
83716   __Pyx_AddTraceback("mpi4py.MPI.File.info.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
83717   __pyx_r = NULL;
83718   __pyx_L0:;
83719   __Pyx_XGIVEREF(__pyx_r);
83720   __Pyx_RefNannyFinishContext();
83721   return __pyx_r;
83722 }
83723 
83724 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":179
83725  *         def __get__(self):
83726  *             return self.Get_info()
83727  *         def __set__(self, info):             # <<<<<<<<<<<<<<
83728  *             self.Set_info(info)
83729  *
83730  */
83731 
83732 static int __pyx_pf_6mpi4py_3MPI_4File_4info_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_info); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_4info_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_info)83733 static int __pyx_pf_6mpi4py_3MPI_4File_4info_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_info) {
83734   int __pyx_r;
83735   __Pyx_RefNannyDeclarations
83736   PyObject *__pyx_t_1 = NULL;
83737   PyObject *__pyx_t_2 = NULL;
83738   PyObject *__pyx_t_3 = NULL;
83739   int __pyx_lineno = 0;
83740   const char *__pyx_filename = NULL;
83741   int __pyx_clineno = 0;
83742   __Pyx_RefNannySetupContext("__set__");
83743 
83744   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":180
83745  *             return self.Get_info()
83746  *         def __set__(self, info):
83747  *             self.Set_info(info)             # <<<<<<<<<<<<<<
83748  *
83749  *     # [9.3] File Views
83750  */
83751   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83752   __Pyx_GOTREF(__pyx_t_1);
83753   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83754   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
83755   __Pyx_INCREF(__pyx_v_info);
83756   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_info);
83757   __Pyx_GIVEREF(__pyx_v_info);
83758   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83759   __Pyx_GOTREF(__pyx_t_3);
83760   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
83761   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
83762   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
83763 
83764   __pyx_r = 0;
83765   goto __pyx_L0;
83766   __pyx_L1_error:;
83767   __Pyx_XDECREF(__pyx_t_1);
83768   __Pyx_XDECREF(__pyx_t_2);
83769   __Pyx_XDECREF(__pyx_t_3);
83770   __Pyx_AddTraceback("mpi4py.MPI.File.info.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
83771   __pyx_r = -1;
83772   __pyx_L0:;
83773   __Pyx_RefNannyFinishContext();
83774   return __pyx_r;
83775 }
83776 
83777 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":185
83778  *     # ----------------
83779  *
83780  *     def Set_view(self, Offset disp=0,             # <<<<<<<<<<<<<<
83781  *                  Datatype etype=None, Datatype filetype=None,
83782  *                  object datarep=None, Info info=INFO_NULL):
83783  */
83784 
83785 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_14Set_view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
83786 static char __pyx_doc_6mpi4py_3MPI_4File_14Set_view[] = "File.Set_view(self, Offset disp=0, Datatype etype=None, Datatype filetype=None, datarep=None, Info info=INFO_NULL)\n\n        Set the file view\n        ";
__pyx_pf_6mpi4py_3MPI_4File_14Set_view(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)83787 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_14Set_view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
83788   MPI_Offset __pyx_v_disp;
83789   struct PyMPIDatatypeObject *__pyx_v_etype = 0;
83790   struct PyMPIDatatypeObject *__pyx_v_filetype = 0;
83791   PyObject *__pyx_v_datarep = 0;
83792   struct PyMPIInfoObject *__pyx_v_info = 0;
83793   char *__pyx_v_cdatarep;
83794   MPI_Datatype __pyx_v_cetype;
83795   MPI_Datatype __pyx_v_cftype;
83796   MPI_Info __pyx_v_cinfo;
83797   PyObject *__pyx_r = NULL;
83798   __Pyx_RefNannyDeclarations
83799   int __pyx_t_1;
83800   PyObject *__pyx_t_2 = NULL;
83801   int __pyx_t_3;
83802   int __pyx_lineno = 0;
83803   const char *__pyx_filename = NULL;
83804   int __pyx_clineno = 0;
83805   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__disp,&__pyx_n_s__etype,&__pyx_n_s__filetype,&__pyx_n_s__datarep,&__pyx_n_s__info,0};
83806   __Pyx_RefNannySetupContext("Set_view");
83807   {
83808     PyObject* values[5] = {0,0,0,0,0};
83809 
83810     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":186
83811  *
83812  *     def Set_view(self, Offset disp=0,
83813  *                  Datatype etype=None, Datatype filetype=None,             # <<<<<<<<<<<<<<
83814  *                  object datarep=None, Info info=INFO_NULL):
83815  *         """
83816  */
83817     values[1] = (PyObject *)((struct PyMPIDatatypeObject *)Py_None);
83818     values[2] = (PyObject *)((struct PyMPIDatatypeObject *)Py_None);
83819 
83820     /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":187
83821  *     def Set_view(self, Offset disp=0,
83822  *                  Datatype etype=None, Datatype filetype=None,
83823  *                  object datarep=None, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
83824  *         """
83825  *         Set the file view
83826  */
83827     values[3] = ((PyObject *)Py_None);
83828     values[4] = (PyObject *)__pyx_k_107;
83829     if (unlikely(__pyx_kwds)) {
83830       Py_ssize_t kw_args;
83831       switch (PyTuple_GET_SIZE(__pyx_args)) {
83832         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
83833         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
83834         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
83835         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
83836         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83837         case  0: break;
83838         default: goto __pyx_L5_argtuple_error;
83839       }
83840       kw_args = PyDict_Size(__pyx_kwds);
83841       switch (PyTuple_GET_SIZE(__pyx_args)) {
83842         case  0:
83843         if (kw_args > 0) {
83844           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__disp);
83845           if (value) { values[0] = value; kw_args--; }
83846         }
83847         case  1:
83848         if (kw_args > 0) {
83849           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__etype);
83850           if (value) { values[1] = value; kw_args--; }
83851         }
83852         case  2:
83853         if (kw_args > 0) {
83854           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filetype);
83855           if (value) { values[2] = value; kw_args--; }
83856         }
83857         case  3:
83858         if (kw_args > 0) {
83859           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datarep);
83860           if (value) { values[3] = value; kw_args--; }
83861         }
83862         case  4:
83863         if (kw_args > 0) {
83864           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
83865           if (value) { values[4] = value; kw_args--; }
83866         }
83867       }
83868       if (unlikely(kw_args > 0)) {
83869         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_view") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83870       }
83871     } else {
83872       switch (PyTuple_GET_SIZE(__pyx_args)) {
83873         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
83874         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
83875         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
83876         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
83877         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
83878         case  0: break;
83879         default: goto __pyx_L5_argtuple_error;
83880       }
83881     }
83882     if (values[0]) {
83883       __pyx_v_disp = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_disp == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83884     } else {
83885       __pyx_v_disp = ((MPI_Offset)0);
83886     }
83887     __pyx_v_etype = ((struct PyMPIDatatypeObject *)values[1]);
83888     __pyx_v_filetype = ((struct PyMPIDatatypeObject *)values[2]);
83889     __pyx_v_datarep = values[3];
83890     __pyx_v_info = ((struct PyMPIInfoObject *)values[4]);
83891   }
83892   goto __pyx_L4_argument_unpacking_done;
83893   __pyx_L5_argtuple_error:;
83894   __Pyx_RaiseArgtupleInvalid("Set_view", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
83895   __pyx_L3_error:;
83896   __Pyx_AddTraceback("mpi4py.MPI.File.Set_view", __pyx_clineno, __pyx_lineno, __pyx_filename);
83897   __Pyx_RefNannyFinishContext();
83898   return NULL;
83899   __pyx_L4_argument_unpacking_done:;
83900   __Pyx_INCREF(__pyx_v_datarep);
83901   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_etype), __pyx_ptype_6mpi4py_3MPI_Datatype, 1, "etype", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83902   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filetype), __pyx_ptype_6mpi4py_3MPI_Datatype, 1, "filetype", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83903   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83904 
83905   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":191
83906  *         Set the file view
83907  *         """
83908  *         cdef char *cdatarep = b"native"             # <<<<<<<<<<<<<<
83909  *         if datarep is not None: datarep = asmpistr(datarep, &cdatarep, NULL)
83910  *         cdef MPI_Datatype cetype = MPI_BYTE
83911  */
83912   __pyx_v_cdatarep = __pyx_k__native;
83913 
83914   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":192
83915  *         """
83916  *         cdef char *cdatarep = b"native"
83917  *         if datarep is not None: datarep = asmpistr(datarep, &cdatarep, NULL)             # <<<<<<<<<<<<<<
83918  *         cdef MPI_Datatype cetype = MPI_BYTE
83919  *         if etype is not None: cetype = etype.ob_mpi
83920  */
83921   __pyx_t_1 = (__pyx_v_datarep != Py_None);
83922   if (__pyx_t_1) {
83923     __pyx_t_2 = __pyx_f_6mpi4py_3MPI_asmpistr(__pyx_v_datarep, (&__pyx_v_cdatarep), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
83924     __Pyx_GOTREF(__pyx_t_2);
83925     __Pyx_DECREF(__pyx_v_datarep);
83926     __pyx_v_datarep = __pyx_t_2;
83927     __pyx_t_2 = 0;
83928     goto __pyx_L6;
83929   }
83930   __pyx_L6:;
83931 
83932   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":193
83933  *         cdef char *cdatarep = b"native"
83934  *         if datarep is not None: datarep = asmpistr(datarep, &cdatarep, NULL)
83935  *         cdef MPI_Datatype cetype = MPI_BYTE             # <<<<<<<<<<<<<<
83936  *         if etype is not None: cetype = etype.ob_mpi
83937  *         cdef MPI_Datatype cftype = cetype
83938  */
83939   __pyx_v_cetype = MPI_BYTE;
83940 
83941   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":194
83942  *         if datarep is not None: datarep = asmpistr(datarep, &cdatarep, NULL)
83943  *         cdef MPI_Datatype cetype = MPI_BYTE
83944  *         if etype is not None: cetype = etype.ob_mpi             # <<<<<<<<<<<<<<
83945  *         cdef MPI_Datatype cftype = cetype
83946  *         if filetype is not None: cftype = filetype.ob_mpi
83947  */
83948   __pyx_t_1 = (((PyObject *)__pyx_v_etype) != Py_None);
83949   if (__pyx_t_1) {
83950     __pyx_v_cetype = __pyx_v_etype->ob_mpi;
83951     goto __pyx_L7;
83952   }
83953   __pyx_L7:;
83954 
83955   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":195
83956  *         cdef MPI_Datatype cetype = MPI_BYTE
83957  *         if etype is not None: cetype = etype.ob_mpi
83958  *         cdef MPI_Datatype cftype = cetype             # <<<<<<<<<<<<<<
83959  *         if filetype is not None: cftype = filetype.ob_mpi
83960  *         cdef MPI_Info cinfo = arg_Info(info)
83961  */
83962   __pyx_v_cftype = __pyx_v_cetype;
83963 
83964   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":196
83965  *         if etype is not None: cetype = etype.ob_mpi
83966  *         cdef MPI_Datatype cftype = cetype
83967  *         if filetype is not None: cftype = filetype.ob_mpi             # <<<<<<<<<<<<<<
83968  *         cdef MPI_Info cinfo = arg_Info(info)
83969  *         with nogil: CHKERR( MPI_File_set_view(
83970  */
83971   __pyx_t_1 = (((PyObject *)__pyx_v_filetype) != Py_None);
83972   if (__pyx_t_1) {
83973     __pyx_v_cftype = __pyx_v_filetype->ob_mpi;
83974     goto __pyx_L8;
83975   }
83976   __pyx_L8:;
83977 
83978   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":197
83979  *         cdef MPI_Datatype cftype = cetype
83980  *         if filetype is not None: cftype = filetype.ob_mpi
83981  *         cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
83982  *         with nogil: CHKERR( MPI_File_set_view(
83983  *             self.ob_mpi, disp, cetype, cftype, cdatarep, cinfo) )
83984  */
83985   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
83986 
83987   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":198
83988  *         if filetype is not None: cftype = filetype.ob_mpi
83989  *         cdef MPI_Info cinfo = arg_Info(info)
83990  *         with nogil: CHKERR( MPI_File_set_view(             # <<<<<<<<<<<<<<
83991  *             self.ob_mpi, disp, cetype, cftype, cdatarep, cinfo) )
83992  *
83993  */
83994   {
83995       #ifdef WITH_THREAD
83996       PyThreadState *_save = NULL;
83997       #endif
83998       Py_UNBLOCK_THREADS
83999       /*try:*/ {
84000 
84001         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":199
84002  *         cdef MPI_Info cinfo = arg_Info(info)
84003  *         with nogil: CHKERR( MPI_File_set_view(
84004  *             self.ob_mpi, disp, cetype, cftype, cdatarep, cinfo) )             # <<<<<<<<<<<<<<
84005  *
84006  *     def Get_view(self):
84007  */
84008         __pyx_t_3 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_set_view(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_disp, __pyx_v_cetype, __pyx_v_cftype, __pyx_v_cdatarep, __pyx_v_cinfo)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L10;}
84009       }
84010 
84011       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":198
84012  *         if filetype is not None: cftype = filetype.ob_mpi
84013  *         cdef MPI_Info cinfo = arg_Info(info)
84014  *         with nogil: CHKERR( MPI_File_set_view(             # <<<<<<<<<<<<<<
84015  *             self.ob_mpi, disp, cetype, cftype, cdatarep, cinfo) )
84016  *
84017  */
84018       /*finally:*/ {
84019         int __pyx_why;
84020         __pyx_why = 0; goto __pyx_L11;
84021         __pyx_L10: __pyx_why = 4; goto __pyx_L11;
84022         __pyx_L11:;
84023         Py_BLOCK_THREADS
84024         switch (__pyx_why) {
84025           case 4: goto __pyx_L1_error;
84026         }
84027       }
84028   }
84029 
84030   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84031   goto __pyx_L0;
84032   __pyx_L1_error:;
84033   __Pyx_XDECREF(__pyx_t_2);
84034   __Pyx_AddTraceback("mpi4py.MPI.File.Set_view", __pyx_clineno, __pyx_lineno, __pyx_filename);
84035   __pyx_r = NULL;
84036   __pyx_L0:;
84037   __Pyx_XDECREF(__pyx_v_datarep);
84038   __Pyx_XGIVEREF(__pyx_r);
84039   __Pyx_RefNannyFinishContext();
84040   return __pyx_r;
84041 }
84042 
84043 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":201
84044  *             self.ob_mpi, disp, cetype, cftype, cdatarep, cinfo) )
84045  *
84046  *     def Get_view(self):             # <<<<<<<<<<<<<<
84047  *         """
84048  *         Return the file view
84049  */
84050 
84051 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_15Get_view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84052 static char __pyx_doc_6mpi4py_3MPI_4File_15Get_view[] = "File.Get_view(self)\n\n        Return the file view\n        ";
__pyx_pf_6mpi4py_3MPI_4File_15Get_view(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84053 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_15Get_view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84054   MPI_Offset __pyx_v_disp;
84055   struct PyMPIDatatypeObject *__pyx_v_etype = 0;
84056   struct PyMPIDatatypeObject *__pyx_v_ftype = 0;
84057   char __pyx_v_cdatarep[(MPI_MAX_DATAREP_STRING + 1)];
84058   PyObject *__pyx_v_datarep = 0;
84059   PyObject *__pyx_r = NULL;
84060   __Pyx_RefNannyDeclarations
84061   PyObject *__pyx_t_1 = NULL;
84062   int __pyx_t_2;
84063   PyObject *__pyx_t_3 = NULL;
84064   int __pyx_lineno = 0;
84065   const char *__pyx_filename = NULL;
84066   int __pyx_clineno = 0;
84067   __Pyx_RefNannySetupContext("Get_view");
84068   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
84069     __Pyx_RaiseArgtupleInvalid("Get_view", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
84070   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_view", 0))) return NULL;
84071 
84072   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":205
84073  *         Return the file view
84074  *         """
84075  *         cdef MPI_Offset disp = 0             # <<<<<<<<<<<<<<
84076  *         cdef Datatype etype = <Datatype>Datatype.__new__(Datatype)
84077  *         cdef Datatype ftype = <Datatype>Datatype.__new__(Datatype)
84078  */
84079   __pyx_v_disp = 0;
84080 
84081   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":206
84082  *         """
84083  *         cdef MPI_Offset disp = 0
84084  *         cdef Datatype etype = <Datatype>Datatype.__new__(Datatype)             # <<<<<<<<<<<<<<
84085  *         cdef Datatype ftype = <Datatype>Datatype.__new__(Datatype)
84086  *         cdef char cdatarep[MPI_MAX_DATAREP_STRING+1]
84087  */
84088   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84089   __Pyx_GOTREF(__pyx_t_1);
84090   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
84091   __pyx_v_etype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
84092   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
84093 
84094   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":207
84095  *         cdef MPI_Offset disp = 0
84096  *         cdef Datatype etype = <Datatype>Datatype.__new__(Datatype)
84097  *         cdef Datatype ftype = <Datatype>Datatype.__new__(Datatype)             # <<<<<<<<<<<<<<
84098  *         cdef char cdatarep[MPI_MAX_DATAREP_STRING+1]
84099  *         with nogil: CHKERR( MPI_File_get_view(
84100  */
84101   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Datatype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84102   __Pyx_GOTREF(__pyx_t_1);
84103   __Pyx_INCREF(((PyObject *)((struct PyMPIDatatypeObject *)__pyx_t_1)));
84104   __pyx_v_ftype = ((struct PyMPIDatatypeObject *)__pyx_t_1);
84105   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
84106 
84107   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":209
84108  *         cdef Datatype ftype = <Datatype>Datatype.__new__(Datatype)
84109  *         cdef char cdatarep[MPI_MAX_DATAREP_STRING+1]
84110  *         with nogil: CHKERR( MPI_File_get_view(             # <<<<<<<<<<<<<<
84111  *             self.ob_mpi, &disp, &etype.ob_mpi, &ftype.ob_mpi, cdatarep) )
84112  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)
84113  */
84114   {
84115       #ifdef WITH_THREAD
84116       PyThreadState *_save = NULL;
84117       #endif
84118       Py_UNBLOCK_THREADS
84119       /*try:*/ {
84120 
84121         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":210
84122  *         cdef char cdatarep[MPI_MAX_DATAREP_STRING+1]
84123  *         with nogil: CHKERR( MPI_File_get_view(
84124  *             self.ob_mpi, &disp, &etype.ob_mpi, &ftype.ob_mpi, cdatarep) )             # <<<<<<<<<<<<<<
84125  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)
84126  *         cdatarep[MPI_MAX_DATAREP_STRING] = 0 # just in case
84127  */
84128         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_view(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_disp), (&__pyx_v_etype->ob_mpi), (&__pyx_v_ftype->ob_mpi), __pyx_v_cdatarep)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L6;}
84129       }
84130 
84131       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":209
84132  *         cdef Datatype ftype = <Datatype>Datatype.__new__(Datatype)
84133  *         cdef char cdatarep[MPI_MAX_DATAREP_STRING+1]
84134  *         with nogil: CHKERR( MPI_File_get_view(             # <<<<<<<<<<<<<<
84135  *             self.ob_mpi, &disp, &etype.ob_mpi, &ftype.ob_mpi, cdatarep) )
84136  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)
84137  */
84138       /*finally:*/ {
84139         int __pyx_why;
84140         __pyx_why = 0; goto __pyx_L7;
84141         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
84142         __pyx_L7:;
84143         Py_BLOCK_THREADS
84144         switch (__pyx_why) {
84145           case 4: goto __pyx_L1_error;
84146         }
84147       }
84148   }
84149 
84150   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":211
84151  *         with nogil: CHKERR( MPI_File_get_view(
84152  *             self.ob_mpi, &disp, &etype.ob_mpi, &ftype.ob_mpi, cdatarep) )
84153  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)             # <<<<<<<<<<<<<<
84154  *         cdatarep[MPI_MAX_DATAREP_STRING] = 0 # just in case
84155  *         cdef object datarep = mpistr(cdatarep)
84156  */
84157   __pyx_f_6mpi4py_3MPI_fix_fileview_Datatype(__pyx_v_etype);
84158   __pyx_f_6mpi4py_3MPI_fix_fileview_Datatype(__pyx_v_ftype);
84159 
84160   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":212
84161  *             self.ob_mpi, &disp, &etype.ob_mpi, &ftype.ob_mpi, cdatarep) )
84162  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)
84163  *         cdatarep[MPI_MAX_DATAREP_STRING] = 0 # just in case             # <<<<<<<<<<<<<<
84164  *         cdef object datarep = mpistr(cdatarep)
84165  *         return (disp, etype, ftype, datarep)
84166  */
84167   (__pyx_v_cdatarep[MPI_MAX_DATAREP_STRING]) = 0;
84168 
84169   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":213
84170  *         fix_fileview_Datatype(etype); fix_fileview_Datatype(ftype)
84171  *         cdatarep[MPI_MAX_DATAREP_STRING] = 0 # just in case
84172  *         cdef object datarep = mpistr(cdatarep)             # <<<<<<<<<<<<<<
84173  *         return (disp, etype, ftype, datarep)
84174  *
84175  */
84176   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_cdatarep); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84177   __Pyx_GOTREF(__pyx_t_1);
84178   __pyx_v_datarep = __pyx_t_1;
84179   __pyx_t_1 = 0;
84180 
84181   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":214
84182  *         cdatarep[MPI_MAX_DATAREP_STRING] = 0 # just in case
84183  *         cdef object datarep = mpistr(cdatarep)
84184  *         return (disp, etype, ftype, datarep)             # <<<<<<<<<<<<<<
84185  *
84186  *     # [9.4] Data Access
84187  */
84188   __Pyx_XDECREF(__pyx_r);
84189   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Offset(__pyx_v_disp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84190   __Pyx_GOTREF(__pyx_t_1);
84191   __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84192   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
84193   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
84194   __Pyx_GIVEREF(__pyx_t_1);
84195   __Pyx_INCREF(((PyObject *)__pyx_v_etype));
84196   PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_etype));
84197   __Pyx_GIVEREF(((PyObject *)__pyx_v_etype));
84198   __Pyx_INCREF(((PyObject *)__pyx_v_ftype));
84199   PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_ftype));
84200   __Pyx_GIVEREF(((PyObject *)__pyx_v_ftype));
84201   __Pyx_INCREF(__pyx_v_datarep);
84202   PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_datarep);
84203   __Pyx_GIVEREF(__pyx_v_datarep);
84204   __pyx_t_1 = 0;
84205   __pyx_r = ((PyObject *)__pyx_t_3);
84206   __pyx_t_3 = 0;
84207   goto __pyx_L0;
84208 
84209   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84210   goto __pyx_L0;
84211   __pyx_L1_error:;
84212   __Pyx_XDECREF(__pyx_t_1);
84213   __Pyx_XDECREF(__pyx_t_3);
84214   __Pyx_AddTraceback("mpi4py.MPI.File.Get_view", __pyx_clineno, __pyx_lineno, __pyx_filename);
84215   __pyx_r = NULL;
84216   __pyx_L0:;
84217   __Pyx_XDECREF((PyObject *)__pyx_v_etype);
84218   __Pyx_XDECREF((PyObject *)__pyx_v_ftype);
84219   __Pyx_XDECREF(__pyx_v_datarep);
84220   __Pyx_XGIVEREF(__pyx_r);
84221   __Pyx_RefNannyFinishContext();
84222   return __pyx_r;
84223 }
84224 
84225 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":222
84226  *     # -----------------------------------------
84227  *
84228  *     def Read_at(self, Offset offset, buf, Status status=None):             # <<<<<<<<<<<<<<
84229  *         """
84230  *         Read using explicit offset
84231  */
84232 
84233 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_16Read_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84234 static char __pyx_doc_6mpi4py_3MPI_4File_16Read_at[] = "File.Read_at(self, Offset offset, buf, Status status=None)\n\n        Read using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_16Read_at(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84235 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_16Read_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84236   MPI_Offset __pyx_v_offset;
84237   PyObject *__pyx_v_buf = 0;
84238   struct PyMPIStatusObject *__pyx_v_status = 0;
84239   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
84240   MPI_Status *__pyx_v_statusp;
84241   PyObject *__pyx_r = NULL;
84242   __Pyx_RefNannyDeclarations
84243   PyObject *__pyx_t_1 = NULL;
84244   int __pyx_t_2;
84245   int __pyx_lineno = 0;
84246   const char *__pyx_filename = NULL;
84247   int __pyx_clineno = 0;
84248   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,&__pyx_n_s__status,0};
84249   __Pyx_RefNannySetupContext("Read_at");
84250   {
84251     PyObject* values[3] = {0,0,0};
84252     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
84253     if (unlikely(__pyx_kwds)) {
84254       Py_ssize_t kw_args;
84255       switch (PyTuple_GET_SIZE(__pyx_args)) {
84256         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84257         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84258         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84259         case  0: break;
84260         default: goto __pyx_L5_argtuple_error;
84261       }
84262       kw_args = PyDict_Size(__pyx_kwds);
84263       switch (PyTuple_GET_SIZE(__pyx_args)) {
84264         case  0:
84265         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
84266         if (likely(values[0])) kw_args--;
84267         else goto __pyx_L5_argtuple_error;
84268         case  1:
84269         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
84270         if (likely(values[1])) kw_args--;
84271         else {
84272           __Pyx_RaiseArgtupleInvalid("Read_at", 0, 2, 3, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84273         }
84274         case  2:
84275         if (kw_args > 0) {
84276           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
84277           if (value) { values[2] = value; kw_args--; }
84278         }
84279       }
84280       if (unlikely(kw_args > 0)) {
84281         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_at") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84282       }
84283     } else {
84284       switch (PyTuple_GET_SIZE(__pyx_args)) {
84285         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84286         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84287         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84288         break;
84289         default: goto __pyx_L5_argtuple_error;
84290       }
84291     }
84292     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84293     __pyx_v_buf = values[1];
84294     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
84295   }
84296   goto __pyx_L4_argument_unpacking_done;
84297   __pyx_L5_argtuple_error:;
84298   __Pyx_RaiseArgtupleInvalid("Read_at", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84299   __pyx_L3_error:;
84300   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
84301   __Pyx_RefNannyFinishContext();
84302   return NULL;
84303   __pyx_L4_argument_unpacking_done:;
84304   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84305 
84306   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":226
84307  *         Read using explicit offset
84308  *         """
84309  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
84310  *         cdef MPI_Status *statusp = arg_Status(status)
84311  *         with nogil: CHKERR( MPI_File_read_at(
84312  */
84313   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84314   __Pyx_GOTREF(__pyx_t_1);
84315   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
84316   __pyx_t_1 = 0;
84317 
84318   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":227
84319  *         """
84320  *         cdef _p_msg_io m = message_io_read(buf)
84321  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
84322  *         with nogil: CHKERR( MPI_File_read_at(
84323  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84324  */
84325   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
84326 
84327   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":228
84328  *         cdef _p_msg_io m = message_io_read(buf)
84329  *         cdef MPI_Status *statusp = arg_Status(status)
84330  *         with nogil: CHKERR( MPI_File_read_at(             # <<<<<<<<<<<<<<
84331  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84332  *
84333  */
84334   {
84335       #ifdef WITH_THREAD
84336       PyThreadState *_save = NULL;
84337       #endif
84338       Py_UNBLOCK_THREADS
84339       /*try:*/ {
84340 
84341         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":229
84342  *         cdef MPI_Status *statusp = arg_Status(status)
84343  *         with nogil: CHKERR( MPI_File_read_at(
84344  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
84345  *
84346  *     def Read_at_all(self, Offset offset, buf, Status status=None):
84347  */
84348         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_at(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L7;}
84349       }
84350 
84351       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":228
84352  *         cdef _p_msg_io m = message_io_read(buf)
84353  *         cdef MPI_Status *statusp = arg_Status(status)
84354  *         with nogil: CHKERR( MPI_File_read_at(             # <<<<<<<<<<<<<<
84355  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84356  *
84357  */
84358       /*finally:*/ {
84359         int __pyx_why;
84360         __pyx_why = 0; goto __pyx_L8;
84361         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
84362         __pyx_L8:;
84363         Py_BLOCK_THREADS
84364         switch (__pyx_why) {
84365           case 4: goto __pyx_L1_error;
84366         }
84367       }
84368   }
84369 
84370   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84371   goto __pyx_L0;
84372   __pyx_L1_error:;
84373   __Pyx_XDECREF(__pyx_t_1);
84374   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
84375   __pyx_r = NULL;
84376   __pyx_L0:;
84377   __Pyx_XDECREF((PyObject *)__pyx_v_m);
84378   __Pyx_XGIVEREF(__pyx_r);
84379   __Pyx_RefNannyFinishContext();
84380   return __pyx_r;
84381 }
84382 
84383 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":231
84384  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84385  *
84386  *     def Read_at_all(self, Offset offset, buf, Status status=None):             # <<<<<<<<<<<<<<
84387  *         """
84388  *         Collective read using explicit offset
84389  */
84390 
84391 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_17Read_at_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84392 static char __pyx_doc_6mpi4py_3MPI_4File_17Read_at_all[] = "File.Read_at_all(self, Offset offset, buf, Status status=None)\n\n        Collective read using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_17Read_at_all(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84393 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_17Read_at_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84394   MPI_Offset __pyx_v_offset;
84395   PyObject *__pyx_v_buf = 0;
84396   struct PyMPIStatusObject *__pyx_v_status = 0;
84397   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
84398   MPI_Status *__pyx_v_statusp;
84399   PyObject *__pyx_r = NULL;
84400   __Pyx_RefNannyDeclarations
84401   PyObject *__pyx_t_1 = NULL;
84402   int __pyx_t_2;
84403   int __pyx_lineno = 0;
84404   const char *__pyx_filename = NULL;
84405   int __pyx_clineno = 0;
84406   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,&__pyx_n_s__status,0};
84407   __Pyx_RefNannySetupContext("Read_at_all");
84408   {
84409     PyObject* values[3] = {0,0,0};
84410     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
84411     if (unlikely(__pyx_kwds)) {
84412       Py_ssize_t kw_args;
84413       switch (PyTuple_GET_SIZE(__pyx_args)) {
84414         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84415         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84416         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84417         case  0: break;
84418         default: goto __pyx_L5_argtuple_error;
84419       }
84420       kw_args = PyDict_Size(__pyx_kwds);
84421       switch (PyTuple_GET_SIZE(__pyx_args)) {
84422         case  0:
84423         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
84424         if (likely(values[0])) kw_args--;
84425         else goto __pyx_L5_argtuple_error;
84426         case  1:
84427         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
84428         if (likely(values[1])) kw_args--;
84429         else {
84430           __Pyx_RaiseArgtupleInvalid("Read_at_all", 0, 2, 3, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84431         }
84432         case  2:
84433         if (kw_args > 0) {
84434           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
84435           if (value) { values[2] = value; kw_args--; }
84436         }
84437       }
84438       if (unlikely(kw_args > 0)) {
84439         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_at_all") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84440       }
84441     } else {
84442       switch (PyTuple_GET_SIZE(__pyx_args)) {
84443         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84444         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84445         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84446         break;
84447         default: goto __pyx_L5_argtuple_error;
84448       }
84449     }
84450     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84451     __pyx_v_buf = values[1];
84452     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
84453   }
84454   goto __pyx_L4_argument_unpacking_done;
84455   __pyx_L5_argtuple_error:;
84456   __Pyx_RaiseArgtupleInvalid("Read_at_all", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84457   __pyx_L3_error:;
84458   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
84459   __Pyx_RefNannyFinishContext();
84460   return NULL;
84461   __pyx_L4_argument_unpacking_done:;
84462   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84463 
84464   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":235
84465  *         Collective read using explicit offset
84466  *         """
84467  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
84468  *         cdef MPI_Status *statusp = arg_Status(status)
84469  *         with nogil: CHKERR( MPI_File_read_at_all(
84470  */
84471   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84472   __Pyx_GOTREF(__pyx_t_1);
84473   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
84474   __pyx_t_1 = 0;
84475 
84476   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":236
84477  *         """
84478  *         cdef _p_msg_io m = message_io_read(buf)
84479  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
84480  *         with nogil: CHKERR( MPI_File_read_at_all(
84481  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84482  */
84483   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
84484 
84485   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":237
84486  *         cdef _p_msg_io m = message_io_read(buf)
84487  *         cdef MPI_Status *statusp = arg_Status(status)
84488  *         with nogil: CHKERR( MPI_File_read_at_all(             # <<<<<<<<<<<<<<
84489  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84490  *
84491  */
84492   {
84493       #ifdef WITH_THREAD
84494       PyThreadState *_save = NULL;
84495       #endif
84496       Py_UNBLOCK_THREADS
84497       /*try:*/ {
84498 
84499         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":238
84500  *         cdef MPI_Status *statusp = arg_Status(status)
84501  *         with nogil: CHKERR( MPI_File_read_at_all(
84502  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
84503  *
84504  *     def Write_at(self, Offset offset, buf, Status status=None):
84505  */
84506         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_at_all(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L7;}
84507       }
84508 
84509       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":237
84510  *         cdef _p_msg_io m = message_io_read(buf)
84511  *         cdef MPI_Status *statusp = arg_Status(status)
84512  *         with nogil: CHKERR( MPI_File_read_at_all(             # <<<<<<<<<<<<<<
84513  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84514  *
84515  */
84516       /*finally:*/ {
84517         int __pyx_why;
84518         __pyx_why = 0; goto __pyx_L8;
84519         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
84520         __pyx_L8:;
84521         Py_BLOCK_THREADS
84522         switch (__pyx_why) {
84523           case 4: goto __pyx_L1_error;
84524         }
84525       }
84526   }
84527 
84528   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84529   goto __pyx_L0;
84530   __pyx_L1_error:;
84531   __Pyx_XDECREF(__pyx_t_1);
84532   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
84533   __pyx_r = NULL;
84534   __pyx_L0:;
84535   __Pyx_XDECREF((PyObject *)__pyx_v_m);
84536   __Pyx_XGIVEREF(__pyx_r);
84537   __Pyx_RefNannyFinishContext();
84538   return __pyx_r;
84539 }
84540 
84541 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":240
84542  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84543  *
84544  *     def Write_at(self, Offset offset, buf, Status status=None):             # <<<<<<<<<<<<<<
84545  *         """
84546  *         Write using explicit offset
84547  */
84548 
84549 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_18Write_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84550 static char __pyx_doc_6mpi4py_3MPI_4File_18Write_at[] = "File.Write_at(self, Offset offset, buf, Status status=None)\n\n        Write using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_18Write_at(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84551 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_18Write_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84552   MPI_Offset __pyx_v_offset;
84553   PyObject *__pyx_v_buf = 0;
84554   struct PyMPIStatusObject *__pyx_v_status = 0;
84555   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
84556   MPI_Status *__pyx_v_statusp;
84557   PyObject *__pyx_r = NULL;
84558   __Pyx_RefNannyDeclarations
84559   PyObject *__pyx_t_1 = NULL;
84560   int __pyx_t_2;
84561   int __pyx_lineno = 0;
84562   const char *__pyx_filename = NULL;
84563   int __pyx_clineno = 0;
84564   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,&__pyx_n_s__status,0};
84565   __Pyx_RefNannySetupContext("Write_at");
84566   {
84567     PyObject* values[3] = {0,0,0};
84568     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
84569     if (unlikely(__pyx_kwds)) {
84570       Py_ssize_t kw_args;
84571       switch (PyTuple_GET_SIZE(__pyx_args)) {
84572         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84573         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84574         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84575         case  0: break;
84576         default: goto __pyx_L5_argtuple_error;
84577       }
84578       kw_args = PyDict_Size(__pyx_kwds);
84579       switch (PyTuple_GET_SIZE(__pyx_args)) {
84580         case  0:
84581         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
84582         if (likely(values[0])) kw_args--;
84583         else goto __pyx_L5_argtuple_error;
84584         case  1:
84585         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
84586         if (likely(values[1])) kw_args--;
84587         else {
84588           __Pyx_RaiseArgtupleInvalid("Write_at", 0, 2, 3, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84589         }
84590         case  2:
84591         if (kw_args > 0) {
84592           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
84593           if (value) { values[2] = value; kw_args--; }
84594         }
84595       }
84596       if (unlikely(kw_args > 0)) {
84597         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_at") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84598       }
84599     } else {
84600       switch (PyTuple_GET_SIZE(__pyx_args)) {
84601         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84602         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84603         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84604         break;
84605         default: goto __pyx_L5_argtuple_error;
84606       }
84607     }
84608     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84609     __pyx_v_buf = values[1];
84610     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
84611   }
84612   goto __pyx_L4_argument_unpacking_done;
84613   __pyx_L5_argtuple_error:;
84614   __Pyx_RaiseArgtupleInvalid("Write_at", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84615   __pyx_L3_error:;
84616   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
84617   __Pyx_RefNannyFinishContext();
84618   return NULL;
84619   __pyx_L4_argument_unpacking_done:;
84620   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84621 
84622   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":244
84623  *         Write using explicit offset
84624  *         """
84625  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
84626  *         cdef MPI_Status *statusp = arg_Status(status)
84627  *         with nogil: CHKERR( MPI_File_write_at(
84628  */
84629   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84630   __Pyx_GOTREF(__pyx_t_1);
84631   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
84632   __pyx_t_1 = 0;
84633 
84634   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":245
84635  *         """
84636  *         cdef _p_msg_io m = message_io_write(buf)
84637  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
84638  *         with nogil: CHKERR( MPI_File_write_at(
84639  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84640  */
84641   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
84642 
84643   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":246
84644  *         cdef _p_msg_io m = message_io_write(buf)
84645  *         cdef MPI_Status *statusp = arg_Status(status)
84646  *         with nogil: CHKERR( MPI_File_write_at(             # <<<<<<<<<<<<<<
84647  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84648  *
84649  */
84650   {
84651       #ifdef WITH_THREAD
84652       PyThreadState *_save = NULL;
84653       #endif
84654       Py_UNBLOCK_THREADS
84655       /*try:*/ {
84656 
84657         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":247
84658  *         cdef MPI_Status *statusp = arg_Status(status)
84659  *         with nogil: CHKERR( MPI_File_write_at(
84660  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
84661  *
84662  *     def Write_at_all(self, Offset offset, buf, Status status=None):
84663  */
84664         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_at(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L7;}
84665       }
84666 
84667       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":246
84668  *         cdef _p_msg_io m = message_io_write(buf)
84669  *         cdef MPI_Status *statusp = arg_Status(status)
84670  *         with nogil: CHKERR( MPI_File_write_at(             # <<<<<<<<<<<<<<
84671  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84672  *
84673  */
84674       /*finally:*/ {
84675         int __pyx_why;
84676         __pyx_why = 0; goto __pyx_L8;
84677         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
84678         __pyx_L8:;
84679         Py_BLOCK_THREADS
84680         switch (__pyx_why) {
84681           case 4: goto __pyx_L1_error;
84682         }
84683       }
84684   }
84685 
84686   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84687   goto __pyx_L0;
84688   __pyx_L1_error:;
84689   __Pyx_XDECREF(__pyx_t_1);
84690   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
84691   __pyx_r = NULL;
84692   __pyx_L0:;
84693   __Pyx_XDECREF((PyObject *)__pyx_v_m);
84694   __Pyx_XGIVEREF(__pyx_r);
84695   __Pyx_RefNannyFinishContext();
84696   return __pyx_r;
84697 }
84698 
84699 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":249
84700  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84701  *
84702  *     def Write_at_all(self, Offset offset, buf, Status status=None):             # <<<<<<<<<<<<<<
84703  *         """
84704  *         Collective write using explicit offset
84705  */
84706 
84707 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_19Write_at_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84708 static char __pyx_doc_6mpi4py_3MPI_4File_19Write_at_all[] = "File.Write_at_all(self, Offset offset, buf, Status status=None)\n\n        Collective write using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_19Write_at_all(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84709 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_19Write_at_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84710   MPI_Offset __pyx_v_offset;
84711   PyObject *__pyx_v_buf = 0;
84712   struct PyMPIStatusObject *__pyx_v_status = 0;
84713   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
84714   MPI_Status *__pyx_v_statusp;
84715   PyObject *__pyx_r = NULL;
84716   __Pyx_RefNannyDeclarations
84717   PyObject *__pyx_t_1 = NULL;
84718   int __pyx_t_2;
84719   int __pyx_lineno = 0;
84720   const char *__pyx_filename = NULL;
84721   int __pyx_clineno = 0;
84722   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,&__pyx_n_s__status,0};
84723   __Pyx_RefNannySetupContext("Write_at_all");
84724   {
84725     PyObject* values[3] = {0,0,0};
84726     values[2] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
84727     if (unlikely(__pyx_kwds)) {
84728       Py_ssize_t kw_args;
84729       switch (PyTuple_GET_SIZE(__pyx_args)) {
84730         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84731         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84732         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84733         case  0: break;
84734         default: goto __pyx_L5_argtuple_error;
84735       }
84736       kw_args = PyDict_Size(__pyx_kwds);
84737       switch (PyTuple_GET_SIZE(__pyx_args)) {
84738         case  0:
84739         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
84740         if (likely(values[0])) kw_args--;
84741         else goto __pyx_L5_argtuple_error;
84742         case  1:
84743         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
84744         if (likely(values[1])) kw_args--;
84745         else {
84746           __Pyx_RaiseArgtupleInvalid("Write_at_all", 0, 2, 3, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84747         }
84748         case  2:
84749         if (kw_args > 0) {
84750           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
84751           if (value) { values[2] = value; kw_args--; }
84752         }
84753       }
84754       if (unlikely(kw_args > 0)) {
84755         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_at_all") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84756       }
84757     } else {
84758       switch (PyTuple_GET_SIZE(__pyx_args)) {
84759         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
84760         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84761         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84762         break;
84763         default: goto __pyx_L5_argtuple_error;
84764       }
84765     }
84766     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84767     __pyx_v_buf = values[1];
84768     __pyx_v_status = ((struct PyMPIStatusObject *)values[2]);
84769   }
84770   goto __pyx_L4_argument_unpacking_done;
84771   __pyx_L5_argtuple_error:;
84772   __Pyx_RaiseArgtupleInvalid("Write_at_all", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84773   __pyx_L3_error:;
84774   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
84775   __Pyx_RefNannyFinishContext();
84776   return NULL;
84777   __pyx_L4_argument_unpacking_done:;
84778   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84779 
84780   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":253
84781  *         Collective write using explicit offset
84782  *         """
84783  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
84784  *         cdef MPI_Status *statusp = arg_Status(status)
84785  *         with nogil: CHKERR( MPI_File_write_at_all(
84786  */
84787   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84788   __Pyx_GOTREF(__pyx_t_1);
84789   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
84790   __pyx_t_1 = 0;
84791 
84792   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":254
84793  *         """
84794  *         cdef _p_msg_io m = message_io_write(buf)
84795  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
84796  *         with nogil: CHKERR( MPI_File_write_at_all(
84797  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84798  */
84799   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
84800 
84801   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":255
84802  *         cdef _p_msg_io m = message_io_write(buf)
84803  *         cdef MPI_Status *statusp = arg_Status(status)
84804  *         with nogil: CHKERR( MPI_File_write_at_all(             # <<<<<<<<<<<<<<
84805  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84806  *
84807  */
84808   {
84809       #ifdef WITH_THREAD
84810       PyThreadState *_save = NULL;
84811       #endif
84812       Py_UNBLOCK_THREADS
84813       /*try:*/ {
84814 
84815         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":256
84816  *         cdef MPI_Status *statusp = arg_Status(status)
84817  *         with nogil: CHKERR( MPI_File_write_at_all(
84818  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
84819  *
84820  *     def Iread_at(self, Offset offset, buf):
84821  */
84822         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_at_all(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L7;}
84823       }
84824 
84825       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":255
84826  *         cdef _p_msg_io m = message_io_write(buf)
84827  *         cdef MPI_Status *statusp = arg_Status(status)
84828  *         with nogil: CHKERR( MPI_File_write_at_all(             # <<<<<<<<<<<<<<
84829  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84830  *
84831  */
84832       /*finally:*/ {
84833         int __pyx_why;
84834         __pyx_why = 0; goto __pyx_L8;
84835         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
84836         __pyx_L8:;
84837         Py_BLOCK_THREADS
84838         switch (__pyx_why) {
84839           case 4: goto __pyx_L1_error;
84840         }
84841       }
84842   }
84843 
84844   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
84845   goto __pyx_L0;
84846   __pyx_L1_error:;
84847   __Pyx_XDECREF(__pyx_t_1);
84848   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
84849   __pyx_r = NULL;
84850   __pyx_L0:;
84851   __Pyx_XDECREF((PyObject *)__pyx_v_m);
84852   __Pyx_XGIVEREF(__pyx_r);
84853   __Pyx_RefNannyFinishContext();
84854   return __pyx_r;
84855 }
84856 
84857 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":258
84858  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, statusp) )
84859  *
84860  *     def Iread_at(self, Offset offset, buf):             # <<<<<<<<<<<<<<
84861  *         """
84862  *         Nonblocking read using explicit offset
84863  */
84864 
84865 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_20Iread_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
84866 static char __pyx_doc_6mpi4py_3MPI_4File_20Iread_at[] = "File.Iread_at(self, Offset offset, buf)\n\n        Nonblocking read using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_20Iread_at(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)84867 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_20Iread_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
84868   MPI_Offset __pyx_v_offset;
84869   PyObject *__pyx_v_buf = 0;
84870   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
84871   struct PyMPIRequestObject *__pyx_v_request = 0;
84872   PyObject *__pyx_r = NULL;
84873   __Pyx_RefNannyDeclarations
84874   PyObject *__pyx_t_1 = NULL;
84875   int __pyx_t_2;
84876   int __pyx_lineno = 0;
84877   const char *__pyx_filename = NULL;
84878   int __pyx_clineno = 0;
84879   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,0};
84880   __Pyx_RefNannySetupContext("Iread_at");
84881   {
84882     PyObject* values[2] = {0,0};
84883     if (unlikely(__pyx_kwds)) {
84884       Py_ssize_t kw_args;
84885       switch (PyTuple_GET_SIZE(__pyx_args)) {
84886         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84887         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84888         case  0: break;
84889         default: goto __pyx_L5_argtuple_error;
84890       }
84891       kw_args = PyDict_Size(__pyx_kwds);
84892       switch (PyTuple_GET_SIZE(__pyx_args)) {
84893         case  0:
84894         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
84895         if (likely(values[0])) kw_args--;
84896         else goto __pyx_L5_argtuple_error;
84897         case  1:
84898         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
84899         if (likely(values[1])) kw_args--;
84900         else {
84901           __Pyx_RaiseArgtupleInvalid("Iread_at", 1, 2, 2, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84902         }
84903       }
84904       if (unlikely(kw_args > 0)) {
84905         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iread_at") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84906       }
84907     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
84908       goto __pyx_L5_argtuple_error;
84909     } else {
84910       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
84911       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
84912     }
84913     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84914     __pyx_v_buf = values[1];
84915   }
84916   goto __pyx_L4_argument_unpacking_done;
84917   __pyx_L5_argtuple_error:;
84918   __Pyx_RaiseArgtupleInvalid("Iread_at", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
84919   __pyx_L3_error:;
84920   __Pyx_AddTraceback("mpi4py.MPI.File.Iread_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
84921   __Pyx_RefNannyFinishContext();
84922   return NULL;
84923   __pyx_L4_argument_unpacking_done:;
84924 
84925   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":262
84926  *         Nonblocking read using explicit offset
84927  *         """
84928  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
84929  *         cdef Request request = <Request>Request.__new__(Request)
84930  *         with nogil: CHKERR( MPI_File_iread_at(
84931  */
84932   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84933   __Pyx_GOTREF(__pyx_t_1);
84934   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
84935   __pyx_t_1 = 0;
84936 
84937   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":263
84938  *         """
84939  *         cdef _p_msg_io m = message_io_read(buf)
84940  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
84941  *         with nogil: CHKERR( MPI_File_iread_at(
84942  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
84943  */
84944   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
84945   __Pyx_GOTREF(__pyx_t_1);
84946   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
84947   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
84948   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
84949 
84950   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":264
84951  *         cdef _p_msg_io m = message_io_read(buf)
84952  *         cdef Request request = <Request>Request.__new__(Request)
84953  *         with nogil: CHKERR( MPI_File_iread_at(             # <<<<<<<<<<<<<<
84954  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
84955  *         request.ob_buf = m
84956  */
84957   {
84958       #ifdef WITH_THREAD
84959       PyThreadState *_save = NULL;
84960       #endif
84961       Py_UNBLOCK_THREADS
84962       /*try:*/ {
84963 
84964         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":265
84965  *         cdef Request request = <Request>Request.__new__(Request)
84966  *         with nogil: CHKERR( MPI_File_iread_at(
84967  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
84968  *         request.ob_buf = m
84969  *         return request
84970  */
84971         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iread_at(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L7;}
84972       }
84973 
84974       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":264
84975  *         cdef _p_msg_io m = message_io_read(buf)
84976  *         cdef Request request = <Request>Request.__new__(Request)
84977  *         with nogil: CHKERR( MPI_File_iread_at(             # <<<<<<<<<<<<<<
84978  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
84979  *         request.ob_buf = m
84980  */
84981       /*finally:*/ {
84982         int __pyx_why;
84983         __pyx_why = 0; goto __pyx_L8;
84984         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
84985         __pyx_L8:;
84986         Py_BLOCK_THREADS
84987         switch (__pyx_why) {
84988           case 4: goto __pyx_L1_error;
84989         }
84990       }
84991   }
84992 
84993   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":266
84994  *         with nogil: CHKERR( MPI_File_iread_at(
84995  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
84996  *         request.ob_buf = m             # <<<<<<<<<<<<<<
84997  *         return request
84998  *
84999  */
85000   __Pyx_INCREF(((PyObject *)__pyx_v_m));
85001   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
85002   __Pyx_GOTREF(__pyx_v_request->ob_buf);
85003   __Pyx_DECREF(__pyx_v_request->ob_buf);
85004   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
85005 
85006   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":267
85007  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85008  *         request.ob_buf = m
85009  *         return request             # <<<<<<<<<<<<<<
85010  *
85011  *     def Iwrite_at(self, Offset offset, buf):
85012  */
85013   __Pyx_XDECREF(__pyx_r);
85014   __Pyx_INCREF(((PyObject *)__pyx_v_request));
85015   __pyx_r = ((PyObject *)__pyx_v_request);
85016   goto __pyx_L0;
85017 
85018   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85019   goto __pyx_L0;
85020   __pyx_L1_error:;
85021   __Pyx_XDECREF(__pyx_t_1);
85022   __Pyx_AddTraceback("mpi4py.MPI.File.Iread_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
85023   __pyx_r = NULL;
85024   __pyx_L0:;
85025   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85026   __Pyx_XDECREF((PyObject *)__pyx_v_request);
85027   __Pyx_XGIVEREF(__pyx_r);
85028   __Pyx_RefNannyFinishContext();
85029   return __pyx_r;
85030 }
85031 
85032 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":269
85033  *         return request
85034  *
85035  *     def Iwrite_at(self, Offset offset, buf):             # <<<<<<<<<<<<<<
85036  *         """
85037  *         Nonblocking write using explicit offset
85038  */
85039 
85040 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_21Iwrite_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85041 static char __pyx_doc_6mpi4py_3MPI_4File_21Iwrite_at[] = "File.Iwrite_at(self, Offset offset, buf)\n\n        Nonblocking write using explicit offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_21Iwrite_at(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85042 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_21Iwrite_at(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85043   MPI_Offset __pyx_v_offset;
85044   PyObject *__pyx_v_buf = 0;
85045   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85046   struct PyMPIRequestObject *__pyx_v_request = 0;
85047   PyObject *__pyx_r = NULL;
85048   __Pyx_RefNannyDeclarations
85049   PyObject *__pyx_t_1 = NULL;
85050   int __pyx_t_2;
85051   int __pyx_lineno = 0;
85052   const char *__pyx_filename = NULL;
85053   int __pyx_clineno = 0;
85054   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,0};
85055   __Pyx_RefNannySetupContext("Iwrite_at");
85056   {
85057     PyObject* values[2] = {0,0};
85058     if (unlikely(__pyx_kwds)) {
85059       Py_ssize_t kw_args;
85060       switch (PyTuple_GET_SIZE(__pyx_args)) {
85061         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85062         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85063         case  0: break;
85064         default: goto __pyx_L5_argtuple_error;
85065       }
85066       kw_args = PyDict_Size(__pyx_kwds);
85067       switch (PyTuple_GET_SIZE(__pyx_args)) {
85068         case  0:
85069         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
85070         if (likely(values[0])) kw_args--;
85071         else goto __pyx_L5_argtuple_error;
85072         case  1:
85073         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85074         if (likely(values[1])) kw_args--;
85075         else {
85076           __Pyx_RaiseArgtupleInvalid("Iwrite_at", 1, 2, 2, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85077         }
85078       }
85079       if (unlikely(kw_args > 0)) {
85080         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iwrite_at") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85081       }
85082     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
85083       goto __pyx_L5_argtuple_error;
85084     } else {
85085       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85086       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85087     }
85088     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85089     __pyx_v_buf = values[1];
85090   }
85091   goto __pyx_L4_argument_unpacking_done;
85092   __pyx_L5_argtuple_error:;
85093   __Pyx_RaiseArgtupleInvalid("Iwrite_at", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85094   __pyx_L3_error:;
85095   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
85096   __Pyx_RefNannyFinishContext();
85097   return NULL;
85098   __pyx_L4_argument_unpacking_done:;
85099 
85100   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":273
85101  *         Nonblocking write using explicit offset
85102  *         """
85103  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
85104  *         cdef Request request = <Request>Request.__new__(Request)
85105  *         with nogil: CHKERR( MPI_File_iwrite_at(
85106  */
85107   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85108   __Pyx_GOTREF(__pyx_t_1);
85109   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85110   __pyx_t_1 = 0;
85111 
85112   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":274
85113  *         """
85114  *         cdef _p_msg_io m = message_io_write(buf)
85115  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
85116  *         with nogil: CHKERR( MPI_File_iwrite_at(
85117  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85118  */
85119   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85120   __Pyx_GOTREF(__pyx_t_1);
85121   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
85122   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
85123   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
85124 
85125   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":275
85126  *         cdef _p_msg_io m = message_io_write(buf)
85127  *         cdef Request request = <Request>Request.__new__(Request)
85128  *         with nogil: CHKERR( MPI_File_iwrite_at(             # <<<<<<<<<<<<<<
85129  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85130  *         request.ob_buf = m
85131  */
85132   {
85133       #ifdef WITH_THREAD
85134       PyThreadState *_save = NULL;
85135       #endif
85136       Py_UNBLOCK_THREADS
85137       /*try:*/ {
85138 
85139         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":276
85140  *         cdef Request request = <Request>Request.__new__(Request)
85141  *         with nogil: CHKERR( MPI_File_iwrite_at(
85142  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
85143  *         request.ob_buf = m
85144  *         return request
85145  */
85146         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iwrite_at(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7;}
85147       }
85148 
85149       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":275
85150  *         cdef _p_msg_io m = message_io_write(buf)
85151  *         cdef Request request = <Request>Request.__new__(Request)
85152  *         with nogil: CHKERR( MPI_File_iwrite_at(             # <<<<<<<<<<<<<<
85153  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85154  *         request.ob_buf = m
85155  */
85156       /*finally:*/ {
85157         int __pyx_why;
85158         __pyx_why = 0; goto __pyx_L8;
85159         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85160         __pyx_L8:;
85161         Py_BLOCK_THREADS
85162         switch (__pyx_why) {
85163           case 4: goto __pyx_L1_error;
85164         }
85165       }
85166   }
85167 
85168   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":277
85169  *         with nogil: CHKERR( MPI_File_iwrite_at(
85170  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85171  *         request.ob_buf = m             # <<<<<<<<<<<<<<
85172  *         return request
85173  *
85174  */
85175   __Pyx_INCREF(((PyObject *)__pyx_v_m));
85176   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
85177   __Pyx_GOTREF(__pyx_v_request->ob_buf);
85178   __Pyx_DECREF(__pyx_v_request->ob_buf);
85179   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
85180 
85181   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":278
85182  *             self.ob_mpi, offset, m.buf, m.count, m.dtype, &request.ob_mpi) )
85183  *         request.ob_buf = m
85184  *         return request             # <<<<<<<<<<<<<<
85185  *
85186  *     # [9.4.3] Data Access with Individual File Pointers
85187  */
85188   __Pyx_XDECREF(__pyx_r);
85189   __Pyx_INCREF(((PyObject *)__pyx_v_request));
85190   __pyx_r = ((PyObject *)__pyx_v_request);
85191   goto __pyx_L0;
85192 
85193   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85194   goto __pyx_L0;
85195   __pyx_L1_error:;
85196   __Pyx_XDECREF(__pyx_t_1);
85197   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite_at", __pyx_clineno, __pyx_lineno, __pyx_filename);
85198   __pyx_r = NULL;
85199   __pyx_L0:;
85200   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85201   __Pyx_XDECREF((PyObject *)__pyx_v_request);
85202   __Pyx_XGIVEREF(__pyx_r);
85203   __Pyx_RefNannyFinishContext();
85204   return __pyx_r;
85205 }
85206 
85207 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":283
85208  *     # -------------------------------------------------
85209  *
85210  *     def Read(self, buf, Status status=None):             # <<<<<<<<<<<<<<
85211  *         """
85212  *         Read using individual file pointer
85213  */
85214 
85215 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_22Read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85216 static char __pyx_doc_6mpi4py_3MPI_4File_22Read[] = "File.Read(self, buf, Status status=None)\n\n        Read using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_22Read(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85217 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_22Read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85218   PyObject *__pyx_v_buf = 0;
85219   struct PyMPIStatusObject *__pyx_v_status = 0;
85220   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85221   MPI_Status *__pyx_v_statusp;
85222   PyObject *__pyx_r = NULL;
85223   __Pyx_RefNannyDeclarations
85224   PyObject *__pyx_t_1 = NULL;
85225   int __pyx_t_2;
85226   int __pyx_lineno = 0;
85227   const char *__pyx_filename = NULL;
85228   int __pyx_clineno = 0;
85229   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
85230   __Pyx_RefNannySetupContext("Read");
85231   {
85232     PyObject* values[2] = {0,0};
85233     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
85234     if (unlikely(__pyx_kwds)) {
85235       Py_ssize_t kw_args;
85236       switch (PyTuple_GET_SIZE(__pyx_args)) {
85237         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85238         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85239         case  0: break;
85240         default: goto __pyx_L5_argtuple_error;
85241       }
85242       kw_args = PyDict_Size(__pyx_kwds);
85243       switch (PyTuple_GET_SIZE(__pyx_args)) {
85244         case  0:
85245         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85246         if (likely(values[0])) kw_args--;
85247         else goto __pyx_L5_argtuple_error;
85248         case  1:
85249         if (kw_args > 0) {
85250           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
85251           if (value) { values[1] = value; kw_args--; }
85252         }
85253       }
85254       if (unlikely(kw_args > 0)) {
85255         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85256       }
85257     } else {
85258       switch (PyTuple_GET_SIZE(__pyx_args)) {
85259         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85260         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85261         break;
85262         default: goto __pyx_L5_argtuple_error;
85263       }
85264     }
85265     __pyx_v_buf = values[0];
85266     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
85267   }
85268   goto __pyx_L4_argument_unpacking_done;
85269   __pyx_L5_argtuple_error:;
85270   __Pyx_RaiseArgtupleInvalid("Read", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85271   __pyx_L3_error:;
85272   __Pyx_AddTraceback("mpi4py.MPI.File.Read", __pyx_clineno, __pyx_lineno, __pyx_filename);
85273   __Pyx_RefNannyFinishContext();
85274   return NULL;
85275   __pyx_L4_argument_unpacking_done:;
85276   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85277 
85278   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":287
85279  *         Read using individual file pointer
85280  *         """
85281  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
85282  *         cdef MPI_Status *statusp = arg_Status(status)
85283  *         with nogil: CHKERR( MPI_File_read(
85284  */
85285   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85286   __Pyx_GOTREF(__pyx_t_1);
85287   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85288   __pyx_t_1 = 0;
85289 
85290   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":288
85291  *         """
85292  *         cdef _p_msg_io m = message_io_read(buf)
85293  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
85294  *         with nogil: CHKERR( MPI_File_read(
85295  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85296  */
85297   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
85298 
85299   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":289
85300  *         cdef _p_msg_io m = message_io_read(buf)
85301  *         cdef MPI_Status *statusp = arg_Status(status)
85302  *         with nogil: CHKERR( MPI_File_read(             # <<<<<<<<<<<<<<
85303  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85304  *
85305  */
85306   {
85307       #ifdef WITH_THREAD
85308       PyThreadState *_save = NULL;
85309       #endif
85310       Py_UNBLOCK_THREADS
85311       /*try:*/ {
85312 
85313         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":290
85314  *         cdef MPI_Status *statusp = arg_Status(status)
85315  *         with nogil: CHKERR( MPI_File_read(
85316  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
85317  *
85318  *     def Read_all(self, buf, Status status=None):
85319  */
85320         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L7;}
85321       }
85322 
85323       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":289
85324  *         cdef _p_msg_io m = message_io_read(buf)
85325  *         cdef MPI_Status *statusp = arg_Status(status)
85326  *         with nogil: CHKERR( MPI_File_read(             # <<<<<<<<<<<<<<
85327  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85328  *
85329  */
85330       /*finally:*/ {
85331         int __pyx_why;
85332         __pyx_why = 0; goto __pyx_L8;
85333         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85334         __pyx_L8:;
85335         Py_BLOCK_THREADS
85336         switch (__pyx_why) {
85337           case 4: goto __pyx_L1_error;
85338         }
85339       }
85340   }
85341 
85342   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85343   goto __pyx_L0;
85344   __pyx_L1_error:;
85345   __Pyx_XDECREF(__pyx_t_1);
85346   __Pyx_AddTraceback("mpi4py.MPI.File.Read", __pyx_clineno, __pyx_lineno, __pyx_filename);
85347   __pyx_r = NULL;
85348   __pyx_L0:;
85349   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85350   __Pyx_XGIVEREF(__pyx_r);
85351   __Pyx_RefNannyFinishContext();
85352   return __pyx_r;
85353 }
85354 
85355 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":292
85356  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85357  *
85358  *     def Read_all(self, buf, Status status=None):             # <<<<<<<<<<<<<<
85359  *         """
85360  *         Collective read using individual file pointer
85361  */
85362 
85363 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_23Read_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85364 static char __pyx_doc_6mpi4py_3MPI_4File_23Read_all[] = "File.Read_all(self, buf, Status status=None)\n\n        Collective read using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_23Read_all(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85365 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_23Read_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85366   PyObject *__pyx_v_buf = 0;
85367   struct PyMPIStatusObject *__pyx_v_status = 0;
85368   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85369   MPI_Status *__pyx_v_statusp;
85370   PyObject *__pyx_r = NULL;
85371   __Pyx_RefNannyDeclarations
85372   PyObject *__pyx_t_1 = NULL;
85373   int __pyx_t_2;
85374   int __pyx_lineno = 0;
85375   const char *__pyx_filename = NULL;
85376   int __pyx_clineno = 0;
85377   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
85378   __Pyx_RefNannySetupContext("Read_all");
85379   {
85380     PyObject* values[2] = {0,0};
85381     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
85382     if (unlikely(__pyx_kwds)) {
85383       Py_ssize_t kw_args;
85384       switch (PyTuple_GET_SIZE(__pyx_args)) {
85385         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85386         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85387         case  0: break;
85388         default: goto __pyx_L5_argtuple_error;
85389       }
85390       kw_args = PyDict_Size(__pyx_kwds);
85391       switch (PyTuple_GET_SIZE(__pyx_args)) {
85392         case  0:
85393         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85394         if (likely(values[0])) kw_args--;
85395         else goto __pyx_L5_argtuple_error;
85396         case  1:
85397         if (kw_args > 0) {
85398           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
85399           if (value) { values[1] = value; kw_args--; }
85400         }
85401       }
85402       if (unlikely(kw_args > 0)) {
85403         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_all") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85404       }
85405     } else {
85406       switch (PyTuple_GET_SIZE(__pyx_args)) {
85407         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85408         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85409         break;
85410         default: goto __pyx_L5_argtuple_error;
85411       }
85412     }
85413     __pyx_v_buf = values[0];
85414     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
85415   }
85416   goto __pyx_L4_argument_unpacking_done;
85417   __pyx_L5_argtuple_error:;
85418   __Pyx_RaiseArgtupleInvalid("Read_all", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85419   __pyx_L3_error:;
85420   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
85421   __Pyx_RefNannyFinishContext();
85422   return NULL;
85423   __pyx_L4_argument_unpacking_done:;
85424   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85425 
85426   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":296
85427  *         Collective read using individual file pointer
85428  *         """
85429  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
85430  *         cdef MPI_Status *statusp = arg_Status(status)
85431  *         with nogil: CHKERR( MPI_File_read_all(
85432  */
85433   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85434   __Pyx_GOTREF(__pyx_t_1);
85435   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85436   __pyx_t_1 = 0;
85437 
85438   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":297
85439  *         """
85440  *         cdef _p_msg_io m = message_io_read(buf)
85441  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
85442  *         with nogil: CHKERR( MPI_File_read_all(
85443  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85444  */
85445   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
85446 
85447   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":298
85448  *         cdef _p_msg_io m = message_io_read(buf)
85449  *         cdef MPI_Status *statusp = arg_Status(status)
85450  *         with nogil: CHKERR( MPI_File_read_all(             # <<<<<<<<<<<<<<
85451  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85452  *
85453  */
85454   {
85455       #ifdef WITH_THREAD
85456       PyThreadState *_save = NULL;
85457       #endif
85458       Py_UNBLOCK_THREADS
85459       /*try:*/ {
85460 
85461         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":299
85462  *         cdef MPI_Status *statusp = arg_Status(status)
85463  *         with nogil: CHKERR( MPI_File_read_all(
85464  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
85465  *
85466  *     def Write(self, buf, Status status=None):
85467  */
85468         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_all(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7;}
85469       }
85470 
85471       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":298
85472  *         cdef _p_msg_io m = message_io_read(buf)
85473  *         cdef MPI_Status *statusp = arg_Status(status)
85474  *         with nogil: CHKERR( MPI_File_read_all(             # <<<<<<<<<<<<<<
85475  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85476  *
85477  */
85478       /*finally:*/ {
85479         int __pyx_why;
85480         __pyx_why = 0; goto __pyx_L8;
85481         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85482         __pyx_L8:;
85483         Py_BLOCK_THREADS
85484         switch (__pyx_why) {
85485           case 4: goto __pyx_L1_error;
85486         }
85487       }
85488   }
85489 
85490   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85491   goto __pyx_L0;
85492   __pyx_L1_error:;
85493   __Pyx_XDECREF(__pyx_t_1);
85494   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
85495   __pyx_r = NULL;
85496   __pyx_L0:;
85497   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85498   __Pyx_XGIVEREF(__pyx_r);
85499   __Pyx_RefNannyFinishContext();
85500   return __pyx_r;
85501 }
85502 
85503 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":301
85504  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85505  *
85506  *     def Write(self, buf, Status status=None):             # <<<<<<<<<<<<<<
85507  *         """
85508  *         Write using individual file pointer
85509  */
85510 
85511 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_24Write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85512 static char __pyx_doc_6mpi4py_3MPI_4File_24Write[] = "File.Write(self, buf, Status status=None)\n\n        Write using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_24Write(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85513 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_24Write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85514   PyObject *__pyx_v_buf = 0;
85515   struct PyMPIStatusObject *__pyx_v_status = 0;
85516   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85517   MPI_Status *__pyx_v_statusp;
85518   PyObject *__pyx_r = NULL;
85519   __Pyx_RefNannyDeclarations
85520   PyObject *__pyx_t_1 = NULL;
85521   int __pyx_t_2;
85522   int __pyx_lineno = 0;
85523   const char *__pyx_filename = NULL;
85524   int __pyx_clineno = 0;
85525   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
85526   __Pyx_RefNannySetupContext("Write");
85527   {
85528     PyObject* values[2] = {0,0};
85529     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
85530     if (unlikely(__pyx_kwds)) {
85531       Py_ssize_t kw_args;
85532       switch (PyTuple_GET_SIZE(__pyx_args)) {
85533         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85534         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85535         case  0: break;
85536         default: goto __pyx_L5_argtuple_error;
85537       }
85538       kw_args = PyDict_Size(__pyx_kwds);
85539       switch (PyTuple_GET_SIZE(__pyx_args)) {
85540         case  0:
85541         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85542         if (likely(values[0])) kw_args--;
85543         else goto __pyx_L5_argtuple_error;
85544         case  1:
85545         if (kw_args > 0) {
85546           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
85547           if (value) { values[1] = value; kw_args--; }
85548         }
85549       }
85550       if (unlikely(kw_args > 0)) {
85551         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85552       }
85553     } else {
85554       switch (PyTuple_GET_SIZE(__pyx_args)) {
85555         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85556         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85557         break;
85558         default: goto __pyx_L5_argtuple_error;
85559       }
85560     }
85561     __pyx_v_buf = values[0];
85562     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
85563   }
85564   goto __pyx_L4_argument_unpacking_done;
85565   __pyx_L5_argtuple_error:;
85566   __Pyx_RaiseArgtupleInvalid("Write", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85567   __pyx_L3_error:;
85568   __Pyx_AddTraceback("mpi4py.MPI.File.Write", __pyx_clineno, __pyx_lineno, __pyx_filename);
85569   __Pyx_RefNannyFinishContext();
85570   return NULL;
85571   __pyx_L4_argument_unpacking_done:;
85572   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85573 
85574   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":305
85575  *         Write using individual file pointer
85576  *         """
85577  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
85578  *         cdef MPI_Status *statusp = arg_Status(status)
85579  *         with nogil: CHKERR( MPI_File_write(
85580  */
85581   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85582   __Pyx_GOTREF(__pyx_t_1);
85583   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85584   __pyx_t_1 = 0;
85585 
85586   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":306
85587  *         """
85588  *         cdef _p_msg_io m = message_io_write(buf)
85589  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
85590  *         with nogil: CHKERR( MPI_File_write(
85591  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85592  */
85593   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
85594 
85595   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":307
85596  *         cdef _p_msg_io m = message_io_write(buf)
85597  *         cdef MPI_Status *statusp = arg_Status(status)
85598  *         with nogil: CHKERR( MPI_File_write(             # <<<<<<<<<<<<<<
85599  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85600  *
85601  */
85602   {
85603       #ifdef WITH_THREAD
85604       PyThreadState *_save = NULL;
85605       #endif
85606       Py_UNBLOCK_THREADS
85607       /*try:*/ {
85608 
85609         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":308
85610  *         cdef MPI_Status *statusp = arg_Status(status)
85611  *         with nogil: CHKERR( MPI_File_write(
85612  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
85613  *
85614  *     def Write_all(self, buf, Status status=None):
85615  */
85616         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L7;}
85617       }
85618 
85619       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":307
85620  *         cdef _p_msg_io m = message_io_write(buf)
85621  *         cdef MPI_Status *statusp = arg_Status(status)
85622  *         with nogil: CHKERR( MPI_File_write(             # <<<<<<<<<<<<<<
85623  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85624  *
85625  */
85626       /*finally:*/ {
85627         int __pyx_why;
85628         __pyx_why = 0; goto __pyx_L8;
85629         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85630         __pyx_L8:;
85631         Py_BLOCK_THREADS
85632         switch (__pyx_why) {
85633           case 4: goto __pyx_L1_error;
85634         }
85635       }
85636   }
85637 
85638   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85639   goto __pyx_L0;
85640   __pyx_L1_error:;
85641   __Pyx_XDECREF(__pyx_t_1);
85642   __Pyx_AddTraceback("mpi4py.MPI.File.Write", __pyx_clineno, __pyx_lineno, __pyx_filename);
85643   __pyx_r = NULL;
85644   __pyx_L0:;
85645   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85646   __Pyx_XGIVEREF(__pyx_r);
85647   __Pyx_RefNannyFinishContext();
85648   return __pyx_r;
85649 }
85650 
85651 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":310
85652  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85653  *
85654  *     def Write_all(self, buf, Status status=None):             # <<<<<<<<<<<<<<
85655  *         """
85656  *         Collective write using individual file pointer
85657  */
85658 
85659 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_25Write_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85660 static char __pyx_doc_6mpi4py_3MPI_4File_25Write_all[] = "File.Write_all(self, buf, Status status=None)\n\n        Collective write using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_25Write_all(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85661 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_25Write_all(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85662   PyObject *__pyx_v_buf = 0;
85663   struct PyMPIStatusObject *__pyx_v_status = 0;
85664   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85665   MPI_Status *__pyx_v_statusp;
85666   PyObject *__pyx_r = NULL;
85667   __Pyx_RefNannyDeclarations
85668   PyObject *__pyx_t_1 = NULL;
85669   int __pyx_t_2;
85670   int __pyx_lineno = 0;
85671   const char *__pyx_filename = NULL;
85672   int __pyx_clineno = 0;
85673   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
85674   __Pyx_RefNannySetupContext("Write_all");
85675   {
85676     PyObject* values[2] = {0,0};
85677     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
85678     if (unlikely(__pyx_kwds)) {
85679       Py_ssize_t kw_args;
85680       switch (PyTuple_GET_SIZE(__pyx_args)) {
85681         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85682         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85683         case  0: break;
85684         default: goto __pyx_L5_argtuple_error;
85685       }
85686       kw_args = PyDict_Size(__pyx_kwds);
85687       switch (PyTuple_GET_SIZE(__pyx_args)) {
85688         case  0:
85689         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85690         if (likely(values[0])) kw_args--;
85691         else goto __pyx_L5_argtuple_error;
85692         case  1:
85693         if (kw_args > 0) {
85694           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
85695           if (value) { values[1] = value; kw_args--; }
85696         }
85697       }
85698       if (unlikely(kw_args > 0)) {
85699         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_all") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85700       }
85701     } else {
85702       switch (PyTuple_GET_SIZE(__pyx_args)) {
85703         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
85704         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85705         break;
85706         default: goto __pyx_L5_argtuple_error;
85707       }
85708     }
85709     __pyx_v_buf = values[0];
85710     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
85711   }
85712   goto __pyx_L4_argument_unpacking_done;
85713   __pyx_L5_argtuple_error:;
85714   __Pyx_RaiseArgtupleInvalid("Write_all", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85715   __pyx_L3_error:;
85716   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
85717   __Pyx_RefNannyFinishContext();
85718   return NULL;
85719   __pyx_L4_argument_unpacking_done:;
85720   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85721 
85722   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":314
85723  *         Collective write using individual file pointer
85724  *         """
85725  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
85726  *         cdef MPI_Status *statusp = arg_Status(status)
85727  *         with nogil: CHKERR( MPI_File_write_all(
85728  */
85729   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85730   __Pyx_GOTREF(__pyx_t_1);
85731   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85732   __pyx_t_1 = 0;
85733 
85734   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":315
85735  *         """
85736  *         cdef _p_msg_io m = message_io_write(buf)
85737  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
85738  *         with nogil: CHKERR( MPI_File_write_all(
85739  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85740  */
85741   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
85742 
85743   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":316
85744  *         cdef _p_msg_io m = message_io_write(buf)
85745  *         cdef MPI_Status *statusp = arg_Status(status)
85746  *         with nogil: CHKERR( MPI_File_write_all(             # <<<<<<<<<<<<<<
85747  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85748  *
85749  */
85750   {
85751       #ifdef WITH_THREAD
85752       PyThreadState *_save = NULL;
85753       #endif
85754       Py_UNBLOCK_THREADS
85755       /*try:*/ {
85756 
85757         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":317
85758  *         cdef MPI_Status *statusp = arg_Status(status)
85759  *         with nogil: CHKERR( MPI_File_write_all(
85760  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
85761  *
85762  *     def Iread(self, buf):
85763  */
85764         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_all(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L7;}
85765       }
85766 
85767       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":316
85768  *         cdef _p_msg_io m = message_io_write(buf)
85769  *         cdef MPI_Status *statusp = arg_Status(status)
85770  *         with nogil: CHKERR( MPI_File_write_all(             # <<<<<<<<<<<<<<
85771  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85772  *
85773  */
85774       /*finally:*/ {
85775         int __pyx_why;
85776         __pyx_why = 0; goto __pyx_L8;
85777         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85778         __pyx_L8:;
85779         Py_BLOCK_THREADS
85780         switch (__pyx_why) {
85781           case 4: goto __pyx_L1_error;
85782         }
85783       }
85784   }
85785 
85786   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85787   goto __pyx_L0;
85788   __pyx_L1_error:;
85789   __Pyx_XDECREF(__pyx_t_1);
85790   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
85791   __pyx_r = NULL;
85792   __pyx_L0:;
85793   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85794   __Pyx_XGIVEREF(__pyx_r);
85795   __Pyx_RefNannyFinishContext();
85796   return __pyx_r;
85797 }
85798 
85799 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":319
85800  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
85801  *
85802  *     def Iread(self, buf):             # <<<<<<<<<<<<<<
85803  *         """
85804  *         Nonblocking read using individual file pointer
85805  */
85806 
85807 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_26Iread(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85808 static char __pyx_doc_6mpi4py_3MPI_4File_26Iread[] = "File.Iread(self, buf)\n\n        Nonblocking read using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_26Iread(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85809 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_26Iread(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85810   PyObject *__pyx_v_buf = 0;
85811   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85812   struct PyMPIRequestObject *__pyx_v_request = 0;
85813   PyObject *__pyx_r = NULL;
85814   __Pyx_RefNannyDeclarations
85815   PyObject *__pyx_t_1 = NULL;
85816   int __pyx_t_2;
85817   int __pyx_lineno = 0;
85818   const char *__pyx_filename = NULL;
85819   int __pyx_clineno = 0;
85820   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
85821   __Pyx_RefNannySetupContext("Iread");
85822   {
85823     PyObject* values[1] = {0};
85824     if (unlikely(__pyx_kwds)) {
85825       Py_ssize_t kw_args;
85826       switch (PyTuple_GET_SIZE(__pyx_args)) {
85827         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85828         case  0: break;
85829         default: goto __pyx_L5_argtuple_error;
85830       }
85831       kw_args = PyDict_Size(__pyx_kwds);
85832       switch (PyTuple_GET_SIZE(__pyx_args)) {
85833         case  0:
85834         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
85835         if (likely(values[0])) kw_args--;
85836         else goto __pyx_L5_argtuple_error;
85837       }
85838       if (unlikely(kw_args > 0)) {
85839         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iread") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85840       }
85841     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
85842       goto __pyx_L5_argtuple_error;
85843     } else {
85844       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85845     }
85846     __pyx_v_buf = values[0];
85847   }
85848   goto __pyx_L4_argument_unpacking_done;
85849   __pyx_L5_argtuple_error:;
85850   __Pyx_RaiseArgtupleInvalid("Iread", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
85851   __pyx_L3_error:;
85852   __Pyx_AddTraceback("mpi4py.MPI.File.Iread", __pyx_clineno, __pyx_lineno, __pyx_filename);
85853   __Pyx_RefNannyFinishContext();
85854   return NULL;
85855   __pyx_L4_argument_unpacking_done:;
85856 
85857   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":323
85858  *         Nonblocking read using individual file pointer
85859  *         """
85860  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
85861  *         cdef Request request = <Request>Request.__new__(Request)
85862  *         with nogil: CHKERR( MPI_File_iread(
85863  */
85864   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85865   __Pyx_GOTREF(__pyx_t_1);
85866   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
85867   __pyx_t_1 = 0;
85868 
85869   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":324
85870  *         """
85871  *         cdef _p_msg_io m = message_io_read(buf)
85872  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
85873  *         with nogil: CHKERR( MPI_File_iread(
85874  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
85875  */
85876   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
85877   __Pyx_GOTREF(__pyx_t_1);
85878   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
85879   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
85880   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
85881 
85882   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":325
85883  *         cdef _p_msg_io m = message_io_read(buf)
85884  *         cdef Request request = <Request>Request.__new__(Request)
85885  *         with nogil: CHKERR( MPI_File_iread(             # <<<<<<<<<<<<<<
85886  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
85887  *         request.ob_buf = m
85888  */
85889   {
85890       #ifdef WITH_THREAD
85891       PyThreadState *_save = NULL;
85892       #endif
85893       Py_UNBLOCK_THREADS
85894       /*try:*/ {
85895 
85896         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":326
85897  *         cdef Request request = <Request>Request.__new__(Request)
85898  *         with nogil: CHKERR( MPI_File_iread(
85899  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
85900  *         request.ob_buf = m
85901  *         return request
85902  */
85903         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iread(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L7;}
85904       }
85905 
85906       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":325
85907  *         cdef _p_msg_io m = message_io_read(buf)
85908  *         cdef Request request = <Request>Request.__new__(Request)
85909  *         with nogil: CHKERR( MPI_File_iread(             # <<<<<<<<<<<<<<
85910  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
85911  *         request.ob_buf = m
85912  */
85913       /*finally:*/ {
85914         int __pyx_why;
85915         __pyx_why = 0; goto __pyx_L8;
85916         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
85917         __pyx_L8:;
85918         Py_BLOCK_THREADS
85919         switch (__pyx_why) {
85920           case 4: goto __pyx_L1_error;
85921         }
85922       }
85923   }
85924 
85925   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":327
85926  *         with nogil: CHKERR( MPI_File_iread(
85927  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
85928  *         request.ob_buf = m             # <<<<<<<<<<<<<<
85929  *         return request
85930  *
85931  */
85932   __Pyx_INCREF(((PyObject *)__pyx_v_m));
85933   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
85934   __Pyx_GOTREF(__pyx_v_request->ob_buf);
85935   __Pyx_DECREF(__pyx_v_request->ob_buf);
85936   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
85937 
85938   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":328
85939  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
85940  *         request.ob_buf = m
85941  *         return request             # <<<<<<<<<<<<<<
85942  *
85943  *     def Iwrite(self, buf):
85944  */
85945   __Pyx_XDECREF(__pyx_r);
85946   __Pyx_INCREF(((PyObject *)__pyx_v_request));
85947   __pyx_r = ((PyObject *)__pyx_v_request);
85948   goto __pyx_L0;
85949 
85950   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
85951   goto __pyx_L0;
85952   __pyx_L1_error:;
85953   __Pyx_XDECREF(__pyx_t_1);
85954   __Pyx_AddTraceback("mpi4py.MPI.File.Iread", __pyx_clineno, __pyx_lineno, __pyx_filename);
85955   __pyx_r = NULL;
85956   __pyx_L0:;
85957   __Pyx_XDECREF((PyObject *)__pyx_v_m);
85958   __Pyx_XDECREF((PyObject *)__pyx_v_request);
85959   __Pyx_XGIVEREF(__pyx_r);
85960   __Pyx_RefNannyFinishContext();
85961   return __pyx_r;
85962 }
85963 
85964 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":330
85965  *         return request
85966  *
85967  *     def Iwrite(self, buf):             # <<<<<<<<<<<<<<
85968  *         """
85969  *         Nonblocking write using individual file pointer
85970  */
85971 
85972 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_27Iwrite(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
85973 static char __pyx_doc_6mpi4py_3MPI_4File_27Iwrite[] = "File.Iwrite(self, buf)\n\n        Nonblocking write using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_27Iwrite(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)85974 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_27Iwrite(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
85975   PyObject *__pyx_v_buf = 0;
85976   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
85977   struct PyMPIRequestObject *__pyx_v_request = 0;
85978   PyObject *__pyx_r = NULL;
85979   __Pyx_RefNannyDeclarations
85980   PyObject *__pyx_t_1 = NULL;
85981   int __pyx_t_2;
85982   int __pyx_lineno = 0;
85983   const char *__pyx_filename = NULL;
85984   int __pyx_clineno = 0;
85985   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
85986   __Pyx_RefNannySetupContext("Iwrite");
85987   {
85988     PyObject* values[1] = {0};
85989     if (unlikely(__pyx_kwds)) {
85990       Py_ssize_t kw_args;
85991       switch (PyTuple_GET_SIZE(__pyx_args)) {
85992         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
85993         case  0: break;
85994         default: goto __pyx_L5_argtuple_error;
85995       }
85996       kw_args = PyDict_Size(__pyx_kwds);
85997       switch (PyTuple_GET_SIZE(__pyx_args)) {
85998         case  0:
85999         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
86000         if (likely(values[0])) kw_args--;
86001         else goto __pyx_L5_argtuple_error;
86002       }
86003       if (unlikely(kw_args > 0)) {
86004         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iwrite") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86005       }
86006     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
86007       goto __pyx_L5_argtuple_error;
86008     } else {
86009       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86010     }
86011     __pyx_v_buf = values[0];
86012   }
86013   goto __pyx_L4_argument_unpacking_done;
86014   __pyx_L5_argtuple_error:;
86015   __Pyx_RaiseArgtupleInvalid("Iwrite", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86016   __pyx_L3_error:;
86017   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite", __pyx_clineno, __pyx_lineno, __pyx_filename);
86018   __Pyx_RefNannyFinishContext();
86019   return NULL;
86020   __pyx_L4_argument_unpacking_done:;
86021 
86022   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":334
86023  *         Nonblocking write using individual file pointer
86024  *         """
86025  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
86026  *         cdef Request request = <Request>Request.__new__(Request)
86027  *         with nogil: CHKERR( MPI_File_iwrite(
86028  */
86029   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86030   __Pyx_GOTREF(__pyx_t_1);
86031   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
86032   __pyx_t_1 = 0;
86033 
86034   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":335
86035  *         """
86036  *         cdef _p_msg_io m = message_io_write(buf)
86037  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
86038  *         with nogil: CHKERR( MPI_File_iwrite(
86039  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86040  */
86041   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86042   __Pyx_GOTREF(__pyx_t_1);
86043   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
86044   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
86045   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
86046 
86047   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":336
86048  *         cdef _p_msg_io m = message_io_write(buf)
86049  *         cdef Request request = <Request>Request.__new__(Request)
86050  *         with nogil: CHKERR( MPI_File_iwrite(             # <<<<<<<<<<<<<<
86051  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86052  *         request.ob_buf = m
86053  */
86054   {
86055       #ifdef WITH_THREAD
86056       PyThreadState *_save = NULL;
86057       #endif
86058       Py_UNBLOCK_THREADS
86059       /*try:*/ {
86060 
86061         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":337
86062  *         cdef Request request = <Request>Request.__new__(Request)
86063  *         with nogil: CHKERR( MPI_File_iwrite(
86064  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
86065  *         request.ob_buf = m
86066  *         return request
86067  */
86068         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iwrite(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L7;}
86069       }
86070 
86071       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":336
86072  *         cdef _p_msg_io m = message_io_write(buf)
86073  *         cdef Request request = <Request>Request.__new__(Request)
86074  *         with nogil: CHKERR( MPI_File_iwrite(             # <<<<<<<<<<<<<<
86075  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86076  *         request.ob_buf = m
86077  */
86078       /*finally:*/ {
86079         int __pyx_why;
86080         __pyx_why = 0; goto __pyx_L8;
86081         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86082         __pyx_L8:;
86083         Py_BLOCK_THREADS
86084         switch (__pyx_why) {
86085           case 4: goto __pyx_L1_error;
86086         }
86087       }
86088   }
86089 
86090   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":338
86091  *         with nogil: CHKERR( MPI_File_iwrite(
86092  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86093  *         request.ob_buf = m             # <<<<<<<<<<<<<<
86094  *         return request
86095  *
86096  */
86097   __Pyx_INCREF(((PyObject *)__pyx_v_m));
86098   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
86099   __Pyx_GOTREF(__pyx_v_request->ob_buf);
86100   __Pyx_DECREF(__pyx_v_request->ob_buf);
86101   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
86102 
86103   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":339
86104  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86105  *         request.ob_buf = m
86106  *         return request             # <<<<<<<<<<<<<<
86107  *
86108  *     def Seek(self, Offset offset, int whence=SEEK_SET):
86109  */
86110   __Pyx_XDECREF(__pyx_r);
86111   __Pyx_INCREF(((PyObject *)__pyx_v_request));
86112   __pyx_r = ((PyObject *)__pyx_v_request);
86113   goto __pyx_L0;
86114 
86115   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86116   goto __pyx_L0;
86117   __pyx_L1_error:;
86118   __Pyx_XDECREF(__pyx_t_1);
86119   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite", __pyx_clineno, __pyx_lineno, __pyx_filename);
86120   __pyx_r = NULL;
86121   __pyx_L0:;
86122   __Pyx_XDECREF((PyObject *)__pyx_v_m);
86123   __Pyx_XDECREF((PyObject *)__pyx_v_request);
86124   __Pyx_XGIVEREF(__pyx_r);
86125   __Pyx_RefNannyFinishContext();
86126   return __pyx_r;
86127 }
86128 
86129 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":341
86130  *         return request
86131  *
86132  *     def Seek(self, Offset offset, int whence=SEEK_SET):             # <<<<<<<<<<<<<<
86133  *         """
86134  *         Update the individual file pointer
86135  */
86136 
86137 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_28Seek(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86138 static char __pyx_doc_6mpi4py_3MPI_4File_28Seek[] = "File.Seek(self, Offset offset, int whence=SEEK_SET)\n\n        Update the individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_28Seek(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86139 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_28Seek(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86140   MPI_Offset __pyx_v_offset;
86141   int __pyx_v_whence;
86142   PyObject *__pyx_r = NULL;
86143   __Pyx_RefNannyDeclarations
86144   int __pyx_t_1;
86145   int __pyx_lineno = 0;
86146   const char *__pyx_filename = NULL;
86147   int __pyx_clineno = 0;
86148   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__whence,0};
86149   __Pyx_RefNannySetupContext("Seek");
86150   {
86151     PyObject* values[2] = {0,0};
86152     if (unlikely(__pyx_kwds)) {
86153       Py_ssize_t kw_args;
86154       switch (PyTuple_GET_SIZE(__pyx_args)) {
86155         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86156         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86157         case  0: break;
86158         default: goto __pyx_L5_argtuple_error;
86159       }
86160       kw_args = PyDict_Size(__pyx_kwds);
86161       switch (PyTuple_GET_SIZE(__pyx_args)) {
86162         case  0:
86163         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
86164         if (likely(values[0])) kw_args--;
86165         else goto __pyx_L5_argtuple_error;
86166         case  1:
86167         if (kw_args > 0) {
86168           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__whence);
86169           if (value) { values[1] = value; kw_args--; }
86170         }
86171       }
86172       if (unlikely(kw_args > 0)) {
86173         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Seek") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86174       }
86175     } else {
86176       switch (PyTuple_GET_SIZE(__pyx_args)) {
86177         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86178         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86179         break;
86180         default: goto __pyx_L5_argtuple_error;
86181       }
86182     }
86183     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86184     if (values[1]) {
86185       __pyx_v_whence = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_whence == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86186     } else {
86187       __pyx_v_whence = __pyx_k_108;
86188     }
86189   }
86190   goto __pyx_L4_argument_unpacking_done;
86191   __pyx_L5_argtuple_error:;
86192   __Pyx_RaiseArgtupleInvalid("Seek", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86193   __pyx_L3_error:;
86194   __Pyx_AddTraceback("mpi4py.MPI.File.Seek", __pyx_clineno, __pyx_lineno, __pyx_filename);
86195   __Pyx_RefNannyFinishContext();
86196   return NULL;
86197   __pyx_L4_argument_unpacking_done:;
86198 
86199   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":345
86200  *         Update the individual file pointer
86201  *         """
86202  *         with nogil: CHKERR( MPI_File_seek(self.ob_mpi, offset, whence) )             # <<<<<<<<<<<<<<
86203  *
86204  *     def Get_position(self):
86205  */
86206   {
86207       #ifdef WITH_THREAD
86208       PyThreadState *_save = NULL;
86209       #endif
86210       Py_UNBLOCK_THREADS
86211       /*try:*/ {
86212         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_seek(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_whence)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L7;}
86213       }
86214       /*finally:*/ {
86215         int __pyx_why;
86216         __pyx_why = 0; goto __pyx_L8;
86217         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86218         __pyx_L8:;
86219         Py_BLOCK_THREADS
86220         switch (__pyx_why) {
86221           case 4: goto __pyx_L1_error;
86222         }
86223       }
86224   }
86225 
86226   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86227   goto __pyx_L0;
86228   __pyx_L1_error:;
86229   __Pyx_AddTraceback("mpi4py.MPI.File.Seek", __pyx_clineno, __pyx_lineno, __pyx_filename);
86230   __pyx_r = NULL;
86231   __pyx_L0:;
86232   __Pyx_XGIVEREF(__pyx_r);
86233   __Pyx_RefNannyFinishContext();
86234   return __pyx_r;
86235 }
86236 
86237 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":347
86238  *         with nogil: CHKERR( MPI_File_seek(self.ob_mpi, offset, whence) )
86239  *
86240  *     def Get_position(self):             # <<<<<<<<<<<<<<
86241  *         """
86242  *         Return the current position of the individual file pointer
86243  */
86244 
86245 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_29Get_position(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86246 static char __pyx_doc_6mpi4py_3MPI_4File_29Get_position[] = "File.Get_position(self)\n\n        Return the current position of the individual file pointer\n        in etype units relative to the current view\n        ";
__pyx_pf_6mpi4py_3MPI_4File_29Get_position(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86247 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_29Get_position(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86248   MPI_Offset __pyx_v_offset;
86249   PyObject *__pyx_r = NULL;
86250   __Pyx_RefNannyDeclarations
86251   int __pyx_t_1;
86252   PyObject *__pyx_t_2 = NULL;
86253   int __pyx_lineno = 0;
86254   const char *__pyx_filename = NULL;
86255   int __pyx_clineno = 0;
86256   __Pyx_RefNannySetupContext("Get_position");
86257   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
86258     __Pyx_RaiseArgtupleInvalid("Get_position", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
86259   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_position", 0))) return NULL;
86260 
86261   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":352
86262  *         in etype units relative to the current view
86263  *         """
86264  *         cdef MPI_Offset offset = 0             # <<<<<<<<<<<<<<
86265  *         with nogil: CHKERR( MPI_File_get_position(self.ob_mpi, &offset) )
86266  *         return offset
86267  */
86268   __pyx_v_offset = 0;
86269 
86270   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":353
86271  *         """
86272  *         cdef MPI_Offset offset = 0
86273  *         with nogil: CHKERR( MPI_File_get_position(self.ob_mpi, &offset) )             # <<<<<<<<<<<<<<
86274  *         return offset
86275  *
86276  */
86277   {
86278       #ifdef WITH_THREAD
86279       PyThreadState *_save = NULL;
86280       #endif
86281       Py_UNBLOCK_THREADS
86282       /*try:*/ {
86283         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_position(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_offset))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L6;}
86284       }
86285       /*finally:*/ {
86286         int __pyx_why;
86287         __pyx_why = 0; goto __pyx_L7;
86288         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
86289         __pyx_L7:;
86290         Py_BLOCK_THREADS
86291         switch (__pyx_why) {
86292           case 4: goto __pyx_L1_error;
86293         }
86294       }
86295   }
86296 
86297   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":354
86298  *         cdef MPI_Offset offset = 0
86299  *         with nogil: CHKERR( MPI_File_get_position(self.ob_mpi, &offset) )
86300  *         return offset             # <<<<<<<<<<<<<<
86301  *
86302  *     def Get_byte_offset(self, Offset offset):
86303  */
86304   __Pyx_XDECREF(__pyx_r);
86305   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Offset(__pyx_v_offset); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86306   __Pyx_GOTREF(__pyx_t_2);
86307   __pyx_r = __pyx_t_2;
86308   __pyx_t_2 = 0;
86309   goto __pyx_L0;
86310 
86311   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86312   goto __pyx_L0;
86313   __pyx_L1_error:;
86314   __Pyx_XDECREF(__pyx_t_2);
86315   __Pyx_AddTraceback("mpi4py.MPI.File.Get_position", __pyx_clineno, __pyx_lineno, __pyx_filename);
86316   __pyx_r = NULL;
86317   __pyx_L0:;
86318   __Pyx_XGIVEREF(__pyx_r);
86319   __Pyx_RefNannyFinishContext();
86320   return __pyx_r;
86321 }
86322 
86323 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":356
86324  *         return offset
86325  *
86326  *     def Get_byte_offset(self, Offset offset):             # <<<<<<<<<<<<<<
86327  *         """
86328  *         Returns the absolute byte position in the file corresponding
86329  */
86330 
86331 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_30Get_byte_offset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86332 static char __pyx_doc_6mpi4py_3MPI_4File_30Get_byte_offset[] = "File.Get_byte_offset(self, Offset offset)\n\n        Returns the absolute byte position in the file corresponding\n        to 'offset' etypes relative to the current view\n        ";
__pyx_pf_6mpi4py_3MPI_4File_30Get_byte_offset(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86333 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_30Get_byte_offset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86334   MPI_Offset __pyx_v_offset;
86335   MPI_Offset __pyx_v_disp;
86336   PyObject *__pyx_r = NULL;
86337   __Pyx_RefNannyDeclarations
86338   int __pyx_t_1;
86339   PyObject *__pyx_t_2 = NULL;
86340   int __pyx_lineno = 0;
86341   const char *__pyx_filename = NULL;
86342   int __pyx_clineno = 0;
86343   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,0};
86344   __Pyx_RefNannySetupContext("Get_byte_offset");
86345   {
86346     PyObject* values[1] = {0};
86347     if (unlikely(__pyx_kwds)) {
86348       Py_ssize_t kw_args;
86349       switch (PyTuple_GET_SIZE(__pyx_args)) {
86350         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86351         case  0: break;
86352         default: goto __pyx_L5_argtuple_error;
86353       }
86354       kw_args = PyDict_Size(__pyx_kwds);
86355       switch (PyTuple_GET_SIZE(__pyx_args)) {
86356         case  0:
86357         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
86358         if (likely(values[0])) kw_args--;
86359         else goto __pyx_L5_argtuple_error;
86360       }
86361       if (unlikely(kw_args > 0)) {
86362         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_byte_offset") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86363       }
86364     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
86365       goto __pyx_L5_argtuple_error;
86366     } else {
86367       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86368     }
86369     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86370   }
86371   goto __pyx_L4_argument_unpacking_done;
86372   __pyx_L5_argtuple_error:;
86373   __Pyx_RaiseArgtupleInvalid("Get_byte_offset", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86374   __pyx_L3_error:;
86375   __Pyx_AddTraceback("mpi4py.MPI.File.Get_byte_offset", __pyx_clineno, __pyx_lineno, __pyx_filename);
86376   __Pyx_RefNannyFinishContext();
86377   return NULL;
86378   __pyx_L4_argument_unpacking_done:;
86379 
86380   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":361
86381  *         to 'offset' etypes relative to the current view
86382  *         """
86383  *         cdef MPI_Offset disp = 0             # <<<<<<<<<<<<<<
86384  *         with nogil: CHKERR( MPI_File_get_byte_offset(
86385  *             self.ob_mpi, offset, &disp) )
86386  */
86387   __pyx_v_disp = 0;
86388 
86389   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":362
86390  *         """
86391  *         cdef MPI_Offset disp = 0
86392  *         with nogil: CHKERR( MPI_File_get_byte_offset(             # <<<<<<<<<<<<<<
86393  *             self.ob_mpi, offset, &disp) )
86394  *         return disp
86395  */
86396   {
86397       #ifdef WITH_THREAD
86398       PyThreadState *_save = NULL;
86399       #endif
86400       Py_UNBLOCK_THREADS
86401       /*try:*/ {
86402 
86403         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":363
86404  *         cdef MPI_Offset disp = 0
86405  *         with nogil: CHKERR( MPI_File_get_byte_offset(
86406  *             self.ob_mpi, offset, &disp) )             # <<<<<<<<<<<<<<
86407  *         return disp
86408  *
86409  */
86410         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_byte_offset(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, (&__pyx_v_disp))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L7;}
86411       }
86412 
86413       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":362
86414  *         """
86415  *         cdef MPI_Offset disp = 0
86416  *         with nogil: CHKERR( MPI_File_get_byte_offset(             # <<<<<<<<<<<<<<
86417  *             self.ob_mpi, offset, &disp) )
86418  *         return disp
86419  */
86420       /*finally:*/ {
86421         int __pyx_why;
86422         __pyx_why = 0; goto __pyx_L8;
86423         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86424         __pyx_L8:;
86425         Py_BLOCK_THREADS
86426         switch (__pyx_why) {
86427           case 4: goto __pyx_L1_error;
86428         }
86429       }
86430   }
86431 
86432   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":364
86433  *         with nogil: CHKERR( MPI_File_get_byte_offset(
86434  *             self.ob_mpi, offset, &disp) )
86435  *         return disp             # <<<<<<<<<<<<<<
86436  *
86437  *     # [9.4.4] Data Access with Shared File Pointers
86438  */
86439   __Pyx_XDECREF(__pyx_r);
86440   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Offset(__pyx_v_disp); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86441   __Pyx_GOTREF(__pyx_t_2);
86442   __pyx_r = __pyx_t_2;
86443   __pyx_t_2 = 0;
86444   goto __pyx_L0;
86445 
86446   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86447   goto __pyx_L0;
86448   __pyx_L1_error:;
86449   __Pyx_XDECREF(__pyx_t_2);
86450   __Pyx_AddTraceback("mpi4py.MPI.File.Get_byte_offset", __pyx_clineno, __pyx_lineno, __pyx_filename);
86451   __pyx_r = NULL;
86452   __pyx_L0:;
86453   __Pyx_XGIVEREF(__pyx_r);
86454   __Pyx_RefNannyFinishContext();
86455   return __pyx_r;
86456 }
86457 
86458 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":369
86459  *     # ---------------------------------------------
86460  *
86461  *     def Read_shared(self, buf, Status status=None):             # <<<<<<<<<<<<<<
86462  *         """
86463  *         Read using shared file pointer
86464  */
86465 
86466 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_31Read_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86467 static char __pyx_doc_6mpi4py_3MPI_4File_31Read_shared[] = "File.Read_shared(self, buf, Status status=None)\n\n        Read using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_31Read_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86468 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_31Read_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86469   PyObject *__pyx_v_buf = 0;
86470   struct PyMPIStatusObject *__pyx_v_status = 0;
86471   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
86472   MPI_Status *__pyx_v_statusp;
86473   PyObject *__pyx_r = NULL;
86474   __Pyx_RefNannyDeclarations
86475   PyObject *__pyx_t_1 = NULL;
86476   int __pyx_t_2;
86477   int __pyx_lineno = 0;
86478   const char *__pyx_filename = NULL;
86479   int __pyx_clineno = 0;
86480   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
86481   __Pyx_RefNannySetupContext("Read_shared");
86482   {
86483     PyObject* values[2] = {0,0};
86484     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
86485     if (unlikely(__pyx_kwds)) {
86486       Py_ssize_t kw_args;
86487       switch (PyTuple_GET_SIZE(__pyx_args)) {
86488         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86489         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86490         case  0: break;
86491         default: goto __pyx_L5_argtuple_error;
86492       }
86493       kw_args = PyDict_Size(__pyx_kwds);
86494       switch (PyTuple_GET_SIZE(__pyx_args)) {
86495         case  0:
86496         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
86497         if (likely(values[0])) kw_args--;
86498         else goto __pyx_L5_argtuple_error;
86499         case  1:
86500         if (kw_args > 0) {
86501           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
86502           if (value) { values[1] = value; kw_args--; }
86503         }
86504       }
86505       if (unlikely(kw_args > 0)) {
86506         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_shared") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86507       }
86508     } else {
86509       switch (PyTuple_GET_SIZE(__pyx_args)) {
86510         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86511         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86512         break;
86513         default: goto __pyx_L5_argtuple_error;
86514       }
86515     }
86516     __pyx_v_buf = values[0];
86517     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
86518   }
86519   goto __pyx_L4_argument_unpacking_done;
86520   __pyx_L5_argtuple_error:;
86521   __Pyx_RaiseArgtupleInvalid("Read_shared", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86522   __pyx_L3_error:;
86523   __Pyx_AddTraceback("mpi4py.MPI.File.Read_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86524   __Pyx_RefNannyFinishContext();
86525   return NULL;
86526   __pyx_L4_argument_unpacking_done:;
86527   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86528 
86529   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":373
86530  *         Read using shared file pointer
86531  *         """
86532  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
86533  *         cdef MPI_Status *statusp = arg_Status(status)
86534  *         with nogil: CHKERR( MPI_File_read_shared(
86535  */
86536   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86537   __Pyx_GOTREF(__pyx_t_1);
86538   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
86539   __pyx_t_1 = 0;
86540 
86541   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":374
86542  *         """
86543  *         cdef _p_msg_io m = message_io_read(buf)
86544  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
86545  *         with nogil: CHKERR( MPI_File_read_shared(
86546  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86547  */
86548   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
86549 
86550   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":375
86551  *         cdef _p_msg_io m = message_io_read(buf)
86552  *         cdef MPI_Status *statusp = arg_Status(status)
86553  *         with nogil: CHKERR( MPI_File_read_shared(             # <<<<<<<<<<<<<<
86554  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86555  *
86556  */
86557   {
86558       #ifdef WITH_THREAD
86559       PyThreadState *_save = NULL;
86560       #endif
86561       Py_UNBLOCK_THREADS
86562       /*try:*/ {
86563 
86564         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":376
86565  *         cdef MPI_Status *statusp = arg_Status(status)
86566  *         with nogil: CHKERR( MPI_File_read_shared(
86567  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
86568  *
86569  *     def Write_shared(self, buf, Status status=None):
86570  */
86571         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L7;}
86572       }
86573 
86574       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":375
86575  *         cdef _p_msg_io m = message_io_read(buf)
86576  *         cdef MPI_Status *statusp = arg_Status(status)
86577  *         with nogil: CHKERR( MPI_File_read_shared(             # <<<<<<<<<<<<<<
86578  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86579  *
86580  */
86581       /*finally:*/ {
86582         int __pyx_why;
86583         __pyx_why = 0; goto __pyx_L8;
86584         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86585         __pyx_L8:;
86586         Py_BLOCK_THREADS
86587         switch (__pyx_why) {
86588           case 4: goto __pyx_L1_error;
86589         }
86590       }
86591   }
86592 
86593   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86594   goto __pyx_L0;
86595   __pyx_L1_error:;
86596   __Pyx_XDECREF(__pyx_t_1);
86597   __Pyx_AddTraceback("mpi4py.MPI.File.Read_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86598   __pyx_r = NULL;
86599   __pyx_L0:;
86600   __Pyx_XDECREF((PyObject *)__pyx_v_m);
86601   __Pyx_XGIVEREF(__pyx_r);
86602   __Pyx_RefNannyFinishContext();
86603   return __pyx_r;
86604 }
86605 
86606 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":378
86607  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86608  *
86609  *     def Write_shared(self, buf, Status status=None):             # <<<<<<<<<<<<<<
86610  *         """
86611  *         Write using shared file pointer
86612  */
86613 
86614 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_32Write_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86615 static char __pyx_doc_6mpi4py_3MPI_4File_32Write_shared[] = "File.Write_shared(self, buf, Status status=None)\n\n        Write using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_32Write_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86616 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_32Write_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86617   PyObject *__pyx_v_buf = 0;
86618   struct PyMPIStatusObject *__pyx_v_status = 0;
86619   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
86620   MPI_Status *__pyx_v_statusp;
86621   PyObject *__pyx_r = NULL;
86622   __Pyx_RefNannyDeclarations
86623   PyObject *__pyx_t_1 = NULL;
86624   int __pyx_t_2;
86625   int __pyx_lineno = 0;
86626   const char *__pyx_filename = NULL;
86627   int __pyx_clineno = 0;
86628   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
86629   __Pyx_RefNannySetupContext("Write_shared");
86630   {
86631     PyObject* values[2] = {0,0};
86632     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
86633     if (unlikely(__pyx_kwds)) {
86634       Py_ssize_t kw_args;
86635       switch (PyTuple_GET_SIZE(__pyx_args)) {
86636         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86637         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86638         case  0: break;
86639         default: goto __pyx_L5_argtuple_error;
86640       }
86641       kw_args = PyDict_Size(__pyx_kwds);
86642       switch (PyTuple_GET_SIZE(__pyx_args)) {
86643         case  0:
86644         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
86645         if (likely(values[0])) kw_args--;
86646         else goto __pyx_L5_argtuple_error;
86647         case  1:
86648         if (kw_args > 0) {
86649           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
86650           if (value) { values[1] = value; kw_args--; }
86651         }
86652       }
86653       if (unlikely(kw_args > 0)) {
86654         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_shared") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86655       }
86656     } else {
86657       switch (PyTuple_GET_SIZE(__pyx_args)) {
86658         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
86659         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86660         break;
86661         default: goto __pyx_L5_argtuple_error;
86662       }
86663     }
86664     __pyx_v_buf = values[0];
86665     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
86666   }
86667   goto __pyx_L4_argument_unpacking_done;
86668   __pyx_L5_argtuple_error:;
86669   __Pyx_RaiseArgtupleInvalid("Write_shared", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86670   __pyx_L3_error:;
86671   __Pyx_AddTraceback("mpi4py.MPI.File.Write_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86672   __Pyx_RefNannyFinishContext();
86673   return NULL;
86674   __pyx_L4_argument_unpacking_done:;
86675   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86676 
86677   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":382
86678  *         Write using shared file pointer
86679  *         """
86680  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
86681  *         cdef MPI_Status *statusp = arg_Status(status)
86682  *         with nogil: CHKERR( MPI_File_write_shared(
86683  */
86684   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86685   __Pyx_GOTREF(__pyx_t_1);
86686   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
86687   __pyx_t_1 = 0;
86688 
86689   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":383
86690  *         """
86691  *         cdef _p_msg_io m = message_io_write(buf)
86692  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
86693  *         with nogil: CHKERR( MPI_File_write_shared(
86694  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86695  */
86696   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
86697 
86698   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":384
86699  *         cdef _p_msg_io m = message_io_write(buf)
86700  *         cdef MPI_Status *statusp = arg_Status(status)
86701  *         with nogil: CHKERR( MPI_File_write_shared(             # <<<<<<<<<<<<<<
86702  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86703  *
86704  */
86705   {
86706       #ifdef WITH_THREAD
86707       PyThreadState *_save = NULL;
86708       #endif
86709       Py_UNBLOCK_THREADS
86710       /*try:*/ {
86711 
86712         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":385
86713  *         cdef MPI_Status *statusp = arg_Status(status)
86714  *         with nogil: CHKERR( MPI_File_write_shared(
86715  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
86716  *
86717  *     def Iread_shared(self, buf):
86718  */
86719         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L7;}
86720       }
86721 
86722       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":384
86723  *         cdef _p_msg_io m = message_io_write(buf)
86724  *         cdef MPI_Status *statusp = arg_Status(status)
86725  *         with nogil: CHKERR( MPI_File_write_shared(             # <<<<<<<<<<<<<<
86726  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86727  *
86728  */
86729       /*finally:*/ {
86730         int __pyx_why;
86731         __pyx_why = 0; goto __pyx_L8;
86732         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86733         __pyx_L8:;
86734         Py_BLOCK_THREADS
86735         switch (__pyx_why) {
86736           case 4: goto __pyx_L1_error;
86737         }
86738       }
86739   }
86740 
86741   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86742   goto __pyx_L0;
86743   __pyx_L1_error:;
86744   __Pyx_XDECREF(__pyx_t_1);
86745   __Pyx_AddTraceback("mpi4py.MPI.File.Write_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86746   __pyx_r = NULL;
86747   __pyx_L0:;
86748   __Pyx_XDECREF((PyObject *)__pyx_v_m);
86749   __Pyx_XGIVEREF(__pyx_r);
86750   __Pyx_RefNannyFinishContext();
86751   return __pyx_r;
86752 }
86753 
86754 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":387
86755  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
86756  *
86757  *     def Iread_shared(self, buf):             # <<<<<<<<<<<<<<
86758  *         """
86759  *         Nonblocking read using shared file pointer
86760  */
86761 
86762 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_33Iread_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86763 static char __pyx_doc_6mpi4py_3MPI_4File_33Iread_shared[] = "File.Iread_shared(self, buf)\n\n        Nonblocking read using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_33Iread_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86764 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_33Iread_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86765   PyObject *__pyx_v_buf = 0;
86766   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
86767   struct PyMPIRequestObject *__pyx_v_request = 0;
86768   PyObject *__pyx_r = NULL;
86769   __Pyx_RefNannyDeclarations
86770   PyObject *__pyx_t_1 = NULL;
86771   int __pyx_t_2;
86772   int __pyx_lineno = 0;
86773   const char *__pyx_filename = NULL;
86774   int __pyx_clineno = 0;
86775   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
86776   __Pyx_RefNannySetupContext("Iread_shared");
86777   {
86778     PyObject* values[1] = {0};
86779     if (unlikely(__pyx_kwds)) {
86780       Py_ssize_t kw_args;
86781       switch (PyTuple_GET_SIZE(__pyx_args)) {
86782         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86783         case  0: break;
86784         default: goto __pyx_L5_argtuple_error;
86785       }
86786       kw_args = PyDict_Size(__pyx_kwds);
86787       switch (PyTuple_GET_SIZE(__pyx_args)) {
86788         case  0:
86789         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
86790         if (likely(values[0])) kw_args--;
86791         else goto __pyx_L5_argtuple_error;
86792       }
86793       if (unlikely(kw_args > 0)) {
86794         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iread_shared") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86795       }
86796     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
86797       goto __pyx_L5_argtuple_error;
86798     } else {
86799       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86800     }
86801     __pyx_v_buf = values[0];
86802   }
86803   goto __pyx_L4_argument_unpacking_done;
86804   __pyx_L5_argtuple_error:;
86805   __Pyx_RaiseArgtupleInvalid("Iread_shared", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86806   __pyx_L3_error:;
86807   __Pyx_AddTraceback("mpi4py.MPI.File.Iread_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86808   __Pyx_RefNannyFinishContext();
86809   return NULL;
86810   __pyx_L4_argument_unpacking_done:;
86811 
86812   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":391
86813  *         Nonblocking read using shared file pointer
86814  *         """
86815  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
86816  *         cdef Request request = <Request>Request.__new__(Request)
86817  *         with nogil: CHKERR( MPI_File_iread_shared(
86818  */
86819   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86820   __Pyx_GOTREF(__pyx_t_1);
86821   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
86822   __pyx_t_1 = 0;
86823 
86824   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":392
86825  *         """
86826  *         cdef _p_msg_io m = message_io_read(buf)
86827  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
86828  *         with nogil: CHKERR( MPI_File_iread_shared(
86829  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86830  */
86831   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86832   __Pyx_GOTREF(__pyx_t_1);
86833   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
86834   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
86835   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
86836 
86837   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":393
86838  *         cdef _p_msg_io m = message_io_read(buf)
86839  *         cdef Request request = <Request>Request.__new__(Request)
86840  *         with nogil: CHKERR( MPI_File_iread_shared(             # <<<<<<<<<<<<<<
86841  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86842  *         request.ob_buf = m
86843  */
86844   {
86845       #ifdef WITH_THREAD
86846       PyThreadState *_save = NULL;
86847       #endif
86848       Py_UNBLOCK_THREADS
86849       /*try:*/ {
86850 
86851         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":394
86852  *         cdef Request request = <Request>Request.__new__(Request)
86853  *         with nogil: CHKERR( MPI_File_iread_shared(
86854  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
86855  *         request.ob_buf = m
86856  *         return request
86857  */
86858         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iread_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L7;}
86859       }
86860 
86861       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":393
86862  *         cdef _p_msg_io m = message_io_read(buf)
86863  *         cdef Request request = <Request>Request.__new__(Request)
86864  *         with nogil: CHKERR( MPI_File_iread_shared(             # <<<<<<<<<<<<<<
86865  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86866  *         request.ob_buf = m
86867  */
86868       /*finally:*/ {
86869         int __pyx_why;
86870         __pyx_why = 0; goto __pyx_L8;
86871         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
86872         __pyx_L8:;
86873         Py_BLOCK_THREADS
86874         switch (__pyx_why) {
86875           case 4: goto __pyx_L1_error;
86876         }
86877       }
86878   }
86879 
86880   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":395
86881  *         with nogil: CHKERR( MPI_File_iread_shared(
86882  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86883  *         request.ob_buf = m             # <<<<<<<<<<<<<<
86884  *         return request
86885  *
86886  */
86887   __Pyx_INCREF(((PyObject *)__pyx_v_m));
86888   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
86889   __Pyx_GOTREF(__pyx_v_request->ob_buf);
86890   __Pyx_DECREF(__pyx_v_request->ob_buf);
86891   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
86892 
86893   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":396
86894  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86895  *         request.ob_buf = m
86896  *         return request             # <<<<<<<<<<<<<<
86897  *
86898  *     def Iwrite_shared(self, buf):
86899  */
86900   __Pyx_XDECREF(__pyx_r);
86901   __Pyx_INCREF(((PyObject *)__pyx_v_request));
86902   __pyx_r = ((PyObject *)__pyx_v_request);
86903   goto __pyx_L0;
86904 
86905   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
86906   goto __pyx_L0;
86907   __pyx_L1_error:;
86908   __Pyx_XDECREF(__pyx_t_1);
86909   __Pyx_AddTraceback("mpi4py.MPI.File.Iread_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86910   __pyx_r = NULL;
86911   __pyx_L0:;
86912   __Pyx_XDECREF((PyObject *)__pyx_v_m);
86913   __Pyx_XDECREF((PyObject *)__pyx_v_request);
86914   __Pyx_XGIVEREF(__pyx_r);
86915   __Pyx_RefNannyFinishContext();
86916   return __pyx_r;
86917 }
86918 
86919 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":398
86920  *         return request
86921  *
86922  *     def Iwrite_shared(self, buf):             # <<<<<<<<<<<<<<
86923  *         """
86924  *         Nonblocking write using shared file pointer
86925  */
86926 
86927 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_34Iwrite_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
86928 static char __pyx_doc_6mpi4py_3MPI_4File_34Iwrite_shared[] = "File.Iwrite_shared(self, buf)\n\n        Nonblocking write using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_34Iwrite_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)86929 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_34Iwrite_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
86930   PyObject *__pyx_v_buf = 0;
86931   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
86932   struct PyMPIRequestObject *__pyx_v_request = 0;
86933   PyObject *__pyx_r = NULL;
86934   __Pyx_RefNannyDeclarations
86935   PyObject *__pyx_t_1 = NULL;
86936   int __pyx_t_2;
86937   int __pyx_lineno = 0;
86938   const char *__pyx_filename = NULL;
86939   int __pyx_clineno = 0;
86940   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
86941   __Pyx_RefNannySetupContext("Iwrite_shared");
86942   {
86943     PyObject* values[1] = {0};
86944     if (unlikely(__pyx_kwds)) {
86945       Py_ssize_t kw_args;
86946       switch (PyTuple_GET_SIZE(__pyx_args)) {
86947         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86948         case  0: break;
86949         default: goto __pyx_L5_argtuple_error;
86950       }
86951       kw_args = PyDict_Size(__pyx_kwds);
86952       switch (PyTuple_GET_SIZE(__pyx_args)) {
86953         case  0:
86954         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
86955         if (likely(values[0])) kw_args--;
86956         else goto __pyx_L5_argtuple_error;
86957       }
86958       if (unlikely(kw_args > 0)) {
86959         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Iwrite_shared") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86960       }
86961     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
86962       goto __pyx_L5_argtuple_error;
86963     } else {
86964       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
86965     }
86966     __pyx_v_buf = values[0];
86967   }
86968   goto __pyx_L4_argument_unpacking_done;
86969   __pyx_L5_argtuple_error:;
86970   __Pyx_RaiseArgtupleInvalid("Iwrite_shared", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
86971   __pyx_L3_error:;
86972   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
86973   __Pyx_RefNannyFinishContext();
86974   return NULL;
86975   __pyx_L4_argument_unpacking_done:;
86976 
86977   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":402
86978  *         Nonblocking write using shared file pointer
86979  *         """
86980  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
86981  *         cdef Request request = <Request>Request.__new__(Request)
86982  *         with nogil: CHKERR( MPI_File_iwrite_shared(
86983  */
86984   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86985   __Pyx_GOTREF(__pyx_t_1);
86986   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
86987   __pyx_t_1 = 0;
86988 
86989   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":403
86990  *         """
86991  *         cdef _p_msg_io m = message_io_write(buf)
86992  *         cdef Request request = <Request>Request.__new__(Request)             # <<<<<<<<<<<<<<
86993  *         with nogil: CHKERR( MPI_File_iwrite_shared(
86994  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
86995  */
86996   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Request)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
86997   __Pyx_GOTREF(__pyx_t_1);
86998   __Pyx_INCREF(((PyObject *)((struct PyMPIRequestObject *)__pyx_t_1)));
86999   __pyx_v_request = ((struct PyMPIRequestObject *)__pyx_t_1);
87000   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
87001 
87002   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":404
87003  *         cdef _p_msg_io m = message_io_write(buf)
87004  *         cdef Request request = <Request>Request.__new__(Request)
87005  *         with nogil: CHKERR( MPI_File_iwrite_shared(             # <<<<<<<<<<<<<<
87006  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
87007  *         request.ob_buf = m
87008  */
87009   {
87010       #ifdef WITH_THREAD
87011       PyThreadState *_save = NULL;
87012       #endif
87013       Py_UNBLOCK_THREADS
87014       /*try:*/ {
87015 
87016         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":405
87017  *         cdef Request request = <Request>Request.__new__(Request)
87018  *         with nogil: CHKERR( MPI_File_iwrite_shared(
87019  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )             # <<<<<<<<<<<<<<
87020  *         request.ob_buf = m
87021  *         return request
87022  */
87023         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_iwrite_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, (&__pyx_v_request->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L7;}
87024       }
87025 
87026       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":404
87027  *         cdef _p_msg_io m = message_io_write(buf)
87028  *         cdef Request request = <Request>Request.__new__(Request)
87029  *         with nogil: CHKERR( MPI_File_iwrite_shared(             # <<<<<<<<<<<<<<
87030  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
87031  *         request.ob_buf = m
87032  */
87033       /*finally:*/ {
87034         int __pyx_why;
87035         __pyx_why = 0; goto __pyx_L8;
87036         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87037         __pyx_L8:;
87038         Py_BLOCK_THREADS
87039         switch (__pyx_why) {
87040           case 4: goto __pyx_L1_error;
87041         }
87042       }
87043   }
87044 
87045   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":406
87046  *         with nogil: CHKERR( MPI_File_iwrite_shared(
87047  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
87048  *         request.ob_buf = m             # <<<<<<<<<<<<<<
87049  *         return request
87050  *
87051  */
87052   __Pyx_INCREF(((PyObject *)__pyx_v_m));
87053   __Pyx_GIVEREF(((PyObject *)__pyx_v_m));
87054   __Pyx_GOTREF(__pyx_v_request->ob_buf);
87055   __Pyx_DECREF(__pyx_v_request->ob_buf);
87056   __pyx_v_request->ob_buf = ((PyObject *)__pyx_v_m);
87057 
87058   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":407
87059  *             self.ob_mpi, m.buf, m.count, m.dtype, &request.ob_mpi) )
87060  *         request.ob_buf = m
87061  *         return request             # <<<<<<<<<<<<<<
87062  *
87063  *     def Read_ordered(self, buf, Status status=None):
87064  */
87065   __Pyx_XDECREF(__pyx_r);
87066   __Pyx_INCREF(((PyObject *)__pyx_v_request));
87067   __pyx_r = ((PyObject *)__pyx_v_request);
87068   goto __pyx_L0;
87069 
87070   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87071   goto __pyx_L0;
87072   __pyx_L1_error:;
87073   __Pyx_XDECREF(__pyx_t_1);
87074   __Pyx_AddTraceback("mpi4py.MPI.File.Iwrite_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
87075   __pyx_r = NULL;
87076   __pyx_L0:;
87077   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87078   __Pyx_XDECREF((PyObject *)__pyx_v_request);
87079   __Pyx_XGIVEREF(__pyx_r);
87080   __Pyx_RefNannyFinishContext();
87081   return __pyx_r;
87082 }
87083 
87084 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":409
87085  *         return request
87086  *
87087  *     def Read_ordered(self, buf, Status status=None):             # <<<<<<<<<<<<<<
87088  *         """
87089  *         Collective read using shared file pointer
87090  */
87091 
87092 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_35Read_ordered(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87093 static char __pyx_doc_6mpi4py_3MPI_4File_35Read_ordered[] = "File.Read_ordered(self, buf, Status status=None)\n\n        Collective read using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_35Read_ordered(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87094 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_35Read_ordered(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87095   PyObject *__pyx_v_buf = 0;
87096   struct PyMPIStatusObject *__pyx_v_status = 0;
87097   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
87098   MPI_Status *__pyx_v_statusp;
87099   PyObject *__pyx_r = NULL;
87100   __Pyx_RefNannyDeclarations
87101   PyObject *__pyx_t_1 = NULL;
87102   int __pyx_t_2;
87103   int __pyx_lineno = 0;
87104   const char *__pyx_filename = NULL;
87105   int __pyx_clineno = 0;
87106   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
87107   __Pyx_RefNannySetupContext("Read_ordered");
87108   {
87109     PyObject* values[2] = {0,0};
87110     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
87111     if (unlikely(__pyx_kwds)) {
87112       Py_ssize_t kw_args;
87113       switch (PyTuple_GET_SIZE(__pyx_args)) {
87114         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87115         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87116         case  0: break;
87117         default: goto __pyx_L5_argtuple_error;
87118       }
87119       kw_args = PyDict_Size(__pyx_kwds);
87120       switch (PyTuple_GET_SIZE(__pyx_args)) {
87121         case  0:
87122         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
87123         if (likely(values[0])) kw_args--;
87124         else goto __pyx_L5_argtuple_error;
87125         case  1:
87126         if (kw_args > 0) {
87127           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
87128           if (value) { values[1] = value; kw_args--; }
87129         }
87130       }
87131       if (unlikely(kw_args > 0)) {
87132         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_ordered") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87133       }
87134     } else {
87135       switch (PyTuple_GET_SIZE(__pyx_args)) {
87136         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87137         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87138         break;
87139         default: goto __pyx_L5_argtuple_error;
87140       }
87141     }
87142     __pyx_v_buf = values[0];
87143     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
87144   }
87145   goto __pyx_L4_argument_unpacking_done;
87146   __pyx_L5_argtuple_error:;
87147   __Pyx_RaiseArgtupleInvalid("Read_ordered", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87148   __pyx_L3_error:;
87149   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered", __pyx_clineno, __pyx_lineno, __pyx_filename);
87150   __Pyx_RefNannyFinishContext();
87151   return NULL;
87152   __pyx_L4_argument_unpacking_done:;
87153   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87154 
87155   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":413
87156  *         Collective read using shared file pointer
87157  *         """
87158  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
87159  *         cdef MPI_Status *statusp = arg_Status(status)
87160  *         with nogil: CHKERR( MPI_File_read_ordered(
87161  */
87162   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87163   __Pyx_GOTREF(__pyx_t_1);
87164   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
87165   __pyx_t_1 = 0;
87166 
87167   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":414
87168  *         """
87169  *         cdef _p_msg_io m = message_io_read(buf)
87170  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
87171  *         with nogil: CHKERR( MPI_File_read_ordered(
87172  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87173  */
87174   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
87175 
87176   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":415
87177  *         cdef _p_msg_io m = message_io_read(buf)
87178  *         cdef MPI_Status *statusp = arg_Status(status)
87179  *         with nogil: CHKERR( MPI_File_read_ordered(             # <<<<<<<<<<<<<<
87180  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87181  *
87182  */
87183   {
87184       #ifdef WITH_THREAD
87185       PyThreadState *_save = NULL;
87186       #endif
87187       Py_UNBLOCK_THREADS
87188       /*try:*/ {
87189 
87190         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":416
87191  *         cdef MPI_Status *statusp = arg_Status(status)
87192  *         with nogil: CHKERR( MPI_File_read_ordered(
87193  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
87194  *
87195  *     def Write_ordered(self, buf, Status status=None):
87196  */
87197         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_ordered(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L7;}
87198       }
87199 
87200       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":415
87201  *         cdef _p_msg_io m = message_io_read(buf)
87202  *         cdef MPI_Status *statusp = arg_Status(status)
87203  *         with nogil: CHKERR( MPI_File_read_ordered(             # <<<<<<<<<<<<<<
87204  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87205  *
87206  */
87207       /*finally:*/ {
87208         int __pyx_why;
87209         __pyx_why = 0; goto __pyx_L8;
87210         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87211         __pyx_L8:;
87212         Py_BLOCK_THREADS
87213         switch (__pyx_why) {
87214           case 4: goto __pyx_L1_error;
87215         }
87216       }
87217   }
87218 
87219   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87220   goto __pyx_L0;
87221   __pyx_L1_error:;
87222   __Pyx_XDECREF(__pyx_t_1);
87223   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered", __pyx_clineno, __pyx_lineno, __pyx_filename);
87224   __pyx_r = NULL;
87225   __pyx_L0:;
87226   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87227   __Pyx_XGIVEREF(__pyx_r);
87228   __Pyx_RefNannyFinishContext();
87229   return __pyx_r;
87230 }
87231 
87232 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":418
87233  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87234  *
87235  *     def Write_ordered(self, buf, Status status=None):             # <<<<<<<<<<<<<<
87236  *         """
87237  *         Collective write using shared file pointer
87238  */
87239 
87240 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_36Write_ordered(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87241 static char __pyx_doc_6mpi4py_3MPI_4File_36Write_ordered[] = "File.Write_ordered(self, buf, Status status=None)\n\n        Collective write using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_36Write_ordered(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87242 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_36Write_ordered(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87243   PyObject *__pyx_v_buf = 0;
87244   struct PyMPIStatusObject *__pyx_v_status = 0;
87245   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
87246   MPI_Status *__pyx_v_statusp;
87247   PyObject *__pyx_r = NULL;
87248   __Pyx_RefNannyDeclarations
87249   PyObject *__pyx_t_1 = NULL;
87250   int __pyx_t_2;
87251   int __pyx_lineno = 0;
87252   const char *__pyx_filename = NULL;
87253   int __pyx_clineno = 0;
87254   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
87255   __Pyx_RefNannySetupContext("Write_ordered");
87256   {
87257     PyObject* values[2] = {0,0};
87258     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
87259     if (unlikely(__pyx_kwds)) {
87260       Py_ssize_t kw_args;
87261       switch (PyTuple_GET_SIZE(__pyx_args)) {
87262         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87263         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87264         case  0: break;
87265         default: goto __pyx_L5_argtuple_error;
87266       }
87267       kw_args = PyDict_Size(__pyx_kwds);
87268       switch (PyTuple_GET_SIZE(__pyx_args)) {
87269         case  0:
87270         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
87271         if (likely(values[0])) kw_args--;
87272         else goto __pyx_L5_argtuple_error;
87273         case  1:
87274         if (kw_args > 0) {
87275           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
87276           if (value) { values[1] = value; kw_args--; }
87277         }
87278       }
87279       if (unlikely(kw_args > 0)) {
87280         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_ordered") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87281       }
87282     } else {
87283       switch (PyTuple_GET_SIZE(__pyx_args)) {
87284         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87285         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87286         break;
87287         default: goto __pyx_L5_argtuple_error;
87288       }
87289     }
87290     __pyx_v_buf = values[0];
87291     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
87292   }
87293   goto __pyx_L4_argument_unpacking_done;
87294   __pyx_L5_argtuple_error:;
87295   __Pyx_RaiseArgtupleInvalid("Write_ordered", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87296   __pyx_L3_error:;
87297   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered", __pyx_clineno, __pyx_lineno, __pyx_filename);
87298   __Pyx_RefNannyFinishContext();
87299   return NULL;
87300   __pyx_L4_argument_unpacking_done:;
87301   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87302 
87303   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":422
87304  *         Collective write using shared file pointer
87305  *         """
87306  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
87307  *         cdef MPI_Status *statusp = arg_Status(status)
87308  *         with nogil: CHKERR( MPI_File_write_ordered(
87309  */
87310   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87311   __Pyx_GOTREF(__pyx_t_1);
87312   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
87313   __pyx_t_1 = 0;
87314 
87315   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":423
87316  *         """
87317  *         cdef _p_msg_io m = message_io_write(buf)
87318  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
87319  *         with nogil: CHKERR( MPI_File_write_ordered(
87320  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87321  */
87322   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
87323 
87324   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":424
87325  *         cdef _p_msg_io m = message_io_write(buf)
87326  *         cdef MPI_Status *statusp = arg_Status(status)
87327  *         with nogil: CHKERR( MPI_File_write_ordered(             # <<<<<<<<<<<<<<
87328  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87329  *
87330  */
87331   {
87332       #ifdef WITH_THREAD
87333       PyThreadState *_save = NULL;
87334       #endif
87335       Py_UNBLOCK_THREADS
87336       /*try:*/ {
87337 
87338         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":425
87339  *         cdef MPI_Status *statusp = arg_Status(status)
87340  *         with nogil: CHKERR( MPI_File_write_ordered(
87341  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )             # <<<<<<<<<<<<<<
87342  *
87343  *     def Seek_shared(self, Offset offset, int whence=SEEK_SET):
87344  */
87345         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_ordered(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L7;}
87346       }
87347 
87348       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":424
87349  *         cdef _p_msg_io m = message_io_write(buf)
87350  *         cdef MPI_Status *statusp = arg_Status(status)
87351  *         with nogil: CHKERR( MPI_File_write_ordered(             # <<<<<<<<<<<<<<
87352  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87353  *
87354  */
87355       /*finally:*/ {
87356         int __pyx_why;
87357         __pyx_why = 0; goto __pyx_L8;
87358         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87359         __pyx_L8:;
87360         Py_BLOCK_THREADS
87361         switch (__pyx_why) {
87362           case 4: goto __pyx_L1_error;
87363         }
87364       }
87365   }
87366 
87367   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87368   goto __pyx_L0;
87369   __pyx_L1_error:;
87370   __Pyx_XDECREF(__pyx_t_1);
87371   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered", __pyx_clineno, __pyx_lineno, __pyx_filename);
87372   __pyx_r = NULL;
87373   __pyx_L0:;
87374   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87375   __Pyx_XGIVEREF(__pyx_r);
87376   __Pyx_RefNannyFinishContext();
87377   return __pyx_r;
87378 }
87379 
87380 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":427
87381  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
87382  *
87383  *     def Seek_shared(self, Offset offset, int whence=SEEK_SET):             # <<<<<<<<<<<<<<
87384  *         """
87385  *         Update the shared file pointer
87386  */
87387 
87388 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_37Seek_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87389 static char __pyx_doc_6mpi4py_3MPI_4File_37Seek_shared[] = "File.Seek_shared(self, Offset offset, int whence=SEEK_SET)\n\n        Update the shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_37Seek_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87390 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_37Seek_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87391   MPI_Offset __pyx_v_offset;
87392   int __pyx_v_whence;
87393   PyObject *__pyx_r = NULL;
87394   __Pyx_RefNannyDeclarations
87395   int __pyx_t_1;
87396   int __pyx_lineno = 0;
87397   const char *__pyx_filename = NULL;
87398   int __pyx_clineno = 0;
87399   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__whence,0};
87400   __Pyx_RefNannySetupContext("Seek_shared");
87401   {
87402     PyObject* values[2] = {0,0};
87403     if (unlikely(__pyx_kwds)) {
87404       Py_ssize_t kw_args;
87405       switch (PyTuple_GET_SIZE(__pyx_args)) {
87406         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87407         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87408         case  0: break;
87409         default: goto __pyx_L5_argtuple_error;
87410       }
87411       kw_args = PyDict_Size(__pyx_kwds);
87412       switch (PyTuple_GET_SIZE(__pyx_args)) {
87413         case  0:
87414         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
87415         if (likely(values[0])) kw_args--;
87416         else goto __pyx_L5_argtuple_error;
87417         case  1:
87418         if (kw_args > 0) {
87419           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__whence);
87420           if (value) { values[1] = value; kw_args--; }
87421         }
87422       }
87423       if (unlikely(kw_args > 0)) {
87424         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Seek_shared") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87425       }
87426     } else {
87427       switch (PyTuple_GET_SIZE(__pyx_args)) {
87428         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87429         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87430         break;
87431         default: goto __pyx_L5_argtuple_error;
87432       }
87433     }
87434     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87435     if (values[1]) {
87436       __pyx_v_whence = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_whence == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87437     } else {
87438       __pyx_v_whence = __pyx_k_109;
87439     }
87440   }
87441   goto __pyx_L4_argument_unpacking_done;
87442   __pyx_L5_argtuple_error:;
87443   __Pyx_RaiseArgtupleInvalid("Seek_shared", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87444   __pyx_L3_error:;
87445   __Pyx_AddTraceback("mpi4py.MPI.File.Seek_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
87446   __Pyx_RefNannyFinishContext();
87447   return NULL;
87448   __pyx_L4_argument_unpacking_done:;
87449 
87450   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":431
87451  *         Update the shared file pointer
87452  *         """
87453  *         with nogil: CHKERR( MPI_File_seek_shared(self.ob_mpi, offset, whence) )             # <<<<<<<<<<<<<<
87454  *
87455  *     def Get_position_shared(self):
87456  */
87457   {
87458       #ifdef WITH_THREAD
87459       PyThreadState *_save = NULL;
87460       #endif
87461       Py_UNBLOCK_THREADS
87462       /*try:*/ {
87463         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_seek_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_whence)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L7;}
87464       }
87465       /*finally:*/ {
87466         int __pyx_why;
87467         __pyx_why = 0; goto __pyx_L8;
87468         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87469         __pyx_L8:;
87470         Py_BLOCK_THREADS
87471         switch (__pyx_why) {
87472           case 4: goto __pyx_L1_error;
87473         }
87474       }
87475   }
87476 
87477   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87478   goto __pyx_L0;
87479   __pyx_L1_error:;
87480   __Pyx_AddTraceback("mpi4py.MPI.File.Seek_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
87481   __pyx_r = NULL;
87482   __pyx_L0:;
87483   __Pyx_XGIVEREF(__pyx_r);
87484   __Pyx_RefNannyFinishContext();
87485   return __pyx_r;
87486 }
87487 
87488 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":433
87489  *         with nogil: CHKERR( MPI_File_seek_shared(self.ob_mpi, offset, whence) )
87490  *
87491  *     def Get_position_shared(self):             # <<<<<<<<<<<<<<
87492  *         """
87493  *         Return the current position of the shared file pointer
87494  */
87495 
87496 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_38Get_position_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87497 static char __pyx_doc_6mpi4py_3MPI_4File_38Get_position_shared[] = "File.Get_position_shared(self)\n\n        Return the current position of the shared file pointer\n        in etype units relative to the current view\n        ";
__pyx_pf_6mpi4py_3MPI_4File_38Get_position_shared(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87498 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_38Get_position_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87499   MPI_Offset __pyx_v_offset;
87500   PyObject *__pyx_r = NULL;
87501   __Pyx_RefNannyDeclarations
87502   int __pyx_t_1;
87503   PyObject *__pyx_t_2 = NULL;
87504   int __pyx_lineno = 0;
87505   const char *__pyx_filename = NULL;
87506   int __pyx_clineno = 0;
87507   __Pyx_RefNannySetupContext("Get_position_shared");
87508   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
87509     __Pyx_RaiseArgtupleInvalid("Get_position_shared", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
87510   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_position_shared", 0))) return NULL;
87511 
87512   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":438
87513  *         in etype units relative to the current view
87514  *         """
87515  *         cdef MPI_Offset offset = 0             # <<<<<<<<<<<<<<
87516  *         with nogil: CHKERR( MPI_File_get_position_shared(self.ob_mpi, &offset) )
87517  *         return offset
87518  */
87519   __pyx_v_offset = 0;
87520 
87521   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":439
87522  *         """
87523  *         cdef MPI_Offset offset = 0
87524  *         with nogil: CHKERR( MPI_File_get_position_shared(self.ob_mpi, &offset) )             # <<<<<<<<<<<<<<
87525  *         return offset
87526  *
87527  */
87528   {
87529       #ifdef WITH_THREAD
87530       PyThreadState *_save = NULL;
87531       #endif
87532       Py_UNBLOCK_THREADS
87533       /*try:*/ {
87534         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_position_shared(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_offset))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L6;}
87535       }
87536       /*finally:*/ {
87537         int __pyx_why;
87538         __pyx_why = 0; goto __pyx_L7;
87539         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
87540         __pyx_L7:;
87541         Py_BLOCK_THREADS
87542         switch (__pyx_why) {
87543           case 4: goto __pyx_L1_error;
87544         }
87545       }
87546   }
87547 
87548   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":440
87549  *         cdef MPI_Offset offset = 0
87550  *         with nogil: CHKERR( MPI_File_get_position_shared(self.ob_mpi, &offset) )
87551  *         return offset             # <<<<<<<<<<<<<<
87552  *
87553  *     # [9.4.5] Split Collective Data Access Routines
87554  */
87555   __Pyx_XDECREF(__pyx_r);
87556   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Offset(__pyx_v_offset); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87557   __Pyx_GOTREF(__pyx_t_2);
87558   __pyx_r = __pyx_t_2;
87559   __pyx_t_2 = 0;
87560   goto __pyx_L0;
87561 
87562   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87563   goto __pyx_L0;
87564   __pyx_L1_error:;
87565   __Pyx_XDECREF(__pyx_t_2);
87566   __Pyx_AddTraceback("mpi4py.MPI.File.Get_position_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
87567   __pyx_r = NULL;
87568   __pyx_L0:;
87569   __Pyx_XGIVEREF(__pyx_r);
87570   __Pyx_RefNannyFinishContext();
87571   return __pyx_r;
87572 }
87573 
87574 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":447
87575  *     # explicit offset
87576  *
87577  *     def Read_at_all_begin(self, Offset offset, buf):             # <<<<<<<<<<<<<<
87578  *         """
87579  *         Start a split collective read using explict offset
87580  */
87581 
87582 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_39Read_at_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87583 static char __pyx_doc_6mpi4py_3MPI_4File_39Read_at_all_begin[] = "File.Read_at_all_begin(self, Offset offset, buf)\n\n        Start a split collective read using explict offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_39Read_at_all_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87584 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_39Read_at_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87585   MPI_Offset __pyx_v_offset;
87586   PyObject *__pyx_v_buf = 0;
87587   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
87588   PyObject *__pyx_r = NULL;
87589   __Pyx_RefNannyDeclarations
87590   PyObject *__pyx_t_1 = NULL;
87591   int __pyx_t_2;
87592   int __pyx_lineno = 0;
87593   const char *__pyx_filename = NULL;
87594   int __pyx_clineno = 0;
87595   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,0};
87596   __Pyx_RefNannySetupContext("Read_at_all_begin");
87597   {
87598     PyObject* values[2] = {0,0};
87599     if (unlikely(__pyx_kwds)) {
87600       Py_ssize_t kw_args;
87601       switch (PyTuple_GET_SIZE(__pyx_args)) {
87602         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87603         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87604         case  0: break;
87605         default: goto __pyx_L5_argtuple_error;
87606       }
87607       kw_args = PyDict_Size(__pyx_kwds);
87608       switch (PyTuple_GET_SIZE(__pyx_args)) {
87609         case  0:
87610         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
87611         if (likely(values[0])) kw_args--;
87612         else goto __pyx_L5_argtuple_error;
87613         case  1:
87614         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
87615         if (likely(values[1])) kw_args--;
87616         else {
87617           __Pyx_RaiseArgtupleInvalid("Read_at_all_begin", 1, 2, 2, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87618         }
87619       }
87620       if (unlikely(kw_args > 0)) {
87621         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_at_all_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87622       }
87623     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
87624       goto __pyx_L5_argtuple_error;
87625     } else {
87626       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87627       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87628     }
87629     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87630     __pyx_v_buf = values[1];
87631   }
87632   goto __pyx_L4_argument_unpacking_done;
87633   __pyx_L5_argtuple_error:;
87634   __Pyx_RaiseArgtupleInvalid("Read_at_all_begin", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87635   __pyx_L3_error:;
87636   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
87637   __Pyx_RefNannyFinishContext();
87638   return NULL;
87639   __pyx_L4_argument_unpacking_done:;
87640 
87641   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":451
87642  *         Start a split collective read using explict offset
87643  *         """
87644  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
87645  *         with nogil: CHKERR( MPI_File_read_at_all_begin(
87646  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87647  */
87648   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87649   __Pyx_GOTREF(__pyx_t_1);
87650   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
87651   __pyx_t_1 = 0;
87652 
87653   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":452
87654  *         """
87655  *         cdef _p_msg_io m = message_io_read(buf)
87656  *         with nogil: CHKERR( MPI_File_read_at_all_begin(             # <<<<<<<<<<<<<<
87657  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87658  *
87659  */
87660   {
87661       #ifdef WITH_THREAD
87662       PyThreadState *_save = NULL;
87663       #endif
87664       Py_UNBLOCK_THREADS
87665       /*try:*/ {
87666 
87667         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":453
87668  *         cdef _p_msg_io m = message_io_read(buf)
87669  *         with nogil: CHKERR( MPI_File_read_at_all_begin(
87670  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
87671  *
87672  *     def Read_at_all_end(self, buf, Status status=None):
87673  */
87674         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_at_all_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L7;}
87675       }
87676 
87677       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":452
87678  *         """
87679  *         cdef _p_msg_io m = message_io_read(buf)
87680  *         with nogil: CHKERR( MPI_File_read_at_all_begin(             # <<<<<<<<<<<<<<
87681  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87682  *
87683  */
87684       /*finally:*/ {
87685         int __pyx_why;
87686         __pyx_why = 0; goto __pyx_L8;
87687         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87688         __pyx_L8:;
87689         Py_BLOCK_THREADS
87690         switch (__pyx_why) {
87691           case 4: goto __pyx_L1_error;
87692         }
87693       }
87694   }
87695 
87696   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87697   goto __pyx_L0;
87698   __pyx_L1_error:;
87699   __Pyx_XDECREF(__pyx_t_1);
87700   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
87701   __pyx_r = NULL;
87702   __pyx_L0:;
87703   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87704   __Pyx_XGIVEREF(__pyx_r);
87705   __Pyx_RefNannyFinishContext();
87706   return __pyx_r;
87707 }
87708 
87709 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":455
87710  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87711  *
87712  *     def Read_at_all_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
87713  *         """
87714  *         Complete a split collective read using explict offset
87715  */
87716 
87717 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_40Read_at_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87718 static char __pyx_doc_6mpi4py_3MPI_4File_40Read_at_all_end[] = "File.Read_at_all_end(self, buf, Status status=None)\n\n        Complete a split collective read using explict offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_40Read_at_all_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87719 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_40Read_at_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87720   PyObject *__pyx_v_buf = 0;
87721   struct PyMPIStatusObject *__pyx_v_status = 0;
87722   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
87723   MPI_Status *__pyx_v_statusp;
87724   PyObject *__pyx_r = NULL;
87725   __Pyx_RefNannyDeclarations
87726   PyObject *__pyx_t_1 = NULL;
87727   int __pyx_t_2;
87728   int __pyx_lineno = 0;
87729   const char *__pyx_filename = NULL;
87730   int __pyx_clineno = 0;
87731   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
87732   __Pyx_RefNannySetupContext("Read_at_all_end");
87733   {
87734     PyObject* values[2] = {0,0};
87735     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
87736     if (unlikely(__pyx_kwds)) {
87737       Py_ssize_t kw_args;
87738       switch (PyTuple_GET_SIZE(__pyx_args)) {
87739         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87740         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87741         case  0: break;
87742         default: goto __pyx_L5_argtuple_error;
87743       }
87744       kw_args = PyDict_Size(__pyx_kwds);
87745       switch (PyTuple_GET_SIZE(__pyx_args)) {
87746         case  0:
87747         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
87748         if (likely(values[0])) kw_args--;
87749         else goto __pyx_L5_argtuple_error;
87750         case  1:
87751         if (kw_args > 0) {
87752           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
87753           if (value) { values[1] = value; kw_args--; }
87754         }
87755       }
87756       if (unlikely(kw_args > 0)) {
87757         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_at_all_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87758       }
87759     } else {
87760       switch (PyTuple_GET_SIZE(__pyx_args)) {
87761         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87762         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87763         break;
87764         default: goto __pyx_L5_argtuple_error;
87765       }
87766     }
87767     __pyx_v_buf = values[0];
87768     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
87769   }
87770   goto __pyx_L4_argument_unpacking_done;
87771   __pyx_L5_argtuple_error:;
87772   __Pyx_RaiseArgtupleInvalid("Read_at_all_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87773   __pyx_L3_error:;
87774   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
87775   __Pyx_RefNannyFinishContext();
87776   return NULL;
87777   __pyx_L4_argument_unpacking_done:;
87778   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87779 
87780   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":459
87781  *         Complete a split collective read using explict offset
87782  *         """
87783  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
87784  *         cdef MPI_Status *statusp = arg_Status(status)
87785  *         with nogil: CHKERR( MPI_File_read_at_all_end(
87786  */
87787   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87788   __Pyx_GOTREF(__pyx_t_1);
87789   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
87790   __pyx_t_1 = 0;
87791 
87792   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":460
87793  *         """
87794  *         cdef _p_msg_io m = message_io_read(buf)
87795  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
87796  *         with nogil: CHKERR( MPI_File_read_at_all_end(
87797  *             self.ob_mpi, m.buf, statusp) )
87798  */
87799   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
87800 
87801   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":461
87802  *         cdef _p_msg_io m = message_io_read(buf)
87803  *         cdef MPI_Status *statusp = arg_Status(status)
87804  *         with nogil: CHKERR( MPI_File_read_at_all_end(             # <<<<<<<<<<<<<<
87805  *             self.ob_mpi, m.buf, statusp) )
87806  *
87807  */
87808   {
87809       #ifdef WITH_THREAD
87810       PyThreadState *_save = NULL;
87811       #endif
87812       Py_UNBLOCK_THREADS
87813       /*try:*/ {
87814 
87815         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":462
87816  *         cdef MPI_Status *statusp = arg_Status(status)
87817  *         with nogil: CHKERR( MPI_File_read_at_all_end(
87818  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
87819  *
87820  *     def Write_at_all_begin(self, Offset offset, buf):
87821  */
87822         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_at_all_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L7;}
87823       }
87824 
87825       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":461
87826  *         cdef _p_msg_io m = message_io_read(buf)
87827  *         cdef MPI_Status *statusp = arg_Status(status)
87828  *         with nogil: CHKERR( MPI_File_read_at_all_end(             # <<<<<<<<<<<<<<
87829  *             self.ob_mpi, m.buf, statusp) )
87830  *
87831  */
87832       /*finally:*/ {
87833         int __pyx_why;
87834         __pyx_why = 0; goto __pyx_L8;
87835         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87836         __pyx_L8:;
87837         Py_BLOCK_THREADS
87838         switch (__pyx_why) {
87839           case 4: goto __pyx_L1_error;
87840         }
87841       }
87842   }
87843 
87844   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87845   goto __pyx_L0;
87846   __pyx_L1_error:;
87847   __Pyx_XDECREF(__pyx_t_1);
87848   __Pyx_AddTraceback("mpi4py.MPI.File.Read_at_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
87849   __pyx_r = NULL;
87850   __pyx_L0:;
87851   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87852   __Pyx_XGIVEREF(__pyx_r);
87853   __Pyx_RefNannyFinishContext();
87854   return __pyx_r;
87855 }
87856 
87857 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":464
87858  *             self.ob_mpi, m.buf, statusp) )
87859  *
87860  *     def Write_at_all_begin(self, Offset offset, buf):             # <<<<<<<<<<<<<<
87861  *         """
87862  *         Start a split collective write using explict offset
87863  */
87864 
87865 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_41Write_at_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
87866 static char __pyx_doc_6mpi4py_3MPI_4File_41Write_at_all_begin[] = "File.Write_at_all_begin(self, Offset offset, buf)\n\n        Start a split collective write using explict offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_41Write_at_all_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)87867 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_41Write_at_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
87868   MPI_Offset __pyx_v_offset;
87869   PyObject *__pyx_v_buf = 0;
87870   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
87871   PyObject *__pyx_r = NULL;
87872   __Pyx_RefNannyDeclarations
87873   PyObject *__pyx_t_1 = NULL;
87874   int __pyx_t_2;
87875   int __pyx_lineno = 0;
87876   const char *__pyx_filename = NULL;
87877   int __pyx_clineno = 0;
87878   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__offset,&__pyx_n_s__buf,0};
87879   __Pyx_RefNannySetupContext("Write_at_all_begin");
87880   {
87881     PyObject* values[2] = {0,0};
87882     if (unlikely(__pyx_kwds)) {
87883       Py_ssize_t kw_args;
87884       switch (PyTuple_GET_SIZE(__pyx_args)) {
87885         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87886         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87887         case  0: break;
87888         default: goto __pyx_L5_argtuple_error;
87889       }
87890       kw_args = PyDict_Size(__pyx_kwds);
87891       switch (PyTuple_GET_SIZE(__pyx_args)) {
87892         case  0:
87893         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset);
87894         if (likely(values[0])) kw_args--;
87895         else goto __pyx_L5_argtuple_error;
87896         case  1:
87897         values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
87898         if (likely(values[1])) kw_args--;
87899         else {
87900           __Pyx_RaiseArgtupleInvalid("Write_at_all_begin", 1, 2, 2, 1); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87901         }
87902       }
87903       if (unlikely(kw_args > 0)) {
87904         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_at_all_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87905       }
87906     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
87907       goto __pyx_L5_argtuple_error;
87908     } else {
87909       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
87910       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
87911     }
87912     __pyx_v_offset = __Pyx_PyInt_from_py_MPI_Offset(values[0]); if (unlikely((__pyx_v_offset == (MPI_Offset)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87913     __pyx_v_buf = values[1];
87914   }
87915   goto __pyx_L4_argument_unpacking_done;
87916   __pyx_L5_argtuple_error:;
87917   __Pyx_RaiseArgtupleInvalid("Write_at_all_begin", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
87918   __pyx_L3_error:;
87919   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
87920   __Pyx_RefNannyFinishContext();
87921   return NULL;
87922   __pyx_L4_argument_unpacking_done:;
87923 
87924   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":468
87925  *         Start a split collective write using explict offset
87926  *         """
87927  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
87928  *         with nogil: CHKERR( MPI_File_write_at_all_begin(
87929  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87930  */
87931   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
87932   __Pyx_GOTREF(__pyx_t_1);
87933   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
87934   __pyx_t_1 = 0;
87935 
87936   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":469
87937  *         """
87938  *         cdef _p_msg_io m = message_io_write(buf)
87939  *         with nogil: CHKERR( MPI_File_write_at_all_begin(             # <<<<<<<<<<<<<<
87940  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87941  *
87942  */
87943   {
87944       #ifdef WITH_THREAD
87945       PyThreadState *_save = NULL;
87946       #endif
87947       Py_UNBLOCK_THREADS
87948       /*try:*/ {
87949 
87950         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":470
87951  *         cdef _p_msg_io m = message_io_write(buf)
87952  *         with nogil: CHKERR( MPI_File_write_at_all_begin(
87953  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
87954  *
87955  *     def Write_at_all_end(self, buf, Status status=None):
87956  */
87957         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_at_all_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_offset, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L7;}
87958       }
87959 
87960       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":469
87961  *         """
87962  *         cdef _p_msg_io m = message_io_write(buf)
87963  *         with nogil: CHKERR( MPI_File_write_at_all_begin(             # <<<<<<<<<<<<<<
87964  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87965  *
87966  */
87967       /*finally:*/ {
87968         int __pyx_why;
87969         __pyx_why = 0; goto __pyx_L8;
87970         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
87971         __pyx_L8:;
87972         Py_BLOCK_THREADS
87973         switch (__pyx_why) {
87974           case 4: goto __pyx_L1_error;
87975         }
87976       }
87977   }
87978 
87979   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
87980   goto __pyx_L0;
87981   __pyx_L1_error:;
87982   __Pyx_XDECREF(__pyx_t_1);
87983   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
87984   __pyx_r = NULL;
87985   __pyx_L0:;
87986   __Pyx_XDECREF((PyObject *)__pyx_v_m);
87987   __Pyx_XGIVEREF(__pyx_r);
87988   __Pyx_RefNannyFinishContext();
87989   return __pyx_r;
87990 }
87991 
87992 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":472
87993  *             self.ob_mpi, offset, m.buf, m.count, m.dtype) )
87994  *
87995  *     def Write_at_all_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
87996  *         """
87997  *         Complete a split collective write using explict offset
87998  */
87999 
88000 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_42Write_at_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88001 static char __pyx_doc_6mpi4py_3MPI_4File_42Write_at_all_end[] = "File.Write_at_all_end(self, buf, Status status=None)\n\n        Complete a split collective write using explict offset\n        ";
__pyx_pf_6mpi4py_3MPI_4File_42Write_at_all_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88002 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_42Write_at_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88003   PyObject *__pyx_v_buf = 0;
88004   struct PyMPIStatusObject *__pyx_v_status = 0;
88005   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88006   MPI_Status *__pyx_v_statusp;
88007   PyObject *__pyx_r = NULL;
88008   __Pyx_RefNannyDeclarations
88009   PyObject *__pyx_t_1 = NULL;
88010   int __pyx_t_2;
88011   int __pyx_lineno = 0;
88012   const char *__pyx_filename = NULL;
88013   int __pyx_clineno = 0;
88014   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
88015   __Pyx_RefNannySetupContext("Write_at_all_end");
88016   {
88017     PyObject* values[2] = {0,0};
88018     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
88019     if (unlikely(__pyx_kwds)) {
88020       Py_ssize_t kw_args;
88021       switch (PyTuple_GET_SIZE(__pyx_args)) {
88022         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88023         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88024         case  0: break;
88025         default: goto __pyx_L5_argtuple_error;
88026       }
88027       kw_args = PyDict_Size(__pyx_kwds);
88028       switch (PyTuple_GET_SIZE(__pyx_args)) {
88029         case  0:
88030         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88031         if (likely(values[0])) kw_args--;
88032         else goto __pyx_L5_argtuple_error;
88033         case  1:
88034         if (kw_args > 0) {
88035           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
88036           if (value) { values[1] = value; kw_args--; }
88037         }
88038       }
88039       if (unlikely(kw_args > 0)) {
88040         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_at_all_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88041       }
88042     } else {
88043       switch (PyTuple_GET_SIZE(__pyx_args)) {
88044         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88045         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88046         break;
88047         default: goto __pyx_L5_argtuple_error;
88048       }
88049     }
88050     __pyx_v_buf = values[0];
88051     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
88052   }
88053   goto __pyx_L4_argument_unpacking_done;
88054   __pyx_L5_argtuple_error:;
88055   __Pyx_RaiseArgtupleInvalid("Write_at_all_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88056   __pyx_L3_error:;
88057   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88058   __Pyx_RefNannyFinishContext();
88059   return NULL;
88060   __pyx_L4_argument_unpacking_done:;
88061   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88062 
88063   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":476
88064  *         Complete a split collective write using explict offset
88065  *         """
88066  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
88067  *         cdef MPI_Status *statusp = arg_Status(status)
88068  *         with nogil: CHKERR( MPI_File_write_at_all_end(
88069  */
88070   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88071   __Pyx_GOTREF(__pyx_t_1);
88072   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88073   __pyx_t_1 = 0;
88074 
88075   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":477
88076  *         """
88077  *         cdef _p_msg_io m = message_io_write(buf)
88078  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
88079  *         with nogil: CHKERR( MPI_File_write_at_all_end(
88080  *             self.ob_mpi, m.buf, statusp) )
88081  */
88082   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
88083 
88084   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":478
88085  *         cdef _p_msg_io m = message_io_write(buf)
88086  *         cdef MPI_Status *statusp = arg_Status(status)
88087  *         with nogil: CHKERR( MPI_File_write_at_all_end(             # <<<<<<<<<<<<<<
88088  *             self.ob_mpi, m.buf, statusp) )
88089  *
88090  */
88091   {
88092       #ifdef WITH_THREAD
88093       PyThreadState *_save = NULL;
88094       #endif
88095       Py_UNBLOCK_THREADS
88096       /*try:*/ {
88097 
88098         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":479
88099  *         cdef MPI_Status *statusp = arg_Status(status)
88100  *         with nogil: CHKERR( MPI_File_write_at_all_end(
88101  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
88102  *
88103  *     # individual file pointer
88104  */
88105         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_at_all_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L7;}
88106       }
88107 
88108       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":478
88109  *         cdef _p_msg_io m = message_io_write(buf)
88110  *         cdef MPI_Status *statusp = arg_Status(status)
88111  *         with nogil: CHKERR( MPI_File_write_at_all_end(             # <<<<<<<<<<<<<<
88112  *             self.ob_mpi, m.buf, statusp) )
88113  *
88114  */
88115       /*finally:*/ {
88116         int __pyx_why;
88117         __pyx_why = 0; goto __pyx_L8;
88118         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88119         __pyx_L8:;
88120         Py_BLOCK_THREADS
88121         switch (__pyx_why) {
88122           case 4: goto __pyx_L1_error;
88123         }
88124       }
88125   }
88126 
88127   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88128   goto __pyx_L0;
88129   __pyx_L1_error:;
88130   __Pyx_XDECREF(__pyx_t_1);
88131   __Pyx_AddTraceback("mpi4py.MPI.File.Write_at_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88132   __pyx_r = NULL;
88133   __pyx_L0:;
88134   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88135   __Pyx_XGIVEREF(__pyx_r);
88136   __Pyx_RefNannyFinishContext();
88137   return __pyx_r;
88138 }
88139 
88140 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":483
88141  *     # individual file pointer
88142  *
88143  *     def Read_all_begin(self, buf):             # <<<<<<<<<<<<<<
88144  *         """
88145  *         Start a split collective read
88146  */
88147 
88148 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_43Read_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88149 static char __pyx_doc_6mpi4py_3MPI_4File_43Read_all_begin[] = "File.Read_all_begin(self, buf)\n\n        Start a split collective read\n        using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_43Read_all_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88150 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_43Read_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88151   PyObject *__pyx_v_buf = 0;
88152   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88153   PyObject *__pyx_r = NULL;
88154   __Pyx_RefNannyDeclarations
88155   PyObject *__pyx_t_1 = NULL;
88156   int __pyx_t_2;
88157   int __pyx_lineno = 0;
88158   const char *__pyx_filename = NULL;
88159   int __pyx_clineno = 0;
88160   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
88161   __Pyx_RefNannySetupContext("Read_all_begin");
88162   {
88163     PyObject* values[1] = {0};
88164     if (unlikely(__pyx_kwds)) {
88165       Py_ssize_t kw_args;
88166       switch (PyTuple_GET_SIZE(__pyx_args)) {
88167         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88168         case  0: break;
88169         default: goto __pyx_L5_argtuple_error;
88170       }
88171       kw_args = PyDict_Size(__pyx_kwds);
88172       switch (PyTuple_GET_SIZE(__pyx_args)) {
88173         case  0:
88174         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88175         if (likely(values[0])) kw_args--;
88176         else goto __pyx_L5_argtuple_error;
88177       }
88178       if (unlikely(kw_args > 0)) {
88179         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_all_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88180       }
88181     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
88182       goto __pyx_L5_argtuple_error;
88183     } else {
88184       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88185     }
88186     __pyx_v_buf = values[0];
88187   }
88188   goto __pyx_L4_argument_unpacking_done;
88189   __pyx_L5_argtuple_error:;
88190   __Pyx_RaiseArgtupleInvalid("Read_all_begin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88191   __pyx_L3_error:;
88192   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88193   __Pyx_RefNannyFinishContext();
88194   return NULL;
88195   __pyx_L4_argument_unpacking_done:;
88196 
88197   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":488
88198  *         using individual file pointer
88199  *         """
88200  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
88201  *         with nogil: CHKERR( MPI_File_read_all_begin(
88202  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88203  */
88204   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88205   __Pyx_GOTREF(__pyx_t_1);
88206   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88207   __pyx_t_1 = 0;
88208 
88209   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":489
88210  *         """
88211  *         cdef _p_msg_io m = message_io_read(buf)
88212  *         with nogil: CHKERR( MPI_File_read_all_begin(             # <<<<<<<<<<<<<<
88213  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88214  *
88215  */
88216   {
88217       #ifdef WITH_THREAD
88218       PyThreadState *_save = NULL;
88219       #endif
88220       Py_UNBLOCK_THREADS
88221       /*try:*/ {
88222 
88223         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":490
88224  *         cdef _p_msg_io m = message_io_read(buf)
88225  *         with nogil: CHKERR( MPI_File_read_all_begin(
88226  *             self.ob_mpi, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
88227  *
88228  *     def Read_all_end(self, buf, Status status=None):
88229  */
88230         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_all_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L7;}
88231       }
88232 
88233       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":489
88234  *         """
88235  *         cdef _p_msg_io m = message_io_read(buf)
88236  *         with nogil: CHKERR( MPI_File_read_all_begin(             # <<<<<<<<<<<<<<
88237  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88238  *
88239  */
88240       /*finally:*/ {
88241         int __pyx_why;
88242         __pyx_why = 0; goto __pyx_L8;
88243         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88244         __pyx_L8:;
88245         Py_BLOCK_THREADS
88246         switch (__pyx_why) {
88247           case 4: goto __pyx_L1_error;
88248         }
88249       }
88250   }
88251 
88252   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88253   goto __pyx_L0;
88254   __pyx_L1_error:;
88255   __Pyx_XDECREF(__pyx_t_1);
88256   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88257   __pyx_r = NULL;
88258   __pyx_L0:;
88259   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88260   __Pyx_XGIVEREF(__pyx_r);
88261   __Pyx_RefNannyFinishContext();
88262   return __pyx_r;
88263 }
88264 
88265 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":492
88266  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88267  *
88268  *     def Read_all_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
88269  *         """
88270  *         Complete a split collective read
88271  */
88272 
88273 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_44Read_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88274 static char __pyx_doc_6mpi4py_3MPI_4File_44Read_all_end[] = "File.Read_all_end(self, buf, Status status=None)\n\n        Complete a split collective read\n        using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_44Read_all_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88275 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_44Read_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88276   PyObject *__pyx_v_buf = 0;
88277   struct PyMPIStatusObject *__pyx_v_status = 0;
88278   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88279   MPI_Status *__pyx_v_statusp;
88280   PyObject *__pyx_r = NULL;
88281   __Pyx_RefNannyDeclarations
88282   PyObject *__pyx_t_1 = NULL;
88283   int __pyx_t_2;
88284   int __pyx_lineno = 0;
88285   const char *__pyx_filename = NULL;
88286   int __pyx_clineno = 0;
88287   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
88288   __Pyx_RefNannySetupContext("Read_all_end");
88289   {
88290     PyObject* values[2] = {0,0};
88291     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
88292     if (unlikely(__pyx_kwds)) {
88293       Py_ssize_t kw_args;
88294       switch (PyTuple_GET_SIZE(__pyx_args)) {
88295         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88296         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88297         case  0: break;
88298         default: goto __pyx_L5_argtuple_error;
88299       }
88300       kw_args = PyDict_Size(__pyx_kwds);
88301       switch (PyTuple_GET_SIZE(__pyx_args)) {
88302         case  0:
88303         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88304         if (likely(values[0])) kw_args--;
88305         else goto __pyx_L5_argtuple_error;
88306         case  1:
88307         if (kw_args > 0) {
88308           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
88309           if (value) { values[1] = value; kw_args--; }
88310         }
88311       }
88312       if (unlikely(kw_args > 0)) {
88313         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_all_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88314       }
88315     } else {
88316       switch (PyTuple_GET_SIZE(__pyx_args)) {
88317         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88318         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88319         break;
88320         default: goto __pyx_L5_argtuple_error;
88321       }
88322     }
88323     __pyx_v_buf = values[0];
88324     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
88325   }
88326   goto __pyx_L4_argument_unpacking_done;
88327   __pyx_L5_argtuple_error:;
88328   __Pyx_RaiseArgtupleInvalid("Read_all_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88329   __pyx_L3_error:;
88330   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88331   __Pyx_RefNannyFinishContext();
88332   return NULL;
88333   __pyx_L4_argument_unpacking_done:;
88334   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88335 
88336   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":497
88337  *         using individual file pointer
88338  *         """
88339  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
88340  *         cdef MPI_Status *statusp = arg_Status(status)
88341  *         with nogil: CHKERR( MPI_File_read_all_end(
88342  */
88343   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88344   __Pyx_GOTREF(__pyx_t_1);
88345   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88346   __pyx_t_1 = 0;
88347 
88348   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":498
88349  *         """
88350  *         cdef _p_msg_io m = message_io_read(buf)
88351  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
88352  *         with nogil: CHKERR( MPI_File_read_all_end(
88353  *             self.ob_mpi, m.buf, statusp) )
88354  */
88355   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
88356 
88357   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":499
88358  *         cdef _p_msg_io m = message_io_read(buf)
88359  *         cdef MPI_Status *statusp = arg_Status(status)
88360  *         with nogil: CHKERR( MPI_File_read_all_end(             # <<<<<<<<<<<<<<
88361  *             self.ob_mpi, m.buf, statusp) )
88362  *
88363  */
88364   {
88365       #ifdef WITH_THREAD
88366       PyThreadState *_save = NULL;
88367       #endif
88368       Py_UNBLOCK_THREADS
88369       /*try:*/ {
88370 
88371         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":500
88372  *         cdef MPI_Status *statusp = arg_Status(status)
88373  *         with nogil: CHKERR( MPI_File_read_all_end(
88374  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
88375  *
88376  *     def Write_all_begin(self, buf):
88377  */
88378         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_all_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L7;}
88379       }
88380 
88381       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":499
88382  *         cdef _p_msg_io m = message_io_read(buf)
88383  *         cdef MPI_Status *statusp = arg_Status(status)
88384  *         with nogil: CHKERR( MPI_File_read_all_end(             # <<<<<<<<<<<<<<
88385  *             self.ob_mpi, m.buf, statusp) )
88386  *
88387  */
88388       /*finally:*/ {
88389         int __pyx_why;
88390         __pyx_why = 0; goto __pyx_L8;
88391         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88392         __pyx_L8:;
88393         Py_BLOCK_THREADS
88394         switch (__pyx_why) {
88395           case 4: goto __pyx_L1_error;
88396         }
88397       }
88398   }
88399 
88400   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88401   goto __pyx_L0;
88402   __pyx_L1_error:;
88403   __Pyx_XDECREF(__pyx_t_1);
88404   __Pyx_AddTraceback("mpi4py.MPI.File.Read_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88405   __pyx_r = NULL;
88406   __pyx_L0:;
88407   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88408   __Pyx_XGIVEREF(__pyx_r);
88409   __Pyx_RefNannyFinishContext();
88410   return __pyx_r;
88411 }
88412 
88413 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":502
88414  *             self.ob_mpi, m.buf, statusp) )
88415  *
88416  *     def Write_all_begin(self, buf):             # <<<<<<<<<<<<<<
88417  *         """
88418  *         Start a split collective write
88419  */
88420 
88421 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_45Write_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88422 static char __pyx_doc_6mpi4py_3MPI_4File_45Write_all_begin[] = "File.Write_all_begin(self, buf)\n\n        Start a split collective write\n        using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_45Write_all_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88423 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_45Write_all_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88424   PyObject *__pyx_v_buf = 0;
88425   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88426   PyObject *__pyx_r = NULL;
88427   __Pyx_RefNannyDeclarations
88428   PyObject *__pyx_t_1 = NULL;
88429   int __pyx_t_2;
88430   int __pyx_lineno = 0;
88431   const char *__pyx_filename = NULL;
88432   int __pyx_clineno = 0;
88433   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
88434   __Pyx_RefNannySetupContext("Write_all_begin");
88435   {
88436     PyObject* values[1] = {0};
88437     if (unlikely(__pyx_kwds)) {
88438       Py_ssize_t kw_args;
88439       switch (PyTuple_GET_SIZE(__pyx_args)) {
88440         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88441         case  0: break;
88442         default: goto __pyx_L5_argtuple_error;
88443       }
88444       kw_args = PyDict_Size(__pyx_kwds);
88445       switch (PyTuple_GET_SIZE(__pyx_args)) {
88446         case  0:
88447         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88448         if (likely(values[0])) kw_args--;
88449         else goto __pyx_L5_argtuple_error;
88450       }
88451       if (unlikely(kw_args > 0)) {
88452         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_all_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88453       }
88454     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
88455       goto __pyx_L5_argtuple_error;
88456     } else {
88457       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88458     }
88459     __pyx_v_buf = values[0];
88460   }
88461   goto __pyx_L4_argument_unpacking_done;
88462   __pyx_L5_argtuple_error:;
88463   __Pyx_RaiseArgtupleInvalid("Write_all_begin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88464   __pyx_L3_error:;
88465   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88466   __Pyx_RefNannyFinishContext();
88467   return NULL;
88468   __pyx_L4_argument_unpacking_done:;
88469 
88470   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":507
88471  *         using individual file pointer
88472  *         """
88473  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
88474  *         with nogil: CHKERR( MPI_File_write_all_begin(
88475  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88476  */
88477   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88478   __Pyx_GOTREF(__pyx_t_1);
88479   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88480   __pyx_t_1 = 0;
88481 
88482   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":508
88483  *         """
88484  *         cdef _p_msg_io m = message_io_write(buf)
88485  *         with nogil: CHKERR( MPI_File_write_all_begin(             # <<<<<<<<<<<<<<
88486  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88487  *
88488  */
88489   {
88490       #ifdef WITH_THREAD
88491       PyThreadState *_save = NULL;
88492       #endif
88493       Py_UNBLOCK_THREADS
88494       /*try:*/ {
88495 
88496         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":509
88497  *         cdef _p_msg_io m = message_io_write(buf)
88498  *         with nogil: CHKERR( MPI_File_write_all_begin(
88499  *             self.ob_mpi, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
88500  *
88501  *     def Write_all_end(self, buf, Status status=None):
88502  */
88503         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_all_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L7;}
88504       }
88505 
88506       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":508
88507  *         """
88508  *         cdef _p_msg_io m = message_io_write(buf)
88509  *         with nogil: CHKERR( MPI_File_write_all_begin(             # <<<<<<<<<<<<<<
88510  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88511  *
88512  */
88513       /*finally:*/ {
88514         int __pyx_why;
88515         __pyx_why = 0; goto __pyx_L8;
88516         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88517         __pyx_L8:;
88518         Py_BLOCK_THREADS
88519         switch (__pyx_why) {
88520           case 4: goto __pyx_L1_error;
88521         }
88522       }
88523   }
88524 
88525   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88526   goto __pyx_L0;
88527   __pyx_L1_error:;
88528   __Pyx_XDECREF(__pyx_t_1);
88529   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88530   __pyx_r = NULL;
88531   __pyx_L0:;
88532   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88533   __Pyx_XGIVEREF(__pyx_r);
88534   __Pyx_RefNannyFinishContext();
88535   return __pyx_r;
88536 }
88537 
88538 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":511
88539  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88540  *
88541  *     def Write_all_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
88542  *         """
88543  *         Complete a split collective write
88544  */
88545 
88546 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_46Write_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88547 static char __pyx_doc_6mpi4py_3MPI_4File_46Write_all_end[] = "File.Write_all_end(self, buf, Status status=None)\n\n        Complete a split collective write\n        using individual file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_46Write_all_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88548 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_46Write_all_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88549   PyObject *__pyx_v_buf = 0;
88550   struct PyMPIStatusObject *__pyx_v_status = 0;
88551   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88552   MPI_Status *__pyx_v_statusp;
88553   PyObject *__pyx_r = NULL;
88554   __Pyx_RefNannyDeclarations
88555   PyObject *__pyx_t_1 = NULL;
88556   int __pyx_t_2;
88557   int __pyx_lineno = 0;
88558   const char *__pyx_filename = NULL;
88559   int __pyx_clineno = 0;
88560   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
88561   __Pyx_RefNannySetupContext("Write_all_end");
88562   {
88563     PyObject* values[2] = {0,0};
88564     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
88565     if (unlikely(__pyx_kwds)) {
88566       Py_ssize_t kw_args;
88567       switch (PyTuple_GET_SIZE(__pyx_args)) {
88568         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88569         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88570         case  0: break;
88571         default: goto __pyx_L5_argtuple_error;
88572       }
88573       kw_args = PyDict_Size(__pyx_kwds);
88574       switch (PyTuple_GET_SIZE(__pyx_args)) {
88575         case  0:
88576         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88577         if (likely(values[0])) kw_args--;
88578         else goto __pyx_L5_argtuple_error;
88579         case  1:
88580         if (kw_args > 0) {
88581           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
88582           if (value) { values[1] = value; kw_args--; }
88583         }
88584       }
88585       if (unlikely(kw_args > 0)) {
88586         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_all_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88587       }
88588     } else {
88589       switch (PyTuple_GET_SIZE(__pyx_args)) {
88590         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88591         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88592         break;
88593         default: goto __pyx_L5_argtuple_error;
88594       }
88595     }
88596     __pyx_v_buf = values[0];
88597     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
88598   }
88599   goto __pyx_L4_argument_unpacking_done;
88600   __pyx_L5_argtuple_error:;
88601   __Pyx_RaiseArgtupleInvalid("Write_all_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88602   __pyx_L3_error:;
88603   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88604   __Pyx_RefNannyFinishContext();
88605   return NULL;
88606   __pyx_L4_argument_unpacking_done:;
88607   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88608 
88609   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":516
88610  *         using individual file pointer
88611  *         """
88612  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
88613  *         cdef MPI_Status *statusp = arg_Status(status)
88614  *         with nogil: CHKERR( MPI_File_write_all_end(
88615  */
88616   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88617   __Pyx_GOTREF(__pyx_t_1);
88618   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88619   __pyx_t_1 = 0;
88620 
88621   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":517
88622  *         """
88623  *         cdef _p_msg_io m = message_io_write(buf)
88624  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
88625  *         with nogil: CHKERR( MPI_File_write_all_end(
88626  *             self.ob_mpi, m.buf, statusp) )
88627  */
88628   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
88629 
88630   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":518
88631  *         cdef _p_msg_io m = message_io_write(buf)
88632  *         cdef MPI_Status *statusp = arg_Status(status)
88633  *         with nogil: CHKERR( MPI_File_write_all_end(             # <<<<<<<<<<<<<<
88634  *             self.ob_mpi, m.buf, statusp) )
88635  *
88636  */
88637   {
88638       #ifdef WITH_THREAD
88639       PyThreadState *_save = NULL;
88640       #endif
88641       Py_UNBLOCK_THREADS
88642       /*try:*/ {
88643 
88644         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":519
88645  *         cdef MPI_Status *statusp = arg_Status(status)
88646  *         with nogil: CHKERR( MPI_File_write_all_end(
88647  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
88648  *
88649  *     # shared file pointer
88650  */
88651         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_all_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L7;}
88652       }
88653 
88654       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":518
88655  *         cdef _p_msg_io m = message_io_write(buf)
88656  *         cdef MPI_Status *statusp = arg_Status(status)
88657  *         with nogil: CHKERR( MPI_File_write_all_end(             # <<<<<<<<<<<<<<
88658  *             self.ob_mpi, m.buf, statusp) )
88659  *
88660  */
88661       /*finally:*/ {
88662         int __pyx_why;
88663         __pyx_why = 0; goto __pyx_L8;
88664         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88665         __pyx_L8:;
88666         Py_BLOCK_THREADS
88667         switch (__pyx_why) {
88668           case 4: goto __pyx_L1_error;
88669         }
88670       }
88671   }
88672 
88673   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88674   goto __pyx_L0;
88675   __pyx_L1_error:;
88676   __Pyx_XDECREF(__pyx_t_1);
88677   __Pyx_AddTraceback("mpi4py.MPI.File.Write_all_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88678   __pyx_r = NULL;
88679   __pyx_L0:;
88680   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88681   __Pyx_XGIVEREF(__pyx_r);
88682   __Pyx_RefNannyFinishContext();
88683   return __pyx_r;
88684 }
88685 
88686 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":523
88687  *     # shared file pointer
88688  *
88689  *     def Read_ordered_begin(self, buf):             # <<<<<<<<<<<<<<
88690  *         """
88691  *         Start a split collective read
88692  */
88693 
88694 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_47Read_ordered_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88695 static char __pyx_doc_6mpi4py_3MPI_4File_47Read_ordered_begin[] = "File.Read_ordered_begin(self, buf)\n\n        Start a split collective read\n        using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_47Read_ordered_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88696 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_47Read_ordered_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88697   PyObject *__pyx_v_buf = 0;
88698   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88699   PyObject *__pyx_r = NULL;
88700   __Pyx_RefNannyDeclarations
88701   PyObject *__pyx_t_1 = NULL;
88702   int __pyx_t_2;
88703   int __pyx_lineno = 0;
88704   const char *__pyx_filename = NULL;
88705   int __pyx_clineno = 0;
88706   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
88707   __Pyx_RefNannySetupContext("Read_ordered_begin");
88708   {
88709     PyObject* values[1] = {0};
88710     if (unlikely(__pyx_kwds)) {
88711       Py_ssize_t kw_args;
88712       switch (PyTuple_GET_SIZE(__pyx_args)) {
88713         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88714         case  0: break;
88715         default: goto __pyx_L5_argtuple_error;
88716       }
88717       kw_args = PyDict_Size(__pyx_kwds);
88718       switch (PyTuple_GET_SIZE(__pyx_args)) {
88719         case  0:
88720         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88721         if (likely(values[0])) kw_args--;
88722         else goto __pyx_L5_argtuple_error;
88723       }
88724       if (unlikely(kw_args > 0)) {
88725         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_ordered_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88726       }
88727     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
88728       goto __pyx_L5_argtuple_error;
88729     } else {
88730       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88731     }
88732     __pyx_v_buf = values[0];
88733   }
88734   goto __pyx_L4_argument_unpacking_done;
88735   __pyx_L5_argtuple_error:;
88736   __Pyx_RaiseArgtupleInvalid("Read_ordered_begin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88737   __pyx_L3_error:;
88738   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88739   __Pyx_RefNannyFinishContext();
88740   return NULL;
88741   __pyx_L4_argument_unpacking_done:;
88742 
88743   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":528
88744  *         using shared file pointer
88745  *         """
88746  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
88747  *         with nogil: CHKERR( MPI_File_read_ordered_begin(
88748  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88749  */
88750   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88751   __Pyx_GOTREF(__pyx_t_1);
88752   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88753   __pyx_t_1 = 0;
88754 
88755   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":529
88756  *         """
88757  *         cdef _p_msg_io m = message_io_read(buf)
88758  *         with nogil: CHKERR( MPI_File_read_ordered_begin(             # <<<<<<<<<<<<<<
88759  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88760  *
88761  */
88762   {
88763       #ifdef WITH_THREAD
88764       PyThreadState *_save = NULL;
88765       #endif
88766       Py_UNBLOCK_THREADS
88767       /*try:*/ {
88768 
88769         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":530
88770  *         cdef _p_msg_io m = message_io_read(buf)
88771  *         with nogil: CHKERR( MPI_File_read_ordered_begin(
88772  *             self.ob_mpi, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
88773  *
88774  *     def Read_ordered_end(self, buf, Status status=None):
88775  */
88776         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_ordered_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L7;}
88777       }
88778 
88779       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":529
88780  *         """
88781  *         cdef _p_msg_io m = message_io_read(buf)
88782  *         with nogil: CHKERR( MPI_File_read_ordered_begin(             # <<<<<<<<<<<<<<
88783  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88784  *
88785  */
88786       /*finally:*/ {
88787         int __pyx_why;
88788         __pyx_why = 0; goto __pyx_L8;
88789         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88790         __pyx_L8:;
88791         Py_BLOCK_THREADS
88792         switch (__pyx_why) {
88793           case 4: goto __pyx_L1_error;
88794         }
88795       }
88796   }
88797 
88798   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88799   goto __pyx_L0;
88800   __pyx_L1_error:;
88801   __Pyx_XDECREF(__pyx_t_1);
88802   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
88803   __pyx_r = NULL;
88804   __pyx_L0:;
88805   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88806   __Pyx_XGIVEREF(__pyx_r);
88807   __Pyx_RefNannyFinishContext();
88808   return __pyx_r;
88809 }
88810 
88811 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":532
88812  *             self.ob_mpi, m.buf, m.count, m.dtype) )
88813  *
88814  *     def Read_ordered_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
88815  *         """
88816  *         Complete a split collective read
88817  */
88818 
88819 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_48Read_ordered_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88820 static char __pyx_doc_6mpi4py_3MPI_4File_48Read_ordered_end[] = "File.Read_ordered_end(self, buf, Status status=None)\n\n        Complete a split collective read\n        using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_48Read_ordered_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88821 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_48Read_ordered_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88822   PyObject *__pyx_v_buf = 0;
88823   struct PyMPIStatusObject *__pyx_v_status = 0;
88824   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88825   MPI_Status *__pyx_v_statusp;
88826   PyObject *__pyx_r = NULL;
88827   __Pyx_RefNannyDeclarations
88828   PyObject *__pyx_t_1 = NULL;
88829   int __pyx_t_2;
88830   int __pyx_lineno = 0;
88831   const char *__pyx_filename = NULL;
88832   int __pyx_clineno = 0;
88833   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
88834   __Pyx_RefNannySetupContext("Read_ordered_end");
88835   {
88836     PyObject* values[2] = {0,0};
88837     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
88838     if (unlikely(__pyx_kwds)) {
88839       Py_ssize_t kw_args;
88840       switch (PyTuple_GET_SIZE(__pyx_args)) {
88841         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88842         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88843         case  0: break;
88844         default: goto __pyx_L5_argtuple_error;
88845       }
88846       kw_args = PyDict_Size(__pyx_kwds);
88847       switch (PyTuple_GET_SIZE(__pyx_args)) {
88848         case  0:
88849         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88850         if (likely(values[0])) kw_args--;
88851         else goto __pyx_L5_argtuple_error;
88852         case  1:
88853         if (kw_args > 0) {
88854           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
88855           if (value) { values[1] = value; kw_args--; }
88856         }
88857       }
88858       if (unlikely(kw_args > 0)) {
88859         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Read_ordered_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88860       }
88861     } else {
88862       switch (PyTuple_GET_SIZE(__pyx_args)) {
88863         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
88864         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88865         break;
88866         default: goto __pyx_L5_argtuple_error;
88867       }
88868     }
88869     __pyx_v_buf = values[0];
88870     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
88871   }
88872   goto __pyx_L4_argument_unpacking_done;
88873   __pyx_L5_argtuple_error:;
88874   __Pyx_RaiseArgtupleInvalid("Read_ordered_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88875   __pyx_L3_error:;
88876   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88877   __Pyx_RefNannyFinishContext();
88878   return NULL;
88879   __pyx_L4_argument_unpacking_done:;
88880   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88881 
88882   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":537
88883  *         using shared file pointer
88884  *         """
88885  *         cdef _p_msg_io m = message_io_read(buf)             # <<<<<<<<<<<<<<
88886  *         cdef MPI_Status *statusp = arg_Status(status)
88887  *         with nogil: CHKERR( MPI_File_read_ordered_end(
88888  */
88889   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_read(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
88890   __Pyx_GOTREF(__pyx_t_1);
88891   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
88892   __pyx_t_1 = 0;
88893 
88894   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":538
88895  *         """
88896  *         cdef _p_msg_io m = message_io_read(buf)
88897  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
88898  *         with nogil: CHKERR( MPI_File_read_ordered_end(
88899  *             self.ob_mpi, m.buf, statusp) )
88900  */
88901   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
88902 
88903   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":539
88904  *         cdef _p_msg_io m = message_io_read(buf)
88905  *         cdef MPI_Status *statusp = arg_Status(status)
88906  *         with nogil: CHKERR( MPI_File_read_ordered_end(             # <<<<<<<<<<<<<<
88907  *             self.ob_mpi, m.buf, statusp) )
88908  *
88909  */
88910   {
88911       #ifdef WITH_THREAD
88912       PyThreadState *_save = NULL;
88913       #endif
88914       Py_UNBLOCK_THREADS
88915       /*try:*/ {
88916 
88917         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":540
88918  *         cdef MPI_Status *statusp = arg_Status(status)
88919  *         with nogil: CHKERR( MPI_File_read_ordered_end(
88920  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
88921  *
88922  *     def Write_ordered_begin(self, buf):
88923  */
88924         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_read_ordered_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L7;}
88925       }
88926 
88927       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":539
88928  *         cdef _p_msg_io m = message_io_read(buf)
88929  *         cdef MPI_Status *statusp = arg_Status(status)
88930  *         with nogil: CHKERR( MPI_File_read_ordered_end(             # <<<<<<<<<<<<<<
88931  *             self.ob_mpi, m.buf, statusp) )
88932  *
88933  */
88934       /*finally:*/ {
88935         int __pyx_why;
88936         __pyx_why = 0; goto __pyx_L8;
88937         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
88938         __pyx_L8:;
88939         Py_BLOCK_THREADS
88940         switch (__pyx_why) {
88941           case 4: goto __pyx_L1_error;
88942         }
88943       }
88944   }
88945 
88946   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
88947   goto __pyx_L0;
88948   __pyx_L1_error:;
88949   __Pyx_XDECREF(__pyx_t_1);
88950   __Pyx_AddTraceback("mpi4py.MPI.File.Read_ordered_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
88951   __pyx_r = NULL;
88952   __pyx_L0:;
88953   __Pyx_XDECREF((PyObject *)__pyx_v_m);
88954   __Pyx_XGIVEREF(__pyx_r);
88955   __Pyx_RefNannyFinishContext();
88956   return __pyx_r;
88957 }
88958 
88959 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":542
88960  *             self.ob_mpi, m.buf, statusp) )
88961  *
88962  *     def Write_ordered_begin(self, buf):             # <<<<<<<<<<<<<<
88963  *         """
88964  *         Start a split collective write using
88965  */
88966 
88967 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_49Write_ordered_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
88968 static char __pyx_doc_6mpi4py_3MPI_4File_49Write_ordered_begin[] = "File.Write_ordered_begin(self, buf)\n\n        Start a split collective write using\n        shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_49Write_ordered_begin(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)88969 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_49Write_ordered_begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
88970   PyObject *__pyx_v_buf = 0;
88971   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
88972   PyObject *__pyx_r = NULL;
88973   __Pyx_RefNannyDeclarations
88974   PyObject *__pyx_t_1 = NULL;
88975   int __pyx_t_2;
88976   int __pyx_lineno = 0;
88977   const char *__pyx_filename = NULL;
88978   int __pyx_clineno = 0;
88979   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,0};
88980   __Pyx_RefNannySetupContext("Write_ordered_begin");
88981   {
88982     PyObject* values[1] = {0};
88983     if (unlikely(__pyx_kwds)) {
88984       Py_ssize_t kw_args;
88985       switch (PyTuple_GET_SIZE(__pyx_args)) {
88986         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
88987         case  0: break;
88988         default: goto __pyx_L5_argtuple_error;
88989       }
88990       kw_args = PyDict_Size(__pyx_kwds);
88991       switch (PyTuple_GET_SIZE(__pyx_args)) {
88992         case  0:
88993         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
88994         if (likely(values[0])) kw_args--;
88995         else goto __pyx_L5_argtuple_error;
88996       }
88997       if (unlikely(kw_args > 0)) {
88998         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_ordered_begin") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
88999       }
89000     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
89001       goto __pyx_L5_argtuple_error;
89002     } else {
89003       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89004     }
89005     __pyx_v_buf = values[0];
89006   }
89007   goto __pyx_L4_argument_unpacking_done;
89008   __pyx_L5_argtuple_error:;
89009   __Pyx_RaiseArgtupleInvalid("Write_ordered_begin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89010   __pyx_L3_error:;
89011   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
89012   __Pyx_RefNannyFinishContext();
89013   return NULL;
89014   __pyx_L4_argument_unpacking_done:;
89015 
89016   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":547
89017  *         shared file pointer
89018  *         """
89019  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
89020  *         with nogil: CHKERR( MPI_File_write_ordered_begin(
89021  *             self.ob_mpi, m.buf, m.count, m.dtype) )
89022  */
89023   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89024   __Pyx_GOTREF(__pyx_t_1);
89025   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
89026   __pyx_t_1 = 0;
89027 
89028   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":548
89029  *         """
89030  *         cdef _p_msg_io m = message_io_write(buf)
89031  *         with nogil: CHKERR( MPI_File_write_ordered_begin(             # <<<<<<<<<<<<<<
89032  *             self.ob_mpi, m.buf, m.count, m.dtype) )
89033  *
89034  */
89035   {
89036       #ifdef WITH_THREAD
89037       PyThreadState *_save = NULL;
89038       #endif
89039       Py_UNBLOCK_THREADS
89040       /*try:*/ {
89041 
89042         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":549
89043  *         cdef _p_msg_io m = message_io_write(buf)
89044  *         with nogil: CHKERR( MPI_File_write_ordered_begin(
89045  *             self.ob_mpi, m.buf, m.count, m.dtype) )             # <<<<<<<<<<<<<<
89046  *
89047  *     def Write_ordered_end(self, buf, Status status=None):
89048  */
89049         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_ordered_begin(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_m->count, __pyx_v_m->dtype)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L7;}
89050       }
89051 
89052       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":548
89053  *         """
89054  *         cdef _p_msg_io m = message_io_write(buf)
89055  *         with nogil: CHKERR( MPI_File_write_ordered_begin(             # <<<<<<<<<<<<<<
89056  *             self.ob_mpi, m.buf, m.count, m.dtype) )
89057  *
89058  */
89059       /*finally:*/ {
89060         int __pyx_why;
89061         __pyx_why = 0; goto __pyx_L8;
89062         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
89063         __pyx_L8:;
89064         Py_BLOCK_THREADS
89065         switch (__pyx_why) {
89066           case 4: goto __pyx_L1_error;
89067         }
89068       }
89069   }
89070 
89071   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89072   goto __pyx_L0;
89073   __pyx_L1_error:;
89074   __Pyx_XDECREF(__pyx_t_1);
89075   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
89076   __pyx_r = NULL;
89077   __pyx_L0:;
89078   __Pyx_XDECREF((PyObject *)__pyx_v_m);
89079   __Pyx_XGIVEREF(__pyx_r);
89080   __Pyx_RefNannyFinishContext();
89081   return __pyx_r;
89082 }
89083 
89084 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":551
89085  *             self.ob_mpi, m.buf, m.count, m.dtype) )
89086  *
89087  *     def Write_ordered_end(self, buf, Status status=None):             # <<<<<<<<<<<<<<
89088  *         """
89089  *         Complete a split collective write
89090  */
89091 
89092 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_50Write_ordered_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89093 static char __pyx_doc_6mpi4py_3MPI_4File_50Write_ordered_end[] = "File.Write_ordered_end(self, buf, Status status=None)\n\n        Complete a split collective write\n        using shared file pointer\n        ";
__pyx_pf_6mpi4py_3MPI_4File_50Write_ordered_end(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89094 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_50Write_ordered_end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89095   PyObject *__pyx_v_buf = 0;
89096   struct PyMPIStatusObject *__pyx_v_status = 0;
89097   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *__pyx_v_m = 0;
89098   MPI_Status *__pyx_v_statusp;
89099   PyObject *__pyx_r = NULL;
89100   __Pyx_RefNannyDeclarations
89101   PyObject *__pyx_t_1 = NULL;
89102   int __pyx_t_2;
89103   int __pyx_lineno = 0;
89104   const char *__pyx_filename = NULL;
89105   int __pyx_clineno = 0;
89106   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buf,&__pyx_n_s__status,0};
89107   __Pyx_RefNannySetupContext("Write_ordered_end");
89108   {
89109     PyObject* values[2] = {0,0};
89110     values[1] = (PyObject *)((struct PyMPIStatusObject *)Py_None);
89111     if (unlikely(__pyx_kwds)) {
89112       Py_ssize_t kw_args;
89113       switch (PyTuple_GET_SIZE(__pyx_args)) {
89114         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
89115         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89116         case  0: break;
89117         default: goto __pyx_L5_argtuple_error;
89118       }
89119       kw_args = PyDict_Size(__pyx_kwds);
89120       switch (PyTuple_GET_SIZE(__pyx_args)) {
89121         case  0:
89122         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buf);
89123         if (likely(values[0])) kw_args--;
89124         else goto __pyx_L5_argtuple_error;
89125         case  1:
89126         if (kw_args > 0) {
89127           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
89128           if (value) { values[1] = value; kw_args--; }
89129         }
89130       }
89131       if (unlikely(kw_args > 0)) {
89132         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Write_ordered_end") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89133       }
89134     } else {
89135       switch (PyTuple_GET_SIZE(__pyx_args)) {
89136         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
89137         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89138         break;
89139         default: goto __pyx_L5_argtuple_error;
89140       }
89141     }
89142     __pyx_v_buf = values[0];
89143     __pyx_v_status = ((struct PyMPIStatusObject *)values[1]);
89144   }
89145   goto __pyx_L4_argument_unpacking_done;
89146   __pyx_L5_argtuple_error:;
89147   __Pyx_RaiseArgtupleInvalid("Write_ordered_end", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89148   __pyx_L3_error:;
89149   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
89150   __Pyx_RefNannyFinishContext();
89151   return NULL;
89152   __pyx_L4_argument_unpacking_done:;
89153   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status), __pyx_ptype_6mpi4py_3MPI_Status, 1, "status", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89154 
89155   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":556
89156  *         using shared file pointer
89157  *         """
89158  *         cdef _p_msg_io m = message_io_write(buf)             # <<<<<<<<<<<<<<
89159  *         cdef MPI_Status *statusp = arg_Status(status)
89160  *         with nogil: CHKERR( MPI_File_write_ordered_end(
89161  */
89162   __pyx_t_1 = ((PyObject *)__pyx_f_6mpi4py_3MPI_message_io_write(__pyx_v_buf)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89163   __Pyx_GOTREF(__pyx_t_1);
89164   __pyx_v_m = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)__pyx_t_1);
89165   __pyx_t_1 = 0;
89166 
89167   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":557
89168  *         """
89169  *         cdef _p_msg_io m = message_io_write(buf)
89170  *         cdef MPI_Status *statusp = arg_Status(status)             # <<<<<<<<<<<<<<
89171  *         with nogil: CHKERR( MPI_File_write_ordered_end(
89172  *             self.ob_mpi, m.buf, statusp) )
89173  */
89174   __pyx_v_statusp = __pyx_f_6mpi4py_3MPI_arg_Status(((PyObject *)__pyx_v_status));
89175 
89176   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":558
89177  *         cdef _p_msg_io m = message_io_write(buf)
89178  *         cdef MPI_Status *statusp = arg_Status(status)
89179  *         with nogil: CHKERR( MPI_File_write_ordered_end(             # <<<<<<<<<<<<<<
89180  *             self.ob_mpi, m.buf, statusp) )
89181  *
89182  */
89183   {
89184       #ifdef WITH_THREAD
89185       PyThreadState *_save = NULL;
89186       #endif
89187       Py_UNBLOCK_THREADS
89188       /*try:*/ {
89189 
89190         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":559
89191  *         cdef MPI_Status *statusp = arg_Status(status)
89192  *         with nogil: CHKERR( MPI_File_write_ordered_end(
89193  *             self.ob_mpi, m.buf, statusp) )             # <<<<<<<<<<<<<<
89194  *
89195  *     # [9.5] File Interoperability
89196  */
89197         __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_write_ordered_end(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_m->buf, __pyx_v_statusp)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L7;}
89198       }
89199 
89200       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":558
89201  *         cdef _p_msg_io m = message_io_write(buf)
89202  *         cdef MPI_Status *statusp = arg_Status(status)
89203  *         with nogil: CHKERR( MPI_File_write_ordered_end(             # <<<<<<<<<<<<<<
89204  *             self.ob_mpi, m.buf, statusp) )
89205  *
89206  */
89207       /*finally:*/ {
89208         int __pyx_why;
89209         __pyx_why = 0; goto __pyx_L8;
89210         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
89211         __pyx_L8:;
89212         Py_BLOCK_THREADS
89213         switch (__pyx_why) {
89214           case 4: goto __pyx_L1_error;
89215         }
89216       }
89217   }
89218 
89219   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89220   goto __pyx_L0;
89221   __pyx_L1_error:;
89222   __Pyx_XDECREF(__pyx_t_1);
89223   __Pyx_AddTraceback("mpi4py.MPI.File.Write_ordered_end", __pyx_clineno, __pyx_lineno, __pyx_filename);
89224   __pyx_r = NULL;
89225   __pyx_L0:;
89226   __Pyx_XDECREF((PyObject *)__pyx_v_m);
89227   __Pyx_XGIVEREF(__pyx_r);
89228   __Pyx_RefNannyFinishContext();
89229   return __pyx_r;
89230 }
89231 
89232 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":567
89233  *     # -------------------------------------------
89234  *
89235  *     def Get_type_extent(self, Datatype datatype not None):             # <<<<<<<<<<<<<<
89236  *         """
89237  *         Return the extent of datatype in the file
89238  */
89239 
89240 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_51Get_type_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89241 static char __pyx_doc_6mpi4py_3MPI_4File_51Get_type_extent[] = "File.Get_type_extent(self, Datatype datatype)\n\n        Return the extent of datatype in the file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_51Get_type_extent(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89242 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_51Get_type_extent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89243   struct PyMPIDatatypeObject *__pyx_v_datatype = 0;
89244   MPI_Aint __pyx_v_extent;
89245   PyObject *__pyx_r = NULL;
89246   __Pyx_RefNannyDeclarations
89247   int __pyx_t_1;
89248   PyObject *__pyx_t_2 = NULL;
89249   int __pyx_lineno = 0;
89250   const char *__pyx_filename = NULL;
89251   int __pyx_clineno = 0;
89252   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__datatype,0};
89253   __Pyx_RefNannySetupContext("Get_type_extent");
89254   {
89255     PyObject* values[1] = {0};
89256     if (unlikely(__pyx_kwds)) {
89257       Py_ssize_t kw_args;
89258       switch (PyTuple_GET_SIZE(__pyx_args)) {
89259         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89260         case  0: break;
89261         default: goto __pyx_L5_argtuple_error;
89262       }
89263       kw_args = PyDict_Size(__pyx_kwds);
89264       switch (PyTuple_GET_SIZE(__pyx_args)) {
89265         case  0:
89266         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datatype);
89267         if (likely(values[0])) kw_args--;
89268         else goto __pyx_L5_argtuple_error;
89269       }
89270       if (unlikely(kw_args > 0)) {
89271         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Get_type_extent") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89272       }
89273     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
89274       goto __pyx_L5_argtuple_error;
89275     } else {
89276       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89277     }
89278     __pyx_v_datatype = ((struct PyMPIDatatypeObject *)values[0]);
89279   }
89280   goto __pyx_L4_argument_unpacking_done;
89281   __pyx_L5_argtuple_error:;
89282   __Pyx_RaiseArgtupleInvalid("Get_type_extent", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89283   __pyx_L3_error:;
89284   __Pyx_AddTraceback("mpi4py.MPI.File.Get_type_extent", __pyx_clineno, __pyx_lineno, __pyx_filename);
89285   __Pyx_RefNannyFinishContext();
89286   return NULL;
89287   __pyx_L4_argument_unpacking_done:;
89288   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_datatype), __pyx_ptype_6mpi4py_3MPI_Datatype, 0, "datatype", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89289 
89290   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":571
89291  *         Return the extent of datatype in the file
89292  *         """
89293  *         cdef MPI_Aint extent = 0             # <<<<<<<<<<<<<<
89294  *         with nogil: CHKERR( MPI_File_get_type_extent(
89295  *             self.ob_mpi, datatype.ob_mpi, &extent) )
89296  */
89297   __pyx_v_extent = 0;
89298 
89299   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":572
89300  *         """
89301  *         cdef MPI_Aint extent = 0
89302  *         with nogil: CHKERR( MPI_File_get_type_extent(             # <<<<<<<<<<<<<<
89303  *             self.ob_mpi, datatype.ob_mpi, &extent) )
89304  *         return extent
89305  */
89306   {
89307       #ifdef WITH_THREAD
89308       PyThreadState *_save = NULL;
89309       #endif
89310       Py_UNBLOCK_THREADS
89311       /*try:*/ {
89312 
89313         /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":573
89314  *         cdef MPI_Aint extent = 0
89315  *         with nogil: CHKERR( MPI_File_get_type_extent(
89316  *             self.ob_mpi, datatype.ob_mpi, &extent) )             # <<<<<<<<<<<<<<
89317  *         return extent
89318  *
89319  */
89320         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_type_extent(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_datatype->ob_mpi, (&__pyx_v_extent))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L7;}
89321       }
89322 
89323       /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":572
89324  *         """
89325  *         cdef MPI_Aint extent = 0
89326  *         with nogil: CHKERR( MPI_File_get_type_extent(             # <<<<<<<<<<<<<<
89327  *             self.ob_mpi, datatype.ob_mpi, &extent) )
89328  *         return extent
89329  */
89330       /*finally:*/ {
89331         int __pyx_why;
89332         __pyx_why = 0; goto __pyx_L8;
89333         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
89334         __pyx_L8:;
89335         Py_BLOCK_THREADS
89336         switch (__pyx_why) {
89337           case 4: goto __pyx_L1_error;
89338         }
89339       }
89340   }
89341 
89342   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":574
89343  *         with nogil: CHKERR( MPI_File_get_type_extent(
89344  *             self.ob_mpi, datatype.ob_mpi, &extent) )
89345  *         return extent             # <<<<<<<<<<<<<<
89346  *
89347  *     # [9.6] Consistency and Semantics
89348  */
89349   __Pyx_XDECREF(__pyx_r);
89350   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(__pyx_v_extent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89351   __Pyx_GOTREF(__pyx_t_2);
89352   __pyx_r = __pyx_t_2;
89353   __pyx_t_2 = 0;
89354   goto __pyx_L0;
89355 
89356   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89357   goto __pyx_L0;
89358   __pyx_L1_error:;
89359   __Pyx_XDECREF(__pyx_t_2);
89360   __Pyx_AddTraceback("mpi4py.MPI.File.Get_type_extent", __pyx_clineno, __pyx_lineno, __pyx_filename);
89361   __pyx_r = NULL;
89362   __pyx_L0:;
89363   __Pyx_XGIVEREF(__pyx_r);
89364   __Pyx_RefNannyFinishContext();
89365   return __pyx_r;
89366 }
89367 
89368 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":582
89369  *     # ------------------------
89370  *
89371  *     def Set_atomicity(self, bint flag):             # <<<<<<<<<<<<<<
89372  *         """
89373  *         Set the atomicity mode
89374  */
89375 
89376 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_52Set_atomicity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89377 static char __pyx_doc_6mpi4py_3MPI_4File_52Set_atomicity[] = "File.Set_atomicity(self, int flag)\n\n        Set the atomicity mode\n        ";
__pyx_pf_6mpi4py_3MPI_4File_52Set_atomicity(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89378 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_52Set_atomicity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89379   int __pyx_v_flag;
89380   PyObject *__pyx_r = NULL;
89381   __Pyx_RefNannyDeclarations
89382   int __pyx_t_1;
89383   int __pyx_lineno = 0;
89384   const char *__pyx_filename = NULL;
89385   int __pyx_clineno = 0;
89386   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__flag,0};
89387   __Pyx_RefNannySetupContext("Set_atomicity");
89388   {
89389     PyObject* values[1] = {0};
89390     if (unlikely(__pyx_kwds)) {
89391       Py_ssize_t kw_args;
89392       switch (PyTuple_GET_SIZE(__pyx_args)) {
89393         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89394         case  0: break;
89395         default: goto __pyx_L5_argtuple_error;
89396       }
89397       kw_args = PyDict_Size(__pyx_kwds);
89398       switch (PyTuple_GET_SIZE(__pyx_args)) {
89399         case  0:
89400         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flag);
89401         if (likely(values[0])) kw_args--;
89402         else goto __pyx_L5_argtuple_error;
89403       }
89404       if (unlikely(kw_args > 0)) {
89405         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_atomicity") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89406       }
89407     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
89408       goto __pyx_L5_argtuple_error;
89409     } else {
89410       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89411     }
89412     __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89413   }
89414   goto __pyx_L4_argument_unpacking_done;
89415   __pyx_L5_argtuple_error:;
89416   __Pyx_RaiseArgtupleInvalid("Set_atomicity", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89417   __pyx_L3_error:;
89418   __Pyx_AddTraceback("mpi4py.MPI.File.Set_atomicity", __pyx_clineno, __pyx_lineno, __pyx_filename);
89419   __Pyx_RefNannyFinishContext();
89420   return NULL;
89421   __pyx_L4_argument_unpacking_done:;
89422 
89423   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":586
89424  *         Set the atomicity mode
89425  *         """
89426  *         with nogil: CHKERR( MPI_File_set_atomicity(self.ob_mpi, flag) )             # <<<<<<<<<<<<<<
89427  *
89428  *     def Get_atomicity(self):
89429  */
89430   {
89431       #ifdef WITH_THREAD
89432       PyThreadState *_save = NULL;
89433       #endif
89434       Py_UNBLOCK_THREADS
89435       /*try:*/ {
89436         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_set_atomicity(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_flag)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L7;}
89437       }
89438       /*finally:*/ {
89439         int __pyx_why;
89440         __pyx_why = 0; goto __pyx_L8;
89441         __pyx_L7: __pyx_why = 4; goto __pyx_L8;
89442         __pyx_L8:;
89443         Py_BLOCK_THREADS
89444         switch (__pyx_why) {
89445           case 4: goto __pyx_L1_error;
89446         }
89447       }
89448   }
89449 
89450   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89451   goto __pyx_L0;
89452   __pyx_L1_error:;
89453   __Pyx_AddTraceback("mpi4py.MPI.File.Set_atomicity", __pyx_clineno, __pyx_lineno, __pyx_filename);
89454   __pyx_r = NULL;
89455   __pyx_L0:;
89456   __Pyx_XGIVEREF(__pyx_r);
89457   __Pyx_RefNannyFinishContext();
89458   return __pyx_r;
89459 }
89460 
89461 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":588
89462  *         with nogil: CHKERR( MPI_File_set_atomicity(self.ob_mpi, flag) )
89463  *
89464  *     def Get_atomicity(self):             # <<<<<<<<<<<<<<
89465  *         """
89466  *         Return the atomicity mode
89467  */
89468 
89469 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_53Get_atomicity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89470 static char __pyx_doc_6mpi4py_3MPI_4File_53Get_atomicity[] = "File.Get_atomicity(self)\n\n        Return the atomicity mode\n        ";
__pyx_pf_6mpi4py_3MPI_4File_53Get_atomicity(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89471 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_53Get_atomicity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89472   int __pyx_v_flag;
89473   PyObject *__pyx_r = NULL;
89474   __Pyx_RefNannyDeclarations
89475   int __pyx_t_1;
89476   PyObject *__pyx_t_2 = NULL;
89477   int __pyx_lineno = 0;
89478   const char *__pyx_filename = NULL;
89479   int __pyx_clineno = 0;
89480   __Pyx_RefNannySetupContext("Get_atomicity");
89481   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
89482     __Pyx_RaiseArgtupleInvalid("Get_atomicity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
89483   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_atomicity", 0))) return NULL;
89484 
89485   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":592
89486  *         Return the atomicity mode
89487  *         """
89488  *         cdef int flag = 0             # <<<<<<<<<<<<<<
89489  *         with nogil: CHKERR( MPI_File_get_atomicity(self.ob_mpi, &flag) )
89490  *         return <bint>flag
89491  */
89492   __pyx_v_flag = 0;
89493 
89494   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":593
89495  *         """
89496  *         cdef int flag = 0
89497  *         with nogil: CHKERR( MPI_File_get_atomicity(self.ob_mpi, &flag) )             # <<<<<<<<<<<<<<
89498  *         return <bint>flag
89499  *
89500  */
89501   {
89502       #ifdef WITH_THREAD
89503       PyThreadState *_save = NULL;
89504       #endif
89505       Py_UNBLOCK_THREADS
89506       /*try:*/ {
89507         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_atomicity(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L6;}
89508       }
89509       /*finally:*/ {
89510         int __pyx_why;
89511         __pyx_why = 0; goto __pyx_L7;
89512         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
89513         __pyx_L7:;
89514         Py_BLOCK_THREADS
89515         switch (__pyx_why) {
89516           case 4: goto __pyx_L1_error;
89517         }
89518       }
89519   }
89520 
89521   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":594
89522  *         cdef int flag = 0
89523  *         with nogil: CHKERR( MPI_File_get_atomicity(self.ob_mpi, &flag) )
89524  *         return <bint>flag             # <<<<<<<<<<<<<<
89525  *
89526  *     property atomicity:
89527  */
89528   __Pyx_XDECREF(__pyx_r);
89529   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89530   __Pyx_GOTREF(__pyx_t_2);
89531   __pyx_r = __pyx_t_2;
89532   __pyx_t_2 = 0;
89533   goto __pyx_L0;
89534 
89535   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89536   goto __pyx_L0;
89537   __pyx_L1_error:;
89538   __Pyx_XDECREF(__pyx_t_2);
89539   __Pyx_AddTraceback("mpi4py.MPI.File.Get_atomicity", __pyx_clineno, __pyx_lineno, __pyx_filename);
89540   __pyx_r = NULL;
89541   __pyx_L0:;
89542   __Pyx_XGIVEREF(__pyx_r);
89543   __Pyx_RefNannyFinishContext();
89544   return __pyx_r;
89545 }
89546 
89547 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":598
89548  *     property atomicity:
89549  *         """atomicity"""
89550  *         def __get__(self):             # <<<<<<<<<<<<<<
89551  *             return self.Get_atomicity()
89552  *         def __set__(self, value):
89553  */
89554 
89555 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_9atomicity___get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_9atomicity___get__(PyObject * __pyx_v_self)89556 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_9atomicity___get__(PyObject *__pyx_v_self) {
89557   PyObject *__pyx_r = NULL;
89558   __Pyx_RefNannyDeclarations
89559   PyObject *__pyx_t_1 = NULL;
89560   PyObject *__pyx_t_2 = NULL;
89561   int __pyx_lineno = 0;
89562   const char *__pyx_filename = NULL;
89563   int __pyx_clineno = 0;
89564   __Pyx_RefNannySetupContext("__get__");
89565 
89566   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":599
89567  *         """atomicity"""
89568  *         def __get__(self):
89569  *             return self.Get_atomicity()             # <<<<<<<<<<<<<<
89570  *         def __set__(self, value):
89571  *             self.Set_atomicity(value)
89572  */
89573   __Pyx_XDECREF(__pyx_r);
89574   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Get_atomicity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89575   __Pyx_GOTREF(__pyx_t_1);
89576   __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89577   __Pyx_GOTREF(__pyx_t_2);
89578   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
89579   __pyx_r = __pyx_t_2;
89580   __pyx_t_2 = 0;
89581   goto __pyx_L0;
89582 
89583   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89584   goto __pyx_L0;
89585   __pyx_L1_error:;
89586   __Pyx_XDECREF(__pyx_t_1);
89587   __Pyx_XDECREF(__pyx_t_2);
89588   __Pyx_AddTraceback("mpi4py.MPI.File.atomicity.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
89589   __pyx_r = NULL;
89590   __pyx_L0:;
89591   __Pyx_XGIVEREF(__pyx_r);
89592   __Pyx_RefNannyFinishContext();
89593   return __pyx_r;
89594 }
89595 
89596 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":600
89597  *         def __get__(self):
89598  *             return self.Get_atomicity()
89599  *         def __set__(self, value):             # <<<<<<<<<<<<<<
89600  *             self.Set_atomicity(value)
89601  *
89602  */
89603 
89604 static int __pyx_pf_6mpi4py_3MPI_4File_9atomicity_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pf_6mpi4py_3MPI_4File_9atomicity_1__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)89605 static int __pyx_pf_6mpi4py_3MPI_4File_9atomicity_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
89606   int __pyx_r;
89607   __Pyx_RefNannyDeclarations
89608   PyObject *__pyx_t_1 = NULL;
89609   PyObject *__pyx_t_2 = NULL;
89610   PyObject *__pyx_t_3 = NULL;
89611   int __pyx_lineno = 0;
89612   const char *__pyx_filename = NULL;
89613   int __pyx_clineno = 0;
89614   __Pyx_RefNannySetupContext("__set__");
89615 
89616   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":601
89617  *             return self.Get_atomicity()
89618  *         def __set__(self, value):
89619  *             self.Set_atomicity(value)             # <<<<<<<<<<<<<<
89620  *
89621  *     def Sync(self):
89622  */
89623   __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__Set_atomicity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89624   __Pyx_GOTREF(__pyx_t_1);
89625   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89626   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
89627   __Pyx_INCREF(__pyx_v_value);
89628   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
89629   __Pyx_GIVEREF(__pyx_v_value);
89630   __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89631   __Pyx_GOTREF(__pyx_t_3);
89632   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
89633   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
89634   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
89635 
89636   __pyx_r = 0;
89637   goto __pyx_L0;
89638   __pyx_L1_error:;
89639   __Pyx_XDECREF(__pyx_t_1);
89640   __Pyx_XDECREF(__pyx_t_2);
89641   __Pyx_XDECREF(__pyx_t_3);
89642   __Pyx_AddTraceback("mpi4py.MPI.File.atomicity.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
89643   __pyx_r = -1;
89644   __pyx_L0:;
89645   __Pyx_RefNannyFinishContext();
89646   return __pyx_r;
89647 }
89648 
89649 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":603
89650  *             self.Set_atomicity(value)
89651  *
89652  *     def Sync(self):             # <<<<<<<<<<<<<<
89653  *         """
89654  *         Causes all previous writes to be
89655  */
89656 
89657 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_54Sync(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89658 static char __pyx_doc_6mpi4py_3MPI_4File_54Sync[] = "File.Sync(self)\n\n        Causes all previous writes to be\n        transferred to the storage device\n        ";
__pyx_pf_6mpi4py_3MPI_4File_54Sync(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89659 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_54Sync(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89660   PyObject *__pyx_r = NULL;
89661   __Pyx_RefNannyDeclarations
89662   int __pyx_t_1;
89663   int __pyx_lineno = 0;
89664   const char *__pyx_filename = NULL;
89665   int __pyx_clineno = 0;
89666   __Pyx_RefNannySetupContext("Sync");
89667   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
89668     __Pyx_RaiseArgtupleInvalid("Sync", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
89669   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Sync", 0))) return NULL;
89670 
89671   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":608
89672  *         transferred to the storage device
89673  *         """
89674  *         with nogil: CHKERR( MPI_File_sync(self.ob_mpi) )             # <<<<<<<<<<<<<<
89675  *
89676  *     # [9.7] I/O Error Handling
89677  */
89678   {
89679       #ifdef WITH_THREAD
89680       PyThreadState *_save = NULL;
89681       #endif
89682       Py_UNBLOCK_THREADS
89683       /*try:*/ {
89684         __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_sync(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L6;}
89685       }
89686       /*finally:*/ {
89687         int __pyx_why;
89688         __pyx_why = 0; goto __pyx_L7;
89689         __pyx_L6: __pyx_why = 4; goto __pyx_L7;
89690         __pyx_L7:;
89691         Py_BLOCK_THREADS
89692         switch (__pyx_why) {
89693           case 4: goto __pyx_L1_error;
89694         }
89695       }
89696   }
89697 
89698   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89699   goto __pyx_L0;
89700   __pyx_L1_error:;
89701   __Pyx_AddTraceback("mpi4py.MPI.File.Sync", __pyx_clineno, __pyx_lineno, __pyx_filename);
89702   __pyx_r = NULL;
89703   __pyx_L0:;
89704   __Pyx_XGIVEREF(__pyx_r);
89705   __Pyx_RefNannyFinishContext();
89706   return __pyx_r;
89707 }
89708 
89709 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":613
89710  *     # ------------------------
89711  *
89712  *     def Get_errhandler(self):             # <<<<<<<<<<<<<<
89713  *         """
89714  *         Get the error handler for a file
89715  */
89716 
89717 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_55Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89718 static char __pyx_doc_6mpi4py_3MPI_4File_55Get_errhandler[] = "File.Get_errhandler(self)\n\n        Get the error handler for a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_55Get_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89719 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_55Get_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89720   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
89721   PyObject *__pyx_r = NULL;
89722   __Pyx_RefNannyDeclarations
89723   PyObject *__pyx_t_1 = NULL;
89724   int __pyx_t_2;
89725   int __pyx_lineno = 0;
89726   const char *__pyx_filename = NULL;
89727   int __pyx_clineno = 0;
89728   __Pyx_RefNannySetupContext("Get_errhandler");
89729   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
89730     __Pyx_RaiseArgtupleInvalid("Get_errhandler", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
89731   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_errhandler", 0))) return NULL;
89732 
89733   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":617
89734  *         Get the error handler for a file
89735  *         """
89736  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)             # <<<<<<<<<<<<<<
89737  *         CHKERR( MPI_File_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
89738  *         return errhandler
89739  */
89740   __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_6mpi4py_3MPI_Errhandler)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89741   __Pyx_GOTREF(__pyx_t_1);
89742   __Pyx_INCREF(((PyObject *)((struct PyMPIErrhandlerObject *)__pyx_t_1)));
89743   __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)__pyx_t_1);
89744   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
89745 
89746   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":618
89747  *         """
89748  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
89749  *         CHKERR( MPI_File_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
89750  *         return errhandler
89751  *
89752  */
89753   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_get_errhandler(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, (&__pyx_v_errhandler->ob_mpi))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89754 
89755   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":619
89756  *         cdef Errhandler errhandler = <Errhandler>Errhandler.__new__(Errhandler)
89757  *         CHKERR( MPI_File_get_errhandler(self.ob_mpi, &errhandler.ob_mpi) )
89758  *         return errhandler             # <<<<<<<<<<<<<<
89759  *
89760  *     def Set_errhandler(self, Errhandler errhandler not None):
89761  */
89762   __Pyx_XDECREF(__pyx_r);
89763   __Pyx_INCREF(((PyObject *)__pyx_v_errhandler));
89764   __pyx_r = ((PyObject *)__pyx_v_errhandler);
89765   goto __pyx_L0;
89766 
89767   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89768   goto __pyx_L0;
89769   __pyx_L1_error:;
89770   __Pyx_XDECREF(__pyx_t_1);
89771   __Pyx_AddTraceback("mpi4py.MPI.File.Get_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
89772   __pyx_r = NULL;
89773   __pyx_L0:;
89774   __Pyx_XDECREF((PyObject *)__pyx_v_errhandler);
89775   __Pyx_XGIVEREF(__pyx_r);
89776   __Pyx_RefNannyFinishContext();
89777   return __pyx_r;
89778 }
89779 
89780 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":621
89781  *         return errhandler
89782  *
89783  *     def Set_errhandler(self, Errhandler errhandler not None):             # <<<<<<<<<<<<<<
89784  *         """
89785  *         Set the error handler for a file
89786  */
89787 
89788 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_56Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89789 static char __pyx_doc_6mpi4py_3MPI_4File_56Set_errhandler[] = "File.Set_errhandler(self, Errhandler errhandler)\n\n        Set the error handler for a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_56Set_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89790 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_56Set_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89791   struct PyMPIErrhandlerObject *__pyx_v_errhandler = 0;
89792   PyObject *__pyx_r = NULL;
89793   __Pyx_RefNannyDeclarations
89794   int __pyx_t_1;
89795   int __pyx_lineno = 0;
89796   const char *__pyx_filename = NULL;
89797   int __pyx_clineno = 0;
89798   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errhandler,0};
89799   __Pyx_RefNannySetupContext("Set_errhandler");
89800   {
89801     PyObject* values[1] = {0};
89802     if (unlikely(__pyx_kwds)) {
89803       Py_ssize_t kw_args;
89804       switch (PyTuple_GET_SIZE(__pyx_args)) {
89805         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89806         case  0: break;
89807         default: goto __pyx_L5_argtuple_error;
89808       }
89809       kw_args = PyDict_Size(__pyx_kwds);
89810       switch (PyTuple_GET_SIZE(__pyx_args)) {
89811         case  0:
89812         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errhandler);
89813         if (likely(values[0])) kw_args--;
89814         else goto __pyx_L5_argtuple_error;
89815       }
89816       if (unlikely(kw_args > 0)) {
89817         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Set_errhandler") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89818       }
89819     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
89820       goto __pyx_L5_argtuple_error;
89821     } else {
89822       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89823     }
89824     __pyx_v_errhandler = ((struct PyMPIErrhandlerObject *)values[0]);
89825   }
89826   goto __pyx_L4_argument_unpacking_done;
89827   __pyx_L5_argtuple_error:;
89828   __Pyx_RaiseArgtupleInvalid("Set_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89829   __pyx_L3_error:;
89830   __Pyx_AddTraceback("mpi4py.MPI.File.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
89831   __Pyx_RefNannyFinishContext();
89832   return NULL;
89833   __pyx_L4_argument_unpacking_done:;
89834   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_errhandler), __pyx_ptype_6mpi4py_3MPI_Errhandler, 0, "errhandler", 0))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89835 
89836   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":625
89837  *         Set the error handler for a file
89838  *         """
89839  *         CHKERR( MPI_File_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )             # <<<<<<<<<<<<<<
89840  *
89841  *     def Call_errhandler(self, int errorcode):
89842  */
89843   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_set_errhandler(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_errhandler->ob_mpi)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89844 
89845   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89846   goto __pyx_L0;
89847   __pyx_L1_error:;
89848   __Pyx_AddTraceback("mpi4py.MPI.File.Set_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
89849   __pyx_r = NULL;
89850   __pyx_L0:;
89851   __Pyx_XGIVEREF(__pyx_r);
89852   __Pyx_RefNannyFinishContext();
89853   return __pyx_r;
89854 }
89855 
89856 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":627
89857  *         CHKERR( MPI_File_set_errhandler(self.ob_mpi, errhandler.ob_mpi) )
89858  *
89859  *     def Call_errhandler(self, int errorcode):             # <<<<<<<<<<<<<<
89860  *         """
89861  *         Call the error handler installed on a file
89862  */
89863 
89864 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_57Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89865 static char __pyx_doc_6mpi4py_3MPI_4File_57Call_errhandler[] = "File.Call_errhandler(self, int errorcode)\n\n        Call the error handler installed on a file\n        ";
__pyx_pf_6mpi4py_3MPI_4File_57Call_errhandler(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89866 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_57Call_errhandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89867   int __pyx_v_errorcode;
89868   PyObject *__pyx_r = NULL;
89869   __Pyx_RefNannyDeclarations
89870   int __pyx_t_1;
89871   int __pyx_lineno = 0;
89872   const char *__pyx_filename = NULL;
89873   int __pyx_clineno = 0;
89874   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__errorcode,0};
89875   __Pyx_RefNannySetupContext("Call_errhandler");
89876   {
89877     PyObject* values[1] = {0};
89878     if (unlikely(__pyx_kwds)) {
89879       Py_ssize_t kw_args;
89880       switch (PyTuple_GET_SIZE(__pyx_args)) {
89881         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89882         case  0: break;
89883         default: goto __pyx_L5_argtuple_error;
89884       }
89885       kw_args = PyDict_Size(__pyx_kwds);
89886       switch (PyTuple_GET_SIZE(__pyx_args)) {
89887         case  0:
89888         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorcode);
89889         if (likely(values[0])) kw_args--;
89890         else goto __pyx_L5_argtuple_error;
89891       }
89892       if (unlikely(kw_args > 0)) {
89893         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Call_errhandler") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89894       }
89895     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
89896       goto __pyx_L5_argtuple_error;
89897     } else {
89898       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
89899     }
89900     __pyx_v_errorcode = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_errorcode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89901   }
89902   goto __pyx_L4_argument_unpacking_done;
89903   __pyx_L5_argtuple_error:;
89904   __Pyx_RaiseArgtupleInvalid("Call_errhandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
89905   __pyx_L3_error:;
89906   __Pyx_AddTraceback("mpi4py.MPI.File.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
89907   __Pyx_RefNannyFinishContext();
89908   return NULL;
89909   __pyx_L4_argument_unpacking_done:;
89910 
89911   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":631
89912  *         Call the error handler installed on a file
89913  *         """
89914  *         CHKERR( MPI_File_call_errhandler(self.ob_mpi, errorcode) )             # <<<<<<<<<<<<<<
89915  *
89916  *     # Fortran Handle
89917  */
89918   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_File_call_errhandler(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi, __pyx_v_errorcode)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89919 
89920   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89921   goto __pyx_L0;
89922   __pyx_L1_error:;
89923   __Pyx_AddTraceback("mpi4py.MPI.File.Call_errhandler", __pyx_clineno, __pyx_lineno, __pyx_filename);
89924   __pyx_r = NULL;
89925   __pyx_L0:;
89926   __Pyx_XGIVEREF(__pyx_r);
89927   __Pyx_RefNannyFinishContext();
89928   return __pyx_r;
89929 }
89930 
89931 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":636
89932  *     # --------------
89933  *
89934  *     def py2f(self):             # <<<<<<<<<<<<<<
89935  *         """
89936  *         """
89937  */
89938 
89939 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_58py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89940 static char __pyx_doc_6mpi4py_3MPI_4File_58py2f[] = "File.py2f(self)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4File_58py2f(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)89941 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_58py2f(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89942   PyObject *__pyx_r = NULL;
89943   __Pyx_RefNannyDeclarations
89944   PyObject *__pyx_t_1 = NULL;
89945   int __pyx_lineno = 0;
89946   const char *__pyx_filename = NULL;
89947   int __pyx_clineno = 0;
89948   __Pyx_RefNannySetupContext("py2f");
89949   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
89950     __Pyx_RaiseArgtupleInvalid("py2f", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
89951   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "py2f", 0))) return NULL;
89952 
89953   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":639
89954  *         """
89955  *         """
89956  *         return MPI_File_c2f(self.ob_mpi)             # <<<<<<<<<<<<<<
89957  *
89958  *     @classmethod
89959  */
89960   __Pyx_XDECREF(__pyx_r);
89961   __pyx_t_1 = __Pyx_PyInt_to_py_MPI_Fint(MPI_File_c2f(((struct PyMPIFileObject *)__pyx_v_self)->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
89962   __Pyx_GOTREF(__pyx_t_1);
89963   __pyx_r = __pyx_t_1;
89964   __pyx_t_1 = 0;
89965   goto __pyx_L0;
89966 
89967   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
89968   goto __pyx_L0;
89969   __pyx_L1_error:;
89970   __Pyx_XDECREF(__pyx_t_1);
89971   __Pyx_AddTraceback("mpi4py.MPI.File.py2f", __pyx_clineno, __pyx_lineno, __pyx_filename);
89972   __pyx_r = NULL;
89973   __pyx_L0:;
89974   __Pyx_XGIVEREF(__pyx_r);
89975   __Pyx_RefNannyFinishContext();
89976   return __pyx_r;
89977 }
89978 
89979 /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":642
89980  *
89981  *     @classmethod
89982  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
89983  *         """
89984  *         """
89985  */
89986 
89987 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_59f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
89988 static char __pyx_doc_6mpi4py_3MPI_4File_59f2py[] = "File.f2py(type cls, arg)\n\n        ";
__pyx_pf_6mpi4py_3MPI_4File_59f2py(PyObject * __pyx_v_cls,PyObject * __pyx_args,PyObject * __pyx_kwds)89989 static PyObject *__pyx_pf_6mpi4py_3MPI_4File_59f2py(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) {
89990   PyObject *__pyx_v_arg = 0;
89991   struct PyMPIFileObject *__pyx_v_file = 0;
89992   PyObject *__pyx_r = NULL;
89993   __Pyx_RefNannyDeclarations
89994   PyObject *__pyx_t_1 = NULL;
89995   MPI_Fint __pyx_t_2;
89996   int __pyx_lineno = 0;
89997   const char *__pyx_filename = NULL;
89998   int __pyx_clineno = 0;
89999   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__arg,0};
90000   __Pyx_RefNannySetupContext("f2py");
90001   {
90002     PyObject* values[1] = {0};
90003     if (unlikely(__pyx_kwds)) {
90004       Py_ssize_t kw_args;
90005       switch (PyTuple_GET_SIZE(__pyx_args)) {
90006         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90007         case  0: break;
90008         default: goto __pyx_L5_argtuple_error;
90009       }
90010       kw_args = PyDict_Size(__pyx_kwds);
90011       switch (PyTuple_GET_SIZE(__pyx_args)) {
90012         case  0:
90013         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arg);
90014         if (likely(values[0])) kw_args--;
90015         else goto __pyx_L5_argtuple_error;
90016       }
90017       if (unlikely(kw_args > 0)) {
90018         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "f2py") < 0)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90019       }
90020     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
90021       goto __pyx_L5_argtuple_error;
90022     } else {
90023       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90024     }
90025     __pyx_v_arg = values[0];
90026   }
90027   goto __pyx_L4_argument_unpacking_done;
90028   __pyx_L5_argtuple_error:;
90029   __Pyx_RaiseArgtupleInvalid("f2py", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[26]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90030   __pyx_L3_error:;
90031   __Pyx_AddTraceback("mpi4py.MPI.File.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
90032   __Pyx_RefNannyFinishContext();
90033   return NULL;
90034   __pyx_L4_argument_unpacking_done:;
90035 
90036   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":645
90037  *         """
90038  *         """
90039  *         cdef File file = <File>cls()             # <<<<<<<<<<<<<<
90040  *         file.ob_mpi = MPI_File_f2c(arg)
90041  *         return file
90042  */
90043   __pyx_t_1 = PyObject_Call(__pyx_v_cls, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90044   __Pyx_GOTREF(__pyx_t_1);
90045   __Pyx_INCREF(((PyObject *)((struct PyMPIFileObject *)__pyx_t_1)));
90046   __pyx_v_file = ((struct PyMPIFileObject *)__pyx_t_1);
90047   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
90048 
90049   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":646
90050  *         """
90051  *         cdef File file = <File>cls()
90052  *         file.ob_mpi = MPI_File_f2c(arg)             # <<<<<<<<<<<<<<
90053  *         return file
90054  *
90055  */
90056   __pyx_t_2 = __Pyx_PyInt_from_py_MPI_Fint(__pyx_v_arg); if (unlikely((__pyx_t_2 == (MPI_Fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90057   __pyx_v_file->ob_mpi = MPI_File_f2c(__pyx_t_2);
90058 
90059   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":647
90060  *         cdef File file = <File>cls()
90061  *         file.ob_mpi = MPI_File_f2c(arg)
90062  *         return file             # <<<<<<<<<<<<<<
90063  *
90064  *
90065  */
90066   __Pyx_XDECREF(__pyx_r);
90067   __Pyx_INCREF(((PyObject *)__pyx_v_file));
90068   __pyx_r = ((PyObject *)__pyx_v_file);
90069   goto __pyx_L0;
90070 
90071   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90072   goto __pyx_L0;
90073   __pyx_L1_error:;
90074   __Pyx_XDECREF(__pyx_t_1);
90075   __Pyx_AddTraceback("mpi4py.MPI.File.f2py", __pyx_clineno, __pyx_lineno, __pyx_filename);
90076   __pyx_r = NULL;
90077   __pyx_L0:;
90078   __Pyx_XDECREF((PyObject *)__pyx_v_file);
90079   __Pyx_XGIVEREF(__pyx_r);
90080   __Pyx_RefNannyFinishContext();
90081   return __pyx_r;
90082 }
90083 
90084 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":84
90085  * # -----------------
90086  *
90087  * def Alloc_mem(Aint size, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
90088  *     """
90089  *     Allocate memory for message passing and RMA
90090  */
90091 
90092 static PyObject *__pyx_pf_6mpi4py_3MPI_14Alloc_mem(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90093 static char __pyx_doc_6mpi4py_3MPI_14Alloc_mem[] = "Alloc_mem(Aint size, Info info=INFO_NULL)\n\n    Allocate memory for message passing and RMA\n    ";
90094 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_14Alloc_mem = {__Pyx_NAMESTR("Alloc_mem"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_14Alloc_mem, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_14Alloc_mem)};
__pyx_pf_6mpi4py_3MPI_14Alloc_mem(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90095 static PyObject *__pyx_pf_6mpi4py_3MPI_14Alloc_mem(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90096   MPI_Aint __pyx_v_size;
90097   struct PyMPIInfoObject *__pyx_v_info = 0;
90098   void *__pyx_v_base;
90099   MPI_Info __pyx_v_cinfo;
90100   PyObject *__pyx_r = NULL;
90101   __Pyx_RefNannyDeclarations
90102   int __pyx_t_1;
90103   PyObject *__pyx_t_2 = NULL;
90104   int __pyx_lineno = 0;
90105   const char *__pyx_filename = NULL;
90106   int __pyx_clineno = 0;
90107   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__info,0};
90108   __Pyx_RefNannySetupContext("Alloc_mem");
90109   __pyx_self = __pyx_self;
90110   {
90111     PyObject* values[2] = {0,0};
90112     values[1] = (PyObject *)__pyx_k_110;
90113     if (unlikely(__pyx_kwds)) {
90114       Py_ssize_t kw_args;
90115       switch (PyTuple_GET_SIZE(__pyx_args)) {
90116         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
90117         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90118         case  0: break;
90119         default: goto __pyx_L5_argtuple_error;
90120       }
90121       kw_args = PyDict_Size(__pyx_kwds);
90122       switch (PyTuple_GET_SIZE(__pyx_args)) {
90123         case  0:
90124         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
90125         if (likely(values[0])) kw_args--;
90126         else goto __pyx_L5_argtuple_error;
90127         case  1:
90128         if (kw_args > 0) {
90129           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__info);
90130           if (value) { values[1] = value; kw_args--; }
90131         }
90132       }
90133       if (unlikely(kw_args > 0)) {
90134         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Alloc_mem") < 0)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90135       }
90136     } else {
90137       switch (PyTuple_GET_SIZE(__pyx_args)) {
90138         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
90139         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90140         break;
90141         default: goto __pyx_L5_argtuple_error;
90142       }
90143     }
90144     __pyx_v_size = __Pyx_PyInt_from_py_MPI_Aint(values[0]); if (unlikely((__pyx_v_size == (MPI_Aint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90145     __pyx_v_info = ((struct PyMPIInfoObject *)values[1]);
90146   }
90147   goto __pyx_L4_argument_unpacking_done;
90148   __pyx_L5_argtuple_error:;
90149   __Pyx_RaiseArgtupleInvalid("Alloc_mem", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90150   __pyx_L3_error:;
90151   __Pyx_AddTraceback("mpi4py.MPI.Alloc_mem", __pyx_clineno, __pyx_lineno, __pyx_filename);
90152   __Pyx_RefNannyFinishContext();
90153   return NULL;
90154   __pyx_L4_argument_unpacking_done:;
90155   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_info), __pyx_ptype_6mpi4py_3MPI_Info, 1, "info", 0))) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90156 
90157   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":88
90158  *     Allocate memory for message passing and RMA
90159  *     """
90160  *     cdef void *base = NULL             # <<<<<<<<<<<<<<
90161  *     cdef MPI_Info cinfo = arg_Info(info)
90162  *     CHKERR( MPI_Alloc_mem(size, cinfo, &base) )
90163  */
90164   __pyx_v_base = NULL;
90165 
90166   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":89
90167  *     """
90168  *     cdef void *base = NULL
90169  *     cdef MPI_Info cinfo = arg_Info(info)             # <<<<<<<<<<<<<<
90170  *     CHKERR( MPI_Alloc_mem(size, cinfo, &base) )
90171  *     return tomemory(base, size)
90172  */
90173   __pyx_v_cinfo = __pyx_f_6mpi4py_3MPI_arg_Info(((PyObject *)__pyx_v_info));
90174 
90175   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":90
90176  *     cdef void *base = NULL
90177  *     cdef MPI_Info cinfo = arg_Info(info)
90178  *     CHKERR( MPI_Alloc_mem(size, cinfo, &base) )             # <<<<<<<<<<<<<<
90179  *     return tomemory(base, size)
90180  *
90181  */
90182   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Alloc_mem(__pyx_v_size, __pyx_v_cinfo, (&__pyx_v_base))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90183 
90184   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":91
90185  *     cdef MPI_Info cinfo = arg_Info(info)
90186  *     CHKERR( MPI_Alloc_mem(size, cinfo, &base) )
90187  *     return tomemory(base, size)             # <<<<<<<<<<<<<<
90188  *
90189  * def Free_mem(memory):
90190  */
90191   __Pyx_XDECREF(__pyx_r);
90192   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tomemory(__pyx_v_base, __pyx_v_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90193   __Pyx_GOTREF(__pyx_t_2);
90194   __pyx_r = __pyx_t_2;
90195   __pyx_t_2 = 0;
90196   goto __pyx_L0;
90197 
90198   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90199   goto __pyx_L0;
90200   __pyx_L1_error:;
90201   __Pyx_XDECREF(__pyx_t_2);
90202   __Pyx_AddTraceback("mpi4py.MPI.Alloc_mem", __pyx_clineno, __pyx_lineno, __pyx_filename);
90203   __pyx_r = NULL;
90204   __pyx_L0:;
90205   __Pyx_XGIVEREF(__pyx_r);
90206   __Pyx_RefNannyFinishContext();
90207   return __pyx_r;
90208 }
90209 
90210 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":93
90211  *     return tomemory(base, size)
90212  *
90213  * def Free_mem(memory):             # <<<<<<<<<<<<<<
90214  *     """
90215  *     Free memory allocated with `Alloc_mem()`
90216  */
90217 
90218 static PyObject *__pyx_pf_6mpi4py_3MPI_15Free_mem(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90219 static char __pyx_doc_6mpi4py_3MPI_15Free_mem[] = "Free_mem(memory)\n\n    Free memory allocated with `Alloc_mem()`\n    ";
90220 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_15Free_mem = {__Pyx_NAMESTR("Free_mem"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_15Free_mem, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_15Free_mem)};
__pyx_pf_6mpi4py_3MPI_15Free_mem(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90221 static PyObject *__pyx_pf_6mpi4py_3MPI_15Free_mem(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90222   PyObject *__pyx_v_memory = 0;
90223   void *__pyx_v_base;
90224   PyObject *__pyx_r = NULL;
90225   __Pyx_RefNannyDeclarations
90226   PyObject *__pyx_t_1 = NULL;
90227   int __pyx_t_2;
90228   int __pyx_lineno = 0;
90229   const char *__pyx_filename = NULL;
90230   int __pyx_clineno = 0;
90231   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__memory,0};
90232   __Pyx_RefNannySetupContext("Free_mem");
90233   __pyx_self = __pyx_self;
90234   {
90235     PyObject* values[1] = {0};
90236     if (unlikely(__pyx_kwds)) {
90237       Py_ssize_t kw_args;
90238       switch (PyTuple_GET_SIZE(__pyx_args)) {
90239         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90240         case  0: break;
90241         default: goto __pyx_L5_argtuple_error;
90242       }
90243       kw_args = PyDict_Size(__pyx_kwds);
90244       switch (PyTuple_GET_SIZE(__pyx_args)) {
90245         case  0:
90246         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__memory);
90247         if (likely(values[0])) kw_args--;
90248         else goto __pyx_L5_argtuple_error;
90249       }
90250       if (unlikely(kw_args > 0)) {
90251         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Free_mem") < 0)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90252       }
90253     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
90254       goto __pyx_L5_argtuple_error;
90255     } else {
90256       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90257     }
90258     __pyx_v_memory = values[0];
90259   }
90260   goto __pyx_L4_argument_unpacking_done;
90261   __pyx_L5_argtuple_error:;
90262   __Pyx_RaiseArgtupleInvalid("Free_mem", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[27]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90263   __pyx_L3_error:;
90264   __Pyx_AddTraceback("mpi4py.MPI.Free_mem", __pyx_clineno, __pyx_lineno, __pyx_filename);
90265   __Pyx_RefNannyFinishContext();
90266   return NULL;
90267   __pyx_L4_argument_unpacking_done:;
90268 
90269   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":97
90270  *     Free memory allocated with `Alloc_mem()`
90271  *     """
90272  *     cdef void *base = NULL             # <<<<<<<<<<<<<<
90273  *     asmemory(memory, &base, NULL)
90274  *     CHKERR( MPI_Free_mem(base) )
90275  */
90276   __pyx_v_base = NULL;
90277 
90278   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":98
90279  *     """
90280  *     cdef void *base = NULL
90281  *     asmemory(memory, &base, NULL)             # <<<<<<<<<<<<<<
90282  *     CHKERR( MPI_Free_mem(base) )
90283  *
90284  */
90285   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_asmemory(__pyx_v_memory, (&__pyx_v_base), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90286   __Pyx_GOTREF(__pyx_t_1);
90287   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
90288 
90289   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":99
90290  *     cdef void *base = NULL
90291  *     asmemory(memory, &base, NULL)
90292  *     CHKERR( MPI_Free_mem(base) )             # <<<<<<<<<<<<<<
90293  *
90294  *
90295  */
90296   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Free_mem(__pyx_v_base)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90297 
90298   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90299   goto __pyx_L0;
90300   __pyx_L1_error:;
90301   __Pyx_XDECREF(__pyx_t_1);
90302   __Pyx_AddTraceback("mpi4py.MPI.Free_mem", __pyx_clineno, __pyx_lineno, __pyx_filename);
90303   __pyx_r = NULL;
90304   __pyx_L0:;
90305   __Pyx_XGIVEREF(__pyx_r);
90306   __Pyx_RefNannyFinishContext();
90307   return __pyx_r;
90308 }
90309 
90310 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":105
90311  * # -----------------------
90312  *
90313  * def Init():             # <<<<<<<<<<<<<<
90314  *     """
90315  *     Initialize the MPI execution environment
90316  */
90317 
90318 static PyObject *__pyx_pf_6mpi4py_3MPI_16Init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90319 static char __pyx_doc_6mpi4py_3MPI_16Init[] = "Init()\n\n    Initialize the MPI execution environment\n    ";
90320 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_16Init = {__Pyx_NAMESTR("Init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_16Init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_16Init)};
__pyx_pf_6mpi4py_3MPI_16Init(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90321 static PyObject *__pyx_pf_6mpi4py_3MPI_16Init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90322   PyObject *__pyx_r = NULL;
90323   __Pyx_RefNannyDeclarations
90324   int __pyx_t_1;
90325   int __pyx_lineno = 0;
90326   const char *__pyx_filename = NULL;
90327   int __pyx_clineno = 0;
90328   __Pyx_RefNannySetupContext("Init");
90329   __pyx_self = __pyx_self;
90330   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90331     __Pyx_RaiseArgtupleInvalid("Init", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90332   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Init", 0))) return NULL;
90333 
90334   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":109
90335  *     Initialize the MPI execution environment
90336  *     """
90337  *     CHKERR( MPI_Init(NULL, NULL) )             # <<<<<<<<<<<<<<
90338  *     startup()
90339  *
90340  */
90341   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Init(NULL, NULL)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90342 
90343   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":110
90344  *     """
90345  *     CHKERR( MPI_Init(NULL, NULL) )
90346  *     startup()             # <<<<<<<<<<<<<<
90347  *
90348  * def Finalize():
90349  */
90350   __pyx_f_6mpi4py_3MPI_startup();
90351 
90352   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90353   goto __pyx_L0;
90354   __pyx_L1_error:;
90355   __Pyx_AddTraceback("mpi4py.MPI.Init", __pyx_clineno, __pyx_lineno, __pyx_filename);
90356   __pyx_r = NULL;
90357   __pyx_L0:;
90358   __Pyx_XGIVEREF(__pyx_r);
90359   __Pyx_RefNannyFinishContext();
90360   return __pyx_r;
90361 }
90362 
90363 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":112
90364  *     startup()
90365  *
90366  * def Finalize():             # <<<<<<<<<<<<<<
90367  *     """
90368  *     Terminate the MPI execution environment
90369  */
90370 
90371 static PyObject *__pyx_pf_6mpi4py_3MPI_17Finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90372 static char __pyx_doc_6mpi4py_3MPI_17Finalize[] = "Finalize()\n\n    Terminate the MPI execution environment\n    ";
90373 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_17Finalize = {__Pyx_NAMESTR("Finalize"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_17Finalize, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_17Finalize)};
__pyx_pf_6mpi4py_3MPI_17Finalize(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90374 static PyObject *__pyx_pf_6mpi4py_3MPI_17Finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90375   PyObject *__pyx_r = NULL;
90376   __Pyx_RefNannyDeclarations
90377   int __pyx_t_1;
90378   int __pyx_lineno = 0;
90379   const char *__pyx_filename = NULL;
90380   int __pyx_clineno = 0;
90381   __Pyx_RefNannySetupContext("Finalize");
90382   __pyx_self = __pyx_self;
90383   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90384     __Pyx_RaiseArgtupleInvalid("Finalize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90385   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Finalize", 0))) return NULL;
90386 
90387   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":116
90388  *     Terminate the MPI execution environment
90389  *     """
90390  *     cleanup()             # <<<<<<<<<<<<<<
90391  *     CHKERR( MPI_Finalize() )
90392  *
90393  */
90394   __pyx_f_6mpi4py_3MPI_cleanup();
90395 
90396   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":117
90397  *     """
90398  *     cleanup()
90399  *     CHKERR( MPI_Finalize() )             # <<<<<<<<<<<<<<
90400  *
90401  * # Levels of MPI threading support
90402  */
90403   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Finalize()); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90404 
90405   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90406   goto __pyx_L0;
90407   __pyx_L1_error:;
90408   __Pyx_AddTraceback("mpi4py.MPI.Finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
90409   __pyx_r = NULL;
90410   __pyx_L0:;
90411   __Pyx_XGIVEREF(__pyx_r);
90412   __Pyx_RefNannyFinishContext();
90413   return __pyx_r;
90414 }
90415 
90416 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":134
90417  * # """Multiple threads may call MPI"""
90418  *
90419  * def Init_thread(int required=THREAD_MULTIPLE):             # <<<<<<<<<<<<<<
90420  *     """
90421  *     Initialize the MPI execution environment
90422  */
90423 
90424 static PyObject *__pyx_pf_6mpi4py_3MPI_18Init_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90425 static char __pyx_doc_6mpi4py_3MPI_18Init_thread[] = "Init_thread(int required=THREAD_MULTIPLE)\n\n    Initialize the MPI execution environment\n    ";
90426 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_18Init_thread = {__Pyx_NAMESTR("Init_thread"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_18Init_thread, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_18Init_thread)};
__pyx_pf_6mpi4py_3MPI_18Init_thread(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90427 static PyObject *__pyx_pf_6mpi4py_3MPI_18Init_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90428   int __pyx_v_required;
90429   int __pyx_v_provided;
90430   PyObject *__pyx_r = NULL;
90431   __Pyx_RefNannyDeclarations
90432   int __pyx_t_1;
90433   PyObject *__pyx_t_2 = NULL;
90434   int __pyx_lineno = 0;
90435   const char *__pyx_filename = NULL;
90436   int __pyx_clineno = 0;
90437   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__required,0};
90438   __Pyx_RefNannySetupContext("Init_thread");
90439   __pyx_self = __pyx_self;
90440   {
90441     PyObject* values[1] = {0};
90442     if (unlikely(__pyx_kwds)) {
90443       Py_ssize_t kw_args;
90444       switch (PyTuple_GET_SIZE(__pyx_args)) {
90445         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90446         case  0: break;
90447         default: goto __pyx_L5_argtuple_error;
90448       }
90449       kw_args = PyDict_Size(__pyx_kwds);
90450       switch (PyTuple_GET_SIZE(__pyx_args)) {
90451         case  0:
90452         if (kw_args > 0) {
90453           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__required);
90454           if (value) { values[0] = value; kw_args--; }
90455         }
90456       }
90457       if (unlikely(kw_args > 0)) {
90458         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Init_thread") < 0)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90459       }
90460     } else {
90461       switch (PyTuple_GET_SIZE(__pyx_args)) {
90462         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
90463         case  0: break;
90464         default: goto __pyx_L5_argtuple_error;
90465       }
90466     }
90467     if (values[0]) {
90468       __pyx_v_required = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_required == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90469     } else {
90470       __pyx_v_required = __pyx_k_111;
90471     }
90472   }
90473   goto __pyx_L4_argument_unpacking_done;
90474   __pyx_L5_argtuple_error:;
90475   __Pyx_RaiseArgtupleInvalid("Init_thread", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
90476   __pyx_L3_error:;
90477   __Pyx_AddTraceback("mpi4py.MPI.Init_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
90478   __Pyx_RefNannyFinishContext();
90479   return NULL;
90480   __pyx_L4_argument_unpacking_done:;
90481 
90482   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":138
90483  *     Initialize the MPI execution environment
90484  *     """
90485  *     cdef int provided = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
90486  *     CHKERR( MPI_Init_thread(NULL, NULL, required, &provided) )
90487  *     startup()
90488  */
90489   __pyx_v_provided = MPI_THREAD_SINGLE;
90490 
90491   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":139
90492  *     """
90493  *     cdef int provided = MPI_THREAD_SINGLE
90494  *     CHKERR( MPI_Init_thread(NULL, NULL, required, &provided) )             # <<<<<<<<<<<<<<
90495  *     startup()
90496  *     return provided
90497  */
90498   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Init_thread(NULL, NULL, __pyx_v_required, (&__pyx_v_provided))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90499 
90500   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":140
90501  *     cdef int provided = MPI_THREAD_SINGLE
90502  *     CHKERR( MPI_Init_thread(NULL, NULL, required, &provided) )
90503  *     startup()             # <<<<<<<<<<<<<<
90504  *     return provided
90505  *
90506  */
90507   __pyx_f_6mpi4py_3MPI_startup();
90508 
90509   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":141
90510  *     CHKERR( MPI_Init_thread(NULL, NULL, required, &provided) )
90511  *     startup()
90512  *     return provided             # <<<<<<<<<<<<<<
90513  *
90514  * def Query_thread():
90515  */
90516   __Pyx_XDECREF(__pyx_r);
90517   __pyx_t_2 = PyInt_FromLong(__pyx_v_provided); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90518   __Pyx_GOTREF(__pyx_t_2);
90519   __pyx_r = __pyx_t_2;
90520   __pyx_t_2 = 0;
90521   goto __pyx_L0;
90522 
90523   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90524   goto __pyx_L0;
90525   __pyx_L1_error:;
90526   __Pyx_XDECREF(__pyx_t_2);
90527   __Pyx_AddTraceback("mpi4py.MPI.Init_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
90528   __pyx_r = NULL;
90529   __pyx_L0:;
90530   __Pyx_XGIVEREF(__pyx_r);
90531   __Pyx_RefNannyFinishContext();
90532   return __pyx_r;
90533 }
90534 
90535 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":143
90536  *     return provided
90537  *
90538  * def Query_thread():             # <<<<<<<<<<<<<<
90539  *     """
90540  *     Return the level of thread support
90541  */
90542 
90543 static PyObject *__pyx_pf_6mpi4py_3MPI_19Query_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90544 static char __pyx_doc_6mpi4py_3MPI_19Query_thread[] = "Query_thread()\n\n    Return the level of thread support\n    provided by the MPI library\n    ";
90545 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_19Query_thread = {__Pyx_NAMESTR("Query_thread"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_19Query_thread, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_19Query_thread)};
__pyx_pf_6mpi4py_3MPI_19Query_thread(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90546 static PyObject *__pyx_pf_6mpi4py_3MPI_19Query_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90547   int __pyx_v_provided;
90548   PyObject *__pyx_r = NULL;
90549   __Pyx_RefNannyDeclarations
90550   int __pyx_t_1;
90551   PyObject *__pyx_t_2 = NULL;
90552   int __pyx_lineno = 0;
90553   const char *__pyx_filename = NULL;
90554   int __pyx_clineno = 0;
90555   __Pyx_RefNannySetupContext("Query_thread");
90556   __pyx_self = __pyx_self;
90557   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90558     __Pyx_RaiseArgtupleInvalid("Query_thread", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90559   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Query_thread", 0))) return NULL;
90560 
90561   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":148
90562  *     provided by the MPI library
90563  *     """
90564  *     cdef int provided = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
90565  *     CHKERR( MPI_Query_thread(&provided) )
90566  *     return provided
90567  */
90568   __pyx_v_provided = MPI_THREAD_SINGLE;
90569 
90570   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":149
90571  *     """
90572  *     cdef int provided = MPI_THREAD_SINGLE
90573  *     CHKERR( MPI_Query_thread(&provided) )             # <<<<<<<<<<<<<<
90574  *     return provided
90575  *
90576  */
90577   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Query_thread((&__pyx_v_provided))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90578 
90579   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":150
90580  *     cdef int provided = MPI_THREAD_SINGLE
90581  *     CHKERR( MPI_Query_thread(&provided) )
90582  *     return provided             # <<<<<<<<<<<<<<
90583  *
90584  * def Is_thread_main():
90585  */
90586   __Pyx_XDECREF(__pyx_r);
90587   __pyx_t_2 = PyInt_FromLong(__pyx_v_provided); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90588   __Pyx_GOTREF(__pyx_t_2);
90589   __pyx_r = __pyx_t_2;
90590   __pyx_t_2 = 0;
90591   goto __pyx_L0;
90592 
90593   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90594   goto __pyx_L0;
90595   __pyx_L1_error:;
90596   __Pyx_XDECREF(__pyx_t_2);
90597   __Pyx_AddTraceback("mpi4py.MPI.Query_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
90598   __pyx_r = NULL;
90599   __pyx_L0:;
90600   __Pyx_XGIVEREF(__pyx_r);
90601   __Pyx_RefNannyFinishContext();
90602   return __pyx_r;
90603 }
90604 
90605 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":152
90606  *     return provided
90607  *
90608  * def Is_thread_main():             # <<<<<<<<<<<<<<
90609  *     """
90610  *     Indicate whether this thread called
90611  */
90612 
90613 static PyObject *__pyx_pf_6mpi4py_3MPI_20Is_thread_main(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90614 static char __pyx_doc_6mpi4py_3MPI_20Is_thread_main[] = "Is_thread_main()\n\n    Indicate whether this thread called\n    ``Init`` or ``Init_thread``\n    ";
90615 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_20Is_thread_main = {__Pyx_NAMESTR("Is_thread_main"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_20Is_thread_main, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_20Is_thread_main)};
__pyx_pf_6mpi4py_3MPI_20Is_thread_main(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90616 static PyObject *__pyx_pf_6mpi4py_3MPI_20Is_thread_main(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90617   int __pyx_v_flag;
90618   PyObject *__pyx_r = NULL;
90619   __Pyx_RefNannyDeclarations
90620   int __pyx_t_1;
90621   PyObject *__pyx_t_2 = NULL;
90622   int __pyx_lineno = 0;
90623   const char *__pyx_filename = NULL;
90624   int __pyx_clineno = 0;
90625   __Pyx_RefNannySetupContext("Is_thread_main");
90626   __pyx_self = __pyx_self;
90627   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90628     __Pyx_RaiseArgtupleInvalid("Is_thread_main", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90629   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_thread_main", 0))) return NULL;
90630 
90631   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":157
90632  *     ``Init`` or ``Init_thread``
90633  *     """
90634  *     cdef int flag = 1             # <<<<<<<<<<<<<<
90635  *     CHKERR( MPI_Is_thread_main(&flag) )
90636  *     return <bint>flag
90637  */
90638   __pyx_v_flag = 1;
90639 
90640   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":158
90641  *     """
90642  *     cdef int flag = 1
90643  *     CHKERR( MPI_Is_thread_main(&flag) )             # <<<<<<<<<<<<<<
90644  *     return <bint>flag
90645  *
90646  */
90647   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Is_thread_main((&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90648 
90649   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":159
90650  *     cdef int flag = 1
90651  *     CHKERR( MPI_Is_thread_main(&flag) )
90652  *     return <bint>flag             # <<<<<<<<<<<<<<
90653  *
90654  * def Is_initialized():
90655  */
90656   __Pyx_XDECREF(__pyx_r);
90657   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90658   __Pyx_GOTREF(__pyx_t_2);
90659   __pyx_r = __pyx_t_2;
90660   __pyx_t_2 = 0;
90661   goto __pyx_L0;
90662 
90663   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90664   goto __pyx_L0;
90665   __pyx_L1_error:;
90666   __Pyx_XDECREF(__pyx_t_2);
90667   __Pyx_AddTraceback("mpi4py.MPI.Is_thread_main", __pyx_clineno, __pyx_lineno, __pyx_filename);
90668   __pyx_r = NULL;
90669   __pyx_L0:;
90670   __Pyx_XGIVEREF(__pyx_r);
90671   __Pyx_RefNannyFinishContext();
90672   return __pyx_r;
90673 }
90674 
90675 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":161
90676  *     return <bint>flag
90677  *
90678  * def Is_initialized():             # <<<<<<<<<<<<<<
90679  *     """
90680  *     Indicates whether ``Init`` has been called
90681  */
90682 
90683 static PyObject *__pyx_pf_6mpi4py_3MPI_21Is_initialized(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90684 static char __pyx_doc_6mpi4py_3MPI_21Is_initialized[] = "Is_initialized()\n\n    Indicates whether ``Init`` has been called\n    ";
90685 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_21Is_initialized = {__Pyx_NAMESTR("Is_initialized"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_21Is_initialized, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_21Is_initialized)};
__pyx_pf_6mpi4py_3MPI_21Is_initialized(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90686 static PyObject *__pyx_pf_6mpi4py_3MPI_21Is_initialized(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90687   int __pyx_v_flag;
90688   PyObject *__pyx_r = NULL;
90689   __Pyx_RefNannyDeclarations
90690   int __pyx_t_1;
90691   PyObject *__pyx_t_2 = NULL;
90692   int __pyx_lineno = 0;
90693   const char *__pyx_filename = NULL;
90694   int __pyx_clineno = 0;
90695   __Pyx_RefNannySetupContext("Is_initialized");
90696   __pyx_self = __pyx_self;
90697   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90698     __Pyx_RaiseArgtupleInvalid("Is_initialized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90699   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_initialized", 0))) return NULL;
90700 
90701   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":165
90702  *     Indicates whether ``Init`` has been called
90703  *     """
90704  *     cdef int flag = 0             # <<<<<<<<<<<<<<
90705  *     CHKERR( MPI_Initialized(&flag) )
90706  *     return <bint>flag
90707  */
90708   __pyx_v_flag = 0;
90709 
90710   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":166
90711  *     """
90712  *     cdef int flag = 0
90713  *     CHKERR( MPI_Initialized(&flag) )             # <<<<<<<<<<<<<<
90714  *     return <bint>flag
90715  *
90716  */
90717   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Initialized((&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90718 
90719   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":167
90720  *     cdef int flag = 0
90721  *     CHKERR( MPI_Initialized(&flag) )
90722  *     return <bint>flag             # <<<<<<<<<<<<<<
90723  *
90724  * def Is_finalized():
90725  */
90726   __Pyx_XDECREF(__pyx_r);
90727   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90728   __Pyx_GOTREF(__pyx_t_2);
90729   __pyx_r = __pyx_t_2;
90730   __pyx_t_2 = 0;
90731   goto __pyx_L0;
90732 
90733   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90734   goto __pyx_L0;
90735   __pyx_L1_error:;
90736   __Pyx_XDECREF(__pyx_t_2);
90737   __Pyx_AddTraceback("mpi4py.MPI.Is_initialized", __pyx_clineno, __pyx_lineno, __pyx_filename);
90738   __pyx_r = NULL;
90739   __pyx_L0:;
90740   __Pyx_XGIVEREF(__pyx_r);
90741   __Pyx_RefNannyFinishContext();
90742   return __pyx_r;
90743 }
90744 
90745 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":169
90746  *     return <bint>flag
90747  *
90748  * def Is_finalized():             # <<<<<<<<<<<<<<
90749  *     """
90750  *     Indicates whether ``Finalize`` has completed
90751  */
90752 
90753 static PyObject *__pyx_pf_6mpi4py_3MPI_22Is_finalized(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90754 static char __pyx_doc_6mpi4py_3MPI_22Is_finalized[] = "Is_finalized()\n\n    Indicates whether ``Finalize`` has completed\n    ";
90755 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_22Is_finalized = {__Pyx_NAMESTR("Is_finalized"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_22Is_finalized, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_22Is_finalized)};
__pyx_pf_6mpi4py_3MPI_22Is_finalized(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90756 static PyObject *__pyx_pf_6mpi4py_3MPI_22Is_finalized(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90757   int __pyx_v_flag;
90758   PyObject *__pyx_r = NULL;
90759   __Pyx_RefNannyDeclarations
90760   int __pyx_t_1;
90761   PyObject *__pyx_t_2 = NULL;
90762   int __pyx_lineno = 0;
90763   const char *__pyx_filename = NULL;
90764   int __pyx_clineno = 0;
90765   __Pyx_RefNannySetupContext("Is_finalized");
90766   __pyx_self = __pyx_self;
90767   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90768     __Pyx_RaiseArgtupleInvalid("Is_finalized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90769   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Is_finalized", 0))) return NULL;
90770 
90771   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":173
90772  *     Indicates whether ``Finalize`` has completed
90773  *     """
90774  *     cdef int flag = 0             # <<<<<<<<<<<<<<
90775  *     CHKERR( MPI_Finalized(&flag) )
90776  *     return <bint>flag
90777  */
90778   __pyx_v_flag = 0;
90779 
90780   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":174
90781  *     """
90782  *     cdef int flag = 0
90783  *     CHKERR( MPI_Finalized(&flag) )             # <<<<<<<<<<<<<<
90784  *     return <bint>flag
90785  *
90786  */
90787   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Finalized((&__pyx_v_flag))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90788 
90789   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":175
90790  *     cdef int flag = 0
90791  *     CHKERR( MPI_Finalized(&flag) )
90792  *     return <bint>flag             # <<<<<<<<<<<<<<
90793  *
90794  * # Implementation Information
90795  */
90796   __Pyx_XDECREF(__pyx_r);
90797   __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_flag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90798   __Pyx_GOTREF(__pyx_t_2);
90799   __pyx_r = __pyx_t_2;
90800   __pyx_t_2 = 0;
90801   goto __pyx_L0;
90802 
90803   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90804   goto __pyx_L0;
90805   __pyx_L1_error:;
90806   __Pyx_XDECREF(__pyx_t_2);
90807   __Pyx_AddTraceback("mpi4py.MPI.Is_finalized", __pyx_clineno, __pyx_lineno, __pyx_filename);
90808   __pyx_r = NULL;
90809   __pyx_L0:;
90810   __Pyx_XGIVEREF(__pyx_r);
90811   __Pyx_RefNannyFinishContext();
90812   return __pyx_r;
90813 }
90814 
90815 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":186
90816  * SUBVERSION = MPI_SUBVERSION
90817  *
90818  * def Get_version():             # <<<<<<<<<<<<<<
90819  *     """
90820  *     Obtain the version number of the MPI standard supported
90821  */
90822 
90823 static PyObject *__pyx_pf_6mpi4py_3MPI_23Get_version(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90824 static char __pyx_doc_6mpi4py_3MPI_23Get_version[] = "Get_version()\n\n    Obtain the version number of the MPI standard supported\n    by the implementation as a tuple ``(version, subversion)``\n    ";
90825 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_23Get_version = {__Pyx_NAMESTR("Get_version"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_23Get_version, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_23Get_version)};
__pyx_pf_6mpi4py_3MPI_23Get_version(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90826 static PyObject *__pyx_pf_6mpi4py_3MPI_23Get_version(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90827   int __pyx_v_version;
90828   int __pyx_v_subversion;
90829   PyObject *__pyx_r = NULL;
90830   __Pyx_RefNannyDeclarations
90831   int __pyx_t_1;
90832   PyObject *__pyx_t_2 = NULL;
90833   PyObject *__pyx_t_3 = NULL;
90834   PyObject *__pyx_t_4 = NULL;
90835   int __pyx_lineno = 0;
90836   const char *__pyx_filename = NULL;
90837   int __pyx_clineno = 0;
90838   __Pyx_RefNannySetupContext("Get_version");
90839   __pyx_self = __pyx_self;
90840   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90841     __Pyx_RaiseArgtupleInvalid("Get_version", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90842   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_version", 0))) return NULL;
90843 
90844   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":191
90845  *     by the implementation as a tuple ``(version, subversion)``
90846  *     """
90847  *     cdef int version = 1             # <<<<<<<<<<<<<<
90848  *     cdef int subversion = 0
90849  *     CHKERR( MPI_Get_version(&version, &subversion) )
90850  */
90851   __pyx_v_version = 1;
90852 
90853   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":192
90854  *     """
90855  *     cdef int version = 1
90856  *     cdef int subversion = 0             # <<<<<<<<<<<<<<
90857  *     CHKERR( MPI_Get_version(&version, &subversion) )
90858  *     return (version, subversion)
90859  */
90860   __pyx_v_subversion = 0;
90861 
90862   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":193
90863  *     cdef int version = 1
90864  *     cdef int subversion = 0
90865  *     CHKERR( MPI_Get_version(&version, &subversion) )             # <<<<<<<<<<<<<<
90866  *     return (version, subversion)
90867  *
90868  */
90869   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_version((&__pyx_v_version), (&__pyx_v_subversion))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90870 
90871   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":194
90872  *     cdef int subversion = 0
90873  *     CHKERR( MPI_Get_version(&version, &subversion) )
90874  *     return (version, subversion)             # <<<<<<<<<<<<<<
90875  *
90876  * # Environmental Inquires
90877  */
90878   __Pyx_XDECREF(__pyx_r);
90879   __pyx_t_2 = PyInt_FromLong(__pyx_v_version); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90880   __Pyx_GOTREF(__pyx_t_2);
90881   __pyx_t_3 = PyInt_FromLong(__pyx_v_subversion); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90882   __Pyx_GOTREF(__pyx_t_3);
90883   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90884   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
90885   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
90886   __Pyx_GIVEREF(__pyx_t_2);
90887   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
90888   __Pyx_GIVEREF(__pyx_t_3);
90889   __pyx_t_2 = 0;
90890   __pyx_t_3 = 0;
90891   __pyx_r = ((PyObject *)__pyx_t_4);
90892   __pyx_t_4 = 0;
90893   goto __pyx_L0;
90894 
90895   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90896   goto __pyx_L0;
90897   __pyx_L1_error:;
90898   __Pyx_XDECREF(__pyx_t_2);
90899   __Pyx_XDECREF(__pyx_t_3);
90900   __Pyx_XDECREF(__pyx_t_4);
90901   __Pyx_AddTraceback("mpi4py.MPI.Get_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
90902   __pyx_r = NULL;
90903   __pyx_L0:;
90904   __Pyx_XGIVEREF(__pyx_r);
90905   __Pyx_RefNannyFinishContext();
90906   return __pyx_r;
90907 }
90908 
90909 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":199
90910  * # ----------------------
90911  *
90912  * def Get_processor_name():             # <<<<<<<<<<<<<<
90913  *     """
90914  *     Obtain the name of the calling processor
90915  */
90916 
90917 static PyObject *__pyx_pf_6mpi4py_3MPI_24Get_processor_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90918 static char __pyx_doc_6mpi4py_3MPI_24Get_processor_name[] = "Get_processor_name()\n\n    Obtain the name of the calling processor\n    ";
90919 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_24Get_processor_name = {__Pyx_NAMESTR("Get_processor_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_24Get_processor_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_24Get_processor_name)};
__pyx_pf_6mpi4py_3MPI_24Get_processor_name(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90920 static PyObject *__pyx_pf_6mpi4py_3MPI_24Get_processor_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90921   char __pyx_v_name[(MPI_MAX_PROCESSOR_NAME + 1)];
90922   int __pyx_v_nlen;
90923   PyObject *__pyx_r = NULL;
90924   __Pyx_RefNannyDeclarations
90925   int __pyx_t_1;
90926   PyObject *__pyx_t_2 = NULL;
90927   int __pyx_lineno = 0;
90928   const char *__pyx_filename = NULL;
90929   int __pyx_clineno = 0;
90930   __Pyx_RefNannySetupContext("Get_processor_name");
90931   __pyx_self = __pyx_self;
90932   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
90933     __Pyx_RaiseArgtupleInvalid("Get_processor_name", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
90934   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Get_processor_name", 0))) return NULL;
90935 
90936   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":204
90937  *     """
90938  *     cdef char name[MPI_MAX_PROCESSOR_NAME+1]
90939  *     cdef int nlen = 0             # <<<<<<<<<<<<<<
90940  *     CHKERR( MPI_Get_processor_name(name, &nlen) )
90941  *     return tompistr(name, nlen)
90942  */
90943   __pyx_v_nlen = 0;
90944 
90945   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":205
90946  *     cdef char name[MPI_MAX_PROCESSOR_NAME+1]
90947  *     cdef int nlen = 0
90948  *     CHKERR( MPI_Get_processor_name(name, &nlen) )             # <<<<<<<<<<<<<<
90949  *     return tompistr(name, nlen)
90950  *
90951  */
90952   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_processor_name(__pyx_v_name, (&__pyx_v_nlen))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90953 
90954   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":206
90955  *     cdef int nlen = 0
90956  *     CHKERR( MPI_Get_processor_name(name, &nlen) )
90957  *     return tompistr(name, nlen)             # <<<<<<<<<<<<<<
90958  *
90959  * # Timers and Synchronization
90960  */
90961   __Pyx_XDECREF(__pyx_r);
90962   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_tompistr(__pyx_v_name, __pyx_v_nlen); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
90963   __Pyx_GOTREF(__pyx_t_2);
90964   __pyx_r = __pyx_t_2;
90965   __pyx_t_2 = 0;
90966   goto __pyx_L0;
90967 
90968   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
90969   goto __pyx_L0;
90970   __pyx_L1_error:;
90971   __Pyx_XDECREF(__pyx_t_2);
90972   __Pyx_AddTraceback("mpi4py.MPI.Get_processor_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
90973   __pyx_r = NULL;
90974   __pyx_L0:;
90975   __Pyx_XGIVEREF(__pyx_r);
90976   __Pyx_RefNannyFinishContext();
90977   return __pyx_r;
90978 }
90979 
90980 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":211
90981  * # --------------------------
90982  *
90983  * def Wtime():             # <<<<<<<<<<<<<<
90984  *     """
90985  *     Return an elapsed time on the calling processor
90986  */
90987 
90988 static PyObject *__pyx_pf_6mpi4py_3MPI_25Wtime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
90989 static char __pyx_doc_6mpi4py_3MPI_25Wtime[] = "Wtime()\n\n    Return an elapsed time on the calling processor\n    ";
90990 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_25Wtime = {__Pyx_NAMESTR("Wtime"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_25Wtime, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_25Wtime)};
__pyx_pf_6mpi4py_3MPI_25Wtime(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)90991 static PyObject *__pyx_pf_6mpi4py_3MPI_25Wtime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
90992   PyObject *__pyx_r = NULL;
90993   __Pyx_RefNannyDeclarations
90994   PyObject *__pyx_t_1 = NULL;
90995   int __pyx_lineno = 0;
90996   const char *__pyx_filename = NULL;
90997   int __pyx_clineno = 0;
90998   __Pyx_RefNannySetupContext("Wtime");
90999   __pyx_self = __pyx_self;
91000   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
91001     __Pyx_RaiseArgtupleInvalid("Wtime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
91002   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Wtime", 0))) return NULL;
91003 
91004   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":215
91005  *     Return an elapsed time on the calling processor
91006  *     """
91007  *     return MPI_Wtime()             # <<<<<<<<<<<<<<
91008  *
91009  * def Wtick():
91010  */
91011   __Pyx_XDECREF(__pyx_r);
91012   __pyx_t_1 = PyFloat_FromDouble(MPI_Wtime()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91013   __Pyx_GOTREF(__pyx_t_1);
91014   __pyx_r = __pyx_t_1;
91015   __pyx_t_1 = 0;
91016   goto __pyx_L0;
91017 
91018   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
91019   goto __pyx_L0;
91020   __pyx_L1_error:;
91021   __Pyx_XDECREF(__pyx_t_1);
91022   __Pyx_AddTraceback("mpi4py.MPI.Wtime", __pyx_clineno, __pyx_lineno, __pyx_filename);
91023   __pyx_r = NULL;
91024   __pyx_L0:;
91025   __Pyx_XGIVEREF(__pyx_r);
91026   __Pyx_RefNannyFinishContext();
91027   return __pyx_r;
91028 }
91029 
91030 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":217
91031  *     return MPI_Wtime()
91032  *
91033  * def Wtick():             # <<<<<<<<<<<<<<
91034  *     """
91035  *     Return the resolution of ``Wtime``
91036  */
91037 
91038 static PyObject *__pyx_pf_6mpi4py_3MPI_26Wtick(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
91039 static char __pyx_doc_6mpi4py_3MPI_26Wtick[] = "Wtick()\n\n    Return the resolution of ``Wtime``\n    ";
91040 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_26Wtick = {__Pyx_NAMESTR("Wtick"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_26Wtick, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_26Wtick)};
__pyx_pf_6mpi4py_3MPI_26Wtick(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)91041 static PyObject *__pyx_pf_6mpi4py_3MPI_26Wtick(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
91042   PyObject *__pyx_r = NULL;
91043   __Pyx_RefNannyDeclarations
91044   PyObject *__pyx_t_1 = NULL;
91045   int __pyx_lineno = 0;
91046   const char *__pyx_filename = NULL;
91047   int __pyx_clineno = 0;
91048   __Pyx_RefNannySetupContext("Wtick");
91049   __pyx_self = __pyx_self;
91050   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
91051     __Pyx_RaiseArgtupleInvalid("Wtick", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
91052   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Wtick", 0))) return NULL;
91053 
91054   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":221
91055  *     Return the resolution of ``Wtime``
91056  *     """
91057  *     return MPI_Wtick()             # <<<<<<<<<<<<<<
91058  *
91059  * # Control of Profiling
91060  */
91061   __Pyx_XDECREF(__pyx_r);
91062   __pyx_t_1 = PyFloat_FromDouble(MPI_Wtick()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91063   __Pyx_GOTREF(__pyx_t_1);
91064   __pyx_r = __pyx_t_1;
91065   __pyx_t_1 = 0;
91066   goto __pyx_L0;
91067 
91068   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
91069   goto __pyx_L0;
91070   __pyx_L1_error:;
91071   __Pyx_XDECREF(__pyx_t_1);
91072   __Pyx_AddTraceback("mpi4py.MPI.Wtick", __pyx_clineno, __pyx_lineno, __pyx_filename);
91073   __pyx_r = NULL;
91074   __pyx_L0:;
91075   __Pyx_XGIVEREF(__pyx_r);
91076   __Pyx_RefNannyFinishContext();
91077   return __pyx_r;
91078 }
91079 
91080 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":226
91081  * # --------------------
91082  *
91083  * def Pcontrol(int level):             # <<<<<<<<<<<<<<
91084  *     """
91085  *     Control profiling
91086  */
91087 
91088 static PyObject *__pyx_pf_6mpi4py_3MPI_27Pcontrol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
91089 static char __pyx_doc_6mpi4py_3MPI_27Pcontrol[] = "Pcontrol(int level)\n\n    Control profiling\n    ";
91090 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_27Pcontrol = {__Pyx_NAMESTR("Pcontrol"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_27Pcontrol, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_27Pcontrol)};
__pyx_pf_6mpi4py_3MPI_27Pcontrol(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)91091 static PyObject *__pyx_pf_6mpi4py_3MPI_27Pcontrol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
91092   int __pyx_v_level;
91093   PyObject *__pyx_r = NULL;
91094   __Pyx_RefNannyDeclarations
91095   int __pyx_t_1;
91096   int __pyx_t_2;
91097   int __pyx_t_3;
91098   int __pyx_t_4;
91099   int __pyx_lineno = 0;
91100   const char *__pyx_filename = NULL;
91101   int __pyx_clineno = 0;
91102   static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__level,0};
91103   __Pyx_RefNannySetupContext("Pcontrol");
91104   __pyx_self = __pyx_self;
91105   {
91106     PyObject* values[1] = {0};
91107     if (unlikely(__pyx_kwds)) {
91108       Py_ssize_t kw_args;
91109       switch (PyTuple_GET_SIZE(__pyx_args)) {
91110         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
91111         case  0: break;
91112         default: goto __pyx_L5_argtuple_error;
91113       }
91114       kw_args = PyDict_Size(__pyx_kwds);
91115       switch (PyTuple_GET_SIZE(__pyx_args)) {
91116         case  0:
91117         values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
91118         if (likely(values[0])) kw_args--;
91119         else goto __pyx_L5_argtuple_error;
91120       }
91121       if (unlikely(kw_args > 0)) {
91122         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Pcontrol") < 0)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
91123       }
91124     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
91125       goto __pyx_L5_argtuple_error;
91126     } else {
91127       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
91128     }
91129     __pyx_v_level = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
91130   }
91131   goto __pyx_L4_argument_unpacking_done;
91132   __pyx_L5_argtuple_error:;
91133   __Pyx_RaiseArgtupleInvalid("Pcontrol", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[27]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
91134   __pyx_L3_error:;
91135   __Pyx_AddTraceback("mpi4py.MPI.Pcontrol", __pyx_clineno, __pyx_lineno, __pyx_filename);
91136   __Pyx_RefNannyFinishContext();
91137   return NULL;
91138   __pyx_L4_argument_unpacking_done:;
91139 
91140   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":230
91141  *     Control profiling
91142  *     """
91143  *     if level < 0 or level > 2: CHKERR(MPI_ERR_ARG)             # <<<<<<<<<<<<<<
91144  *     CHKERR( MPI_Pcontrol(level) )
91145  *
91146  */
91147   __pyx_t_1 = (__pyx_v_level < 0);
91148   if (!__pyx_t_1) {
91149     __pyx_t_2 = (__pyx_v_level > 2);
91150     __pyx_t_3 = __pyx_t_2;
91151   } else {
91152     __pyx_t_3 = __pyx_t_1;
91153   }
91154   if (__pyx_t_3) {
91155     __pyx_t_4 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_ERR_ARG); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91156     goto __pyx_L6;
91157   }
91158   __pyx_L6:;
91159 
91160   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":231
91161  *     """
91162  *     if level < 0 or level > 2: CHKERR(MPI_ERR_ARG)
91163  *     CHKERR( MPI_Pcontrol(level) )             # <<<<<<<<<<<<<<
91164  *
91165  *
91166  */
91167   __pyx_t_4 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Pcontrol(__pyx_v_level)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91168 
91169   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
91170   goto __pyx_L0;
91171   __pyx_L1_error:;
91172   __Pyx_AddTraceback("mpi4py.MPI.Pcontrol", __pyx_clineno, __pyx_lineno, __pyx_filename);
91173   __pyx_r = NULL;
91174   __pyx_L0:;
91175   __Pyx_XGIVEREF(__pyx_r);
91176   __Pyx_RefNannyFinishContext();
91177   return __pyx_r;
91178 }
91179 
91180 /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":254
91181  *     int MPI_Get_vendor(const_char**,int*,int*,int*)
91182  *
91183  * def get_vendor():             # <<<<<<<<<<<<<<
91184  *     """
91185  *     Infomation about the underlying MPI implementation
91186  */
91187 
91188 static PyObject *__pyx_pf_6mpi4py_3MPI_28get_vendor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
91189 static char __pyx_doc_6mpi4py_3MPI_28get_vendor[] = "get_vendor()\n\n    Infomation about the underlying MPI implementation\n\n    :Returns:\n      - a string with the name of the MPI implementation\n      - an integer 3-tuple version ``(major, minor, micro)``\n    ";
91190 static PyMethodDef __pyx_mdef_6mpi4py_3MPI_28get_vendor = {__Pyx_NAMESTR("get_vendor"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_28get_vendor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_28get_vendor)};
__pyx_pf_6mpi4py_3MPI_28get_vendor(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)91191 static PyObject *__pyx_pf_6mpi4py_3MPI_28get_vendor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
91192   const char *__pyx_v_name;
91193   int __pyx_v_major;
91194   int __pyx_v_minor;
91195   int __pyx_v_micro;
91196   PyObject *__pyx_r = NULL;
91197   __Pyx_RefNannyDeclarations
91198   int __pyx_t_1;
91199   PyObject *__pyx_t_2 = NULL;
91200   PyObject *__pyx_t_3 = NULL;
91201   PyObject *__pyx_t_4 = NULL;
91202   PyObject *__pyx_t_5 = NULL;
91203   PyObject *__pyx_t_6 = NULL;
91204   int __pyx_lineno = 0;
91205   const char *__pyx_filename = NULL;
91206   int __pyx_clineno = 0;
91207   __Pyx_RefNannySetupContext("get_vendor");
91208   __pyx_self = __pyx_self;
91209   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
91210     __Pyx_RaiseArgtupleInvalid("get_vendor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
91211   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_vendor", 0))) return NULL;
91212 
91213   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":262
91214  *       - an integer 3-tuple version ``(major, minor, micro)``
91215  *     """
91216  *     cdef const_char *name=NULL             # <<<<<<<<<<<<<<
91217  *     cdef int major=0, minor=0, micro=0
91218  *     CHKERR( MPI_Get_vendor(&name, &major, &minor, &micro) )
91219  */
91220   __pyx_v_name = NULL;
91221 
91222   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":263
91223  *     """
91224  *     cdef const_char *name=NULL
91225  *     cdef int major=0, minor=0, micro=0             # <<<<<<<<<<<<<<
91226  *     CHKERR( MPI_Get_vendor(&name, &major, &minor, &micro) )
91227  *     return (mpistr(name), (major, minor, micro))
91228  */
91229   __pyx_v_major = 0;
91230   __pyx_v_minor = 0;
91231   __pyx_v_micro = 0;
91232 
91233   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":264
91234  *     cdef const_char *name=NULL
91235  *     cdef int major=0, minor=0, micro=0
91236  *     CHKERR( MPI_Get_vendor(&name, &major, &minor, &micro) )             # <<<<<<<<<<<<<<
91237  *     return (mpistr(name), (major, minor, micro))
91238  *
91239  */
91240   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_CHKERR(MPI_Get_vendor((&__pyx_v_name), (&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_micro))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91241 
91242   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":265
91243  *     cdef int major=0, minor=0, micro=0
91244  *     CHKERR( MPI_Get_vendor(&name, &major, &minor, &micro) )
91245  *     return (mpistr(name), (major, minor, micro))             # <<<<<<<<<<<<<<
91246  *
91247  * # --------------------------------------------------------------------
91248  */
91249   __Pyx_XDECREF(__pyx_r);
91250   __pyx_t_2 = __pyx_f_6mpi4py_3MPI_mpistr(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91251   __Pyx_GOTREF(__pyx_t_2);
91252   __pyx_t_3 = PyInt_FromLong(__pyx_v_major); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91253   __Pyx_GOTREF(__pyx_t_3);
91254   __pyx_t_4 = PyInt_FromLong(__pyx_v_minor); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91255   __Pyx_GOTREF(__pyx_t_4);
91256   __pyx_t_5 = PyInt_FromLong(__pyx_v_micro); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91257   __Pyx_GOTREF(__pyx_t_5);
91258   __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91259   __Pyx_GOTREF(((PyObject *)__pyx_t_6));
91260   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
91261   __Pyx_GIVEREF(__pyx_t_3);
91262   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
91263   __Pyx_GIVEREF(__pyx_t_4);
91264   PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
91265   __Pyx_GIVEREF(__pyx_t_5);
91266   __pyx_t_3 = 0;
91267   __pyx_t_4 = 0;
91268   __pyx_t_5 = 0;
91269   __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
91270   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
91271   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
91272   __Pyx_GIVEREF(__pyx_t_2);
91273   PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_t_6));
91274   __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
91275   __pyx_t_2 = 0;
91276   __pyx_t_6 = 0;
91277   __pyx_r = ((PyObject *)__pyx_t_5);
91278   __pyx_t_5 = 0;
91279   goto __pyx_L0;
91280 
91281   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
91282   goto __pyx_L0;
91283   __pyx_L1_error:;
91284   __Pyx_XDECREF(__pyx_t_2);
91285   __Pyx_XDECREF(__pyx_t_3);
91286   __Pyx_XDECREF(__pyx_t_4);
91287   __Pyx_XDECREF(__pyx_t_5);
91288   __Pyx_XDECREF(__pyx_t_6);
91289   __Pyx_AddTraceback("mpi4py.MPI.get_vendor", __pyx_clineno, __pyx_lineno, __pyx_filename);
91290   __pyx_r = NULL;
91291   __pyx_L0:;
91292   __Pyx_XGIVEREF(__pyx_r);
91293   __Pyx_RefNannyFinishContext();
91294   return __pyx_r;
91295 }
91296 
__pyx_tp_new_6mpi4py_3MPI_Status(PyTypeObject * t,PyObject * a,PyObject * k)91297 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Status(PyTypeObject *t, PyObject *a, PyObject *k) {
91298   PyObject *o = (*t->tp_alloc)(t, 0);
91299   if (!o) return 0;
91300   if (__pyx_pf_6mpi4py_3MPI_6Status___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
91301     Py_DECREF(o); o = 0;
91302   }
91303   return o;
91304 }
91305 
__pyx_tp_dealloc_6mpi4py_3MPI_Status(PyObject * o)91306 static void __pyx_tp_dealloc_6mpi4py_3MPI_Status(PyObject *o) {
91307   (*Py_TYPE(o)->tp_free)(o);
91308 }
91309 
__pyx_getprop_6mpi4py_3MPI_6Status_source(PyObject * o,void * x)91310 static PyObject *__pyx_getprop_6mpi4py_3MPI_6Status_source(PyObject *o, void *x) {
91311   return __pyx_pf_6mpi4py_3MPI_6Status_6source___get__(o);
91312 }
91313 
__pyx_setprop_6mpi4py_3MPI_6Status_source(PyObject * o,PyObject * v,void * x)91314 static int __pyx_setprop_6mpi4py_3MPI_6Status_source(PyObject *o, PyObject *v, void *x) {
91315   if (v) {
91316     return __pyx_pf_6mpi4py_3MPI_6Status_6source_1__set__(o, v);
91317   }
91318   else {
91319     PyErr_SetString(PyExc_NotImplementedError, "__del__");
91320     return -1;
91321   }
91322 }
91323 
__pyx_getprop_6mpi4py_3MPI_6Status_tag(PyObject * o,void * x)91324 static PyObject *__pyx_getprop_6mpi4py_3MPI_6Status_tag(PyObject *o, void *x) {
91325   return __pyx_pf_6mpi4py_3MPI_6Status_3tag___get__(o);
91326 }
91327 
__pyx_setprop_6mpi4py_3MPI_6Status_tag(PyObject * o,PyObject * v,void * x)91328 static int __pyx_setprop_6mpi4py_3MPI_6Status_tag(PyObject *o, PyObject *v, void *x) {
91329   if (v) {
91330     return __pyx_pf_6mpi4py_3MPI_6Status_3tag_1__set__(o, v);
91331   }
91332   else {
91333     PyErr_SetString(PyExc_NotImplementedError, "__del__");
91334     return -1;
91335   }
91336 }
91337 
__pyx_getprop_6mpi4py_3MPI_6Status_error(PyObject * o,void * x)91338 static PyObject *__pyx_getprop_6mpi4py_3MPI_6Status_error(PyObject *o, void *x) {
91339   return __pyx_pf_6mpi4py_3MPI_6Status_5error___get__(o);
91340 }
91341 
__pyx_setprop_6mpi4py_3MPI_6Status_error(PyObject * o,PyObject * v,void * x)91342 static int __pyx_setprop_6mpi4py_3MPI_6Status_error(PyObject *o, PyObject *v, void *x) {
91343   if (v) {
91344     return __pyx_pf_6mpi4py_3MPI_6Status_5error_1__set__(o, v);
91345   }
91346   else {
91347     PyErr_SetString(PyExc_NotImplementedError, "__del__");
91348     return -1;
91349   }
91350 }
91351 
__pyx_getprop_6mpi4py_3MPI_6Status_count(PyObject * o,void * x)91352 static PyObject *__pyx_getprop_6mpi4py_3MPI_6Status_count(PyObject *o, void *x) {
91353   return __pyx_pf_6mpi4py_3MPI_6Status_5count___get__(o);
91354 }
91355 
__pyx_getprop_6mpi4py_3MPI_6Status_cancelled(PyObject * o,void * x)91356 static PyObject *__pyx_getprop_6mpi4py_3MPI_6Status_cancelled(PyObject *o, void *x) {
91357   return __pyx_pf_6mpi4py_3MPI_6Status_9cancelled___get__(o);
91358 }
91359 
__pyx_setprop_6mpi4py_3MPI_6Status_cancelled(PyObject * o,PyObject * v,void * x)91360 static int __pyx_setprop_6mpi4py_3MPI_6Status_cancelled(PyObject *o, PyObject *v, void *x) {
91361   if (v) {
91362     return __pyx_pf_6mpi4py_3MPI_6Status_9cancelled_1__set__(o, v);
91363   }
91364   else {
91365     PyErr_SetString(PyExc_NotImplementedError, "__del__");
91366     return -1;
91367   }
91368 }
91369 
91370 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Status[] = {
91371   {__Pyx_NAMESTR("Get_source"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_2Get_source, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_2Get_source)},
91372   {__Pyx_NAMESTR("Set_source"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_3Set_source, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_3Set_source)},
91373   {__Pyx_NAMESTR("Get_tag"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_4Get_tag, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_4Get_tag)},
91374   {__Pyx_NAMESTR("Set_tag"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_5Set_tag, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_5Set_tag)},
91375   {__Pyx_NAMESTR("Get_error"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_6Get_error, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_6Get_error)},
91376   {__Pyx_NAMESTR("Set_error"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_7Set_error, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_7Set_error)},
91377   {__Pyx_NAMESTR("Get_count"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_8Get_count, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_8Get_count)},
91378   {__Pyx_NAMESTR("Get_elements"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_9Get_elements, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_9Get_elements)},
91379   {__Pyx_NAMESTR("Set_elements"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_10Set_elements, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_10Set_elements)},
91380   {__Pyx_NAMESTR("Is_cancelled"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_11Is_cancelled, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_11Is_cancelled)},
91381   {__Pyx_NAMESTR("Set_cancelled"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_6Status_12Set_cancelled, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_6Status_12Set_cancelled)},
91382   {0, 0, 0, 0}
91383 };
91384 
91385 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Status[] = {
91386   {(char *)"source", __pyx_getprop_6mpi4py_3MPI_6Status_source, __pyx_setprop_6mpi4py_3MPI_6Status_source, __Pyx_DOCSTR(__pyx_k__source), 0},
91387   {(char *)"tag", __pyx_getprop_6mpi4py_3MPI_6Status_tag, __pyx_setprop_6mpi4py_3MPI_6Status_tag, __Pyx_DOCSTR(__pyx_k__tag), 0},
91388   {(char *)"error", __pyx_getprop_6mpi4py_3MPI_6Status_error, __pyx_setprop_6mpi4py_3MPI_6Status_error, __Pyx_DOCSTR(__pyx_k__error), 0},
91389   {(char *)"count", __pyx_getprop_6mpi4py_3MPI_6Status_count, 0, __Pyx_DOCSTR(__pyx_k_112), 0},
91390   {(char *)"cancelled", __pyx_getprop_6mpi4py_3MPI_6Status_cancelled, __pyx_setprop_6mpi4py_3MPI_6Status_cancelled, __Pyx_DOCSTR(__pyx_k_113), 0},
91391   {0, 0, 0, 0, 0}
91392 };
91393 
91394 static PyNumberMethods __pyx_tp_as_number_Status = {
91395   0, /*nb_add*/
91396   0, /*nb_subtract*/
91397   0, /*nb_multiply*/
91398   #if PY_MAJOR_VERSION < 3
91399   0, /*nb_divide*/
91400   #endif
91401   0, /*nb_remainder*/
91402   0, /*nb_divmod*/
91403   0, /*nb_power*/
91404   0, /*nb_negative*/
91405   0, /*nb_positive*/
91406   0, /*nb_absolute*/
91407   0, /*nb_nonzero*/
91408   0, /*nb_invert*/
91409   0, /*nb_lshift*/
91410   0, /*nb_rshift*/
91411   0, /*nb_and*/
91412   0, /*nb_xor*/
91413   0, /*nb_or*/
91414   #if PY_MAJOR_VERSION < 3
91415   0, /*nb_coerce*/
91416   #endif
91417   0, /*nb_int*/
91418   #if PY_MAJOR_VERSION < 3
91419   0, /*nb_long*/
91420   #else
91421   0, /*reserved*/
91422   #endif
91423   0, /*nb_float*/
91424   #if PY_MAJOR_VERSION < 3
91425   0, /*nb_oct*/
91426   #endif
91427   #if PY_MAJOR_VERSION < 3
91428   0, /*nb_hex*/
91429   #endif
91430   0, /*nb_inplace_add*/
91431   0, /*nb_inplace_subtract*/
91432   0, /*nb_inplace_multiply*/
91433   #if PY_MAJOR_VERSION < 3
91434   0, /*nb_inplace_divide*/
91435   #endif
91436   0, /*nb_inplace_remainder*/
91437   0, /*nb_inplace_power*/
91438   0, /*nb_inplace_lshift*/
91439   0, /*nb_inplace_rshift*/
91440   0, /*nb_inplace_and*/
91441   0, /*nb_inplace_xor*/
91442   0, /*nb_inplace_or*/
91443   0, /*nb_floor_divide*/
91444   0, /*nb_true_divide*/
91445   0, /*nb_inplace_floor_divide*/
91446   0, /*nb_inplace_true_divide*/
91447   #if PY_VERSION_HEX >= 0x02050000
91448   0, /*nb_index*/
91449   #endif
91450 };
91451 
91452 static PySequenceMethods __pyx_tp_as_sequence_Status = {
91453   0, /*sq_length*/
91454   0, /*sq_concat*/
91455   0, /*sq_repeat*/
91456   0, /*sq_item*/
91457   0, /*sq_slice*/
91458   0, /*sq_ass_item*/
91459   0, /*sq_ass_slice*/
91460   0, /*sq_contains*/
91461   0, /*sq_inplace_concat*/
91462   0, /*sq_inplace_repeat*/
91463 };
91464 
91465 static PyMappingMethods __pyx_tp_as_mapping_Status = {
91466   0, /*mp_length*/
91467   0, /*mp_subscript*/
91468   0, /*mp_ass_subscript*/
91469 };
91470 
91471 static PyBufferProcs __pyx_tp_as_buffer_Status = {
91472   #if PY_MAJOR_VERSION < 3
91473   0, /*bf_getreadbuffer*/
91474   #endif
91475   #if PY_MAJOR_VERSION < 3
91476   0, /*bf_getwritebuffer*/
91477   #endif
91478   #if PY_MAJOR_VERSION < 3
91479   0, /*bf_getsegcount*/
91480   #endif
91481   #if PY_MAJOR_VERSION < 3
91482   0, /*bf_getcharbuffer*/
91483   #endif
91484   #if PY_VERSION_HEX >= 0x02060000
91485   0, /*bf_getbuffer*/
91486   #endif
91487   #if PY_VERSION_HEX >= 0x02060000
91488   0, /*bf_releasebuffer*/
91489   #endif
91490 };
91491 
91492 DL_EXPORT(PyTypeObject) PyMPIStatus_Type = {
91493   PyVarObject_HEAD_INIT(0, 0)
91494   __Pyx_NAMESTR("mpi4py.MPI.Status"), /*tp_name*/
91495   sizeof(struct PyMPIStatusObject), /*tp_basicsize*/
91496   0, /*tp_itemsize*/
91497   __pyx_tp_dealloc_6mpi4py_3MPI_Status, /*tp_dealloc*/
91498   0, /*tp_print*/
91499   0, /*tp_getattr*/
91500   0, /*tp_setattr*/
91501   #if PY_MAJOR_VERSION < 3
91502   0, /*tp_compare*/
91503   #else
91504   0, /*reserved*/
91505   #endif
91506   0, /*tp_repr*/
91507   &__pyx_tp_as_number_Status, /*tp_as_number*/
91508   &__pyx_tp_as_sequence_Status, /*tp_as_sequence*/
91509   &__pyx_tp_as_mapping_Status, /*tp_as_mapping*/
91510   0, /*tp_hash*/
91511   0, /*tp_call*/
91512   0, /*tp_str*/
91513   0, /*tp_getattro*/
91514   0, /*tp_setattro*/
91515   &__pyx_tp_as_buffer_Status, /*tp_as_buffer*/
91516   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
91517   __Pyx_DOCSTR("\n    Status\n    "), /*tp_doc*/
91518   0, /*tp_traverse*/
91519   0, /*tp_clear*/
91520   __pyx_pf_6mpi4py_3MPI_6Status_1__richcmp__, /*tp_richcompare*/
91521   0, /*tp_weaklistoffset*/
91522   0, /*tp_iter*/
91523   0, /*tp_iternext*/
91524   __pyx_methods_6mpi4py_3MPI_Status, /*tp_methods*/
91525   0, /*tp_members*/
91526   __pyx_getsets_6mpi4py_3MPI_Status, /*tp_getset*/
91527   0, /*tp_base*/
91528   0, /*tp_dict*/
91529   0, /*tp_descr_get*/
91530   0, /*tp_descr_set*/
91531   0, /*tp_dictoffset*/
91532   0, /*tp_init*/
91533   0, /*tp_alloc*/
91534   __pyx_tp_new_6mpi4py_3MPI_Status, /*tp_new*/
91535   0, /*tp_free*/
91536   0, /*tp_is_gc*/
91537   0, /*tp_bases*/
91538   0, /*tp_mro*/
91539   0, /*tp_cache*/
91540   0, /*tp_subclasses*/
91541   0, /*tp_weaklist*/
91542   0, /*tp_del*/
91543   #if PY_VERSION_HEX >= 0x02060000
91544   0, /*tp_version_tag*/
91545   #endif
91546 };
91547 
__pyx_tp_new_6mpi4py_3MPI_Datatype(PyTypeObject * t,PyObject * a,PyObject * k)91548 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Datatype(PyTypeObject *t, PyObject *a, PyObject *k) {
91549   PyObject *o = (*t->tp_alloc)(t, 0);
91550   if (!o) return 0;
91551   if (__pyx_pf_6mpi4py_3MPI_8Datatype___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
91552     Py_DECREF(o); o = 0;
91553   }
91554   return o;
91555 }
91556 
__pyx_tp_dealloc_6mpi4py_3MPI_Datatype(PyObject * o)91557 static void __pyx_tp_dealloc_6mpi4py_3MPI_Datatype(PyObject *o) {
91558   {
91559     PyObject *etype, *eval, *etb;
91560     PyErr_Fetch(&etype, &eval, &etb);
91561     ++Py_REFCNT(o);
91562     __pyx_pf_6mpi4py_3MPI_8Datatype_1__dealloc__(o);
91563     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
91564     --Py_REFCNT(o);
91565     PyErr_Restore(etype, eval, etb);
91566   }
91567   (*Py_TYPE(o)->tp_free)(o);
91568 }
91569 
__pyx_getprop_6mpi4py_3MPI_8Datatype_extent(PyObject * o,void * x)91570 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_extent(PyObject *o, void *x) {
91571   return __pyx_pf_6mpi4py_3MPI_8Datatype_6extent___get__(o);
91572 }
91573 
__pyx_getprop_6mpi4py_3MPI_8Datatype_lb(PyObject * o,void * x)91574 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_lb(PyObject *o, void *x) {
91575   return __pyx_pf_6mpi4py_3MPI_8Datatype_2lb___get__(o);
91576 }
91577 
__pyx_getprop_6mpi4py_3MPI_8Datatype_ub(PyObject * o,void * x)91578 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_ub(PyObject *o, void *x) {
91579   return __pyx_pf_6mpi4py_3MPI_8Datatype_2ub___get__(o);
91580 }
91581 
__pyx_getprop_6mpi4py_3MPI_8Datatype_size(PyObject * o,void * x)91582 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_size(PyObject *o, void *x) {
91583   return __pyx_pf_6mpi4py_3MPI_8Datatype_4size___get__(o);
91584 }
91585 
__pyx_getprop_6mpi4py_3MPI_8Datatype_true_extent(PyObject * o,void * x)91586 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_true_extent(PyObject *o, void *x) {
91587   return __pyx_pf_6mpi4py_3MPI_8Datatype_11true_extent___get__(o);
91588 }
91589 
__pyx_getprop_6mpi4py_3MPI_8Datatype_true_lb(PyObject * o,void * x)91590 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_true_lb(PyObject *o, void *x) {
91591   return __pyx_pf_6mpi4py_3MPI_8Datatype_7true_lb___get__(o);
91592 }
91593 
__pyx_getprop_6mpi4py_3MPI_8Datatype_true_ub(PyObject * o,void * x)91594 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_true_ub(PyObject *o, void *x) {
91595   return __pyx_pf_6mpi4py_3MPI_8Datatype_7true_ub___get__(o);
91596 }
91597 
__pyx_getprop_6mpi4py_3MPI_8Datatype_name(PyObject * o,void * x)91598 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Datatype_name(PyObject *o, void *x) {
91599   return __pyx_pf_6mpi4py_3MPI_8Datatype_4name___get__(o);
91600 }
91601 
__pyx_setprop_6mpi4py_3MPI_8Datatype_name(PyObject * o,PyObject * v,void * x)91602 static int __pyx_setprop_6mpi4py_3MPI_8Datatype_name(PyObject *o, PyObject *v, void *x) {
91603   if (v) {
91604     return __pyx_pf_6mpi4py_3MPI_8Datatype_4name_1__set__(o, v);
91605   }
91606   else {
91607     PyErr_SetString(PyExc_NotImplementedError, "__del__");
91608     return -1;
91609   }
91610 }
91611 
91612 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Datatype[] = {
91613   {__Pyx_NAMESTR("Get_extent"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_4Get_extent, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_4Get_extent)},
91614   {__Pyx_NAMESTR("Get_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_5Get_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_5Get_size)},
91615   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_6Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_6Dup)},
91616   {__Pyx_NAMESTR("Create_contiguous"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_7Create_contiguous, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_7Create_contiguous)},
91617   {__Pyx_NAMESTR("Create_vector"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_8Create_vector, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_8Create_vector)},
91618   {__Pyx_NAMESTR("Create_hvector"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_9Create_hvector, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_9Create_hvector)},
91619   {__Pyx_NAMESTR("Create_indexed"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_10Create_indexed, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_10Create_indexed)},
91620   {__Pyx_NAMESTR("Create_indexed_block"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_11Create_indexed_block, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_11Create_indexed_block)},
91621   {__Pyx_NAMESTR("Create_hindexed"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_12Create_hindexed, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_12Create_hindexed)},
91622   {__Pyx_NAMESTR("Create_subarray"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_13Create_subarray, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_13Create_subarray)},
91623   {__Pyx_NAMESTR("Create_darray"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_14Create_darray, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_14Create_darray)},
91624   {__Pyx_NAMESTR("Create_struct"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_15Create_struct, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_15Create_struct)},
91625   {__Pyx_NAMESTR("Create_f90_integer"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_16Create_f90_integer, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_16Create_f90_integer)},
91626   {__Pyx_NAMESTR("Create_f90_real"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_17Create_f90_real, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_17Create_f90_real)},
91627   {__Pyx_NAMESTR("Create_f90_complex"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_18Create_f90_complex, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_18Create_f90_complex)},
91628   {__Pyx_NAMESTR("Match_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_19Match_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_19Match_size)},
91629   {__Pyx_NAMESTR("Commit"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_20Commit, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_20Commit)},
91630   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_21Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_21Free)},
91631   {__Pyx_NAMESTR("Create_resized"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_22Create_resized, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_22Create_resized)},
91632   {__Pyx_NAMESTR("Get_true_extent"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_23Get_true_extent, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_23Get_true_extent)},
91633   {__Pyx_NAMESTR("Get_envelope"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_24Get_envelope, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_24Get_envelope)},
91634   {__Pyx_NAMESTR("Get_contents"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_25Get_contents, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_25Get_contents)},
91635   {__Pyx_NAMESTR("decode"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_26decode, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_26decode)},
91636   {__Pyx_NAMESTR("Pack"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_27Pack, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_27Pack)},
91637   {__Pyx_NAMESTR("Unpack"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_28Unpack, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_28Unpack)},
91638   {__Pyx_NAMESTR("Pack_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_29Pack_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_29Pack_size)},
91639   {__Pyx_NAMESTR("Pack_external"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_30Pack_external, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_30Pack_external)},
91640   {__Pyx_NAMESTR("Unpack_external"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_31Unpack_external, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_31Unpack_external)},
91641   {__Pyx_NAMESTR("Pack_external_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_32Pack_external_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_32Pack_external_size)},
91642   {__Pyx_NAMESTR("Get_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_33Get_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_33Get_attr)},
91643   {__Pyx_NAMESTR("Set_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_34Set_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_34Set_attr)},
91644   {__Pyx_NAMESTR("Delete_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_35Delete_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_35Delete_attr)},
91645   {__Pyx_NAMESTR("Create_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_36Create_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_36Create_keyval)},
91646   {__Pyx_NAMESTR("Free_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_37Free_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_37Free_keyval)},
91647   {__Pyx_NAMESTR("Get_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_38Get_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_38Get_name)},
91648   {__Pyx_NAMESTR("Set_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_39Set_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_39Set_name)},
91649   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_40py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_40py2f)},
91650   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Datatype_41f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Datatype_41f2py)},
91651   {0, 0, 0, 0}
91652 };
91653 
91654 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Datatype[] = {
91655   {(char *)"extent", __pyx_getprop_6mpi4py_3MPI_8Datatype_extent, 0, __Pyx_DOCSTR(__pyx_k__extent), 0},
91656   {(char *)"lb", __pyx_getprop_6mpi4py_3MPI_8Datatype_lb, 0, __Pyx_DOCSTR(__pyx_k_114), 0},
91657   {(char *)"ub", __pyx_getprop_6mpi4py_3MPI_8Datatype_ub, 0, __Pyx_DOCSTR(__pyx_k_115), 0},
91658   {(char *)"size", __pyx_getprop_6mpi4py_3MPI_8Datatype_size, 0, __Pyx_DOCSTR(__pyx_k_116), 0},
91659   {(char *)"true_extent", __pyx_getprop_6mpi4py_3MPI_8Datatype_true_extent, 0, __Pyx_DOCSTR(__pyx_k_117), 0},
91660   {(char *)"true_lb", __pyx_getprop_6mpi4py_3MPI_8Datatype_true_lb, 0, __Pyx_DOCSTR(__pyx_k_118), 0},
91661   {(char *)"true_ub", __pyx_getprop_6mpi4py_3MPI_8Datatype_true_ub, 0, __Pyx_DOCSTR(__pyx_k_119), 0},
91662   {(char *)"name", __pyx_getprop_6mpi4py_3MPI_8Datatype_name, __pyx_setprop_6mpi4py_3MPI_8Datatype_name, __Pyx_DOCSTR(__pyx_k_120), 0},
91663   {0, 0, 0, 0, 0}
91664 };
91665 
91666 static PyNumberMethods __pyx_tp_as_number_Datatype = {
91667   0, /*nb_add*/
91668   0, /*nb_subtract*/
91669   0, /*nb_multiply*/
91670   #if PY_MAJOR_VERSION < 3
91671   0, /*nb_divide*/
91672   #endif
91673   0, /*nb_remainder*/
91674   0, /*nb_divmod*/
91675   0, /*nb_power*/
91676   0, /*nb_negative*/
91677   0, /*nb_positive*/
91678   0, /*nb_absolute*/
91679   __pyx_pf_6mpi4py_3MPI_8Datatype_3__bool__, /*nb_nonzero*/
91680   0, /*nb_invert*/
91681   0, /*nb_lshift*/
91682   0, /*nb_rshift*/
91683   0, /*nb_and*/
91684   0, /*nb_xor*/
91685   0, /*nb_or*/
91686   #if PY_MAJOR_VERSION < 3
91687   0, /*nb_coerce*/
91688   #endif
91689   0, /*nb_int*/
91690   #if PY_MAJOR_VERSION < 3
91691   0, /*nb_long*/
91692   #else
91693   0, /*reserved*/
91694   #endif
91695   0, /*nb_float*/
91696   #if PY_MAJOR_VERSION < 3
91697   0, /*nb_oct*/
91698   #endif
91699   #if PY_MAJOR_VERSION < 3
91700   0, /*nb_hex*/
91701   #endif
91702   0, /*nb_inplace_add*/
91703   0, /*nb_inplace_subtract*/
91704   0, /*nb_inplace_multiply*/
91705   #if PY_MAJOR_VERSION < 3
91706   0, /*nb_inplace_divide*/
91707   #endif
91708   0, /*nb_inplace_remainder*/
91709   0, /*nb_inplace_power*/
91710   0, /*nb_inplace_lshift*/
91711   0, /*nb_inplace_rshift*/
91712   0, /*nb_inplace_and*/
91713   0, /*nb_inplace_xor*/
91714   0, /*nb_inplace_or*/
91715   0, /*nb_floor_divide*/
91716   0, /*nb_true_divide*/
91717   0, /*nb_inplace_floor_divide*/
91718   0, /*nb_inplace_true_divide*/
91719   #if PY_VERSION_HEX >= 0x02050000
91720   0, /*nb_index*/
91721   #endif
91722 };
91723 
91724 static PySequenceMethods __pyx_tp_as_sequence_Datatype = {
91725   0, /*sq_length*/
91726   0, /*sq_concat*/
91727   0, /*sq_repeat*/
91728   0, /*sq_item*/
91729   0, /*sq_slice*/
91730   0, /*sq_ass_item*/
91731   0, /*sq_ass_slice*/
91732   0, /*sq_contains*/
91733   0, /*sq_inplace_concat*/
91734   0, /*sq_inplace_repeat*/
91735 };
91736 
91737 static PyMappingMethods __pyx_tp_as_mapping_Datatype = {
91738   0, /*mp_length*/
91739   0, /*mp_subscript*/
91740   0, /*mp_ass_subscript*/
91741 };
91742 
91743 static PyBufferProcs __pyx_tp_as_buffer_Datatype = {
91744   #if PY_MAJOR_VERSION < 3
91745   0, /*bf_getreadbuffer*/
91746   #endif
91747   #if PY_MAJOR_VERSION < 3
91748   0, /*bf_getwritebuffer*/
91749   #endif
91750   #if PY_MAJOR_VERSION < 3
91751   0, /*bf_getsegcount*/
91752   #endif
91753   #if PY_MAJOR_VERSION < 3
91754   0, /*bf_getcharbuffer*/
91755   #endif
91756   #if PY_VERSION_HEX >= 0x02060000
91757   0, /*bf_getbuffer*/
91758   #endif
91759   #if PY_VERSION_HEX >= 0x02060000
91760   0, /*bf_releasebuffer*/
91761   #endif
91762 };
91763 
91764 DL_EXPORT(PyTypeObject) PyMPIDatatype_Type = {
91765   PyVarObject_HEAD_INIT(0, 0)
91766   __Pyx_NAMESTR("mpi4py.MPI.Datatype"), /*tp_name*/
91767   sizeof(struct PyMPIDatatypeObject), /*tp_basicsize*/
91768   0, /*tp_itemsize*/
91769   __pyx_tp_dealloc_6mpi4py_3MPI_Datatype, /*tp_dealloc*/
91770   0, /*tp_print*/
91771   0, /*tp_getattr*/
91772   0, /*tp_setattr*/
91773   #if PY_MAJOR_VERSION < 3
91774   0, /*tp_compare*/
91775   #else
91776   0, /*reserved*/
91777   #endif
91778   0, /*tp_repr*/
91779   &__pyx_tp_as_number_Datatype, /*tp_as_number*/
91780   &__pyx_tp_as_sequence_Datatype, /*tp_as_sequence*/
91781   &__pyx_tp_as_mapping_Datatype, /*tp_as_mapping*/
91782   0, /*tp_hash*/
91783   0, /*tp_call*/
91784   0, /*tp_str*/
91785   0, /*tp_getattro*/
91786   0, /*tp_setattro*/
91787   &__pyx_tp_as_buffer_Datatype, /*tp_as_buffer*/
91788   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
91789   __Pyx_DOCSTR("\n    Datatype\n    "), /*tp_doc*/
91790   0, /*tp_traverse*/
91791   0, /*tp_clear*/
91792   __pyx_pf_6mpi4py_3MPI_8Datatype_2__richcmp__, /*tp_richcompare*/
91793   0, /*tp_weaklistoffset*/
91794   0, /*tp_iter*/
91795   0, /*tp_iternext*/
91796   __pyx_methods_6mpi4py_3MPI_Datatype, /*tp_methods*/
91797   0, /*tp_members*/
91798   __pyx_getsets_6mpi4py_3MPI_Datatype, /*tp_getset*/
91799   0, /*tp_base*/
91800   0, /*tp_dict*/
91801   0, /*tp_descr_get*/
91802   0, /*tp_descr_set*/
91803   0, /*tp_dictoffset*/
91804   0, /*tp_init*/
91805   0, /*tp_alloc*/
91806   __pyx_tp_new_6mpi4py_3MPI_Datatype, /*tp_new*/
91807   0, /*tp_free*/
91808   0, /*tp_is_gc*/
91809   0, /*tp_bases*/
91810   0, /*tp_mro*/
91811   0, /*tp_cache*/
91812   0, /*tp_subclasses*/
91813   0, /*tp_weaklist*/
91814   0, /*tp_del*/
91815   #if PY_VERSION_HEX >= 0x02060000
91816   0, /*tp_version_tag*/
91817   #endif
91818 };
91819 
__pyx_tp_new_6mpi4py_3MPI_Request(PyTypeObject * t,PyObject * a,PyObject * k)91820 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Request(PyTypeObject *t, PyObject *a, PyObject *k) {
91821   struct PyMPIRequestObject *p;
91822   PyObject *o = (*t->tp_alloc)(t, 0);
91823   if (!o) return 0;
91824   p = ((struct PyMPIRequestObject *)o);
91825   p->ob_buf = Py_None; Py_INCREF(Py_None);
91826   if (__pyx_pf_6mpi4py_3MPI_7Request___cinit__(o, a, k) < 0) {
91827     Py_DECREF(o); o = 0;
91828   }
91829   return o;
91830 }
91831 
__pyx_tp_dealloc_6mpi4py_3MPI_Request(PyObject * o)91832 static void __pyx_tp_dealloc_6mpi4py_3MPI_Request(PyObject *o) {
91833   struct PyMPIRequestObject *p = (struct PyMPIRequestObject *)o;
91834   {
91835     PyObject *etype, *eval, *etb;
91836     PyErr_Fetch(&etype, &eval, &etb);
91837     ++Py_REFCNT(o);
91838     __pyx_pf_6mpi4py_3MPI_7Request_1__dealloc__(o);
91839     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
91840     --Py_REFCNT(o);
91841     PyErr_Restore(etype, eval, etb);
91842   }
91843   Py_XDECREF(p->ob_buf);
91844   (*Py_TYPE(o)->tp_free)(o);
91845 }
91846 
__pyx_tp_traverse_6mpi4py_3MPI_Request(PyObject * o,visitproc v,void * a)91847 static int __pyx_tp_traverse_6mpi4py_3MPI_Request(PyObject *o, visitproc v, void *a) {
91848   int e;
91849   struct PyMPIRequestObject *p = (struct PyMPIRequestObject *)o;
91850   if (p->ob_buf) {
91851     e = (*v)(p->ob_buf, a); if (e) return e;
91852   }
91853   return 0;
91854 }
91855 
__pyx_tp_clear_6mpi4py_3MPI_Request(PyObject * o)91856 static int __pyx_tp_clear_6mpi4py_3MPI_Request(PyObject *o) {
91857   struct PyMPIRequestObject *p = (struct PyMPIRequestObject *)o;
91858   PyObject* tmp;
91859   tmp = ((PyObject*)p->ob_buf);
91860   p->ob_buf = Py_None; Py_INCREF(Py_None);
91861   Py_XDECREF(tmp);
91862   return 0;
91863 }
91864 
91865 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Request[] = {
91866   {__Pyx_NAMESTR("Wait"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_4Wait, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_4Wait)},
91867   {__Pyx_NAMESTR("Test"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_5Test, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_5Test)},
91868   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_6Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_6Free)},
91869   {__Pyx_NAMESTR("Get_status"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_7Get_status, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_7Get_status)},
91870   {__Pyx_NAMESTR("Waitany"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_8Waitany, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_8Waitany)},
91871   {__Pyx_NAMESTR("Testany"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_9Testany, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_9Testany)},
91872   {__Pyx_NAMESTR("Waitall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_10Waitall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_10Waitall)},
91873   {__Pyx_NAMESTR("Testall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_11Testall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_11Testall)},
91874   {__Pyx_NAMESTR("Waitsome"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_12Waitsome, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_12Waitsome)},
91875   {__Pyx_NAMESTR("Testsome"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_13Testsome, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_13Testsome)},
91876   {__Pyx_NAMESTR("Cancel"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_14Cancel, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_14Cancel)},
91877   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_15py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_15py2f)},
91878   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_16f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_16f2py)},
91879   {__Pyx_NAMESTR("wait"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_17wait, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_17wait)},
91880   {__Pyx_NAMESTR("test"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_18test, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_18test)},
91881   {__Pyx_NAMESTR("waitany"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_19waitany, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_19waitany)},
91882   {__Pyx_NAMESTR("testany"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_20testany, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_20testany)},
91883   {__Pyx_NAMESTR("waitall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_21waitall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_21waitall)},
91884   {__Pyx_NAMESTR("testall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_7Request_22testall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_7Request_22testall)},
91885   {0, 0, 0, 0}
91886 };
91887 
91888 static PyNumberMethods __pyx_tp_as_number_Request = {
91889   0, /*nb_add*/
91890   0, /*nb_subtract*/
91891   0, /*nb_multiply*/
91892   #if PY_MAJOR_VERSION < 3
91893   0, /*nb_divide*/
91894   #endif
91895   0, /*nb_remainder*/
91896   0, /*nb_divmod*/
91897   0, /*nb_power*/
91898   0, /*nb_negative*/
91899   0, /*nb_positive*/
91900   0, /*nb_absolute*/
91901   __pyx_pf_6mpi4py_3MPI_7Request_3__bool__, /*nb_nonzero*/
91902   0, /*nb_invert*/
91903   0, /*nb_lshift*/
91904   0, /*nb_rshift*/
91905   0, /*nb_and*/
91906   0, /*nb_xor*/
91907   0, /*nb_or*/
91908   #if PY_MAJOR_VERSION < 3
91909   0, /*nb_coerce*/
91910   #endif
91911   0, /*nb_int*/
91912   #if PY_MAJOR_VERSION < 3
91913   0, /*nb_long*/
91914   #else
91915   0, /*reserved*/
91916   #endif
91917   0, /*nb_float*/
91918   #if PY_MAJOR_VERSION < 3
91919   0, /*nb_oct*/
91920   #endif
91921   #if PY_MAJOR_VERSION < 3
91922   0, /*nb_hex*/
91923   #endif
91924   0, /*nb_inplace_add*/
91925   0, /*nb_inplace_subtract*/
91926   0, /*nb_inplace_multiply*/
91927   #if PY_MAJOR_VERSION < 3
91928   0, /*nb_inplace_divide*/
91929   #endif
91930   0, /*nb_inplace_remainder*/
91931   0, /*nb_inplace_power*/
91932   0, /*nb_inplace_lshift*/
91933   0, /*nb_inplace_rshift*/
91934   0, /*nb_inplace_and*/
91935   0, /*nb_inplace_xor*/
91936   0, /*nb_inplace_or*/
91937   0, /*nb_floor_divide*/
91938   0, /*nb_true_divide*/
91939   0, /*nb_inplace_floor_divide*/
91940   0, /*nb_inplace_true_divide*/
91941   #if PY_VERSION_HEX >= 0x02050000
91942   0, /*nb_index*/
91943   #endif
91944 };
91945 
91946 static PySequenceMethods __pyx_tp_as_sequence_Request = {
91947   0, /*sq_length*/
91948   0, /*sq_concat*/
91949   0, /*sq_repeat*/
91950   0, /*sq_item*/
91951   0, /*sq_slice*/
91952   0, /*sq_ass_item*/
91953   0, /*sq_ass_slice*/
91954   0, /*sq_contains*/
91955   0, /*sq_inplace_concat*/
91956   0, /*sq_inplace_repeat*/
91957 };
91958 
91959 static PyMappingMethods __pyx_tp_as_mapping_Request = {
91960   0, /*mp_length*/
91961   0, /*mp_subscript*/
91962   0, /*mp_ass_subscript*/
91963 };
91964 
91965 static PyBufferProcs __pyx_tp_as_buffer_Request = {
91966   #if PY_MAJOR_VERSION < 3
91967   0, /*bf_getreadbuffer*/
91968   #endif
91969   #if PY_MAJOR_VERSION < 3
91970   0, /*bf_getwritebuffer*/
91971   #endif
91972   #if PY_MAJOR_VERSION < 3
91973   0, /*bf_getsegcount*/
91974   #endif
91975   #if PY_MAJOR_VERSION < 3
91976   0, /*bf_getcharbuffer*/
91977   #endif
91978   #if PY_VERSION_HEX >= 0x02060000
91979   0, /*bf_getbuffer*/
91980   #endif
91981   #if PY_VERSION_HEX >= 0x02060000
91982   0, /*bf_releasebuffer*/
91983   #endif
91984 };
91985 
91986 DL_EXPORT(PyTypeObject) PyMPIRequest_Type = {
91987   PyVarObject_HEAD_INIT(0, 0)
91988   __Pyx_NAMESTR("mpi4py.MPI.Request"), /*tp_name*/
91989   sizeof(struct PyMPIRequestObject), /*tp_basicsize*/
91990   0, /*tp_itemsize*/
91991   __pyx_tp_dealloc_6mpi4py_3MPI_Request, /*tp_dealloc*/
91992   0, /*tp_print*/
91993   0, /*tp_getattr*/
91994   0, /*tp_setattr*/
91995   #if PY_MAJOR_VERSION < 3
91996   0, /*tp_compare*/
91997   #else
91998   0, /*reserved*/
91999   #endif
92000   0, /*tp_repr*/
92001   &__pyx_tp_as_number_Request, /*tp_as_number*/
92002   &__pyx_tp_as_sequence_Request, /*tp_as_sequence*/
92003   &__pyx_tp_as_mapping_Request, /*tp_as_mapping*/
92004   0, /*tp_hash*/
92005   0, /*tp_call*/
92006   0, /*tp_str*/
92007   0, /*tp_getattro*/
92008   0, /*tp_setattro*/
92009   &__pyx_tp_as_buffer_Request, /*tp_as_buffer*/
92010   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
92011   __Pyx_DOCSTR("\n    Request\n    "), /*tp_doc*/
92012   __pyx_tp_traverse_6mpi4py_3MPI_Request, /*tp_traverse*/
92013   __pyx_tp_clear_6mpi4py_3MPI_Request, /*tp_clear*/
92014   __pyx_pf_6mpi4py_3MPI_7Request_2__richcmp__, /*tp_richcompare*/
92015   0, /*tp_weaklistoffset*/
92016   0, /*tp_iter*/
92017   0, /*tp_iternext*/
92018   __pyx_methods_6mpi4py_3MPI_Request, /*tp_methods*/
92019   0, /*tp_members*/
92020   0, /*tp_getset*/
92021   0, /*tp_base*/
92022   0, /*tp_dict*/
92023   0, /*tp_descr_get*/
92024   0, /*tp_descr_set*/
92025   0, /*tp_dictoffset*/
92026   0, /*tp_init*/
92027   0, /*tp_alloc*/
92028   __pyx_tp_new_6mpi4py_3MPI_Request, /*tp_new*/
92029   0, /*tp_free*/
92030   0, /*tp_is_gc*/
92031   0, /*tp_bases*/
92032   0, /*tp_mro*/
92033   0, /*tp_cache*/
92034   0, /*tp_subclasses*/
92035   0, /*tp_weaklist*/
92036   0, /*tp_del*/
92037   #if PY_VERSION_HEX >= 0x02060000
92038   0, /*tp_version_tag*/
92039   #endif
92040 };
92041 
__pyx_tp_new_6mpi4py_3MPI_Prequest(PyTypeObject * t,PyObject * a,PyObject * k)92042 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Prequest(PyTypeObject *t, PyObject *a, PyObject *k) {
92043   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Request(t, a, k);
92044   if (!o) return 0;
92045   if (__pyx_pf_6mpi4py_3MPI_8Prequest___cinit__(o, a, k) < 0) {
92046     Py_DECREF(o); o = 0;
92047   }
92048   return o;
92049 }
92050 
92051 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Prequest[] = {
92052   {__Pyx_NAMESTR("Start"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Prequest_1Start, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Prequest_1Start)},
92053   {__Pyx_NAMESTR("Startall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Prequest_2Startall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Prequest_2Startall)},
92054   {0, 0, 0, 0}
92055 };
92056 
92057 static PyNumberMethods __pyx_tp_as_number_Prequest = {
92058   0, /*nb_add*/
92059   0, /*nb_subtract*/
92060   0, /*nb_multiply*/
92061   #if PY_MAJOR_VERSION < 3
92062   0, /*nb_divide*/
92063   #endif
92064   0, /*nb_remainder*/
92065   0, /*nb_divmod*/
92066   0, /*nb_power*/
92067   0, /*nb_negative*/
92068   0, /*nb_positive*/
92069   0, /*nb_absolute*/
92070   0, /*nb_nonzero*/
92071   0, /*nb_invert*/
92072   0, /*nb_lshift*/
92073   0, /*nb_rshift*/
92074   0, /*nb_and*/
92075   0, /*nb_xor*/
92076   0, /*nb_or*/
92077   #if PY_MAJOR_VERSION < 3
92078   0, /*nb_coerce*/
92079   #endif
92080   0, /*nb_int*/
92081   #if PY_MAJOR_VERSION < 3
92082   0, /*nb_long*/
92083   #else
92084   0, /*reserved*/
92085   #endif
92086   0, /*nb_float*/
92087   #if PY_MAJOR_VERSION < 3
92088   0, /*nb_oct*/
92089   #endif
92090   #if PY_MAJOR_VERSION < 3
92091   0, /*nb_hex*/
92092   #endif
92093   0, /*nb_inplace_add*/
92094   0, /*nb_inplace_subtract*/
92095   0, /*nb_inplace_multiply*/
92096   #if PY_MAJOR_VERSION < 3
92097   0, /*nb_inplace_divide*/
92098   #endif
92099   0, /*nb_inplace_remainder*/
92100   0, /*nb_inplace_power*/
92101   0, /*nb_inplace_lshift*/
92102   0, /*nb_inplace_rshift*/
92103   0, /*nb_inplace_and*/
92104   0, /*nb_inplace_xor*/
92105   0, /*nb_inplace_or*/
92106   0, /*nb_floor_divide*/
92107   0, /*nb_true_divide*/
92108   0, /*nb_inplace_floor_divide*/
92109   0, /*nb_inplace_true_divide*/
92110   #if PY_VERSION_HEX >= 0x02050000
92111   0, /*nb_index*/
92112   #endif
92113 };
92114 
92115 static PySequenceMethods __pyx_tp_as_sequence_Prequest = {
92116   0, /*sq_length*/
92117   0, /*sq_concat*/
92118   0, /*sq_repeat*/
92119   0, /*sq_item*/
92120   0, /*sq_slice*/
92121   0, /*sq_ass_item*/
92122   0, /*sq_ass_slice*/
92123   0, /*sq_contains*/
92124   0, /*sq_inplace_concat*/
92125   0, /*sq_inplace_repeat*/
92126 };
92127 
92128 static PyMappingMethods __pyx_tp_as_mapping_Prequest = {
92129   0, /*mp_length*/
92130   0, /*mp_subscript*/
92131   0, /*mp_ass_subscript*/
92132 };
92133 
92134 static PyBufferProcs __pyx_tp_as_buffer_Prequest = {
92135   #if PY_MAJOR_VERSION < 3
92136   0, /*bf_getreadbuffer*/
92137   #endif
92138   #if PY_MAJOR_VERSION < 3
92139   0, /*bf_getwritebuffer*/
92140   #endif
92141   #if PY_MAJOR_VERSION < 3
92142   0, /*bf_getsegcount*/
92143   #endif
92144   #if PY_MAJOR_VERSION < 3
92145   0, /*bf_getcharbuffer*/
92146   #endif
92147   #if PY_VERSION_HEX >= 0x02060000
92148   0, /*bf_getbuffer*/
92149   #endif
92150   #if PY_VERSION_HEX >= 0x02060000
92151   0, /*bf_releasebuffer*/
92152   #endif
92153 };
92154 
92155 DL_EXPORT(PyTypeObject) PyMPIPrequest_Type = {
92156   PyVarObject_HEAD_INIT(0, 0)
92157   __Pyx_NAMESTR("mpi4py.MPI.Prequest"), /*tp_name*/
92158   sizeof(struct PyMPIPrequestObject), /*tp_basicsize*/
92159   0, /*tp_itemsize*/
92160   __pyx_tp_dealloc_6mpi4py_3MPI_Request, /*tp_dealloc*/
92161   0, /*tp_print*/
92162   0, /*tp_getattr*/
92163   0, /*tp_setattr*/
92164   #if PY_MAJOR_VERSION < 3
92165   0, /*tp_compare*/
92166   #else
92167   0, /*reserved*/
92168   #endif
92169   0, /*tp_repr*/
92170   &__pyx_tp_as_number_Prequest, /*tp_as_number*/
92171   &__pyx_tp_as_sequence_Prequest, /*tp_as_sequence*/
92172   &__pyx_tp_as_mapping_Prequest, /*tp_as_mapping*/
92173   0, /*tp_hash*/
92174   0, /*tp_call*/
92175   0, /*tp_str*/
92176   0, /*tp_getattro*/
92177   0, /*tp_setattro*/
92178   &__pyx_tp_as_buffer_Prequest, /*tp_as_buffer*/
92179   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
92180   __Pyx_DOCSTR("\n    Persistent request\n    "), /*tp_doc*/
92181   __pyx_tp_traverse_6mpi4py_3MPI_Request, /*tp_traverse*/
92182   __pyx_tp_clear_6mpi4py_3MPI_Request, /*tp_clear*/
92183   0, /*tp_richcompare*/
92184   0, /*tp_weaklistoffset*/
92185   0, /*tp_iter*/
92186   0, /*tp_iternext*/
92187   __pyx_methods_6mpi4py_3MPI_Prequest, /*tp_methods*/
92188   0, /*tp_members*/
92189   0, /*tp_getset*/
92190   0, /*tp_base*/
92191   0, /*tp_dict*/
92192   0, /*tp_descr_get*/
92193   0, /*tp_descr_set*/
92194   0, /*tp_dictoffset*/
92195   0, /*tp_init*/
92196   0, /*tp_alloc*/
92197   __pyx_tp_new_6mpi4py_3MPI_Prequest, /*tp_new*/
92198   0, /*tp_free*/
92199   0, /*tp_is_gc*/
92200   0, /*tp_bases*/
92201   0, /*tp_mro*/
92202   0, /*tp_cache*/
92203   0, /*tp_subclasses*/
92204   0, /*tp_weaklist*/
92205   0, /*tp_del*/
92206   #if PY_VERSION_HEX >= 0x02060000
92207   0, /*tp_version_tag*/
92208   #endif
92209 };
92210 
__pyx_tp_new_6mpi4py_3MPI_Grequest(PyTypeObject * t,PyObject * a,PyObject * k)92211 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Grequest(PyTypeObject *t, PyObject *a, PyObject *k) {
92212   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Request(t, a, k);
92213   if (!o) return 0;
92214   if (__pyx_pf_6mpi4py_3MPI_8Grequest___cinit__(o, a, k) < 0) {
92215     Py_DECREF(o); o = 0;
92216   }
92217   return o;
92218 }
92219 
92220 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Grequest[] = {
92221   {__Pyx_NAMESTR("Start"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Grequest_1Start, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Grequest_1Start)},
92222   {__Pyx_NAMESTR("Complete"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Grequest_2Complete, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Grequest_2Complete)},
92223   {0, 0, 0, 0}
92224 };
92225 
92226 static PyNumberMethods __pyx_tp_as_number_Grequest = {
92227   0, /*nb_add*/
92228   0, /*nb_subtract*/
92229   0, /*nb_multiply*/
92230   #if PY_MAJOR_VERSION < 3
92231   0, /*nb_divide*/
92232   #endif
92233   0, /*nb_remainder*/
92234   0, /*nb_divmod*/
92235   0, /*nb_power*/
92236   0, /*nb_negative*/
92237   0, /*nb_positive*/
92238   0, /*nb_absolute*/
92239   0, /*nb_nonzero*/
92240   0, /*nb_invert*/
92241   0, /*nb_lshift*/
92242   0, /*nb_rshift*/
92243   0, /*nb_and*/
92244   0, /*nb_xor*/
92245   0, /*nb_or*/
92246   #if PY_MAJOR_VERSION < 3
92247   0, /*nb_coerce*/
92248   #endif
92249   0, /*nb_int*/
92250   #if PY_MAJOR_VERSION < 3
92251   0, /*nb_long*/
92252   #else
92253   0, /*reserved*/
92254   #endif
92255   0, /*nb_float*/
92256   #if PY_MAJOR_VERSION < 3
92257   0, /*nb_oct*/
92258   #endif
92259   #if PY_MAJOR_VERSION < 3
92260   0, /*nb_hex*/
92261   #endif
92262   0, /*nb_inplace_add*/
92263   0, /*nb_inplace_subtract*/
92264   0, /*nb_inplace_multiply*/
92265   #if PY_MAJOR_VERSION < 3
92266   0, /*nb_inplace_divide*/
92267   #endif
92268   0, /*nb_inplace_remainder*/
92269   0, /*nb_inplace_power*/
92270   0, /*nb_inplace_lshift*/
92271   0, /*nb_inplace_rshift*/
92272   0, /*nb_inplace_and*/
92273   0, /*nb_inplace_xor*/
92274   0, /*nb_inplace_or*/
92275   0, /*nb_floor_divide*/
92276   0, /*nb_true_divide*/
92277   0, /*nb_inplace_floor_divide*/
92278   0, /*nb_inplace_true_divide*/
92279   #if PY_VERSION_HEX >= 0x02050000
92280   0, /*nb_index*/
92281   #endif
92282 };
92283 
92284 static PySequenceMethods __pyx_tp_as_sequence_Grequest = {
92285   0, /*sq_length*/
92286   0, /*sq_concat*/
92287   0, /*sq_repeat*/
92288   0, /*sq_item*/
92289   0, /*sq_slice*/
92290   0, /*sq_ass_item*/
92291   0, /*sq_ass_slice*/
92292   0, /*sq_contains*/
92293   0, /*sq_inplace_concat*/
92294   0, /*sq_inplace_repeat*/
92295 };
92296 
92297 static PyMappingMethods __pyx_tp_as_mapping_Grequest = {
92298   0, /*mp_length*/
92299   0, /*mp_subscript*/
92300   0, /*mp_ass_subscript*/
92301 };
92302 
92303 static PyBufferProcs __pyx_tp_as_buffer_Grequest = {
92304   #if PY_MAJOR_VERSION < 3
92305   0, /*bf_getreadbuffer*/
92306   #endif
92307   #if PY_MAJOR_VERSION < 3
92308   0, /*bf_getwritebuffer*/
92309   #endif
92310   #if PY_MAJOR_VERSION < 3
92311   0, /*bf_getsegcount*/
92312   #endif
92313   #if PY_MAJOR_VERSION < 3
92314   0, /*bf_getcharbuffer*/
92315   #endif
92316   #if PY_VERSION_HEX >= 0x02060000
92317   0, /*bf_getbuffer*/
92318   #endif
92319   #if PY_VERSION_HEX >= 0x02060000
92320   0, /*bf_releasebuffer*/
92321   #endif
92322 };
92323 
92324 DL_EXPORT(PyTypeObject) PyMPIGrequest_Type = {
92325   PyVarObject_HEAD_INIT(0, 0)
92326   __Pyx_NAMESTR("mpi4py.MPI.Grequest"), /*tp_name*/
92327   sizeof(struct PyMPIGrequestObject), /*tp_basicsize*/
92328   0, /*tp_itemsize*/
92329   __pyx_tp_dealloc_6mpi4py_3MPI_Request, /*tp_dealloc*/
92330   0, /*tp_print*/
92331   0, /*tp_getattr*/
92332   0, /*tp_setattr*/
92333   #if PY_MAJOR_VERSION < 3
92334   0, /*tp_compare*/
92335   #else
92336   0, /*reserved*/
92337   #endif
92338   0, /*tp_repr*/
92339   &__pyx_tp_as_number_Grequest, /*tp_as_number*/
92340   &__pyx_tp_as_sequence_Grequest, /*tp_as_sequence*/
92341   &__pyx_tp_as_mapping_Grequest, /*tp_as_mapping*/
92342   0, /*tp_hash*/
92343   0, /*tp_call*/
92344   0, /*tp_str*/
92345   0, /*tp_getattro*/
92346   0, /*tp_setattro*/
92347   &__pyx_tp_as_buffer_Grequest, /*tp_as_buffer*/
92348   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
92349   __Pyx_DOCSTR("\n    Generalized request\n    "), /*tp_doc*/
92350   __pyx_tp_traverse_6mpi4py_3MPI_Request, /*tp_traverse*/
92351   __pyx_tp_clear_6mpi4py_3MPI_Request, /*tp_clear*/
92352   0, /*tp_richcompare*/
92353   0, /*tp_weaklistoffset*/
92354   0, /*tp_iter*/
92355   0, /*tp_iternext*/
92356   __pyx_methods_6mpi4py_3MPI_Grequest, /*tp_methods*/
92357   0, /*tp_members*/
92358   0, /*tp_getset*/
92359   0, /*tp_base*/
92360   0, /*tp_dict*/
92361   0, /*tp_descr_get*/
92362   0, /*tp_descr_set*/
92363   0, /*tp_dictoffset*/
92364   0, /*tp_init*/
92365   0, /*tp_alloc*/
92366   __pyx_tp_new_6mpi4py_3MPI_Grequest, /*tp_new*/
92367   0, /*tp_free*/
92368   0, /*tp_is_gc*/
92369   0, /*tp_bases*/
92370   0, /*tp_mro*/
92371   0, /*tp_cache*/
92372   0, /*tp_subclasses*/
92373   0, /*tp_weaklist*/
92374   0, /*tp_del*/
92375   #if PY_VERSION_HEX >= 0x02060000
92376   0, /*tp_version_tag*/
92377   #endif
92378 };
92379 
__pyx_tp_new_6mpi4py_3MPI_Op(PyTypeObject * t,PyObject * a,PyObject * k)92380 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Op(PyTypeObject *t, PyObject *a, PyObject *k) {
92381   PyObject *o = (*t->tp_alloc)(t, 0);
92382   if (!o) return 0;
92383   if (__pyx_pf_6mpi4py_3MPI_2Op___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
92384     Py_DECREF(o); o = 0;
92385   }
92386   return o;
92387 }
92388 
__pyx_tp_dealloc_6mpi4py_3MPI_Op(PyObject * o)92389 static void __pyx_tp_dealloc_6mpi4py_3MPI_Op(PyObject *o) {
92390   {
92391     PyObject *etype, *eval, *etb;
92392     PyErr_Fetch(&etype, &eval, &etb);
92393     ++Py_REFCNT(o);
92394     __pyx_pf_6mpi4py_3MPI_2Op_1__dealloc__(o);
92395     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
92396     --Py_REFCNT(o);
92397     PyErr_Restore(etype, eval, etb);
92398   }
92399   (*Py_TYPE(o)->tp_free)(o);
92400 }
92401 
__pyx_getprop_6mpi4py_3MPI_2Op_is_commutative(PyObject * o,void * x)92402 static PyObject *__pyx_getprop_6mpi4py_3MPI_2Op_is_commutative(PyObject *o, void *x) {
92403   return __pyx_pf_6mpi4py_3MPI_2Op_14is_commutative___get__(o);
92404 }
92405 
92406 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Op[] = {
92407   {__Pyx_NAMESTR("Create"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_5Create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_5Create)},
92408   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_6Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_6Free)},
92409   {__Pyx_NAMESTR("Is_commutative"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_7Is_commutative, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_7Is_commutative)},
92410   {__Pyx_NAMESTR("Reduce_local"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_8Reduce_local, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_8Reduce_local)},
92411   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_9py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_9py2f)},
92412   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_2Op_10f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_2Op_10f2py)},
92413   {0, 0, 0, 0}
92414 };
92415 
92416 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Op[] = {
92417   {(char *)"is_commutative", __pyx_getprop_6mpi4py_3MPI_2Op_is_commutative, 0, __Pyx_DOCSTR(__pyx_k_121), 0},
92418   {0, 0, 0, 0, 0}
92419 };
92420 
92421 static PyNumberMethods __pyx_tp_as_number_Op = {
92422   0, /*nb_add*/
92423   0, /*nb_subtract*/
92424   0, /*nb_multiply*/
92425   #if PY_MAJOR_VERSION < 3
92426   0, /*nb_divide*/
92427   #endif
92428   0, /*nb_remainder*/
92429   0, /*nb_divmod*/
92430   0, /*nb_power*/
92431   0, /*nb_negative*/
92432   0, /*nb_positive*/
92433   0, /*nb_absolute*/
92434   __pyx_pf_6mpi4py_3MPI_2Op_3__bool__, /*nb_nonzero*/
92435   0, /*nb_invert*/
92436   0, /*nb_lshift*/
92437   0, /*nb_rshift*/
92438   0, /*nb_and*/
92439   0, /*nb_xor*/
92440   0, /*nb_or*/
92441   #if PY_MAJOR_VERSION < 3
92442   0, /*nb_coerce*/
92443   #endif
92444   0, /*nb_int*/
92445   #if PY_MAJOR_VERSION < 3
92446   0, /*nb_long*/
92447   #else
92448   0, /*reserved*/
92449   #endif
92450   0, /*nb_float*/
92451   #if PY_MAJOR_VERSION < 3
92452   0, /*nb_oct*/
92453   #endif
92454   #if PY_MAJOR_VERSION < 3
92455   0, /*nb_hex*/
92456   #endif
92457   0, /*nb_inplace_add*/
92458   0, /*nb_inplace_subtract*/
92459   0, /*nb_inplace_multiply*/
92460   #if PY_MAJOR_VERSION < 3
92461   0, /*nb_inplace_divide*/
92462   #endif
92463   0, /*nb_inplace_remainder*/
92464   0, /*nb_inplace_power*/
92465   0, /*nb_inplace_lshift*/
92466   0, /*nb_inplace_rshift*/
92467   0, /*nb_inplace_and*/
92468   0, /*nb_inplace_xor*/
92469   0, /*nb_inplace_or*/
92470   0, /*nb_floor_divide*/
92471   0, /*nb_true_divide*/
92472   0, /*nb_inplace_floor_divide*/
92473   0, /*nb_inplace_true_divide*/
92474   #if PY_VERSION_HEX >= 0x02050000
92475   0, /*nb_index*/
92476   #endif
92477 };
92478 
92479 static PySequenceMethods __pyx_tp_as_sequence_Op = {
92480   0, /*sq_length*/
92481   0, /*sq_concat*/
92482   0, /*sq_repeat*/
92483   0, /*sq_item*/
92484   0, /*sq_slice*/
92485   0, /*sq_ass_item*/
92486   0, /*sq_ass_slice*/
92487   0, /*sq_contains*/
92488   0, /*sq_inplace_concat*/
92489   0, /*sq_inplace_repeat*/
92490 };
92491 
92492 static PyMappingMethods __pyx_tp_as_mapping_Op = {
92493   0, /*mp_length*/
92494   0, /*mp_subscript*/
92495   0, /*mp_ass_subscript*/
92496 };
92497 
92498 static PyBufferProcs __pyx_tp_as_buffer_Op = {
92499   #if PY_MAJOR_VERSION < 3
92500   0, /*bf_getreadbuffer*/
92501   #endif
92502   #if PY_MAJOR_VERSION < 3
92503   0, /*bf_getwritebuffer*/
92504   #endif
92505   #if PY_MAJOR_VERSION < 3
92506   0, /*bf_getsegcount*/
92507   #endif
92508   #if PY_MAJOR_VERSION < 3
92509   0, /*bf_getcharbuffer*/
92510   #endif
92511   #if PY_VERSION_HEX >= 0x02060000
92512   0, /*bf_getbuffer*/
92513   #endif
92514   #if PY_VERSION_HEX >= 0x02060000
92515   0, /*bf_releasebuffer*/
92516   #endif
92517 };
92518 
92519 DL_EXPORT(PyTypeObject) PyMPIOp_Type = {
92520   PyVarObject_HEAD_INIT(0, 0)
92521   __Pyx_NAMESTR("mpi4py.MPI.Op"), /*tp_name*/
92522   sizeof(struct PyMPIOpObject), /*tp_basicsize*/
92523   0, /*tp_itemsize*/
92524   __pyx_tp_dealloc_6mpi4py_3MPI_Op, /*tp_dealloc*/
92525   0, /*tp_print*/
92526   0, /*tp_getattr*/
92527   0, /*tp_setattr*/
92528   #if PY_MAJOR_VERSION < 3
92529   0, /*tp_compare*/
92530   #else
92531   0, /*reserved*/
92532   #endif
92533   0, /*tp_repr*/
92534   &__pyx_tp_as_number_Op, /*tp_as_number*/
92535   &__pyx_tp_as_sequence_Op, /*tp_as_sequence*/
92536   &__pyx_tp_as_mapping_Op, /*tp_as_mapping*/
92537   0, /*tp_hash*/
92538   __pyx_pf_6mpi4py_3MPI_2Op_4__call__, /*tp_call*/
92539   0, /*tp_str*/
92540   0, /*tp_getattro*/
92541   0, /*tp_setattro*/
92542   &__pyx_tp_as_buffer_Op, /*tp_as_buffer*/
92543   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
92544   __Pyx_DOCSTR("\n    Op\n    "), /*tp_doc*/
92545   0, /*tp_traverse*/
92546   0, /*tp_clear*/
92547   __pyx_pf_6mpi4py_3MPI_2Op_2__richcmp__, /*tp_richcompare*/
92548   0, /*tp_weaklistoffset*/
92549   0, /*tp_iter*/
92550   0, /*tp_iternext*/
92551   __pyx_methods_6mpi4py_3MPI_Op, /*tp_methods*/
92552   0, /*tp_members*/
92553   __pyx_getsets_6mpi4py_3MPI_Op, /*tp_getset*/
92554   0, /*tp_base*/
92555   0, /*tp_dict*/
92556   0, /*tp_descr_get*/
92557   0, /*tp_descr_set*/
92558   0, /*tp_dictoffset*/
92559   0, /*tp_init*/
92560   0, /*tp_alloc*/
92561   __pyx_tp_new_6mpi4py_3MPI_Op, /*tp_new*/
92562   0, /*tp_free*/
92563   0, /*tp_is_gc*/
92564   0, /*tp_bases*/
92565   0, /*tp_mro*/
92566   0, /*tp_cache*/
92567   0, /*tp_subclasses*/
92568   0, /*tp_weaklist*/
92569   0, /*tp_del*/
92570   #if PY_VERSION_HEX >= 0x02060000
92571   0, /*tp_version_tag*/
92572   #endif
92573 };
92574 
__pyx_tp_new_6mpi4py_3MPI_Group(PyTypeObject * t,PyObject * a,PyObject * k)92575 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Group(PyTypeObject *t, PyObject *a, PyObject *k) {
92576   PyObject *o = (*t->tp_alloc)(t, 0);
92577   if (!o) return 0;
92578   if (__pyx_pf_6mpi4py_3MPI_5Group___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
92579     Py_DECREF(o); o = 0;
92580   }
92581   return o;
92582 }
92583 
__pyx_tp_dealloc_6mpi4py_3MPI_Group(PyObject * o)92584 static void __pyx_tp_dealloc_6mpi4py_3MPI_Group(PyObject *o) {
92585   {
92586     PyObject *etype, *eval, *etb;
92587     PyErr_Fetch(&etype, &eval, &etb);
92588     ++Py_REFCNT(o);
92589     __pyx_pf_6mpi4py_3MPI_5Group_1__dealloc__(o);
92590     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
92591     --Py_REFCNT(o);
92592     PyErr_Restore(etype, eval, etb);
92593   }
92594   (*Py_TYPE(o)->tp_free)(o);
92595 }
92596 
__pyx_getprop_6mpi4py_3MPI_5Group_size(PyObject * o,void * x)92597 static PyObject *__pyx_getprop_6mpi4py_3MPI_5Group_size(PyObject *o, void *x) {
92598   return __pyx_pf_6mpi4py_3MPI_5Group_4size___get__(o);
92599 }
92600 
__pyx_getprop_6mpi4py_3MPI_5Group_rank(PyObject * o,void * x)92601 static PyObject *__pyx_getprop_6mpi4py_3MPI_5Group_rank(PyObject *o, void *x) {
92602   return __pyx_pf_6mpi4py_3MPI_5Group_4rank___get__(o);
92603 }
92604 
92605 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Group[] = {
92606   {__Pyx_NAMESTR("Get_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_4Get_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_4Get_size)},
92607   {__Pyx_NAMESTR("Get_rank"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_5Get_rank, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_5Get_rank)},
92608   {__Pyx_NAMESTR("Translate_ranks"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_6Translate_ranks, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_6Translate_ranks)},
92609   {__Pyx_NAMESTR("Compare"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_7Compare, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_7Compare)},
92610   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_8Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_8Dup)},
92611   {__Pyx_NAMESTR("Union"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_9Union, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_9Union)},
92612   {__Pyx_NAMESTR("Intersect"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_10Intersect, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_10Intersect)},
92613   {__Pyx_NAMESTR("Difference"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_11Difference, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_11Difference)},
92614   {__Pyx_NAMESTR("Incl"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_12Incl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_12Incl)},
92615   {__Pyx_NAMESTR("Excl"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_13Excl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_13Excl)},
92616   {__Pyx_NAMESTR("Range_incl"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_14Range_incl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_14Range_incl)},
92617   {__Pyx_NAMESTR("Range_excl"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_15Range_excl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_15Range_excl)},
92618   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_16Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_16Free)},
92619   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_17py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_17py2f)},
92620   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_5Group_18f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_5Group_18f2py)},
92621   {0, 0, 0, 0}
92622 };
92623 
92624 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Group[] = {
92625   {(char *)"size", __pyx_getprop_6mpi4py_3MPI_5Group_size, 0, __Pyx_DOCSTR(__pyx_k_122), 0},
92626   {(char *)"rank", __pyx_getprop_6mpi4py_3MPI_5Group_rank, 0, __Pyx_DOCSTR(__pyx_k_123), 0},
92627   {0, 0, 0, 0, 0}
92628 };
92629 
92630 static PyNumberMethods __pyx_tp_as_number_Group = {
92631   0, /*nb_add*/
92632   0, /*nb_subtract*/
92633   0, /*nb_multiply*/
92634   #if PY_MAJOR_VERSION < 3
92635   0, /*nb_divide*/
92636   #endif
92637   0, /*nb_remainder*/
92638   0, /*nb_divmod*/
92639   0, /*nb_power*/
92640   0, /*nb_negative*/
92641   0, /*nb_positive*/
92642   0, /*nb_absolute*/
92643   __pyx_pf_6mpi4py_3MPI_5Group_3__bool__, /*nb_nonzero*/
92644   0, /*nb_invert*/
92645   0, /*nb_lshift*/
92646   0, /*nb_rshift*/
92647   0, /*nb_and*/
92648   0, /*nb_xor*/
92649   0, /*nb_or*/
92650   #if PY_MAJOR_VERSION < 3
92651   0, /*nb_coerce*/
92652   #endif
92653   0, /*nb_int*/
92654   #if PY_MAJOR_VERSION < 3
92655   0, /*nb_long*/
92656   #else
92657   0, /*reserved*/
92658   #endif
92659   0, /*nb_float*/
92660   #if PY_MAJOR_VERSION < 3
92661   0, /*nb_oct*/
92662   #endif
92663   #if PY_MAJOR_VERSION < 3
92664   0, /*nb_hex*/
92665   #endif
92666   0, /*nb_inplace_add*/
92667   0, /*nb_inplace_subtract*/
92668   0, /*nb_inplace_multiply*/
92669   #if PY_MAJOR_VERSION < 3
92670   0, /*nb_inplace_divide*/
92671   #endif
92672   0, /*nb_inplace_remainder*/
92673   0, /*nb_inplace_power*/
92674   0, /*nb_inplace_lshift*/
92675   0, /*nb_inplace_rshift*/
92676   0, /*nb_inplace_and*/
92677   0, /*nb_inplace_xor*/
92678   0, /*nb_inplace_or*/
92679   0, /*nb_floor_divide*/
92680   0, /*nb_true_divide*/
92681   0, /*nb_inplace_floor_divide*/
92682   0, /*nb_inplace_true_divide*/
92683   #if PY_VERSION_HEX >= 0x02050000
92684   0, /*nb_index*/
92685   #endif
92686 };
92687 
92688 static PySequenceMethods __pyx_tp_as_sequence_Group = {
92689   0, /*sq_length*/
92690   0, /*sq_concat*/
92691   0, /*sq_repeat*/
92692   0, /*sq_item*/
92693   0, /*sq_slice*/
92694   0, /*sq_ass_item*/
92695   0, /*sq_ass_slice*/
92696   0, /*sq_contains*/
92697   0, /*sq_inplace_concat*/
92698   0, /*sq_inplace_repeat*/
92699 };
92700 
92701 static PyMappingMethods __pyx_tp_as_mapping_Group = {
92702   0, /*mp_length*/
92703   0, /*mp_subscript*/
92704   0, /*mp_ass_subscript*/
92705 };
92706 
92707 static PyBufferProcs __pyx_tp_as_buffer_Group = {
92708   #if PY_MAJOR_VERSION < 3
92709   0, /*bf_getreadbuffer*/
92710   #endif
92711   #if PY_MAJOR_VERSION < 3
92712   0, /*bf_getwritebuffer*/
92713   #endif
92714   #if PY_MAJOR_VERSION < 3
92715   0, /*bf_getsegcount*/
92716   #endif
92717   #if PY_MAJOR_VERSION < 3
92718   0, /*bf_getcharbuffer*/
92719   #endif
92720   #if PY_VERSION_HEX >= 0x02060000
92721   0, /*bf_getbuffer*/
92722   #endif
92723   #if PY_VERSION_HEX >= 0x02060000
92724   0, /*bf_releasebuffer*/
92725   #endif
92726 };
92727 
92728 DL_EXPORT(PyTypeObject) PyMPIGroup_Type = {
92729   PyVarObject_HEAD_INIT(0, 0)
92730   __Pyx_NAMESTR("mpi4py.MPI.Group"), /*tp_name*/
92731   sizeof(struct PyMPIGroupObject), /*tp_basicsize*/
92732   0, /*tp_itemsize*/
92733   __pyx_tp_dealloc_6mpi4py_3MPI_Group, /*tp_dealloc*/
92734   0, /*tp_print*/
92735   0, /*tp_getattr*/
92736   0, /*tp_setattr*/
92737   #if PY_MAJOR_VERSION < 3
92738   0, /*tp_compare*/
92739   #else
92740   0, /*reserved*/
92741   #endif
92742   0, /*tp_repr*/
92743   &__pyx_tp_as_number_Group, /*tp_as_number*/
92744   &__pyx_tp_as_sequence_Group, /*tp_as_sequence*/
92745   &__pyx_tp_as_mapping_Group, /*tp_as_mapping*/
92746   0, /*tp_hash*/
92747   0, /*tp_call*/
92748   0, /*tp_str*/
92749   0, /*tp_getattro*/
92750   0, /*tp_setattro*/
92751   &__pyx_tp_as_buffer_Group, /*tp_as_buffer*/
92752   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
92753   __Pyx_DOCSTR("\n    Group\n    "), /*tp_doc*/
92754   0, /*tp_traverse*/
92755   0, /*tp_clear*/
92756   __pyx_pf_6mpi4py_3MPI_5Group_2__richcmp__, /*tp_richcompare*/
92757   0, /*tp_weaklistoffset*/
92758   0, /*tp_iter*/
92759   0, /*tp_iternext*/
92760   __pyx_methods_6mpi4py_3MPI_Group, /*tp_methods*/
92761   0, /*tp_members*/
92762   __pyx_getsets_6mpi4py_3MPI_Group, /*tp_getset*/
92763   0, /*tp_base*/
92764   0, /*tp_dict*/
92765   0, /*tp_descr_get*/
92766   0, /*tp_descr_set*/
92767   0, /*tp_dictoffset*/
92768   0, /*tp_init*/
92769   0, /*tp_alloc*/
92770   __pyx_tp_new_6mpi4py_3MPI_Group, /*tp_new*/
92771   0, /*tp_free*/
92772   0, /*tp_is_gc*/
92773   0, /*tp_bases*/
92774   0, /*tp_mro*/
92775   0, /*tp_cache*/
92776   0, /*tp_subclasses*/
92777   0, /*tp_weaklist*/
92778   0, /*tp_del*/
92779   #if PY_VERSION_HEX >= 0x02060000
92780   0, /*tp_version_tag*/
92781   #endif
92782 };
92783 
__pyx_tp_new_6mpi4py_3MPI_Info(PyTypeObject * t,PyObject * a,PyObject * k)92784 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Info(PyTypeObject *t, PyObject *a, PyObject *k) {
92785   PyObject *o = (*t->tp_alloc)(t, 0);
92786   if (!o) return 0;
92787   if (__pyx_pf_6mpi4py_3MPI_4Info___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
92788     Py_DECREF(o); o = 0;
92789   }
92790   return o;
92791 }
92792 
__pyx_tp_dealloc_6mpi4py_3MPI_Info(PyObject * o)92793 static void __pyx_tp_dealloc_6mpi4py_3MPI_Info(PyObject *o) {
92794   {
92795     PyObject *etype, *eval, *etb;
92796     PyErr_Fetch(&etype, &eval, &etb);
92797     ++Py_REFCNT(o);
92798     __pyx_pf_6mpi4py_3MPI_4Info_1__dealloc__(o);
92799     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
92800     --Py_REFCNT(o);
92801     PyErr_Restore(etype, eval, etb);
92802   }
92803   (*Py_TYPE(o)->tp_free)(o);
92804 }
__pyx_sq_item_6mpi4py_3MPI_Info(PyObject * o,Py_ssize_t i)92805 static PyObject *__pyx_sq_item_6mpi4py_3MPI_Info(PyObject *o, Py_ssize_t i) {
92806   PyObject *r;
92807   PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
92808   r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
92809   Py_DECREF(x);
92810   return r;
92811 }
92812 
__pyx_mp_ass_subscript_6mpi4py_3MPI_Info(PyObject * o,PyObject * i,PyObject * v)92813 static int __pyx_mp_ass_subscript_6mpi4py_3MPI_Info(PyObject *o, PyObject *i, PyObject *v) {
92814   if (v) {
92815     return __pyx_pf_6mpi4py_3MPI_4Info_18__setitem__(o, i, v);
92816   }
92817   else {
92818     return __pyx_pf_6mpi4py_3MPI_4Info_19__delitem__(o, i);
92819   }
92820 }
92821 
92822 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Info[] = {
92823   {__Pyx_NAMESTR("Create"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_4Create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_4Create)},
92824   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_5Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_5Free)},
92825   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_6Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_6Dup)},
92826   {__Pyx_NAMESTR("Get"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_7Get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_7Get)},
92827   {__Pyx_NAMESTR("Set"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_8Set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_8Set)},
92828   {__Pyx_NAMESTR("Delete"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_9Delete, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_9Delete)},
92829   {__Pyx_NAMESTR("Get_nkeys"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_10Get_nkeys, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_10Get_nkeys)},
92830   {__Pyx_NAMESTR("Get_nthkey"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_11Get_nthkey, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_11Get_nthkey)},
92831   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_12py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_12py2f)},
92832   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_13f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_13f2py)},
92833   {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_20get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_20get)},
92834   {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_21keys, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_21keys)},
92835   {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_22values, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_22values)},
92836   {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_23items, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_23items)},
92837   {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_24update, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_24update)},
92838   {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Info_25clear, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Info_25clear)},
92839   {0, 0, 0, 0}
92840 };
92841 
92842 static PyNumberMethods __pyx_tp_as_number_Info = {
92843   0, /*nb_add*/
92844   0, /*nb_subtract*/
92845   0, /*nb_multiply*/
92846   #if PY_MAJOR_VERSION < 3
92847   0, /*nb_divide*/
92848   #endif
92849   0, /*nb_remainder*/
92850   0, /*nb_divmod*/
92851   0, /*nb_power*/
92852   0, /*nb_negative*/
92853   0, /*nb_positive*/
92854   0, /*nb_absolute*/
92855   __pyx_pf_6mpi4py_3MPI_4Info_3__bool__, /*nb_nonzero*/
92856   0, /*nb_invert*/
92857   0, /*nb_lshift*/
92858   0, /*nb_rshift*/
92859   0, /*nb_and*/
92860   0, /*nb_xor*/
92861   0, /*nb_or*/
92862   #if PY_MAJOR_VERSION < 3
92863   0, /*nb_coerce*/
92864   #endif
92865   0, /*nb_int*/
92866   #if PY_MAJOR_VERSION < 3
92867   0, /*nb_long*/
92868   #else
92869   0, /*reserved*/
92870   #endif
92871   0, /*nb_float*/
92872   #if PY_MAJOR_VERSION < 3
92873   0, /*nb_oct*/
92874   #endif
92875   #if PY_MAJOR_VERSION < 3
92876   0, /*nb_hex*/
92877   #endif
92878   0, /*nb_inplace_add*/
92879   0, /*nb_inplace_subtract*/
92880   0, /*nb_inplace_multiply*/
92881   #if PY_MAJOR_VERSION < 3
92882   0, /*nb_inplace_divide*/
92883   #endif
92884   0, /*nb_inplace_remainder*/
92885   0, /*nb_inplace_power*/
92886   0, /*nb_inplace_lshift*/
92887   0, /*nb_inplace_rshift*/
92888   0, /*nb_inplace_and*/
92889   0, /*nb_inplace_xor*/
92890   0, /*nb_inplace_or*/
92891   0, /*nb_floor_divide*/
92892   0, /*nb_true_divide*/
92893   0, /*nb_inplace_floor_divide*/
92894   0, /*nb_inplace_true_divide*/
92895   #if PY_VERSION_HEX >= 0x02050000
92896   0, /*nb_index*/
92897   #endif
92898 };
92899 
92900 static PySequenceMethods __pyx_tp_as_sequence_Info = {
92901   __pyx_pf_6mpi4py_3MPI_4Info_14__len__, /*sq_length*/
92902   0, /*sq_concat*/
92903   0, /*sq_repeat*/
92904   __pyx_sq_item_6mpi4py_3MPI_Info, /*sq_item*/
92905   0, /*sq_slice*/
92906   0, /*sq_ass_item*/
92907   0, /*sq_ass_slice*/
92908   __pyx_pf_6mpi4py_3MPI_4Info_15__contains__, /*sq_contains*/
92909   0, /*sq_inplace_concat*/
92910   0, /*sq_inplace_repeat*/
92911 };
92912 
92913 static PyMappingMethods __pyx_tp_as_mapping_Info = {
92914   __pyx_pf_6mpi4py_3MPI_4Info_14__len__, /*mp_length*/
92915   __pyx_pf_6mpi4py_3MPI_4Info_17__getitem__, /*mp_subscript*/
92916   __pyx_mp_ass_subscript_6mpi4py_3MPI_Info, /*mp_ass_subscript*/
92917 };
92918 
92919 static PyBufferProcs __pyx_tp_as_buffer_Info = {
92920   #if PY_MAJOR_VERSION < 3
92921   0, /*bf_getreadbuffer*/
92922   #endif
92923   #if PY_MAJOR_VERSION < 3
92924   0, /*bf_getwritebuffer*/
92925   #endif
92926   #if PY_MAJOR_VERSION < 3
92927   0, /*bf_getsegcount*/
92928   #endif
92929   #if PY_MAJOR_VERSION < 3
92930   0, /*bf_getcharbuffer*/
92931   #endif
92932   #if PY_VERSION_HEX >= 0x02060000
92933   0, /*bf_getbuffer*/
92934   #endif
92935   #if PY_VERSION_HEX >= 0x02060000
92936   0, /*bf_releasebuffer*/
92937   #endif
92938 };
92939 
92940 DL_EXPORT(PyTypeObject) PyMPIInfo_Type = {
92941   PyVarObject_HEAD_INIT(0, 0)
92942   __Pyx_NAMESTR("mpi4py.MPI.Info"), /*tp_name*/
92943   sizeof(struct PyMPIInfoObject), /*tp_basicsize*/
92944   0, /*tp_itemsize*/
92945   __pyx_tp_dealloc_6mpi4py_3MPI_Info, /*tp_dealloc*/
92946   0, /*tp_print*/
92947   0, /*tp_getattr*/
92948   0, /*tp_setattr*/
92949   #if PY_MAJOR_VERSION < 3
92950   0, /*tp_compare*/
92951   #else
92952   0, /*reserved*/
92953   #endif
92954   0, /*tp_repr*/
92955   &__pyx_tp_as_number_Info, /*tp_as_number*/
92956   &__pyx_tp_as_sequence_Info, /*tp_as_sequence*/
92957   &__pyx_tp_as_mapping_Info, /*tp_as_mapping*/
92958   0, /*tp_hash*/
92959   0, /*tp_call*/
92960   0, /*tp_str*/
92961   0, /*tp_getattro*/
92962   0, /*tp_setattro*/
92963   &__pyx_tp_as_buffer_Info, /*tp_as_buffer*/
92964   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
92965   __Pyx_DOCSTR("\n    Info\n    "), /*tp_doc*/
92966   0, /*tp_traverse*/
92967   0, /*tp_clear*/
92968   __pyx_pf_6mpi4py_3MPI_4Info_2__richcmp__, /*tp_richcompare*/
92969   0, /*tp_weaklistoffset*/
92970   __pyx_pf_6mpi4py_3MPI_4Info_16__iter__, /*tp_iter*/
92971   0, /*tp_iternext*/
92972   __pyx_methods_6mpi4py_3MPI_Info, /*tp_methods*/
92973   0, /*tp_members*/
92974   0, /*tp_getset*/
92975   0, /*tp_base*/
92976   0, /*tp_dict*/
92977   0, /*tp_descr_get*/
92978   0, /*tp_descr_set*/
92979   0, /*tp_dictoffset*/
92980   0, /*tp_init*/
92981   0, /*tp_alloc*/
92982   __pyx_tp_new_6mpi4py_3MPI_Info, /*tp_new*/
92983   0, /*tp_free*/
92984   0, /*tp_is_gc*/
92985   0, /*tp_bases*/
92986   0, /*tp_mro*/
92987   0, /*tp_cache*/
92988   0, /*tp_subclasses*/
92989   0, /*tp_weaklist*/
92990   0, /*tp_del*/
92991   #if PY_VERSION_HEX >= 0x02060000
92992   0, /*tp_version_tag*/
92993   #endif
92994 };
92995 
__pyx_tp_new_6mpi4py_3MPI_Errhandler(PyTypeObject * t,PyObject * a,PyObject * k)92996 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Errhandler(PyTypeObject *t, PyObject *a, PyObject *k) {
92997   PyObject *o = (*t->tp_alloc)(t, 0);
92998   if (!o) return 0;
92999   if (__pyx_pf_6mpi4py_3MPI_10Errhandler___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
93000     Py_DECREF(o); o = 0;
93001   }
93002   return o;
93003 }
93004 
__pyx_tp_dealloc_6mpi4py_3MPI_Errhandler(PyObject * o)93005 static void __pyx_tp_dealloc_6mpi4py_3MPI_Errhandler(PyObject *o) {
93006   {
93007     PyObject *etype, *eval, *etb;
93008     PyErr_Fetch(&etype, &eval, &etb);
93009     ++Py_REFCNT(o);
93010     __pyx_pf_6mpi4py_3MPI_10Errhandler_1__dealloc__(o);
93011     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
93012     --Py_REFCNT(o);
93013     PyErr_Restore(etype, eval, etb);
93014   }
93015   (*Py_TYPE(o)->tp_free)(o);
93016 }
93017 
93018 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Errhandler[] = {
93019   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_10Errhandler_4Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_10Errhandler_4Free)},
93020   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_10Errhandler_5py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_10Errhandler_5py2f)},
93021   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_10Errhandler_6f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_10Errhandler_6f2py)},
93022   {0, 0, 0, 0}
93023 };
93024 
93025 static PyNumberMethods __pyx_tp_as_number_Errhandler = {
93026   0, /*nb_add*/
93027   0, /*nb_subtract*/
93028   0, /*nb_multiply*/
93029   #if PY_MAJOR_VERSION < 3
93030   0, /*nb_divide*/
93031   #endif
93032   0, /*nb_remainder*/
93033   0, /*nb_divmod*/
93034   0, /*nb_power*/
93035   0, /*nb_negative*/
93036   0, /*nb_positive*/
93037   0, /*nb_absolute*/
93038   __pyx_pf_6mpi4py_3MPI_10Errhandler_3__bool__, /*nb_nonzero*/
93039   0, /*nb_invert*/
93040   0, /*nb_lshift*/
93041   0, /*nb_rshift*/
93042   0, /*nb_and*/
93043   0, /*nb_xor*/
93044   0, /*nb_or*/
93045   #if PY_MAJOR_VERSION < 3
93046   0, /*nb_coerce*/
93047   #endif
93048   0, /*nb_int*/
93049   #if PY_MAJOR_VERSION < 3
93050   0, /*nb_long*/
93051   #else
93052   0, /*reserved*/
93053   #endif
93054   0, /*nb_float*/
93055   #if PY_MAJOR_VERSION < 3
93056   0, /*nb_oct*/
93057   #endif
93058   #if PY_MAJOR_VERSION < 3
93059   0, /*nb_hex*/
93060   #endif
93061   0, /*nb_inplace_add*/
93062   0, /*nb_inplace_subtract*/
93063   0, /*nb_inplace_multiply*/
93064   #if PY_MAJOR_VERSION < 3
93065   0, /*nb_inplace_divide*/
93066   #endif
93067   0, /*nb_inplace_remainder*/
93068   0, /*nb_inplace_power*/
93069   0, /*nb_inplace_lshift*/
93070   0, /*nb_inplace_rshift*/
93071   0, /*nb_inplace_and*/
93072   0, /*nb_inplace_xor*/
93073   0, /*nb_inplace_or*/
93074   0, /*nb_floor_divide*/
93075   0, /*nb_true_divide*/
93076   0, /*nb_inplace_floor_divide*/
93077   0, /*nb_inplace_true_divide*/
93078   #if PY_VERSION_HEX >= 0x02050000
93079   0, /*nb_index*/
93080   #endif
93081 };
93082 
93083 static PySequenceMethods __pyx_tp_as_sequence_Errhandler = {
93084   0, /*sq_length*/
93085   0, /*sq_concat*/
93086   0, /*sq_repeat*/
93087   0, /*sq_item*/
93088   0, /*sq_slice*/
93089   0, /*sq_ass_item*/
93090   0, /*sq_ass_slice*/
93091   0, /*sq_contains*/
93092   0, /*sq_inplace_concat*/
93093   0, /*sq_inplace_repeat*/
93094 };
93095 
93096 static PyMappingMethods __pyx_tp_as_mapping_Errhandler = {
93097   0, /*mp_length*/
93098   0, /*mp_subscript*/
93099   0, /*mp_ass_subscript*/
93100 };
93101 
93102 static PyBufferProcs __pyx_tp_as_buffer_Errhandler = {
93103   #if PY_MAJOR_VERSION < 3
93104   0, /*bf_getreadbuffer*/
93105   #endif
93106   #if PY_MAJOR_VERSION < 3
93107   0, /*bf_getwritebuffer*/
93108   #endif
93109   #if PY_MAJOR_VERSION < 3
93110   0, /*bf_getsegcount*/
93111   #endif
93112   #if PY_MAJOR_VERSION < 3
93113   0, /*bf_getcharbuffer*/
93114   #endif
93115   #if PY_VERSION_HEX >= 0x02060000
93116   0, /*bf_getbuffer*/
93117   #endif
93118   #if PY_VERSION_HEX >= 0x02060000
93119   0, /*bf_releasebuffer*/
93120   #endif
93121 };
93122 
93123 DL_EXPORT(PyTypeObject) PyMPIErrhandler_Type = {
93124   PyVarObject_HEAD_INIT(0, 0)
93125   __Pyx_NAMESTR("mpi4py.MPI.Errhandler"), /*tp_name*/
93126   sizeof(struct PyMPIErrhandlerObject), /*tp_basicsize*/
93127   0, /*tp_itemsize*/
93128   __pyx_tp_dealloc_6mpi4py_3MPI_Errhandler, /*tp_dealloc*/
93129   0, /*tp_print*/
93130   0, /*tp_getattr*/
93131   0, /*tp_setattr*/
93132   #if PY_MAJOR_VERSION < 3
93133   0, /*tp_compare*/
93134   #else
93135   0, /*reserved*/
93136   #endif
93137   0, /*tp_repr*/
93138   &__pyx_tp_as_number_Errhandler, /*tp_as_number*/
93139   &__pyx_tp_as_sequence_Errhandler, /*tp_as_sequence*/
93140   &__pyx_tp_as_mapping_Errhandler, /*tp_as_mapping*/
93141   0, /*tp_hash*/
93142   0, /*tp_call*/
93143   0, /*tp_str*/
93144   0, /*tp_getattro*/
93145   0, /*tp_setattro*/
93146   &__pyx_tp_as_buffer_Errhandler, /*tp_as_buffer*/
93147   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
93148   __Pyx_DOCSTR("\n    Error Handler\n    "), /*tp_doc*/
93149   0, /*tp_traverse*/
93150   0, /*tp_clear*/
93151   __pyx_pf_6mpi4py_3MPI_10Errhandler_2__richcmp__, /*tp_richcompare*/
93152   0, /*tp_weaklistoffset*/
93153   0, /*tp_iter*/
93154   0, /*tp_iternext*/
93155   __pyx_methods_6mpi4py_3MPI_Errhandler, /*tp_methods*/
93156   0, /*tp_members*/
93157   0, /*tp_getset*/
93158   0, /*tp_base*/
93159   0, /*tp_dict*/
93160   0, /*tp_descr_get*/
93161   0, /*tp_descr_set*/
93162   0, /*tp_dictoffset*/
93163   0, /*tp_init*/
93164   0, /*tp_alloc*/
93165   __pyx_tp_new_6mpi4py_3MPI_Errhandler, /*tp_new*/
93166   0, /*tp_free*/
93167   0, /*tp_is_gc*/
93168   0, /*tp_bases*/
93169   0, /*tp_mro*/
93170   0, /*tp_cache*/
93171   0, /*tp_subclasses*/
93172   0, /*tp_weaklist*/
93173   0, /*tp_del*/
93174   #if PY_VERSION_HEX >= 0x02060000
93175   0, /*tp_version_tag*/
93176   #endif
93177 };
93178 
__pyx_tp_new_6mpi4py_3MPI_Comm(PyTypeObject * t,PyObject * a,PyObject * k)93179 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Comm(PyTypeObject *t, PyObject *a, PyObject *k) {
93180   PyObject *o = (*t->tp_alloc)(t, 0);
93181   if (!o) return 0;
93182   if (__pyx_pf_6mpi4py_3MPI_4Comm___cinit__(o, a, k) < 0) {
93183     Py_DECREF(o); o = 0;
93184   }
93185   return o;
93186 }
93187 
__pyx_tp_dealloc_6mpi4py_3MPI_Comm(PyObject * o)93188 static void __pyx_tp_dealloc_6mpi4py_3MPI_Comm(PyObject *o) {
93189   {
93190     PyObject *etype, *eval, *etb;
93191     PyErr_Fetch(&etype, &eval, &etb);
93192     ++Py_REFCNT(o);
93193     __pyx_pf_6mpi4py_3MPI_4Comm_1__dealloc__(o);
93194     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
93195     --Py_REFCNT(o);
93196     PyErr_Restore(etype, eval, etb);
93197   }
93198   (*Py_TYPE(o)->tp_free)(o);
93199 }
93200 
__pyx_getprop_6mpi4py_3MPI_4Comm_group(PyObject * o,void * x)93201 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_group(PyObject *o, void *x) {
93202   return __pyx_pf_6mpi4py_3MPI_4Comm_5group___get__(o);
93203 }
93204 
__pyx_getprop_6mpi4py_3MPI_4Comm_size(PyObject * o,void * x)93205 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_size(PyObject *o, void *x) {
93206   return __pyx_pf_6mpi4py_3MPI_4Comm_4size___get__(o);
93207 }
93208 
__pyx_getprop_6mpi4py_3MPI_4Comm_rank(PyObject * o,void * x)93209 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_rank(PyObject *o, void *x) {
93210   return __pyx_pf_6mpi4py_3MPI_4Comm_4rank___get__(o);
93211 }
93212 
__pyx_getprop_6mpi4py_3MPI_4Comm_is_inter(PyObject * o,void * x)93213 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_is_inter(PyObject *o, void *x) {
93214   return __pyx_pf_6mpi4py_3MPI_4Comm_8is_inter___get__(o);
93215 }
93216 
__pyx_getprop_6mpi4py_3MPI_4Comm_is_intra(PyObject * o,void * x)93217 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_is_intra(PyObject *o, void *x) {
93218   return __pyx_pf_6mpi4py_3MPI_4Comm_8is_intra___get__(o);
93219 }
93220 
__pyx_getprop_6mpi4py_3MPI_4Comm_topology(PyObject * o,void * x)93221 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_topology(PyObject *o, void *x) {
93222   return __pyx_pf_6mpi4py_3MPI_4Comm_8topology___get__(o);
93223 }
93224 
__pyx_getprop_6mpi4py_3MPI_4Comm_name(PyObject * o,void * x)93225 static PyObject *__pyx_getprop_6mpi4py_3MPI_4Comm_name(PyObject *o, void *x) {
93226   return __pyx_pf_6mpi4py_3MPI_4Comm_4name___get__(o);
93227 }
93228 
__pyx_setprop_6mpi4py_3MPI_4Comm_name(PyObject * o,PyObject * v,void * x)93229 static int __pyx_setprop_6mpi4py_3MPI_4Comm_name(PyObject *o, PyObject *v, void *x) {
93230   if (v) {
93231     return __pyx_pf_6mpi4py_3MPI_4Comm_4name_1__set__(o, v);
93232   }
93233   else {
93234     PyErr_SetString(PyExc_NotImplementedError, "__del__");
93235     return -1;
93236   }
93237 }
93238 
93239 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Comm[] = {
93240   {__Pyx_NAMESTR("Get_group"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_4Get_group, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_4Get_group)},
93241   {__Pyx_NAMESTR("Get_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_5Get_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_5Get_size)},
93242   {__Pyx_NAMESTR("Get_rank"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_6Get_rank, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_6Get_rank)},
93243   {__Pyx_NAMESTR("Compare"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_7Compare, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_7Compare)},
93244   {__Pyx_NAMESTR("Clone"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_8Clone, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_8Clone)},
93245   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_9Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_9Free)},
93246   {__Pyx_NAMESTR("Send"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_10Send, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_10Send)},
93247   {__Pyx_NAMESTR("Recv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_11Recv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_11Recv)},
93248   {__Pyx_NAMESTR("Sendrecv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_12Sendrecv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_12Sendrecv)},
93249   {__Pyx_NAMESTR("Sendrecv_replace"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_13Sendrecv_replace, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_13Sendrecv_replace)},
93250   {__Pyx_NAMESTR("Isend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_14Isend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_14Isend)},
93251   {__Pyx_NAMESTR("Irecv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_15Irecv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_15Irecv)},
93252   {__Pyx_NAMESTR("Probe"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_16Probe, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_16Probe)},
93253   {__Pyx_NAMESTR("Iprobe"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_17Iprobe, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_17Iprobe)},
93254   {__Pyx_NAMESTR("Send_init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_18Send_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_18Send_init)},
93255   {__Pyx_NAMESTR("Recv_init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_19Recv_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_19Recv_init)},
93256   {__Pyx_NAMESTR("Bsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_20Bsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_20Bsend)},
93257   {__Pyx_NAMESTR("Ssend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_21Ssend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_21Ssend)},
93258   {__Pyx_NAMESTR("Rsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_22Rsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_22Rsend)},
93259   {__Pyx_NAMESTR("Ibsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_23Ibsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_23Ibsend)},
93260   {__Pyx_NAMESTR("Issend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_24Issend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_24Issend)},
93261   {__Pyx_NAMESTR("Irsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_25Irsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_25Irsend)},
93262   {__Pyx_NAMESTR("Bsend_init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_26Bsend_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_26Bsend_init)},
93263   {__Pyx_NAMESTR("Ssend_init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_27Ssend_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_27Ssend_init)},
93264   {__Pyx_NAMESTR("Rsend_init"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_28Rsend_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_28Rsend_init)},
93265   {__Pyx_NAMESTR("Barrier"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_29Barrier, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_29Barrier)},
93266   {__Pyx_NAMESTR("Bcast"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_30Bcast, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_30Bcast)},
93267   {__Pyx_NAMESTR("Gather"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_31Gather, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_31Gather)},
93268   {__Pyx_NAMESTR("Gatherv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_32Gatherv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_32Gatherv)},
93269   {__Pyx_NAMESTR("Scatter"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_33Scatter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_33Scatter)},
93270   {__Pyx_NAMESTR("Scatterv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_34Scatterv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_34Scatterv)},
93271   {__Pyx_NAMESTR("Allgather"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_35Allgather, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_35Allgather)},
93272   {__Pyx_NAMESTR("Allgatherv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_36Allgatherv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_36Allgatherv)},
93273   {__Pyx_NAMESTR("Alltoall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_37Alltoall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_37Alltoall)},
93274   {__Pyx_NAMESTR("Alltoallv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_38Alltoallv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_38Alltoallv)},
93275   {__Pyx_NAMESTR("Alltoallw"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_39Alltoallw, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_39Alltoallw)},
93276   {__Pyx_NAMESTR("Reduce"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_40Reduce, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_40Reduce)},
93277   {__Pyx_NAMESTR("Allreduce"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_41Allreduce, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_41Allreduce)},
93278   {__Pyx_NAMESTR("Reduce_scatter_block"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_42Reduce_scatter_block, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_42Reduce_scatter_block)},
93279   {__Pyx_NAMESTR("Reduce_scatter"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_43Reduce_scatter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_43Reduce_scatter)},
93280   {__Pyx_NAMESTR("Is_inter"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_44Is_inter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_44Is_inter)},
93281   {__Pyx_NAMESTR("Is_intra"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_45Is_intra, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_45Is_intra)},
93282   {__Pyx_NAMESTR("Get_topology"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_46Get_topology, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_46Get_topology)},
93283   {__Pyx_NAMESTR("Get_parent"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_47Get_parent, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_47Get_parent)},
93284   {__Pyx_NAMESTR("Disconnect"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_48Disconnect, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_48Disconnect)},
93285   {__Pyx_NAMESTR("Join"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_49Join, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_49Join)},
93286   {__Pyx_NAMESTR("Get_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_50Get_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_50Get_attr)},
93287   {__Pyx_NAMESTR("Set_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_51Set_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_51Set_attr)},
93288   {__Pyx_NAMESTR("Delete_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_52Delete_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_52Delete_attr)},
93289   {__Pyx_NAMESTR("Create_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_53Create_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_53Create_keyval)},
93290   {__Pyx_NAMESTR("Free_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_54Free_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_54Free_keyval)},
93291   {__Pyx_NAMESTR("Get_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_55Get_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_55Get_errhandler)},
93292   {__Pyx_NAMESTR("Set_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_56Set_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_56Set_errhandler)},
93293   {__Pyx_NAMESTR("Call_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_57Call_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_57Call_errhandler)},
93294   {__Pyx_NAMESTR("Abort"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_58Abort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_58Abort)},
93295   {__Pyx_NAMESTR("Get_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_59Get_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_59Get_name)},
93296   {__Pyx_NAMESTR("Set_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_60Set_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_60Set_name)},
93297   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_61py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_61py2f)},
93298   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_62f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_62f2py)},
93299   {__Pyx_NAMESTR("send"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_63send, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_63send)},
93300   {__Pyx_NAMESTR("bsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_64bsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_64bsend)},
93301   {__Pyx_NAMESTR("ssend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_65ssend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_65ssend)},
93302   {__Pyx_NAMESTR("recv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_66recv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_66recv)},
93303   {__Pyx_NAMESTR("sendrecv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_67sendrecv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_67sendrecv)},
93304   {__Pyx_NAMESTR("isend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_68isend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_68isend)},
93305   {__Pyx_NAMESTR("ibsend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_69ibsend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_69ibsend)},
93306   {__Pyx_NAMESTR("issend"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_70issend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_70issend)},
93307   {__Pyx_NAMESTR("irecv"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_71irecv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_71irecv)},
93308   {__Pyx_NAMESTR("barrier"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_72barrier, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_72barrier)},
93309   {__Pyx_NAMESTR("bcast"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_73bcast, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_73bcast)},
93310   {__Pyx_NAMESTR("gather"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_74gather, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_74gather)},
93311   {__Pyx_NAMESTR("scatter"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_75scatter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_75scatter)},
93312   {__Pyx_NAMESTR("allgather"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_76allgather, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_76allgather)},
93313   {__Pyx_NAMESTR("alltoall"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_77alltoall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_77alltoall)},
93314   {__Pyx_NAMESTR("reduce"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_78reduce, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_78reduce)},
93315   {__Pyx_NAMESTR("allreduce"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4Comm_79allreduce, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4Comm_79allreduce)},
93316   {0, 0, 0, 0}
93317 };
93318 
93319 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Comm[] = {
93320   {(char *)"group", __pyx_getprop_6mpi4py_3MPI_4Comm_group, 0, __Pyx_DOCSTR(__pyx_k_124), 0},
93321   {(char *)"size", __pyx_getprop_6mpi4py_3MPI_4Comm_size, 0, __Pyx_DOCSTR(__pyx_k_125), 0},
93322   {(char *)"rank", __pyx_getprop_6mpi4py_3MPI_4Comm_rank, 0, __Pyx_DOCSTR(__pyx_k_126), 0},
93323   {(char *)"is_inter", __pyx_getprop_6mpi4py_3MPI_4Comm_is_inter, 0, __Pyx_DOCSTR(__pyx_k_127), 0},
93324   {(char *)"is_intra", __pyx_getprop_6mpi4py_3MPI_4Comm_is_intra, 0, __Pyx_DOCSTR(__pyx_k_128), 0},
93325   {(char *)"topology", __pyx_getprop_6mpi4py_3MPI_4Comm_topology, 0, __Pyx_DOCSTR(__pyx_k_129), 0},
93326   {(char *)"name", __pyx_getprop_6mpi4py_3MPI_4Comm_name, __pyx_setprop_6mpi4py_3MPI_4Comm_name, __Pyx_DOCSTR(__pyx_k_130), 0},
93327   {0, 0, 0, 0, 0}
93328 };
93329 
93330 static PyNumberMethods __pyx_tp_as_number_Comm = {
93331   0, /*nb_add*/
93332   0, /*nb_subtract*/
93333   0, /*nb_multiply*/
93334   #if PY_MAJOR_VERSION < 3
93335   0, /*nb_divide*/
93336   #endif
93337   0, /*nb_remainder*/
93338   0, /*nb_divmod*/
93339   0, /*nb_power*/
93340   0, /*nb_negative*/
93341   0, /*nb_positive*/
93342   0, /*nb_absolute*/
93343   __pyx_pf_6mpi4py_3MPI_4Comm_3__bool__, /*nb_nonzero*/
93344   0, /*nb_invert*/
93345   0, /*nb_lshift*/
93346   0, /*nb_rshift*/
93347   0, /*nb_and*/
93348   0, /*nb_xor*/
93349   0, /*nb_or*/
93350   #if PY_MAJOR_VERSION < 3
93351   0, /*nb_coerce*/
93352   #endif
93353   0, /*nb_int*/
93354   #if PY_MAJOR_VERSION < 3
93355   0, /*nb_long*/
93356   #else
93357   0, /*reserved*/
93358   #endif
93359   0, /*nb_float*/
93360   #if PY_MAJOR_VERSION < 3
93361   0, /*nb_oct*/
93362   #endif
93363   #if PY_MAJOR_VERSION < 3
93364   0, /*nb_hex*/
93365   #endif
93366   0, /*nb_inplace_add*/
93367   0, /*nb_inplace_subtract*/
93368   0, /*nb_inplace_multiply*/
93369   #if PY_MAJOR_VERSION < 3
93370   0, /*nb_inplace_divide*/
93371   #endif
93372   0, /*nb_inplace_remainder*/
93373   0, /*nb_inplace_power*/
93374   0, /*nb_inplace_lshift*/
93375   0, /*nb_inplace_rshift*/
93376   0, /*nb_inplace_and*/
93377   0, /*nb_inplace_xor*/
93378   0, /*nb_inplace_or*/
93379   0, /*nb_floor_divide*/
93380   0, /*nb_true_divide*/
93381   0, /*nb_inplace_floor_divide*/
93382   0, /*nb_inplace_true_divide*/
93383   #if PY_VERSION_HEX >= 0x02050000
93384   0, /*nb_index*/
93385   #endif
93386 };
93387 
93388 static PySequenceMethods __pyx_tp_as_sequence_Comm = {
93389   0, /*sq_length*/
93390   0, /*sq_concat*/
93391   0, /*sq_repeat*/
93392   0, /*sq_item*/
93393   0, /*sq_slice*/
93394   0, /*sq_ass_item*/
93395   0, /*sq_ass_slice*/
93396   0, /*sq_contains*/
93397   0, /*sq_inplace_concat*/
93398   0, /*sq_inplace_repeat*/
93399 };
93400 
93401 static PyMappingMethods __pyx_tp_as_mapping_Comm = {
93402   0, /*mp_length*/
93403   0, /*mp_subscript*/
93404   0, /*mp_ass_subscript*/
93405 };
93406 
93407 static PyBufferProcs __pyx_tp_as_buffer_Comm = {
93408   #if PY_MAJOR_VERSION < 3
93409   0, /*bf_getreadbuffer*/
93410   #endif
93411   #if PY_MAJOR_VERSION < 3
93412   0, /*bf_getwritebuffer*/
93413   #endif
93414   #if PY_MAJOR_VERSION < 3
93415   0, /*bf_getsegcount*/
93416   #endif
93417   #if PY_MAJOR_VERSION < 3
93418   0, /*bf_getcharbuffer*/
93419   #endif
93420   #if PY_VERSION_HEX >= 0x02060000
93421   0, /*bf_getbuffer*/
93422   #endif
93423   #if PY_VERSION_HEX >= 0x02060000
93424   0, /*bf_releasebuffer*/
93425   #endif
93426 };
93427 
93428 DL_EXPORT(PyTypeObject) PyMPIComm_Type = {
93429   PyVarObject_HEAD_INIT(0, 0)
93430   __Pyx_NAMESTR("mpi4py.MPI.Comm"), /*tp_name*/
93431   sizeof(struct PyMPICommObject), /*tp_basicsize*/
93432   0, /*tp_itemsize*/
93433   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
93434   0, /*tp_print*/
93435   0, /*tp_getattr*/
93436   0, /*tp_setattr*/
93437   #if PY_MAJOR_VERSION < 3
93438   0, /*tp_compare*/
93439   #else
93440   0, /*reserved*/
93441   #endif
93442   0, /*tp_repr*/
93443   &__pyx_tp_as_number_Comm, /*tp_as_number*/
93444   &__pyx_tp_as_sequence_Comm, /*tp_as_sequence*/
93445   &__pyx_tp_as_mapping_Comm, /*tp_as_mapping*/
93446   0, /*tp_hash*/
93447   0, /*tp_call*/
93448   0, /*tp_str*/
93449   0, /*tp_getattro*/
93450   0, /*tp_setattro*/
93451   &__pyx_tp_as_buffer_Comm, /*tp_as_buffer*/
93452   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
93453   __Pyx_DOCSTR("\n    Communicator\n    "), /*tp_doc*/
93454   0, /*tp_traverse*/
93455   0, /*tp_clear*/
93456   __pyx_pf_6mpi4py_3MPI_4Comm_2__richcmp__, /*tp_richcompare*/
93457   0, /*tp_weaklistoffset*/
93458   0, /*tp_iter*/
93459   0, /*tp_iternext*/
93460   __pyx_methods_6mpi4py_3MPI_Comm, /*tp_methods*/
93461   0, /*tp_members*/
93462   __pyx_getsets_6mpi4py_3MPI_Comm, /*tp_getset*/
93463   0, /*tp_base*/
93464   0, /*tp_dict*/
93465   0, /*tp_descr_get*/
93466   0, /*tp_descr_set*/
93467   0, /*tp_dictoffset*/
93468   0, /*tp_init*/
93469   0, /*tp_alloc*/
93470   __pyx_tp_new_6mpi4py_3MPI_Comm, /*tp_new*/
93471   0, /*tp_free*/
93472   0, /*tp_is_gc*/
93473   0, /*tp_bases*/
93474   0, /*tp_mro*/
93475   0, /*tp_cache*/
93476   0, /*tp_subclasses*/
93477   0, /*tp_weaklist*/
93478   0, /*tp_del*/
93479   #if PY_VERSION_HEX >= 0x02060000
93480   0, /*tp_version_tag*/
93481   #endif
93482 };
93483 
__pyx_tp_new_6mpi4py_3MPI_Intracomm(PyTypeObject * t,PyObject * a,PyObject * k)93484 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Intracomm(PyTypeObject *t, PyObject *a, PyObject *k) {
93485   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Comm(t, a, k);
93486   if (!o) return 0;
93487   if (__pyx_pf_6mpi4py_3MPI_9Intracomm___cinit__(o, a, k) < 0) {
93488     Py_DECREF(o); o = 0;
93489   }
93490   return o;
93491 }
93492 
93493 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Intracomm[] = {
93494   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_1Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_1Dup)},
93495   {__Pyx_NAMESTR("Create"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_2Create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_2Create)},
93496   {__Pyx_NAMESTR("Split"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_3Split, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_3Split)},
93497   {__Pyx_NAMESTR("Create_cart"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_4Create_cart, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_4Create_cart)},
93498   {__Pyx_NAMESTR("Create_graph"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_5Create_graph, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_5Create_graph)},
93499   {__Pyx_NAMESTR("Create_dist_graph_adjacent"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_6Create_dist_graph_adjacent)},
93500   {__Pyx_NAMESTR("Create_dist_graph"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_7Create_dist_graph, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_7Create_dist_graph)},
93501   {__Pyx_NAMESTR("Create_intercomm"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_8Create_intercomm, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_8Create_intercomm)},
93502   {__Pyx_NAMESTR("Scan"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_9Scan, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_9Scan)},
93503   {__Pyx_NAMESTR("Exscan"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_10Exscan, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_10Exscan)},
93504   {__Pyx_NAMESTR("scan"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_11scan, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_11scan)},
93505   {__Pyx_NAMESTR("exscan"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_12exscan, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_12exscan)},
93506   {__Pyx_NAMESTR("Spawn"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_13Spawn, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_13Spawn)},
93507   {__Pyx_NAMESTR("Spawn_multiple"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_14Spawn_multiple, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_14Spawn_multiple)},
93508   {__Pyx_NAMESTR("Accept"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_15Accept, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_15Accept)},
93509   {__Pyx_NAMESTR("Connect"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intracomm_16Connect, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intracomm_16Connect)},
93510   {0, 0, 0, 0}
93511 };
93512 
93513 static PyNumberMethods __pyx_tp_as_number_Intracomm = {
93514   0, /*nb_add*/
93515   0, /*nb_subtract*/
93516   0, /*nb_multiply*/
93517   #if PY_MAJOR_VERSION < 3
93518   0, /*nb_divide*/
93519   #endif
93520   0, /*nb_remainder*/
93521   0, /*nb_divmod*/
93522   0, /*nb_power*/
93523   0, /*nb_negative*/
93524   0, /*nb_positive*/
93525   0, /*nb_absolute*/
93526   0, /*nb_nonzero*/
93527   0, /*nb_invert*/
93528   0, /*nb_lshift*/
93529   0, /*nb_rshift*/
93530   0, /*nb_and*/
93531   0, /*nb_xor*/
93532   0, /*nb_or*/
93533   #if PY_MAJOR_VERSION < 3
93534   0, /*nb_coerce*/
93535   #endif
93536   0, /*nb_int*/
93537   #if PY_MAJOR_VERSION < 3
93538   0, /*nb_long*/
93539   #else
93540   0, /*reserved*/
93541   #endif
93542   0, /*nb_float*/
93543   #if PY_MAJOR_VERSION < 3
93544   0, /*nb_oct*/
93545   #endif
93546   #if PY_MAJOR_VERSION < 3
93547   0, /*nb_hex*/
93548   #endif
93549   0, /*nb_inplace_add*/
93550   0, /*nb_inplace_subtract*/
93551   0, /*nb_inplace_multiply*/
93552   #if PY_MAJOR_VERSION < 3
93553   0, /*nb_inplace_divide*/
93554   #endif
93555   0, /*nb_inplace_remainder*/
93556   0, /*nb_inplace_power*/
93557   0, /*nb_inplace_lshift*/
93558   0, /*nb_inplace_rshift*/
93559   0, /*nb_inplace_and*/
93560   0, /*nb_inplace_xor*/
93561   0, /*nb_inplace_or*/
93562   0, /*nb_floor_divide*/
93563   0, /*nb_true_divide*/
93564   0, /*nb_inplace_floor_divide*/
93565   0, /*nb_inplace_true_divide*/
93566   #if PY_VERSION_HEX >= 0x02050000
93567   0, /*nb_index*/
93568   #endif
93569 };
93570 
93571 static PySequenceMethods __pyx_tp_as_sequence_Intracomm = {
93572   0, /*sq_length*/
93573   0, /*sq_concat*/
93574   0, /*sq_repeat*/
93575   0, /*sq_item*/
93576   0, /*sq_slice*/
93577   0, /*sq_ass_item*/
93578   0, /*sq_ass_slice*/
93579   0, /*sq_contains*/
93580   0, /*sq_inplace_concat*/
93581   0, /*sq_inplace_repeat*/
93582 };
93583 
93584 static PyMappingMethods __pyx_tp_as_mapping_Intracomm = {
93585   0, /*mp_length*/
93586   0, /*mp_subscript*/
93587   0, /*mp_ass_subscript*/
93588 };
93589 
93590 static PyBufferProcs __pyx_tp_as_buffer_Intracomm = {
93591   #if PY_MAJOR_VERSION < 3
93592   0, /*bf_getreadbuffer*/
93593   #endif
93594   #if PY_MAJOR_VERSION < 3
93595   0, /*bf_getwritebuffer*/
93596   #endif
93597   #if PY_MAJOR_VERSION < 3
93598   0, /*bf_getsegcount*/
93599   #endif
93600   #if PY_MAJOR_VERSION < 3
93601   0, /*bf_getcharbuffer*/
93602   #endif
93603   #if PY_VERSION_HEX >= 0x02060000
93604   0, /*bf_getbuffer*/
93605   #endif
93606   #if PY_VERSION_HEX >= 0x02060000
93607   0, /*bf_releasebuffer*/
93608   #endif
93609 };
93610 
93611 DL_EXPORT(PyTypeObject) PyMPIIntracomm_Type = {
93612   PyVarObject_HEAD_INIT(0, 0)
93613   __Pyx_NAMESTR("mpi4py.MPI.Intracomm"), /*tp_name*/
93614   sizeof(struct PyMPIIntracommObject), /*tp_basicsize*/
93615   0, /*tp_itemsize*/
93616   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
93617   0, /*tp_print*/
93618   0, /*tp_getattr*/
93619   0, /*tp_setattr*/
93620   #if PY_MAJOR_VERSION < 3
93621   0, /*tp_compare*/
93622   #else
93623   0, /*reserved*/
93624   #endif
93625   0, /*tp_repr*/
93626   &__pyx_tp_as_number_Intracomm, /*tp_as_number*/
93627   &__pyx_tp_as_sequence_Intracomm, /*tp_as_sequence*/
93628   &__pyx_tp_as_mapping_Intracomm, /*tp_as_mapping*/
93629   0, /*tp_hash*/
93630   0, /*tp_call*/
93631   0, /*tp_str*/
93632   0, /*tp_getattro*/
93633   0, /*tp_setattro*/
93634   &__pyx_tp_as_buffer_Intracomm, /*tp_as_buffer*/
93635   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
93636   __Pyx_DOCSTR("\n    Intracommunicator\n    "), /*tp_doc*/
93637   0, /*tp_traverse*/
93638   0, /*tp_clear*/
93639   0, /*tp_richcompare*/
93640   0, /*tp_weaklistoffset*/
93641   0, /*tp_iter*/
93642   0, /*tp_iternext*/
93643   __pyx_methods_6mpi4py_3MPI_Intracomm, /*tp_methods*/
93644   0, /*tp_members*/
93645   0, /*tp_getset*/
93646   0, /*tp_base*/
93647   0, /*tp_dict*/
93648   0, /*tp_descr_get*/
93649   0, /*tp_descr_set*/
93650   0, /*tp_dictoffset*/
93651   0, /*tp_init*/
93652   0, /*tp_alloc*/
93653   __pyx_tp_new_6mpi4py_3MPI_Intracomm, /*tp_new*/
93654   0, /*tp_free*/
93655   0, /*tp_is_gc*/
93656   0, /*tp_bases*/
93657   0, /*tp_mro*/
93658   0, /*tp_cache*/
93659   0, /*tp_subclasses*/
93660   0, /*tp_weaklist*/
93661   0, /*tp_del*/
93662   #if PY_VERSION_HEX >= 0x02060000
93663   0, /*tp_version_tag*/
93664   #endif
93665 };
93666 
__pyx_tp_new_6mpi4py_3MPI_Cartcomm(PyTypeObject * t,PyObject * a,PyObject * k)93667 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Cartcomm(PyTypeObject *t, PyObject *a, PyObject *k) {
93668   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Intracomm(t, a, k);
93669   if (!o) return 0;
93670   if (__pyx_pf_6mpi4py_3MPI_8Cartcomm___cinit__(o, a, k) < 0) {
93671     Py_DECREF(o); o = 0;
93672   }
93673   return o;
93674 }
93675 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_dim(PyObject * o,void * x)93676 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_dim(PyObject *o, void *x) {
93677   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_3dim___get__(o);
93678 }
93679 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_ndim(PyObject * o,void * x)93680 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_ndim(PyObject *o, void *x) {
93681   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_4ndim___get__(o);
93682 }
93683 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_topo(PyObject * o,void * x)93684 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_topo(PyObject *o, void *x) {
93685   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_4topo___get__(o);
93686 }
93687 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_dims(PyObject * o,void * x)93688 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_dims(PyObject *o, void *x) {
93689   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_4dims___get__(o);
93690 }
93691 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_periods(PyObject * o,void * x)93692 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_periods(PyObject *o, void *x) {
93693   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_7periods___get__(o);
93694 }
93695 
__pyx_getprop_6mpi4py_3MPI_8Cartcomm_coords(PyObject * o,void * x)93696 static PyObject *__pyx_getprop_6mpi4py_3MPI_8Cartcomm_coords(PyObject *o, void *x) {
93697   return __pyx_pf_6mpi4py_3MPI_8Cartcomm_6coords___get__(o);
93698 }
93699 
93700 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Cartcomm[] = {
93701   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_1Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_1Dup)},
93702   {__Pyx_NAMESTR("Get_dim"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_2Get_dim, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_2Get_dim)},
93703   {__Pyx_NAMESTR("Get_topo"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_3Get_topo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_3Get_topo)},
93704   {__Pyx_NAMESTR("Get_cart_rank"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_4Get_cart_rank)},
93705   {__Pyx_NAMESTR("Get_coords"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_5Get_coords, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_5Get_coords)},
93706   {__Pyx_NAMESTR("Shift"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_6Shift, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_6Shift)},
93707   {__Pyx_NAMESTR("Sub"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_7Sub, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_7Sub)},
93708   {__Pyx_NAMESTR("Map"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_8Cartcomm_8Map, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_8Cartcomm_8Map)},
93709   {0, 0, 0, 0}
93710 };
93711 
93712 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Cartcomm[] = {
93713   {(char *)"dim", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_dim, 0, __Pyx_DOCSTR(__pyx_k_131), 0},
93714   {(char *)"ndim", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_ndim, 0, __Pyx_DOCSTR(__pyx_k_131), 0},
93715   {(char *)"topo", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_topo, 0, __Pyx_DOCSTR(__pyx_k_132), 0},
93716   {(char *)"dims", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_dims, 0, __Pyx_DOCSTR(__pyx_k__dimensions), 0},
93717   {(char *)"periods", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_periods, 0, __Pyx_DOCSTR(__pyx_k__periodicity), 0},
93718   {(char *)"coords", __pyx_getprop_6mpi4py_3MPI_8Cartcomm_coords, 0, __Pyx_DOCSTR(__pyx_k__coordinates), 0},
93719   {0, 0, 0, 0, 0}
93720 };
93721 
93722 static PyNumberMethods __pyx_tp_as_number_Cartcomm = {
93723   0, /*nb_add*/
93724   0, /*nb_subtract*/
93725   0, /*nb_multiply*/
93726   #if PY_MAJOR_VERSION < 3
93727   0, /*nb_divide*/
93728   #endif
93729   0, /*nb_remainder*/
93730   0, /*nb_divmod*/
93731   0, /*nb_power*/
93732   0, /*nb_negative*/
93733   0, /*nb_positive*/
93734   0, /*nb_absolute*/
93735   0, /*nb_nonzero*/
93736   0, /*nb_invert*/
93737   0, /*nb_lshift*/
93738   0, /*nb_rshift*/
93739   0, /*nb_and*/
93740   0, /*nb_xor*/
93741   0, /*nb_or*/
93742   #if PY_MAJOR_VERSION < 3
93743   0, /*nb_coerce*/
93744   #endif
93745   0, /*nb_int*/
93746   #if PY_MAJOR_VERSION < 3
93747   0, /*nb_long*/
93748   #else
93749   0, /*reserved*/
93750   #endif
93751   0, /*nb_float*/
93752   #if PY_MAJOR_VERSION < 3
93753   0, /*nb_oct*/
93754   #endif
93755   #if PY_MAJOR_VERSION < 3
93756   0, /*nb_hex*/
93757   #endif
93758   0, /*nb_inplace_add*/
93759   0, /*nb_inplace_subtract*/
93760   0, /*nb_inplace_multiply*/
93761   #if PY_MAJOR_VERSION < 3
93762   0, /*nb_inplace_divide*/
93763   #endif
93764   0, /*nb_inplace_remainder*/
93765   0, /*nb_inplace_power*/
93766   0, /*nb_inplace_lshift*/
93767   0, /*nb_inplace_rshift*/
93768   0, /*nb_inplace_and*/
93769   0, /*nb_inplace_xor*/
93770   0, /*nb_inplace_or*/
93771   0, /*nb_floor_divide*/
93772   0, /*nb_true_divide*/
93773   0, /*nb_inplace_floor_divide*/
93774   0, /*nb_inplace_true_divide*/
93775   #if PY_VERSION_HEX >= 0x02050000
93776   0, /*nb_index*/
93777   #endif
93778 };
93779 
93780 static PySequenceMethods __pyx_tp_as_sequence_Cartcomm = {
93781   0, /*sq_length*/
93782   0, /*sq_concat*/
93783   0, /*sq_repeat*/
93784   0, /*sq_item*/
93785   0, /*sq_slice*/
93786   0, /*sq_ass_item*/
93787   0, /*sq_ass_slice*/
93788   0, /*sq_contains*/
93789   0, /*sq_inplace_concat*/
93790   0, /*sq_inplace_repeat*/
93791 };
93792 
93793 static PyMappingMethods __pyx_tp_as_mapping_Cartcomm = {
93794   0, /*mp_length*/
93795   0, /*mp_subscript*/
93796   0, /*mp_ass_subscript*/
93797 };
93798 
93799 static PyBufferProcs __pyx_tp_as_buffer_Cartcomm = {
93800   #if PY_MAJOR_VERSION < 3
93801   0, /*bf_getreadbuffer*/
93802   #endif
93803   #if PY_MAJOR_VERSION < 3
93804   0, /*bf_getwritebuffer*/
93805   #endif
93806   #if PY_MAJOR_VERSION < 3
93807   0, /*bf_getsegcount*/
93808   #endif
93809   #if PY_MAJOR_VERSION < 3
93810   0, /*bf_getcharbuffer*/
93811   #endif
93812   #if PY_VERSION_HEX >= 0x02060000
93813   0, /*bf_getbuffer*/
93814   #endif
93815   #if PY_VERSION_HEX >= 0x02060000
93816   0, /*bf_releasebuffer*/
93817   #endif
93818 };
93819 
93820 DL_EXPORT(PyTypeObject) PyMPICartcomm_Type = {
93821   PyVarObject_HEAD_INIT(0, 0)
93822   __Pyx_NAMESTR("mpi4py.MPI.Cartcomm"), /*tp_name*/
93823   sizeof(struct PyMPICartcommObject), /*tp_basicsize*/
93824   0, /*tp_itemsize*/
93825   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
93826   0, /*tp_print*/
93827   0, /*tp_getattr*/
93828   0, /*tp_setattr*/
93829   #if PY_MAJOR_VERSION < 3
93830   0, /*tp_compare*/
93831   #else
93832   0, /*reserved*/
93833   #endif
93834   0, /*tp_repr*/
93835   &__pyx_tp_as_number_Cartcomm, /*tp_as_number*/
93836   &__pyx_tp_as_sequence_Cartcomm, /*tp_as_sequence*/
93837   &__pyx_tp_as_mapping_Cartcomm, /*tp_as_mapping*/
93838   0, /*tp_hash*/
93839   0, /*tp_call*/
93840   0, /*tp_str*/
93841   0, /*tp_getattro*/
93842   0, /*tp_setattro*/
93843   &__pyx_tp_as_buffer_Cartcomm, /*tp_as_buffer*/
93844   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
93845   __Pyx_DOCSTR("\n    Cartesian topology intracommunicator\n    "), /*tp_doc*/
93846   0, /*tp_traverse*/
93847   0, /*tp_clear*/
93848   0, /*tp_richcompare*/
93849   0, /*tp_weaklistoffset*/
93850   0, /*tp_iter*/
93851   0, /*tp_iternext*/
93852   __pyx_methods_6mpi4py_3MPI_Cartcomm, /*tp_methods*/
93853   0, /*tp_members*/
93854   __pyx_getsets_6mpi4py_3MPI_Cartcomm, /*tp_getset*/
93855   0, /*tp_base*/
93856   0, /*tp_dict*/
93857   0, /*tp_descr_get*/
93858   0, /*tp_descr_set*/
93859   0, /*tp_dictoffset*/
93860   0, /*tp_init*/
93861   0, /*tp_alloc*/
93862   __pyx_tp_new_6mpi4py_3MPI_Cartcomm, /*tp_new*/
93863   0, /*tp_free*/
93864   0, /*tp_is_gc*/
93865   0, /*tp_bases*/
93866   0, /*tp_mro*/
93867   0, /*tp_cache*/
93868   0, /*tp_subclasses*/
93869   0, /*tp_weaklist*/
93870   0, /*tp_del*/
93871   #if PY_VERSION_HEX >= 0x02060000
93872   0, /*tp_version_tag*/
93873   #endif
93874 };
93875 
__pyx_tp_new_6mpi4py_3MPI_Graphcomm(PyTypeObject * t,PyObject * a,PyObject * k)93876 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Graphcomm(PyTypeObject *t, PyObject *a, PyObject *k) {
93877   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Intracomm(t, a, k);
93878   if (!o) return 0;
93879   if (__pyx_pf_6mpi4py_3MPI_9Graphcomm___cinit__(o, a, k) < 0) {
93880     Py_DECREF(o); o = 0;
93881   }
93882   return o;
93883 }
93884 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_dims(PyObject * o,void * x)93885 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_dims(PyObject *o, void *x) {
93886   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_4dims___get__(o);
93887 }
93888 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nnodes(PyObject * o,void * x)93889 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nnodes(PyObject *o, void *x) {
93890   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_6nnodes___get__(o);
93891 }
93892 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nedges(PyObject * o,void * x)93893 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nedges(PyObject *o, void *x) {
93894   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_6nedges___get__(o);
93895 }
93896 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_topo(PyObject * o,void * x)93897 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_topo(PyObject *o, void *x) {
93898   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_4topo___get__(o);
93899 }
93900 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_index(PyObject * o,void * x)93901 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_index(PyObject *o, void *x) {
93902   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_5index___get__(o);
93903 }
93904 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_edges(PyObject * o,void * x)93905 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_edges(PyObject *o, void *x) {
93906   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_5edges___get__(o);
93907 }
93908 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nneighbors(PyObject * o,void * x)93909 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_nneighbors(PyObject *o, void *x) {
93910   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_10nneighbors___get__(o);
93911 }
93912 
__pyx_getprop_6mpi4py_3MPI_9Graphcomm_neighbors(PyObject * o,void * x)93913 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Graphcomm_neighbors(PyObject *o, void *x) {
93914   return __pyx_pf_6mpi4py_3MPI_9Graphcomm_9neighbors___get__(o);
93915 }
93916 
93917 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Graphcomm[] = {
93918   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_1Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_1Dup)},
93919   {__Pyx_NAMESTR("Get_dims"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_2Get_dims, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_2Get_dims)},
93920   {__Pyx_NAMESTR("Get_topo"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_3Get_topo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_3Get_topo)},
93921   {__Pyx_NAMESTR("Get_neighbors_count"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_4Get_neighbors_count)},
93922   {__Pyx_NAMESTR("Get_neighbors"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_5Get_neighbors, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_5Get_neighbors)},
93923   {__Pyx_NAMESTR("Map"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Graphcomm_6Map, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Graphcomm_6Map)},
93924   {0, 0, 0, 0}
93925 };
93926 
93927 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Graphcomm[] = {
93928   {(char *)"dims", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_dims, 0, __Pyx_DOCSTR(__pyx_k_133), 0},
93929   {(char *)"nnodes", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_nnodes, 0, __Pyx_DOCSTR(__pyx_k_134), 0},
93930   {(char *)"nedges", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_nedges, 0, __Pyx_DOCSTR(__pyx_k_135), 0},
93931   {(char *)"topo", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_topo, 0, __Pyx_DOCSTR(__pyx_k_132), 0},
93932   {(char *)"index", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_index, 0, __Pyx_DOCSTR(__pyx_k__index), 0},
93933   {(char *)"edges", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_edges, 0, __Pyx_DOCSTR(__pyx_k__edges), 0},
93934   {(char *)"nneighbors", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_nneighbors, 0, __Pyx_DOCSTR(__pyx_k_136), 0},
93935   {(char *)"neighbors", __pyx_getprop_6mpi4py_3MPI_9Graphcomm_neighbors, 0, __Pyx_DOCSTR(__pyx_k__neighbors), 0},
93936   {0, 0, 0, 0, 0}
93937 };
93938 
93939 static PyNumberMethods __pyx_tp_as_number_Graphcomm = {
93940   0, /*nb_add*/
93941   0, /*nb_subtract*/
93942   0, /*nb_multiply*/
93943   #if PY_MAJOR_VERSION < 3
93944   0, /*nb_divide*/
93945   #endif
93946   0, /*nb_remainder*/
93947   0, /*nb_divmod*/
93948   0, /*nb_power*/
93949   0, /*nb_negative*/
93950   0, /*nb_positive*/
93951   0, /*nb_absolute*/
93952   0, /*nb_nonzero*/
93953   0, /*nb_invert*/
93954   0, /*nb_lshift*/
93955   0, /*nb_rshift*/
93956   0, /*nb_and*/
93957   0, /*nb_xor*/
93958   0, /*nb_or*/
93959   #if PY_MAJOR_VERSION < 3
93960   0, /*nb_coerce*/
93961   #endif
93962   0, /*nb_int*/
93963   #if PY_MAJOR_VERSION < 3
93964   0, /*nb_long*/
93965   #else
93966   0, /*reserved*/
93967   #endif
93968   0, /*nb_float*/
93969   #if PY_MAJOR_VERSION < 3
93970   0, /*nb_oct*/
93971   #endif
93972   #if PY_MAJOR_VERSION < 3
93973   0, /*nb_hex*/
93974   #endif
93975   0, /*nb_inplace_add*/
93976   0, /*nb_inplace_subtract*/
93977   0, /*nb_inplace_multiply*/
93978   #if PY_MAJOR_VERSION < 3
93979   0, /*nb_inplace_divide*/
93980   #endif
93981   0, /*nb_inplace_remainder*/
93982   0, /*nb_inplace_power*/
93983   0, /*nb_inplace_lshift*/
93984   0, /*nb_inplace_rshift*/
93985   0, /*nb_inplace_and*/
93986   0, /*nb_inplace_xor*/
93987   0, /*nb_inplace_or*/
93988   0, /*nb_floor_divide*/
93989   0, /*nb_true_divide*/
93990   0, /*nb_inplace_floor_divide*/
93991   0, /*nb_inplace_true_divide*/
93992   #if PY_VERSION_HEX >= 0x02050000
93993   0, /*nb_index*/
93994   #endif
93995 };
93996 
93997 static PySequenceMethods __pyx_tp_as_sequence_Graphcomm = {
93998   0, /*sq_length*/
93999   0, /*sq_concat*/
94000   0, /*sq_repeat*/
94001   0, /*sq_item*/
94002   0, /*sq_slice*/
94003   0, /*sq_ass_item*/
94004   0, /*sq_ass_slice*/
94005   0, /*sq_contains*/
94006   0, /*sq_inplace_concat*/
94007   0, /*sq_inplace_repeat*/
94008 };
94009 
94010 static PyMappingMethods __pyx_tp_as_mapping_Graphcomm = {
94011   0, /*mp_length*/
94012   0, /*mp_subscript*/
94013   0, /*mp_ass_subscript*/
94014 };
94015 
94016 static PyBufferProcs __pyx_tp_as_buffer_Graphcomm = {
94017   #if PY_MAJOR_VERSION < 3
94018   0, /*bf_getreadbuffer*/
94019   #endif
94020   #if PY_MAJOR_VERSION < 3
94021   0, /*bf_getwritebuffer*/
94022   #endif
94023   #if PY_MAJOR_VERSION < 3
94024   0, /*bf_getsegcount*/
94025   #endif
94026   #if PY_MAJOR_VERSION < 3
94027   0, /*bf_getcharbuffer*/
94028   #endif
94029   #if PY_VERSION_HEX >= 0x02060000
94030   0, /*bf_getbuffer*/
94031   #endif
94032   #if PY_VERSION_HEX >= 0x02060000
94033   0, /*bf_releasebuffer*/
94034   #endif
94035 };
94036 
94037 DL_EXPORT(PyTypeObject) PyMPIGraphcomm_Type = {
94038   PyVarObject_HEAD_INIT(0, 0)
94039   __Pyx_NAMESTR("mpi4py.MPI.Graphcomm"), /*tp_name*/
94040   sizeof(struct PyMPIGraphcommObject), /*tp_basicsize*/
94041   0, /*tp_itemsize*/
94042   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
94043   0, /*tp_print*/
94044   0, /*tp_getattr*/
94045   0, /*tp_setattr*/
94046   #if PY_MAJOR_VERSION < 3
94047   0, /*tp_compare*/
94048   #else
94049   0, /*reserved*/
94050   #endif
94051   0, /*tp_repr*/
94052   &__pyx_tp_as_number_Graphcomm, /*tp_as_number*/
94053   &__pyx_tp_as_sequence_Graphcomm, /*tp_as_sequence*/
94054   &__pyx_tp_as_mapping_Graphcomm, /*tp_as_mapping*/
94055   0, /*tp_hash*/
94056   0, /*tp_call*/
94057   0, /*tp_str*/
94058   0, /*tp_getattro*/
94059   0, /*tp_setattro*/
94060   &__pyx_tp_as_buffer_Graphcomm, /*tp_as_buffer*/
94061   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
94062   __Pyx_DOCSTR("\n    General graph topology intracommunicator\n    "), /*tp_doc*/
94063   0, /*tp_traverse*/
94064   0, /*tp_clear*/
94065   0, /*tp_richcompare*/
94066   0, /*tp_weaklistoffset*/
94067   0, /*tp_iter*/
94068   0, /*tp_iternext*/
94069   __pyx_methods_6mpi4py_3MPI_Graphcomm, /*tp_methods*/
94070   0, /*tp_members*/
94071   __pyx_getsets_6mpi4py_3MPI_Graphcomm, /*tp_getset*/
94072   0, /*tp_base*/
94073   0, /*tp_dict*/
94074   0, /*tp_descr_get*/
94075   0, /*tp_descr_set*/
94076   0, /*tp_dictoffset*/
94077   0, /*tp_init*/
94078   0, /*tp_alloc*/
94079   __pyx_tp_new_6mpi4py_3MPI_Graphcomm, /*tp_new*/
94080   0, /*tp_free*/
94081   0, /*tp_is_gc*/
94082   0, /*tp_bases*/
94083   0, /*tp_mro*/
94084   0, /*tp_cache*/
94085   0, /*tp_subclasses*/
94086   0, /*tp_weaklist*/
94087   0, /*tp_del*/
94088   #if PY_VERSION_HEX >= 0x02060000
94089   0, /*tp_version_tag*/
94090   #endif
94091 };
94092 
__pyx_tp_new_6mpi4py_3MPI_Distgraphcomm(PyTypeObject * t,PyObject * a,PyObject * k)94093 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Distgraphcomm(PyTypeObject *t, PyObject *a, PyObject *k) {
94094   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Intracomm(t, a, k);
94095   if (!o) return 0;
94096   if (__pyx_pf_6mpi4py_3MPI_13Distgraphcomm___cinit__(o, a, k) < 0) {
94097     Py_DECREF(o); o = 0;
94098   }
94099   return o;
94100 }
94101 
94102 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Distgraphcomm[] = {
94103   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_1Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_13Distgraphcomm_1Dup)},
94104   {__Pyx_NAMESTR("Get_dist_neighbors_count"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_13Distgraphcomm_2Get_dist_neighbors_count)},
94105   {__Pyx_NAMESTR("Get_dist_neighbors"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_13Distgraphcomm_3Get_dist_neighbors)},
94106   {0, 0, 0, 0}
94107 };
94108 
94109 static PyNumberMethods __pyx_tp_as_number_Distgraphcomm = {
94110   0, /*nb_add*/
94111   0, /*nb_subtract*/
94112   0, /*nb_multiply*/
94113   #if PY_MAJOR_VERSION < 3
94114   0, /*nb_divide*/
94115   #endif
94116   0, /*nb_remainder*/
94117   0, /*nb_divmod*/
94118   0, /*nb_power*/
94119   0, /*nb_negative*/
94120   0, /*nb_positive*/
94121   0, /*nb_absolute*/
94122   0, /*nb_nonzero*/
94123   0, /*nb_invert*/
94124   0, /*nb_lshift*/
94125   0, /*nb_rshift*/
94126   0, /*nb_and*/
94127   0, /*nb_xor*/
94128   0, /*nb_or*/
94129   #if PY_MAJOR_VERSION < 3
94130   0, /*nb_coerce*/
94131   #endif
94132   0, /*nb_int*/
94133   #if PY_MAJOR_VERSION < 3
94134   0, /*nb_long*/
94135   #else
94136   0, /*reserved*/
94137   #endif
94138   0, /*nb_float*/
94139   #if PY_MAJOR_VERSION < 3
94140   0, /*nb_oct*/
94141   #endif
94142   #if PY_MAJOR_VERSION < 3
94143   0, /*nb_hex*/
94144   #endif
94145   0, /*nb_inplace_add*/
94146   0, /*nb_inplace_subtract*/
94147   0, /*nb_inplace_multiply*/
94148   #if PY_MAJOR_VERSION < 3
94149   0, /*nb_inplace_divide*/
94150   #endif
94151   0, /*nb_inplace_remainder*/
94152   0, /*nb_inplace_power*/
94153   0, /*nb_inplace_lshift*/
94154   0, /*nb_inplace_rshift*/
94155   0, /*nb_inplace_and*/
94156   0, /*nb_inplace_xor*/
94157   0, /*nb_inplace_or*/
94158   0, /*nb_floor_divide*/
94159   0, /*nb_true_divide*/
94160   0, /*nb_inplace_floor_divide*/
94161   0, /*nb_inplace_true_divide*/
94162   #if PY_VERSION_HEX >= 0x02050000
94163   0, /*nb_index*/
94164   #endif
94165 };
94166 
94167 static PySequenceMethods __pyx_tp_as_sequence_Distgraphcomm = {
94168   0, /*sq_length*/
94169   0, /*sq_concat*/
94170   0, /*sq_repeat*/
94171   0, /*sq_item*/
94172   0, /*sq_slice*/
94173   0, /*sq_ass_item*/
94174   0, /*sq_ass_slice*/
94175   0, /*sq_contains*/
94176   0, /*sq_inplace_concat*/
94177   0, /*sq_inplace_repeat*/
94178 };
94179 
94180 static PyMappingMethods __pyx_tp_as_mapping_Distgraphcomm = {
94181   0, /*mp_length*/
94182   0, /*mp_subscript*/
94183   0, /*mp_ass_subscript*/
94184 };
94185 
94186 static PyBufferProcs __pyx_tp_as_buffer_Distgraphcomm = {
94187   #if PY_MAJOR_VERSION < 3
94188   0, /*bf_getreadbuffer*/
94189   #endif
94190   #if PY_MAJOR_VERSION < 3
94191   0, /*bf_getwritebuffer*/
94192   #endif
94193   #if PY_MAJOR_VERSION < 3
94194   0, /*bf_getsegcount*/
94195   #endif
94196   #if PY_MAJOR_VERSION < 3
94197   0, /*bf_getcharbuffer*/
94198   #endif
94199   #if PY_VERSION_HEX >= 0x02060000
94200   0, /*bf_getbuffer*/
94201   #endif
94202   #if PY_VERSION_HEX >= 0x02060000
94203   0, /*bf_releasebuffer*/
94204   #endif
94205 };
94206 
94207 DL_EXPORT(PyTypeObject) PyMPIDistgraphcomm_Type = {
94208   PyVarObject_HEAD_INIT(0, 0)
94209   __Pyx_NAMESTR("mpi4py.MPI.Distgraphcomm"), /*tp_name*/
94210   sizeof(struct PyMPIDistgraphcommObject), /*tp_basicsize*/
94211   0, /*tp_itemsize*/
94212   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
94213   0, /*tp_print*/
94214   0, /*tp_getattr*/
94215   0, /*tp_setattr*/
94216   #if PY_MAJOR_VERSION < 3
94217   0, /*tp_compare*/
94218   #else
94219   0, /*reserved*/
94220   #endif
94221   0, /*tp_repr*/
94222   &__pyx_tp_as_number_Distgraphcomm, /*tp_as_number*/
94223   &__pyx_tp_as_sequence_Distgraphcomm, /*tp_as_sequence*/
94224   &__pyx_tp_as_mapping_Distgraphcomm, /*tp_as_mapping*/
94225   0, /*tp_hash*/
94226   0, /*tp_call*/
94227   0, /*tp_str*/
94228   0, /*tp_getattro*/
94229   0, /*tp_setattro*/
94230   &__pyx_tp_as_buffer_Distgraphcomm, /*tp_as_buffer*/
94231   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
94232   __Pyx_DOCSTR("\n    Distributed graph topology intracommunicator\n    "), /*tp_doc*/
94233   0, /*tp_traverse*/
94234   0, /*tp_clear*/
94235   0, /*tp_richcompare*/
94236   0, /*tp_weaklistoffset*/
94237   0, /*tp_iter*/
94238   0, /*tp_iternext*/
94239   __pyx_methods_6mpi4py_3MPI_Distgraphcomm, /*tp_methods*/
94240   0, /*tp_members*/
94241   0, /*tp_getset*/
94242   0, /*tp_base*/
94243   0, /*tp_dict*/
94244   0, /*tp_descr_get*/
94245   0, /*tp_descr_set*/
94246   0, /*tp_dictoffset*/
94247   0, /*tp_init*/
94248   0, /*tp_alloc*/
94249   __pyx_tp_new_6mpi4py_3MPI_Distgraphcomm, /*tp_new*/
94250   0, /*tp_free*/
94251   0, /*tp_is_gc*/
94252   0, /*tp_bases*/
94253   0, /*tp_mro*/
94254   0, /*tp_cache*/
94255   0, /*tp_subclasses*/
94256   0, /*tp_weaklist*/
94257   0, /*tp_del*/
94258   #if PY_VERSION_HEX >= 0x02060000
94259   0, /*tp_version_tag*/
94260   #endif
94261 };
94262 
__pyx_tp_new_6mpi4py_3MPI_Intercomm(PyTypeObject * t,PyObject * a,PyObject * k)94263 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Intercomm(PyTypeObject *t, PyObject *a, PyObject *k) {
94264   PyObject *o = __pyx_tp_new_6mpi4py_3MPI_Comm(t, a, k);
94265   if (!o) return 0;
94266   if (__pyx_pf_6mpi4py_3MPI_9Intercomm___cinit__(o, a, k) < 0) {
94267     Py_DECREF(o); o = 0;
94268   }
94269   return o;
94270 }
94271 
__pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_group(PyObject * o,void * x)94272 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_group(PyObject *o, void *x) {
94273   return __pyx_pf_6mpi4py_3MPI_9Intercomm_12remote_group___get__(o);
94274 }
94275 
__pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_size(PyObject * o,void * x)94276 static PyObject *__pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_size(PyObject *o, void *x) {
94277   return __pyx_pf_6mpi4py_3MPI_9Intercomm_11remote_size___get__(o);
94278 }
94279 
94280 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Intercomm[] = {
94281   {__Pyx_NAMESTR("Get_remote_group"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_1Get_remote_group, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_1Get_remote_group)},
94282   {__Pyx_NAMESTR("Get_remote_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_2Get_remote_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_2Get_remote_size)},
94283   {__Pyx_NAMESTR("Dup"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_3Dup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_3Dup)},
94284   {__Pyx_NAMESTR("Create"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_4Create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_4Create)},
94285   {__Pyx_NAMESTR("Split"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_5Split, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_5Split)},
94286   {__Pyx_NAMESTR("Merge"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_9Intercomm_6Merge, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_9Intercomm_6Merge)},
94287   {0, 0, 0, 0}
94288 };
94289 
94290 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Intercomm[] = {
94291   {(char *)"remote_group", __pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_group, 0, __Pyx_DOCSTR(__pyx_k_137), 0},
94292   {(char *)"remote_size", __pyx_getprop_6mpi4py_3MPI_9Intercomm_remote_size, 0, __Pyx_DOCSTR(__pyx_k_138), 0},
94293   {0, 0, 0, 0, 0}
94294 };
94295 
94296 static PyNumberMethods __pyx_tp_as_number_Intercomm = {
94297   0, /*nb_add*/
94298   0, /*nb_subtract*/
94299   0, /*nb_multiply*/
94300   #if PY_MAJOR_VERSION < 3
94301   0, /*nb_divide*/
94302   #endif
94303   0, /*nb_remainder*/
94304   0, /*nb_divmod*/
94305   0, /*nb_power*/
94306   0, /*nb_negative*/
94307   0, /*nb_positive*/
94308   0, /*nb_absolute*/
94309   0, /*nb_nonzero*/
94310   0, /*nb_invert*/
94311   0, /*nb_lshift*/
94312   0, /*nb_rshift*/
94313   0, /*nb_and*/
94314   0, /*nb_xor*/
94315   0, /*nb_or*/
94316   #if PY_MAJOR_VERSION < 3
94317   0, /*nb_coerce*/
94318   #endif
94319   0, /*nb_int*/
94320   #if PY_MAJOR_VERSION < 3
94321   0, /*nb_long*/
94322   #else
94323   0, /*reserved*/
94324   #endif
94325   0, /*nb_float*/
94326   #if PY_MAJOR_VERSION < 3
94327   0, /*nb_oct*/
94328   #endif
94329   #if PY_MAJOR_VERSION < 3
94330   0, /*nb_hex*/
94331   #endif
94332   0, /*nb_inplace_add*/
94333   0, /*nb_inplace_subtract*/
94334   0, /*nb_inplace_multiply*/
94335   #if PY_MAJOR_VERSION < 3
94336   0, /*nb_inplace_divide*/
94337   #endif
94338   0, /*nb_inplace_remainder*/
94339   0, /*nb_inplace_power*/
94340   0, /*nb_inplace_lshift*/
94341   0, /*nb_inplace_rshift*/
94342   0, /*nb_inplace_and*/
94343   0, /*nb_inplace_xor*/
94344   0, /*nb_inplace_or*/
94345   0, /*nb_floor_divide*/
94346   0, /*nb_true_divide*/
94347   0, /*nb_inplace_floor_divide*/
94348   0, /*nb_inplace_true_divide*/
94349   #if PY_VERSION_HEX >= 0x02050000
94350   0, /*nb_index*/
94351   #endif
94352 };
94353 
94354 static PySequenceMethods __pyx_tp_as_sequence_Intercomm = {
94355   0, /*sq_length*/
94356   0, /*sq_concat*/
94357   0, /*sq_repeat*/
94358   0, /*sq_item*/
94359   0, /*sq_slice*/
94360   0, /*sq_ass_item*/
94361   0, /*sq_ass_slice*/
94362   0, /*sq_contains*/
94363   0, /*sq_inplace_concat*/
94364   0, /*sq_inplace_repeat*/
94365 };
94366 
94367 static PyMappingMethods __pyx_tp_as_mapping_Intercomm = {
94368   0, /*mp_length*/
94369   0, /*mp_subscript*/
94370   0, /*mp_ass_subscript*/
94371 };
94372 
94373 static PyBufferProcs __pyx_tp_as_buffer_Intercomm = {
94374   #if PY_MAJOR_VERSION < 3
94375   0, /*bf_getreadbuffer*/
94376   #endif
94377   #if PY_MAJOR_VERSION < 3
94378   0, /*bf_getwritebuffer*/
94379   #endif
94380   #if PY_MAJOR_VERSION < 3
94381   0, /*bf_getsegcount*/
94382   #endif
94383   #if PY_MAJOR_VERSION < 3
94384   0, /*bf_getcharbuffer*/
94385   #endif
94386   #if PY_VERSION_HEX >= 0x02060000
94387   0, /*bf_getbuffer*/
94388   #endif
94389   #if PY_VERSION_HEX >= 0x02060000
94390   0, /*bf_releasebuffer*/
94391   #endif
94392 };
94393 
94394 DL_EXPORT(PyTypeObject) PyMPIIntercomm_Type = {
94395   PyVarObject_HEAD_INIT(0, 0)
94396   __Pyx_NAMESTR("mpi4py.MPI.Intercomm"), /*tp_name*/
94397   sizeof(struct PyMPIIntercommObject), /*tp_basicsize*/
94398   0, /*tp_itemsize*/
94399   __pyx_tp_dealloc_6mpi4py_3MPI_Comm, /*tp_dealloc*/
94400   0, /*tp_print*/
94401   0, /*tp_getattr*/
94402   0, /*tp_setattr*/
94403   #if PY_MAJOR_VERSION < 3
94404   0, /*tp_compare*/
94405   #else
94406   0, /*reserved*/
94407   #endif
94408   0, /*tp_repr*/
94409   &__pyx_tp_as_number_Intercomm, /*tp_as_number*/
94410   &__pyx_tp_as_sequence_Intercomm, /*tp_as_sequence*/
94411   &__pyx_tp_as_mapping_Intercomm, /*tp_as_mapping*/
94412   0, /*tp_hash*/
94413   0, /*tp_call*/
94414   0, /*tp_str*/
94415   0, /*tp_getattro*/
94416   0, /*tp_setattro*/
94417   &__pyx_tp_as_buffer_Intercomm, /*tp_as_buffer*/
94418   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
94419   __Pyx_DOCSTR("\n    Intercommunicator\n    "), /*tp_doc*/
94420   0, /*tp_traverse*/
94421   0, /*tp_clear*/
94422   0, /*tp_richcompare*/
94423   0, /*tp_weaklistoffset*/
94424   0, /*tp_iter*/
94425   0, /*tp_iternext*/
94426   __pyx_methods_6mpi4py_3MPI_Intercomm, /*tp_methods*/
94427   0, /*tp_members*/
94428   __pyx_getsets_6mpi4py_3MPI_Intercomm, /*tp_getset*/
94429   0, /*tp_base*/
94430   0, /*tp_dict*/
94431   0, /*tp_descr_get*/
94432   0, /*tp_descr_set*/
94433   0, /*tp_dictoffset*/
94434   0, /*tp_init*/
94435   0, /*tp_alloc*/
94436   __pyx_tp_new_6mpi4py_3MPI_Intercomm, /*tp_new*/
94437   0, /*tp_free*/
94438   0, /*tp_is_gc*/
94439   0, /*tp_bases*/
94440   0, /*tp_mro*/
94441   0, /*tp_cache*/
94442   0, /*tp_subclasses*/
94443   0, /*tp_weaklist*/
94444   0, /*tp_del*/
94445   #if PY_VERSION_HEX >= 0x02060000
94446   0, /*tp_version_tag*/
94447   #endif
94448 };
94449 
__pyx_tp_new_6mpi4py_3MPI_Win(PyTypeObject * t,PyObject * a,PyObject * k)94450 static PyObject *__pyx_tp_new_6mpi4py_3MPI_Win(PyTypeObject *t, PyObject *a, PyObject *k) {
94451   PyObject *o = (*t->tp_alloc)(t, 0);
94452   if (!o) return 0;
94453   if (__pyx_pf_6mpi4py_3MPI_3Win___cinit__(o, a, k) < 0) {
94454     Py_DECREF(o); o = 0;
94455   }
94456   return o;
94457 }
94458 
__pyx_tp_dealloc_6mpi4py_3MPI_Win(PyObject * o)94459 static void __pyx_tp_dealloc_6mpi4py_3MPI_Win(PyObject *o) {
94460   {
94461     PyObject *etype, *eval, *etb;
94462     PyErr_Fetch(&etype, &eval, &etb);
94463     ++Py_REFCNT(o);
94464     __pyx_pf_6mpi4py_3MPI_3Win_1__dealloc__(o);
94465     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
94466     --Py_REFCNT(o);
94467     PyErr_Restore(etype, eval, etb);
94468   }
94469   (*Py_TYPE(o)->tp_free)(o);
94470 }
94471 
__pyx_getprop_6mpi4py_3MPI_3Win_group(PyObject * o,void * x)94472 static PyObject *__pyx_getprop_6mpi4py_3MPI_3Win_group(PyObject *o, void *x) {
94473   return __pyx_pf_6mpi4py_3MPI_3Win_5group___get__(o);
94474 }
94475 
__pyx_getprop_6mpi4py_3MPI_3Win_attrs(PyObject * o,void * x)94476 static PyObject *__pyx_getprop_6mpi4py_3MPI_3Win_attrs(PyObject *o, void *x) {
94477   return __pyx_pf_6mpi4py_3MPI_3Win_5attrs___get__(o);
94478 }
94479 
__pyx_getprop_6mpi4py_3MPI_3Win_memory(PyObject * o,void * x)94480 static PyObject *__pyx_getprop_6mpi4py_3MPI_3Win_memory(PyObject *o, void *x) {
94481   return __pyx_pf_6mpi4py_3MPI_3Win_6memory___get__(o);
94482 }
94483 
__pyx_getprop_6mpi4py_3MPI_3Win_name(PyObject * o,void * x)94484 static PyObject *__pyx_getprop_6mpi4py_3MPI_3Win_name(PyObject *o, void *x) {
94485   return __pyx_pf_6mpi4py_3MPI_3Win_4name___get__(o);
94486 }
94487 
__pyx_setprop_6mpi4py_3MPI_3Win_name(PyObject * o,PyObject * v,void * x)94488 static int __pyx_setprop_6mpi4py_3MPI_3Win_name(PyObject *o, PyObject *v, void *x) {
94489   if (v) {
94490     return __pyx_pf_6mpi4py_3MPI_3Win_4name_1__set__(o, v);
94491   }
94492   else {
94493     PyErr_SetString(PyExc_NotImplementedError, "__del__");
94494     return -1;
94495   }
94496 }
94497 
94498 static PyMethodDef __pyx_methods_6mpi4py_3MPI_Win[] = {
94499   {__Pyx_NAMESTR("Create"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_4Create, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_4Create)},
94500   {__Pyx_NAMESTR("Free"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_5Free, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_5Free)},
94501   {__Pyx_NAMESTR("Get_group"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_6Get_group, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_6Get_group)},
94502   {__Pyx_NAMESTR("Get_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_7Get_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_7Get_attr)},
94503   {__Pyx_NAMESTR("Set_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_8Set_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_8Set_attr)},
94504   {__Pyx_NAMESTR("Delete_attr"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_9Delete_attr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_9Delete_attr)},
94505   {__Pyx_NAMESTR("Create_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_10Create_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_10Create_keyval)},
94506   {__Pyx_NAMESTR("Free_keyval"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_11Free_keyval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_11Free_keyval)},
94507   {__Pyx_NAMESTR("Put"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_12Put, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_12Put)},
94508   {__Pyx_NAMESTR("Get"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_13Get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_13Get)},
94509   {__Pyx_NAMESTR("Accumulate"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_14Accumulate, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_14Accumulate)},
94510   {__Pyx_NAMESTR("Fence"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_15Fence, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_15Fence)},
94511   {__Pyx_NAMESTR("Start"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_16Start, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_16Start)},
94512   {__Pyx_NAMESTR("Complete"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_17Complete, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_17Complete)},
94513   {__Pyx_NAMESTR("Post"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_18Post, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_18Post)},
94514   {__Pyx_NAMESTR("Wait"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_19Wait, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_19Wait)},
94515   {__Pyx_NAMESTR("Test"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_20Test, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_20Test)},
94516   {__Pyx_NAMESTR("Lock"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_21Lock, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_21Lock)},
94517   {__Pyx_NAMESTR("Unlock"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_22Unlock, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_22Unlock)},
94518   {__Pyx_NAMESTR("Get_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_23Get_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_23Get_errhandler)},
94519   {__Pyx_NAMESTR("Set_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_24Set_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_24Set_errhandler)},
94520   {__Pyx_NAMESTR("Call_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_25Call_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_25Call_errhandler)},
94521   {__Pyx_NAMESTR("Get_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_26Get_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_26Get_name)},
94522   {__Pyx_NAMESTR("Set_name"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_27Set_name, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_27Set_name)},
94523   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_28py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_28py2f)},
94524   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_3Win_29f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_3Win_29f2py)},
94525   {0, 0, 0, 0}
94526 };
94527 
94528 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_Win[] = {
94529   {(char *)"group", __pyx_getprop_6mpi4py_3MPI_3Win_group, 0, __Pyx_DOCSTR(__pyx_k_139), 0},
94530   {(char *)"attrs", __pyx_getprop_6mpi4py_3MPI_3Win_attrs, 0, __Pyx_DOCSTR(__pyx_k_140), 0},
94531   {(char *)"memory", __pyx_getprop_6mpi4py_3MPI_3Win_memory, 0, __Pyx_DOCSTR(__pyx_k_141), 0},
94532   {(char *)"name", __pyx_getprop_6mpi4py_3MPI_3Win_name, __pyx_setprop_6mpi4py_3MPI_3Win_name, __Pyx_DOCSTR(__pyx_k_142), 0},
94533   {0, 0, 0, 0, 0}
94534 };
94535 
94536 static PyNumberMethods __pyx_tp_as_number_Win = {
94537   0, /*nb_add*/
94538   0, /*nb_subtract*/
94539   0, /*nb_multiply*/
94540   #if PY_MAJOR_VERSION < 3
94541   0, /*nb_divide*/
94542   #endif
94543   0, /*nb_remainder*/
94544   0, /*nb_divmod*/
94545   0, /*nb_power*/
94546   0, /*nb_negative*/
94547   0, /*nb_positive*/
94548   0, /*nb_absolute*/
94549   __pyx_pf_6mpi4py_3MPI_3Win_3__bool__, /*nb_nonzero*/
94550   0, /*nb_invert*/
94551   0, /*nb_lshift*/
94552   0, /*nb_rshift*/
94553   0, /*nb_and*/
94554   0, /*nb_xor*/
94555   0, /*nb_or*/
94556   #if PY_MAJOR_VERSION < 3
94557   0, /*nb_coerce*/
94558   #endif
94559   0, /*nb_int*/
94560   #if PY_MAJOR_VERSION < 3
94561   0, /*nb_long*/
94562   #else
94563   0, /*reserved*/
94564   #endif
94565   0, /*nb_float*/
94566   #if PY_MAJOR_VERSION < 3
94567   0, /*nb_oct*/
94568   #endif
94569   #if PY_MAJOR_VERSION < 3
94570   0, /*nb_hex*/
94571   #endif
94572   0, /*nb_inplace_add*/
94573   0, /*nb_inplace_subtract*/
94574   0, /*nb_inplace_multiply*/
94575   #if PY_MAJOR_VERSION < 3
94576   0, /*nb_inplace_divide*/
94577   #endif
94578   0, /*nb_inplace_remainder*/
94579   0, /*nb_inplace_power*/
94580   0, /*nb_inplace_lshift*/
94581   0, /*nb_inplace_rshift*/
94582   0, /*nb_inplace_and*/
94583   0, /*nb_inplace_xor*/
94584   0, /*nb_inplace_or*/
94585   0, /*nb_floor_divide*/
94586   0, /*nb_true_divide*/
94587   0, /*nb_inplace_floor_divide*/
94588   0, /*nb_inplace_true_divide*/
94589   #if PY_VERSION_HEX >= 0x02050000
94590   0, /*nb_index*/
94591   #endif
94592 };
94593 
94594 static PySequenceMethods __pyx_tp_as_sequence_Win = {
94595   0, /*sq_length*/
94596   0, /*sq_concat*/
94597   0, /*sq_repeat*/
94598   0, /*sq_item*/
94599   0, /*sq_slice*/
94600   0, /*sq_ass_item*/
94601   0, /*sq_ass_slice*/
94602   0, /*sq_contains*/
94603   0, /*sq_inplace_concat*/
94604   0, /*sq_inplace_repeat*/
94605 };
94606 
94607 static PyMappingMethods __pyx_tp_as_mapping_Win = {
94608   0, /*mp_length*/
94609   0, /*mp_subscript*/
94610   0, /*mp_ass_subscript*/
94611 };
94612 
94613 static PyBufferProcs __pyx_tp_as_buffer_Win = {
94614   #if PY_MAJOR_VERSION < 3
94615   0, /*bf_getreadbuffer*/
94616   #endif
94617   #if PY_MAJOR_VERSION < 3
94618   0, /*bf_getwritebuffer*/
94619   #endif
94620   #if PY_MAJOR_VERSION < 3
94621   0, /*bf_getsegcount*/
94622   #endif
94623   #if PY_MAJOR_VERSION < 3
94624   0, /*bf_getcharbuffer*/
94625   #endif
94626   #if PY_VERSION_HEX >= 0x02060000
94627   0, /*bf_getbuffer*/
94628   #endif
94629   #if PY_VERSION_HEX >= 0x02060000
94630   0, /*bf_releasebuffer*/
94631   #endif
94632 };
94633 
94634 DL_EXPORT(PyTypeObject) PyMPIWin_Type = {
94635   PyVarObject_HEAD_INIT(0, 0)
94636   __Pyx_NAMESTR("mpi4py.MPI.Win"), /*tp_name*/
94637   sizeof(struct PyMPIWinObject), /*tp_basicsize*/
94638   0, /*tp_itemsize*/
94639   __pyx_tp_dealloc_6mpi4py_3MPI_Win, /*tp_dealloc*/
94640   0, /*tp_print*/
94641   0, /*tp_getattr*/
94642   0, /*tp_setattr*/
94643   #if PY_MAJOR_VERSION < 3
94644   0, /*tp_compare*/
94645   #else
94646   0, /*reserved*/
94647   #endif
94648   0, /*tp_repr*/
94649   &__pyx_tp_as_number_Win, /*tp_as_number*/
94650   &__pyx_tp_as_sequence_Win, /*tp_as_sequence*/
94651   &__pyx_tp_as_mapping_Win, /*tp_as_mapping*/
94652   0, /*tp_hash*/
94653   0, /*tp_call*/
94654   0, /*tp_str*/
94655   0, /*tp_getattro*/
94656   0, /*tp_setattro*/
94657   &__pyx_tp_as_buffer_Win, /*tp_as_buffer*/
94658   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
94659   __Pyx_DOCSTR("\n    Window\n    "), /*tp_doc*/
94660   0, /*tp_traverse*/
94661   0, /*tp_clear*/
94662   __pyx_pf_6mpi4py_3MPI_3Win_2__richcmp__, /*tp_richcompare*/
94663   0, /*tp_weaklistoffset*/
94664   0, /*tp_iter*/
94665   0, /*tp_iternext*/
94666   __pyx_methods_6mpi4py_3MPI_Win, /*tp_methods*/
94667   0, /*tp_members*/
94668   __pyx_getsets_6mpi4py_3MPI_Win, /*tp_getset*/
94669   0, /*tp_base*/
94670   0, /*tp_dict*/
94671   0, /*tp_descr_get*/
94672   0, /*tp_descr_set*/
94673   0, /*tp_dictoffset*/
94674   0, /*tp_init*/
94675   0, /*tp_alloc*/
94676   __pyx_tp_new_6mpi4py_3MPI_Win, /*tp_new*/
94677   0, /*tp_free*/
94678   0, /*tp_is_gc*/
94679   0, /*tp_bases*/
94680   0, /*tp_mro*/
94681   0, /*tp_cache*/
94682   0, /*tp_subclasses*/
94683   0, /*tp_weaklist*/
94684   0, /*tp_del*/
94685   #if PY_VERSION_HEX >= 0x02060000
94686   0, /*tp_version_tag*/
94687   #endif
94688 };
94689 
__pyx_tp_new_6mpi4py_3MPI_File(PyTypeObject * t,PyObject * a,PyObject * k)94690 static PyObject *__pyx_tp_new_6mpi4py_3MPI_File(PyTypeObject *t, PyObject *a, PyObject *k) {
94691   PyObject *o = (*t->tp_alloc)(t, 0);
94692   if (!o) return 0;
94693   if (__pyx_pf_6mpi4py_3MPI_4File___cinit__(o, a, k) < 0) {
94694     Py_DECREF(o); o = 0;
94695   }
94696   return o;
94697 }
94698 
__pyx_tp_dealloc_6mpi4py_3MPI_File(PyObject * o)94699 static void __pyx_tp_dealloc_6mpi4py_3MPI_File(PyObject *o) {
94700   {
94701     PyObject *etype, *eval, *etb;
94702     PyErr_Fetch(&etype, &eval, &etb);
94703     ++Py_REFCNT(o);
94704     __pyx_pf_6mpi4py_3MPI_4File_1__dealloc__(o);
94705     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
94706     --Py_REFCNT(o);
94707     PyErr_Restore(etype, eval, etb);
94708   }
94709   (*Py_TYPE(o)->tp_free)(o);
94710 }
94711 
__pyx_getprop_6mpi4py_3MPI_4File_size(PyObject * o,void * x)94712 static PyObject *__pyx_getprop_6mpi4py_3MPI_4File_size(PyObject *o, void *x) {
94713   return __pyx_pf_6mpi4py_3MPI_4File_4size___get__(o);
94714 }
94715 
__pyx_getprop_6mpi4py_3MPI_4File_group(PyObject * o,void * x)94716 static PyObject *__pyx_getprop_6mpi4py_3MPI_4File_group(PyObject *o, void *x) {
94717   return __pyx_pf_6mpi4py_3MPI_4File_5group___get__(o);
94718 }
94719 
__pyx_getprop_6mpi4py_3MPI_4File_amode(PyObject * o,void * x)94720 static PyObject *__pyx_getprop_6mpi4py_3MPI_4File_amode(PyObject *o, void *x) {
94721   return __pyx_pf_6mpi4py_3MPI_4File_5amode___get__(o);
94722 }
94723 
__pyx_getprop_6mpi4py_3MPI_4File_info(PyObject * o,void * x)94724 static PyObject *__pyx_getprop_6mpi4py_3MPI_4File_info(PyObject *o, void *x) {
94725   return __pyx_pf_6mpi4py_3MPI_4File_4info___get__(o);
94726 }
94727 
__pyx_setprop_6mpi4py_3MPI_4File_info(PyObject * o,PyObject * v,void * x)94728 static int __pyx_setprop_6mpi4py_3MPI_4File_info(PyObject *o, PyObject *v, void *x) {
94729   if (v) {
94730     return __pyx_pf_6mpi4py_3MPI_4File_4info_1__set__(o, v);
94731   }
94732   else {
94733     PyErr_SetString(PyExc_NotImplementedError, "__del__");
94734     return -1;
94735   }
94736 }
94737 
__pyx_getprop_6mpi4py_3MPI_4File_atomicity(PyObject * o,void * x)94738 static PyObject *__pyx_getprop_6mpi4py_3MPI_4File_atomicity(PyObject *o, void *x) {
94739   return __pyx_pf_6mpi4py_3MPI_4File_9atomicity___get__(o);
94740 }
94741 
__pyx_setprop_6mpi4py_3MPI_4File_atomicity(PyObject * o,PyObject * v,void * x)94742 static int __pyx_setprop_6mpi4py_3MPI_4File_atomicity(PyObject *o, PyObject *v, void *x) {
94743   if (v) {
94744     return __pyx_pf_6mpi4py_3MPI_4File_9atomicity_1__set__(o, v);
94745   }
94746   else {
94747     PyErr_SetString(PyExc_NotImplementedError, "__del__");
94748     return -1;
94749   }
94750 }
94751 
94752 static PyMethodDef __pyx_methods_6mpi4py_3MPI_File[] = {
94753   {__Pyx_NAMESTR("Open"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_4Open, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_4Open)},
94754   {__Pyx_NAMESTR("Close"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_5Close, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_5Close)},
94755   {__Pyx_NAMESTR("Delete"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_6Delete, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_6Delete)},
94756   {__Pyx_NAMESTR("Set_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_7Set_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_7Set_size)},
94757   {__Pyx_NAMESTR("Preallocate"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_8Preallocate, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_8Preallocate)},
94758   {__Pyx_NAMESTR("Get_size"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_9Get_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_9Get_size)},
94759   {__Pyx_NAMESTR("Get_group"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_10Get_group, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_10Get_group)},
94760   {__Pyx_NAMESTR("Get_amode"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_11Get_amode, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_11Get_amode)},
94761   {__Pyx_NAMESTR("Set_info"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_12Set_info, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_12Set_info)},
94762   {__Pyx_NAMESTR("Get_info"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_13Get_info, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_13Get_info)},
94763   {__Pyx_NAMESTR("Set_view"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_14Set_view, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_14Set_view)},
94764   {__Pyx_NAMESTR("Get_view"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_15Get_view, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_15Get_view)},
94765   {__Pyx_NAMESTR("Read_at"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_16Read_at, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_16Read_at)},
94766   {__Pyx_NAMESTR("Read_at_all"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_17Read_at_all, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_17Read_at_all)},
94767   {__Pyx_NAMESTR("Write_at"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_18Write_at, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_18Write_at)},
94768   {__Pyx_NAMESTR("Write_at_all"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_19Write_at_all, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_19Write_at_all)},
94769   {__Pyx_NAMESTR("Iread_at"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_20Iread_at, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_20Iread_at)},
94770   {__Pyx_NAMESTR("Iwrite_at"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_21Iwrite_at, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_21Iwrite_at)},
94771   {__Pyx_NAMESTR("Read"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_22Read, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_22Read)},
94772   {__Pyx_NAMESTR("Read_all"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_23Read_all, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_23Read_all)},
94773   {__Pyx_NAMESTR("Write"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_24Write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_24Write)},
94774   {__Pyx_NAMESTR("Write_all"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_25Write_all, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_25Write_all)},
94775   {__Pyx_NAMESTR("Iread"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_26Iread, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_26Iread)},
94776   {__Pyx_NAMESTR("Iwrite"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_27Iwrite, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_27Iwrite)},
94777   {__Pyx_NAMESTR("Seek"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_28Seek, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_28Seek)},
94778   {__Pyx_NAMESTR("Get_position"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_29Get_position, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_29Get_position)},
94779   {__Pyx_NAMESTR("Get_byte_offset"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_30Get_byte_offset, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_30Get_byte_offset)},
94780   {__Pyx_NAMESTR("Read_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_31Read_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_31Read_shared)},
94781   {__Pyx_NAMESTR("Write_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_32Write_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_32Write_shared)},
94782   {__Pyx_NAMESTR("Iread_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_33Iread_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_33Iread_shared)},
94783   {__Pyx_NAMESTR("Iwrite_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_34Iwrite_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_34Iwrite_shared)},
94784   {__Pyx_NAMESTR("Read_ordered"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_35Read_ordered, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_35Read_ordered)},
94785   {__Pyx_NAMESTR("Write_ordered"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_36Write_ordered, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_36Write_ordered)},
94786   {__Pyx_NAMESTR("Seek_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_37Seek_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_37Seek_shared)},
94787   {__Pyx_NAMESTR("Get_position_shared"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_38Get_position_shared, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_38Get_position_shared)},
94788   {__Pyx_NAMESTR("Read_at_all_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_39Read_at_all_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_39Read_at_all_begin)},
94789   {__Pyx_NAMESTR("Read_at_all_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_40Read_at_all_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_40Read_at_all_end)},
94790   {__Pyx_NAMESTR("Write_at_all_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_41Write_at_all_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_41Write_at_all_begin)},
94791   {__Pyx_NAMESTR("Write_at_all_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_42Write_at_all_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_42Write_at_all_end)},
94792   {__Pyx_NAMESTR("Read_all_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_43Read_all_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_43Read_all_begin)},
94793   {__Pyx_NAMESTR("Read_all_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_44Read_all_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_44Read_all_end)},
94794   {__Pyx_NAMESTR("Write_all_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_45Write_all_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_45Write_all_begin)},
94795   {__Pyx_NAMESTR("Write_all_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_46Write_all_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_46Write_all_end)},
94796   {__Pyx_NAMESTR("Read_ordered_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_47Read_ordered_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_47Read_ordered_begin)},
94797   {__Pyx_NAMESTR("Read_ordered_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_48Read_ordered_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_48Read_ordered_end)},
94798   {__Pyx_NAMESTR("Write_ordered_begin"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_49Write_ordered_begin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_49Write_ordered_begin)},
94799   {__Pyx_NAMESTR("Write_ordered_end"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_50Write_ordered_end, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_50Write_ordered_end)},
94800   {__Pyx_NAMESTR("Get_type_extent"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_51Get_type_extent, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_51Get_type_extent)},
94801   {__Pyx_NAMESTR("Set_atomicity"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_52Set_atomicity, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_52Set_atomicity)},
94802   {__Pyx_NAMESTR("Get_atomicity"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_53Get_atomicity, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_53Get_atomicity)},
94803   {__Pyx_NAMESTR("Sync"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_54Sync, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_54Sync)},
94804   {__Pyx_NAMESTR("Get_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_55Get_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_55Get_errhandler)},
94805   {__Pyx_NAMESTR("Set_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_56Set_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_56Set_errhandler)},
94806   {__Pyx_NAMESTR("Call_errhandler"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_57Call_errhandler, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_57Call_errhandler)},
94807   {__Pyx_NAMESTR("py2f"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_58py2f, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_58py2f)},
94808   {__Pyx_NAMESTR("f2py"), (PyCFunction)__pyx_pf_6mpi4py_3MPI_4File_59f2py, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6mpi4py_3MPI_4File_59f2py)},
94809   {0, 0, 0, 0}
94810 };
94811 
94812 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI_File[] = {
94813   {(char *)"size", __pyx_getprop_6mpi4py_3MPI_4File_size, 0, __Pyx_DOCSTR(__pyx_k_143), 0},
94814   {(char *)"group", __pyx_getprop_6mpi4py_3MPI_4File_group, 0, __Pyx_DOCSTR(__pyx_k_144), 0},
94815   {(char *)"amode", __pyx_getprop_6mpi4py_3MPI_4File_amode, 0, __Pyx_DOCSTR(__pyx_k_145), 0},
94816   {(char *)"info", __pyx_getprop_6mpi4py_3MPI_4File_info, __pyx_setprop_6mpi4py_3MPI_4File_info, __Pyx_DOCSTR(__pyx_k_146), 0},
94817   {(char *)"atomicity", __pyx_getprop_6mpi4py_3MPI_4File_atomicity, __pyx_setprop_6mpi4py_3MPI_4File_atomicity, __Pyx_DOCSTR(__pyx_k__atomicity), 0},
94818   {0, 0, 0, 0, 0}
94819 };
94820 
94821 static PyNumberMethods __pyx_tp_as_number_File = {
94822   0, /*nb_add*/
94823   0, /*nb_subtract*/
94824   0, /*nb_multiply*/
94825   #if PY_MAJOR_VERSION < 3
94826   0, /*nb_divide*/
94827   #endif
94828   0, /*nb_remainder*/
94829   0, /*nb_divmod*/
94830   0, /*nb_power*/
94831   0, /*nb_negative*/
94832   0, /*nb_positive*/
94833   0, /*nb_absolute*/
94834   __pyx_pf_6mpi4py_3MPI_4File_3__bool__, /*nb_nonzero*/
94835   0, /*nb_invert*/
94836   0, /*nb_lshift*/
94837   0, /*nb_rshift*/
94838   0, /*nb_and*/
94839   0, /*nb_xor*/
94840   0, /*nb_or*/
94841   #if PY_MAJOR_VERSION < 3
94842   0, /*nb_coerce*/
94843   #endif
94844   0, /*nb_int*/
94845   #if PY_MAJOR_VERSION < 3
94846   0, /*nb_long*/
94847   #else
94848   0, /*reserved*/
94849   #endif
94850   0, /*nb_float*/
94851   #if PY_MAJOR_VERSION < 3
94852   0, /*nb_oct*/
94853   #endif
94854   #if PY_MAJOR_VERSION < 3
94855   0, /*nb_hex*/
94856   #endif
94857   0, /*nb_inplace_add*/
94858   0, /*nb_inplace_subtract*/
94859   0, /*nb_inplace_multiply*/
94860   #if PY_MAJOR_VERSION < 3
94861   0, /*nb_inplace_divide*/
94862   #endif
94863   0, /*nb_inplace_remainder*/
94864   0, /*nb_inplace_power*/
94865   0, /*nb_inplace_lshift*/
94866   0, /*nb_inplace_rshift*/
94867   0, /*nb_inplace_and*/
94868   0, /*nb_inplace_xor*/
94869   0, /*nb_inplace_or*/
94870   0, /*nb_floor_divide*/
94871   0, /*nb_true_divide*/
94872   0, /*nb_inplace_floor_divide*/
94873   0, /*nb_inplace_true_divide*/
94874   #if PY_VERSION_HEX >= 0x02050000
94875   0, /*nb_index*/
94876   #endif
94877 };
94878 
94879 static PySequenceMethods __pyx_tp_as_sequence_File = {
94880   0, /*sq_length*/
94881   0, /*sq_concat*/
94882   0, /*sq_repeat*/
94883   0, /*sq_item*/
94884   0, /*sq_slice*/
94885   0, /*sq_ass_item*/
94886   0, /*sq_ass_slice*/
94887   0, /*sq_contains*/
94888   0, /*sq_inplace_concat*/
94889   0, /*sq_inplace_repeat*/
94890 };
94891 
94892 static PyMappingMethods __pyx_tp_as_mapping_File = {
94893   0, /*mp_length*/
94894   0, /*mp_subscript*/
94895   0, /*mp_ass_subscript*/
94896 };
94897 
94898 static PyBufferProcs __pyx_tp_as_buffer_File = {
94899   #if PY_MAJOR_VERSION < 3
94900   0, /*bf_getreadbuffer*/
94901   #endif
94902   #if PY_MAJOR_VERSION < 3
94903   0, /*bf_getwritebuffer*/
94904   #endif
94905   #if PY_MAJOR_VERSION < 3
94906   0, /*bf_getsegcount*/
94907   #endif
94908   #if PY_MAJOR_VERSION < 3
94909   0, /*bf_getcharbuffer*/
94910   #endif
94911   #if PY_VERSION_HEX >= 0x02060000
94912   0, /*bf_getbuffer*/
94913   #endif
94914   #if PY_VERSION_HEX >= 0x02060000
94915   0, /*bf_releasebuffer*/
94916   #endif
94917 };
94918 
94919 DL_EXPORT(PyTypeObject) PyMPIFile_Type = {
94920   PyVarObject_HEAD_INIT(0, 0)
94921   __Pyx_NAMESTR("mpi4py.MPI.File"), /*tp_name*/
94922   sizeof(struct PyMPIFileObject), /*tp_basicsize*/
94923   0, /*tp_itemsize*/
94924   __pyx_tp_dealloc_6mpi4py_3MPI_File, /*tp_dealloc*/
94925   0, /*tp_print*/
94926   0, /*tp_getattr*/
94927   0, /*tp_setattr*/
94928   #if PY_MAJOR_VERSION < 3
94929   0, /*tp_compare*/
94930   #else
94931   0, /*reserved*/
94932   #endif
94933   0, /*tp_repr*/
94934   &__pyx_tp_as_number_File, /*tp_as_number*/
94935   &__pyx_tp_as_sequence_File, /*tp_as_sequence*/
94936   &__pyx_tp_as_mapping_File, /*tp_as_mapping*/
94937   0, /*tp_hash*/
94938   0, /*tp_call*/
94939   0, /*tp_str*/
94940   0, /*tp_getattro*/
94941   0, /*tp_setattro*/
94942   &__pyx_tp_as_buffer_File, /*tp_as_buffer*/
94943   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
94944   __Pyx_DOCSTR("\n    File\n    "), /*tp_doc*/
94945   0, /*tp_traverse*/
94946   0, /*tp_clear*/
94947   __pyx_pf_6mpi4py_3MPI_4File_2__richcmp__, /*tp_richcompare*/
94948   0, /*tp_weaklistoffset*/
94949   0, /*tp_iter*/
94950   0, /*tp_iternext*/
94951   __pyx_methods_6mpi4py_3MPI_File, /*tp_methods*/
94952   0, /*tp_members*/
94953   __pyx_getsets_6mpi4py_3MPI_File, /*tp_getset*/
94954   0, /*tp_base*/
94955   0, /*tp_dict*/
94956   0, /*tp_descr_get*/
94957   0, /*tp_descr_set*/
94958   0, /*tp_dictoffset*/
94959   0, /*tp_init*/
94960   0, /*tp_alloc*/
94961   __pyx_tp_new_6mpi4py_3MPI_File, /*tp_new*/
94962   0, /*tp_free*/
94963   0, /*tp_is_gc*/
94964   0, /*tp_bases*/
94965   0, /*tp_mro*/
94966   0, /*tp_cache*/
94967   0, /*tp_subclasses*/
94968   0, /*tp_weaklist*/
94969   0, /*tp_del*/
94970   #if PY_VERSION_HEX >= 0x02060000
94971   0, /*tp_version_tag*/
94972   #endif
94973 };
94974 
__pyx_tp_new_6mpi4py_3MPI__p_buffer(PyTypeObject * t,PyObject * a,PyObject * k)94975 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_buffer(PyTypeObject *t, PyObject *a, PyObject *k) {
94976   PyObject *o = (*t->tp_alloc)(t, 0);
94977   if (!o) return 0;
94978   return o;
94979 }
94980 
__pyx_tp_dealloc_6mpi4py_3MPI__p_buffer(PyObject * o)94981 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_buffer(PyObject *o) {
94982   {
94983     PyObject *etype, *eval, *etb;
94984     PyErr_Fetch(&etype, &eval, &etb);
94985     ++Py_REFCNT(o);
94986     __pyx_pf_6mpi4py_3MPI_9_p_buffer___dealloc__(o);
94987     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
94988     --Py_REFCNT(o);
94989     PyErr_Restore(etype, eval, etb);
94990   }
94991   (*Py_TYPE(o)->tp_free)(o);
94992 }
94993 
94994 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_buffer[] = {
94995   {0, 0, 0, 0}
94996 };
94997 
94998 static PyNumberMethods __pyx_tp_as_number__p_buffer = {
94999   0, /*nb_add*/
95000   0, /*nb_subtract*/
95001   0, /*nb_multiply*/
95002   #if PY_MAJOR_VERSION < 3
95003   0, /*nb_divide*/
95004   #endif
95005   0, /*nb_remainder*/
95006   0, /*nb_divmod*/
95007   0, /*nb_power*/
95008   0, /*nb_negative*/
95009   0, /*nb_positive*/
95010   0, /*nb_absolute*/
95011   0, /*nb_nonzero*/
95012   0, /*nb_invert*/
95013   0, /*nb_lshift*/
95014   0, /*nb_rshift*/
95015   0, /*nb_and*/
95016   0, /*nb_xor*/
95017   0, /*nb_or*/
95018   #if PY_MAJOR_VERSION < 3
95019   0, /*nb_coerce*/
95020   #endif
95021   0, /*nb_int*/
95022   #if PY_MAJOR_VERSION < 3
95023   0, /*nb_long*/
95024   #else
95025   0, /*reserved*/
95026   #endif
95027   0, /*nb_float*/
95028   #if PY_MAJOR_VERSION < 3
95029   0, /*nb_oct*/
95030   #endif
95031   #if PY_MAJOR_VERSION < 3
95032   0, /*nb_hex*/
95033   #endif
95034   0, /*nb_inplace_add*/
95035   0, /*nb_inplace_subtract*/
95036   0, /*nb_inplace_multiply*/
95037   #if PY_MAJOR_VERSION < 3
95038   0, /*nb_inplace_divide*/
95039   #endif
95040   0, /*nb_inplace_remainder*/
95041   0, /*nb_inplace_power*/
95042   0, /*nb_inplace_lshift*/
95043   0, /*nb_inplace_rshift*/
95044   0, /*nb_inplace_and*/
95045   0, /*nb_inplace_xor*/
95046   0, /*nb_inplace_or*/
95047   0, /*nb_floor_divide*/
95048   0, /*nb_true_divide*/
95049   0, /*nb_inplace_floor_divide*/
95050   0, /*nb_inplace_true_divide*/
95051   #if PY_VERSION_HEX >= 0x02050000
95052   0, /*nb_index*/
95053   #endif
95054 };
95055 
95056 static PySequenceMethods __pyx_tp_as_sequence__p_buffer = {
95057   0, /*sq_length*/
95058   0, /*sq_concat*/
95059   0, /*sq_repeat*/
95060   0, /*sq_item*/
95061   0, /*sq_slice*/
95062   0, /*sq_ass_item*/
95063   0, /*sq_ass_slice*/
95064   0, /*sq_contains*/
95065   0, /*sq_inplace_concat*/
95066   0, /*sq_inplace_repeat*/
95067 };
95068 
95069 static PyMappingMethods __pyx_tp_as_mapping__p_buffer = {
95070   0, /*mp_length*/
95071   0, /*mp_subscript*/
95072   0, /*mp_ass_subscript*/
95073 };
95074 
95075 static PyBufferProcs __pyx_tp_as_buffer__p_buffer = {
95076   #if PY_MAJOR_VERSION < 3
95077   __pyx_pf_6mpi4py_3MPI_9_p_buffer_4__getreadbuffer__, /*bf_getreadbuffer*/
95078   #endif
95079   #if PY_MAJOR_VERSION < 3
95080   __pyx_pf_6mpi4py_3MPI_9_p_buffer_5__getwritebuffer__, /*bf_getwritebuffer*/
95081   #endif
95082   #if PY_MAJOR_VERSION < 3
95083   __pyx_pf_6mpi4py_3MPI_9_p_buffer_3__getsegcount__, /*bf_getsegcount*/
95084   #endif
95085   #if PY_MAJOR_VERSION < 3
95086   0, /*bf_getcharbuffer*/
95087   #endif
95088   #if PY_VERSION_HEX >= 0x02060000
95089   __pyx_pf_6mpi4py_3MPI_9_p_buffer_1__getbuffer__, /*bf_getbuffer*/
95090   #endif
95091   #if PY_VERSION_HEX >= 0x02060000
95092   __pyx_pf_6mpi4py_3MPI_9_p_buffer_2__releasebuffer__, /*bf_releasebuffer*/
95093   #endif
95094 };
95095 
95096 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_buffer = {
95097   PyVarObject_HEAD_INIT(0, 0)
95098   __Pyx_NAMESTR("mpi4py.MPI._p_buffer"), /*tp_name*/
95099   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_buffer), /*tp_basicsize*/
95100   0, /*tp_itemsize*/
95101   __pyx_tp_dealloc_6mpi4py_3MPI__p_buffer, /*tp_dealloc*/
95102   0, /*tp_print*/
95103   0, /*tp_getattr*/
95104   0, /*tp_setattr*/
95105   #if PY_MAJOR_VERSION < 3
95106   0, /*tp_compare*/
95107   #else
95108   0, /*reserved*/
95109   #endif
95110   0, /*tp_repr*/
95111   &__pyx_tp_as_number__p_buffer, /*tp_as_number*/
95112   &__pyx_tp_as_sequence__p_buffer, /*tp_as_sequence*/
95113   &__pyx_tp_as_mapping__p_buffer, /*tp_as_mapping*/
95114   0, /*tp_hash*/
95115   0, /*tp_call*/
95116   0, /*tp_str*/
95117   0, /*tp_getattro*/
95118   0, /*tp_setattro*/
95119   &__pyx_tp_as_buffer__p_buffer, /*tp_as_buffer*/
95120   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
95121   0, /*tp_doc*/
95122   0, /*tp_traverse*/
95123   0, /*tp_clear*/
95124   0, /*tp_richcompare*/
95125   0, /*tp_weaklistoffset*/
95126   0, /*tp_iter*/
95127   0, /*tp_iternext*/
95128   __pyx_methods_6mpi4py_3MPI__p_buffer, /*tp_methods*/
95129   0, /*tp_members*/
95130   0, /*tp_getset*/
95131   0, /*tp_base*/
95132   0, /*tp_dict*/
95133   0, /*tp_descr_get*/
95134   0, /*tp_descr_set*/
95135   0, /*tp_dictoffset*/
95136   0, /*tp_init*/
95137   0, /*tp_alloc*/
95138   __pyx_tp_new_6mpi4py_3MPI__p_buffer, /*tp_new*/
95139   0, /*tp_free*/
95140   0, /*tp_is_gc*/
95141   0, /*tp_bases*/
95142   0, /*tp_mro*/
95143   0, /*tp_cache*/
95144   0, /*tp_subclasses*/
95145   0, /*tp_weaklist*/
95146   0, /*tp_del*/
95147   #if PY_VERSION_HEX >= 0x02060000
95148   0, /*tp_version_tag*/
95149   #endif
95150 };
95151 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_greq __pyx_vtable_6mpi4py_3MPI__p_greq;
95152 
__pyx_tp_new_6mpi4py_3MPI__p_greq(PyTypeObject * t,PyObject * a,PyObject * k)95153 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_greq(PyTypeObject *t, PyObject *a, PyObject *k) {
95154   struct __pyx_obj_6mpi4py_3MPI__p_greq *p;
95155   PyObject *o = (*t->tp_alloc)(t, 0);
95156   if (!o) return 0;
95157   p = ((struct __pyx_obj_6mpi4py_3MPI__p_greq *)o);
95158   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_greq;
95159   p->query_fn = Py_None; Py_INCREF(Py_None);
95160   p->free_fn = Py_None; Py_INCREF(Py_None);
95161   p->cancel_fn = Py_None; Py_INCREF(Py_None);
95162   p->args = ((PyObject*)Py_None); Py_INCREF(Py_None);
95163   p->kargs = ((PyObject*)Py_None); Py_INCREF(Py_None);
95164   if (__pyx_pf_6mpi4py_3MPI_7_p_greq___cinit__(o, a, k) < 0) {
95165     Py_DECREF(o); o = 0;
95166   }
95167   return o;
95168 }
95169 
__pyx_tp_dealloc_6mpi4py_3MPI__p_greq(PyObject * o)95170 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_greq(PyObject *o) {
95171   struct __pyx_obj_6mpi4py_3MPI__p_greq *p = (struct __pyx_obj_6mpi4py_3MPI__p_greq *)o;
95172   Py_XDECREF(p->query_fn);
95173   Py_XDECREF(p->free_fn);
95174   Py_XDECREF(p->cancel_fn);
95175   Py_XDECREF(((PyObject *)p->args));
95176   Py_XDECREF(((PyObject *)p->kargs));
95177   (*Py_TYPE(o)->tp_free)(o);
95178 }
95179 
__pyx_tp_traverse_6mpi4py_3MPI__p_greq(PyObject * o,visitproc v,void * a)95180 static int __pyx_tp_traverse_6mpi4py_3MPI__p_greq(PyObject *o, visitproc v, void *a) {
95181   int e;
95182   struct __pyx_obj_6mpi4py_3MPI__p_greq *p = (struct __pyx_obj_6mpi4py_3MPI__p_greq *)o;
95183   if (p->query_fn) {
95184     e = (*v)(p->query_fn, a); if (e) return e;
95185   }
95186   if (p->free_fn) {
95187     e = (*v)(p->free_fn, a); if (e) return e;
95188   }
95189   if (p->cancel_fn) {
95190     e = (*v)(p->cancel_fn, a); if (e) return e;
95191   }
95192   if (p->args) {
95193     e = (*v)(p->args, a); if (e) return e;
95194   }
95195   if (p->kargs) {
95196     e = (*v)(p->kargs, a); if (e) return e;
95197   }
95198   return 0;
95199 }
95200 
__pyx_tp_clear_6mpi4py_3MPI__p_greq(PyObject * o)95201 static int __pyx_tp_clear_6mpi4py_3MPI__p_greq(PyObject *o) {
95202   struct __pyx_obj_6mpi4py_3MPI__p_greq *p = (struct __pyx_obj_6mpi4py_3MPI__p_greq *)o;
95203   PyObject* tmp;
95204   tmp = ((PyObject*)p->query_fn);
95205   p->query_fn = Py_None; Py_INCREF(Py_None);
95206   Py_XDECREF(tmp);
95207   tmp = ((PyObject*)p->free_fn);
95208   p->free_fn = Py_None; Py_INCREF(Py_None);
95209   Py_XDECREF(tmp);
95210   tmp = ((PyObject*)p->cancel_fn);
95211   p->cancel_fn = Py_None; Py_INCREF(Py_None);
95212   Py_XDECREF(tmp);
95213   tmp = ((PyObject*)p->args);
95214   p->args = ((PyObject*)Py_None); Py_INCREF(Py_None);
95215   Py_XDECREF(tmp);
95216   tmp = ((PyObject*)p->kargs);
95217   p->kargs = ((PyObject*)Py_None); Py_INCREF(Py_None);
95218   Py_XDECREF(tmp);
95219   return 0;
95220 }
95221 
95222 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_greq[] = {
95223   {0, 0, 0, 0}
95224 };
95225 
95226 static PyNumberMethods __pyx_tp_as_number__p_greq = {
95227   0, /*nb_add*/
95228   0, /*nb_subtract*/
95229   0, /*nb_multiply*/
95230   #if PY_MAJOR_VERSION < 3
95231   0, /*nb_divide*/
95232   #endif
95233   0, /*nb_remainder*/
95234   0, /*nb_divmod*/
95235   0, /*nb_power*/
95236   0, /*nb_negative*/
95237   0, /*nb_positive*/
95238   0, /*nb_absolute*/
95239   0, /*nb_nonzero*/
95240   0, /*nb_invert*/
95241   0, /*nb_lshift*/
95242   0, /*nb_rshift*/
95243   0, /*nb_and*/
95244   0, /*nb_xor*/
95245   0, /*nb_or*/
95246   #if PY_MAJOR_VERSION < 3
95247   0, /*nb_coerce*/
95248   #endif
95249   0, /*nb_int*/
95250   #if PY_MAJOR_VERSION < 3
95251   0, /*nb_long*/
95252   #else
95253   0, /*reserved*/
95254   #endif
95255   0, /*nb_float*/
95256   #if PY_MAJOR_VERSION < 3
95257   0, /*nb_oct*/
95258   #endif
95259   #if PY_MAJOR_VERSION < 3
95260   0, /*nb_hex*/
95261   #endif
95262   0, /*nb_inplace_add*/
95263   0, /*nb_inplace_subtract*/
95264   0, /*nb_inplace_multiply*/
95265   #if PY_MAJOR_VERSION < 3
95266   0, /*nb_inplace_divide*/
95267   #endif
95268   0, /*nb_inplace_remainder*/
95269   0, /*nb_inplace_power*/
95270   0, /*nb_inplace_lshift*/
95271   0, /*nb_inplace_rshift*/
95272   0, /*nb_inplace_and*/
95273   0, /*nb_inplace_xor*/
95274   0, /*nb_inplace_or*/
95275   0, /*nb_floor_divide*/
95276   0, /*nb_true_divide*/
95277   0, /*nb_inplace_floor_divide*/
95278   0, /*nb_inplace_true_divide*/
95279   #if PY_VERSION_HEX >= 0x02050000
95280   0, /*nb_index*/
95281   #endif
95282 };
95283 
95284 static PySequenceMethods __pyx_tp_as_sequence__p_greq = {
95285   0, /*sq_length*/
95286   0, /*sq_concat*/
95287   0, /*sq_repeat*/
95288   0, /*sq_item*/
95289   0, /*sq_slice*/
95290   0, /*sq_ass_item*/
95291   0, /*sq_ass_slice*/
95292   0, /*sq_contains*/
95293   0, /*sq_inplace_concat*/
95294   0, /*sq_inplace_repeat*/
95295 };
95296 
95297 static PyMappingMethods __pyx_tp_as_mapping__p_greq = {
95298   0, /*mp_length*/
95299   0, /*mp_subscript*/
95300   0, /*mp_ass_subscript*/
95301 };
95302 
95303 static PyBufferProcs __pyx_tp_as_buffer__p_greq = {
95304   #if PY_MAJOR_VERSION < 3
95305   0, /*bf_getreadbuffer*/
95306   #endif
95307   #if PY_MAJOR_VERSION < 3
95308   0, /*bf_getwritebuffer*/
95309   #endif
95310   #if PY_MAJOR_VERSION < 3
95311   0, /*bf_getsegcount*/
95312   #endif
95313   #if PY_MAJOR_VERSION < 3
95314   0, /*bf_getcharbuffer*/
95315   #endif
95316   #if PY_VERSION_HEX >= 0x02060000
95317   0, /*bf_getbuffer*/
95318   #endif
95319   #if PY_VERSION_HEX >= 0x02060000
95320   0, /*bf_releasebuffer*/
95321   #endif
95322 };
95323 
95324 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_greq = {
95325   PyVarObject_HEAD_INIT(0, 0)
95326   __Pyx_NAMESTR("mpi4py.MPI._p_greq"), /*tp_name*/
95327   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_greq), /*tp_basicsize*/
95328   0, /*tp_itemsize*/
95329   __pyx_tp_dealloc_6mpi4py_3MPI__p_greq, /*tp_dealloc*/
95330   0, /*tp_print*/
95331   0, /*tp_getattr*/
95332   0, /*tp_setattr*/
95333   #if PY_MAJOR_VERSION < 3
95334   0, /*tp_compare*/
95335   #else
95336   0, /*reserved*/
95337   #endif
95338   0, /*tp_repr*/
95339   &__pyx_tp_as_number__p_greq, /*tp_as_number*/
95340   &__pyx_tp_as_sequence__p_greq, /*tp_as_sequence*/
95341   &__pyx_tp_as_mapping__p_greq, /*tp_as_mapping*/
95342   0, /*tp_hash*/
95343   0, /*tp_call*/
95344   0, /*tp_str*/
95345   0, /*tp_getattro*/
95346   0, /*tp_setattro*/
95347   &__pyx_tp_as_buffer__p_greq, /*tp_as_buffer*/
95348   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
95349   0, /*tp_doc*/
95350   __pyx_tp_traverse_6mpi4py_3MPI__p_greq, /*tp_traverse*/
95351   __pyx_tp_clear_6mpi4py_3MPI__p_greq, /*tp_clear*/
95352   0, /*tp_richcompare*/
95353   0, /*tp_weaklistoffset*/
95354   0, /*tp_iter*/
95355   0, /*tp_iternext*/
95356   __pyx_methods_6mpi4py_3MPI__p_greq, /*tp_methods*/
95357   0, /*tp_members*/
95358   0, /*tp_getset*/
95359   0, /*tp_base*/
95360   0, /*tp_dict*/
95361   0, /*tp_descr_get*/
95362   0, /*tp_descr_set*/
95363   0, /*tp_dictoffset*/
95364   0, /*tp_init*/
95365   0, /*tp_alloc*/
95366   __pyx_tp_new_6mpi4py_3MPI__p_greq, /*tp_new*/
95367   0, /*tp_free*/
95368   0, /*tp_is_gc*/
95369   0, /*tp_bases*/
95370   0, /*tp_mro*/
95371   0, /*tp_cache*/
95372   0, /*tp_subclasses*/
95373   0, /*tp_weaklist*/
95374   0, /*tp_del*/
95375   #if PY_VERSION_HEX >= 0x02060000
95376   0, /*tp_version_tag*/
95377   #endif
95378 };
95379 
__pyx_tp_new_6mpi4py_3MPI__p_message(PyTypeObject * t,PyObject * a,PyObject * k)95380 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_message(PyTypeObject *t, PyObject *a, PyObject *k) {
95381   struct __pyx_obj_6mpi4py_3MPI__p_message *p;
95382   PyObject *o = (*t->tp_alloc)(t, 0);
95383   if (!o) return 0;
95384   p = ((struct __pyx_obj_6mpi4py_3MPI__p_message *)o);
95385   p->buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); Py_INCREF(Py_None);
95386   p->count = Py_None; Py_INCREF(Py_None);
95387   p->displ = Py_None; Py_INCREF(Py_None);
95388   p->type = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
95389   return o;
95390 }
95391 
__pyx_tp_dealloc_6mpi4py_3MPI__p_message(PyObject * o)95392 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_message(PyObject *o) {
95393   struct __pyx_obj_6mpi4py_3MPI__p_message *p = (struct __pyx_obj_6mpi4py_3MPI__p_message *)o;
95394   Py_XDECREF(((PyObject *)p->buf));
95395   Py_XDECREF(p->count);
95396   Py_XDECREF(p->displ);
95397   Py_XDECREF(((PyObject *)p->type));
95398   (*Py_TYPE(o)->tp_free)(o);
95399 }
95400 
__pyx_tp_traverse_6mpi4py_3MPI__p_message(PyObject * o,visitproc v,void * a)95401 static int __pyx_tp_traverse_6mpi4py_3MPI__p_message(PyObject *o, visitproc v, void *a) {
95402   int e;
95403   struct __pyx_obj_6mpi4py_3MPI__p_message *p = (struct __pyx_obj_6mpi4py_3MPI__p_message *)o;
95404   if (p->buf) {
95405     e = (*v)(((PyObject*)p->buf), a); if (e) return e;
95406   }
95407   if (p->count) {
95408     e = (*v)(p->count, a); if (e) return e;
95409   }
95410   if (p->displ) {
95411     e = (*v)(p->displ, a); if (e) return e;
95412   }
95413   if (p->type) {
95414     e = (*v)(((PyObject*)p->type), a); if (e) return e;
95415   }
95416   return 0;
95417 }
95418 
__pyx_tp_clear_6mpi4py_3MPI__p_message(PyObject * o)95419 static int __pyx_tp_clear_6mpi4py_3MPI__p_message(PyObject *o) {
95420   struct __pyx_obj_6mpi4py_3MPI__p_message *p = (struct __pyx_obj_6mpi4py_3MPI__p_message *)o;
95421   PyObject* tmp;
95422   tmp = ((PyObject*)p->buf);
95423   p->buf = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); Py_INCREF(Py_None);
95424   Py_XDECREF(tmp);
95425   tmp = ((PyObject*)p->count);
95426   p->count = Py_None; Py_INCREF(Py_None);
95427   Py_XDECREF(tmp);
95428   tmp = ((PyObject*)p->displ);
95429   p->displ = Py_None; Py_INCREF(Py_None);
95430   Py_XDECREF(tmp);
95431   tmp = ((PyObject*)p->type);
95432   p->type = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
95433   Py_XDECREF(tmp);
95434   return 0;
95435 }
95436 
95437 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_message[] = {
95438   {0, 0, 0, 0}
95439 };
95440 
95441 static PyNumberMethods __pyx_tp_as_number__p_message = {
95442   0, /*nb_add*/
95443   0, /*nb_subtract*/
95444   0, /*nb_multiply*/
95445   #if PY_MAJOR_VERSION < 3
95446   0, /*nb_divide*/
95447   #endif
95448   0, /*nb_remainder*/
95449   0, /*nb_divmod*/
95450   0, /*nb_power*/
95451   0, /*nb_negative*/
95452   0, /*nb_positive*/
95453   0, /*nb_absolute*/
95454   0, /*nb_nonzero*/
95455   0, /*nb_invert*/
95456   0, /*nb_lshift*/
95457   0, /*nb_rshift*/
95458   0, /*nb_and*/
95459   0, /*nb_xor*/
95460   0, /*nb_or*/
95461   #if PY_MAJOR_VERSION < 3
95462   0, /*nb_coerce*/
95463   #endif
95464   0, /*nb_int*/
95465   #if PY_MAJOR_VERSION < 3
95466   0, /*nb_long*/
95467   #else
95468   0, /*reserved*/
95469   #endif
95470   0, /*nb_float*/
95471   #if PY_MAJOR_VERSION < 3
95472   0, /*nb_oct*/
95473   #endif
95474   #if PY_MAJOR_VERSION < 3
95475   0, /*nb_hex*/
95476   #endif
95477   0, /*nb_inplace_add*/
95478   0, /*nb_inplace_subtract*/
95479   0, /*nb_inplace_multiply*/
95480   #if PY_MAJOR_VERSION < 3
95481   0, /*nb_inplace_divide*/
95482   #endif
95483   0, /*nb_inplace_remainder*/
95484   0, /*nb_inplace_power*/
95485   0, /*nb_inplace_lshift*/
95486   0, /*nb_inplace_rshift*/
95487   0, /*nb_inplace_and*/
95488   0, /*nb_inplace_xor*/
95489   0, /*nb_inplace_or*/
95490   0, /*nb_floor_divide*/
95491   0, /*nb_true_divide*/
95492   0, /*nb_inplace_floor_divide*/
95493   0, /*nb_inplace_true_divide*/
95494   #if PY_VERSION_HEX >= 0x02050000
95495   0, /*nb_index*/
95496   #endif
95497 };
95498 
95499 static PySequenceMethods __pyx_tp_as_sequence__p_message = {
95500   0, /*sq_length*/
95501   0, /*sq_concat*/
95502   0, /*sq_repeat*/
95503   0, /*sq_item*/
95504   0, /*sq_slice*/
95505   0, /*sq_ass_item*/
95506   0, /*sq_ass_slice*/
95507   0, /*sq_contains*/
95508   0, /*sq_inplace_concat*/
95509   0, /*sq_inplace_repeat*/
95510 };
95511 
95512 static PyMappingMethods __pyx_tp_as_mapping__p_message = {
95513   0, /*mp_length*/
95514   0, /*mp_subscript*/
95515   0, /*mp_ass_subscript*/
95516 };
95517 
95518 static PyBufferProcs __pyx_tp_as_buffer__p_message = {
95519   #if PY_MAJOR_VERSION < 3
95520   0, /*bf_getreadbuffer*/
95521   #endif
95522   #if PY_MAJOR_VERSION < 3
95523   0, /*bf_getwritebuffer*/
95524   #endif
95525   #if PY_MAJOR_VERSION < 3
95526   0, /*bf_getsegcount*/
95527   #endif
95528   #if PY_MAJOR_VERSION < 3
95529   0, /*bf_getcharbuffer*/
95530   #endif
95531   #if PY_VERSION_HEX >= 0x02060000
95532   0, /*bf_getbuffer*/
95533   #endif
95534   #if PY_VERSION_HEX >= 0x02060000
95535   0, /*bf_releasebuffer*/
95536   #endif
95537 };
95538 
95539 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_message = {
95540   PyVarObject_HEAD_INIT(0, 0)
95541   __Pyx_NAMESTR("mpi4py.MPI._p_message"), /*tp_name*/
95542   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_message), /*tp_basicsize*/
95543   0, /*tp_itemsize*/
95544   __pyx_tp_dealloc_6mpi4py_3MPI__p_message, /*tp_dealloc*/
95545   0, /*tp_print*/
95546   0, /*tp_getattr*/
95547   0, /*tp_setattr*/
95548   #if PY_MAJOR_VERSION < 3
95549   0, /*tp_compare*/
95550   #else
95551   0, /*reserved*/
95552   #endif
95553   0, /*tp_repr*/
95554   &__pyx_tp_as_number__p_message, /*tp_as_number*/
95555   &__pyx_tp_as_sequence__p_message, /*tp_as_sequence*/
95556   &__pyx_tp_as_mapping__p_message, /*tp_as_mapping*/
95557   0, /*tp_hash*/
95558   0, /*tp_call*/
95559   0, /*tp_str*/
95560   0, /*tp_getattro*/
95561   0, /*tp_setattro*/
95562   &__pyx_tp_as_buffer__p_message, /*tp_as_buffer*/
95563   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
95564   0, /*tp_doc*/
95565   __pyx_tp_traverse_6mpi4py_3MPI__p_message, /*tp_traverse*/
95566   __pyx_tp_clear_6mpi4py_3MPI__p_message, /*tp_clear*/
95567   0, /*tp_richcompare*/
95568   0, /*tp_weaklistoffset*/
95569   0, /*tp_iter*/
95570   0, /*tp_iternext*/
95571   __pyx_methods_6mpi4py_3MPI__p_message, /*tp_methods*/
95572   0, /*tp_members*/
95573   0, /*tp_getset*/
95574   0, /*tp_base*/
95575   0, /*tp_dict*/
95576   0, /*tp_descr_get*/
95577   0, /*tp_descr_set*/
95578   0, /*tp_dictoffset*/
95579   0, /*tp_init*/
95580   0, /*tp_alloc*/
95581   __pyx_tp_new_6mpi4py_3MPI__p_message, /*tp_new*/
95582   0, /*tp_free*/
95583   0, /*tp_is_gc*/
95584   0, /*tp_bases*/
95585   0, /*tp_mro*/
95586   0, /*tp_cache*/
95587   0, /*tp_subclasses*/
95588   0, /*tp_weaklist*/
95589   0, /*tp_del*/
95590   #if PY_VERSION_HEX >= 0x02060000
95591   0, /*tp_version_tag*/
95592   #endif
95593 };
95594 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_p2p __pyx_vtable_6mpi4py_3MPI__p_msg_p2p;
95595 
__pyx_tp_new_6mpi4py_3MPI__p_msg_p2p(PyTypeObject * t,PyObject * a,PyObject * k)95596 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_msg_p2p(PyTypeObject *t, PyObject *a, PyObject *k) {
95597   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *p;
95598   PyObject *o = (*t->tp_alloc)(t, 0);
95599   if (!o) return 0;
95600   p = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)o);
95601   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_msg_p2p;
95602   p->_msg = Py_None; Py_INCREF(Py_None);
95603   if (__pyx_pf_6mpi4py_3MPI_10_p_msg_p2p___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
95604     Py_DECREF(o); o = 0;
95605   }
95606   return o;
95607 }
95608 
__pyx_tp_dealloc_6mpi4py_3MPI__p_msg_p2p(PyObject * o)95609 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_p2p(PyObject *o) {
95610   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)o;
95611   Py_XDECREF(p->_msg);
95612   (*Py_TYPE(o)->tp_free)(o);
95613 }
95614 
__pyx_tp_traverse_6mpi4py_3MPI__p_msg_p2p(PyObject * o,visitproc v,void * a)95615 static int __pyx_tp_traverse_6mpi4py_3MPI__p_msg_p2p(PyObject *o, visitproc v, void *a) {
95616   int e;
95617   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)o;
95618   if (p->_msg) {
95619     e = (*v)(p->_msg, a); if (e) return e;
95620   }
95621   return 0;
95622 }
95623 
__pyx_tp_clear_6mpi4py_3MPI__p_msg_p2p(PyObject * o)95624 static int __pyx_tp_clear_6mpi4py_3MPI__p_msg_p2p(PyObject *o) {
95625   struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *)o;
95626   PyObject* tmp;
95627   tmp = ((PyObject*)p->_msg);
95628   p->_msg = Py_None; Py_INCREF(Py_None);
95629   Py_XDECREF(tmp);
95630   return 0;
95631 }
95632 
95633 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_msg_p2p[] = {
95634   {0, 0, 0, 0}
95635 };
95636 
95637 static PyNumberMethods __pyx_tp_as_number__p_msg_p2p = {
95638   0, /*nb_add*/
95639   0, /*nb_subtract*/
95640   0, /*nb_multiply*/
95641   #if PY_MAJOR_VERSION < 3
95642   0, /*nb_divide*/
95643   #endif
95644   0, /*nb_remainder*/
95645   0, /*nb_divmod*/
95646   0, /*nb_power*/
95647   0, /*nb_negative*/
95648   0, /*nb_positive*/
95649   0, /*nb_absolute*/
95650   0, /*nb_nonzero*/
95651   0, /*nb_invert*/
95652   0, /*nb_lshift*/
95653   0, /*nb_rshift*/
95654   0, /*nb_and*/
95655   0, /*nb_xor*/
95656   0, /*nb_or*/
95657   #if PY_MAJOR_VERSION < 3
95658   0, /*nb_coerce*/
95659   #endif
95660   0, /*nb_int*/
95661   #if PY_MAJOR_VERSION < 3
95662   0, /*nb_long*/
95663   #else
95664   0, /*reserved*/
95665   #endif
95666   0, /*nb_float*/
95667   #if PY_MAJOR_VERSION < 3
95668   0, /*nb_oct*/
95669   #endif
95670   #if PY_MAJOR_VERSION < 3
95671   0, /*nb_hex*/
95672   #endif
95673   0, /*nb_inplace_add*/
95674   0, /*nb_inplace_subtract*/
95675   0, /*nb_inplace_multiply*/
95676   #if PY_MAJOR_VERSION < 3
95677   0, /*nb_inplace_divide*/
95678   #endif
95679   0, /*nb_inplace_remainder*/
95680   0, /*nb_inplace_power*/
95681   0, /*nb_inplace_lshift*/
95682   0, /*nb_inplace_rshift*/
95683   0, /*nb_inplace_and*/
95684   0, /*nb_inplace_xor*/
95685   0, /*nb_inplace_or*/
95686   0, /*nb_floor_divide*/
95687   0, /*nb_true_divide*/
95688   0, /*nb_inplace_floor_divide*/
95689   0, /*nb_inplace_true_divide*/
95690   #if PY_VERSION_HEX >= 0x02050000
95691   0, /*nb_index*/
95692   #endif
95693 };
95694 
95695 static PySequenceMethods __pyx_tp_as_sequence__p_msg_p2p = {
95696   0, /*sq_length*/
95697   0, /*sq_concat*/
95698   0, /*sq_repeat*/
95699   0, /*sq_item*/
95700   0, /*sq_slice*/
95701   0, /*sq_ass_item*/
95702   0, /*sq_ass_slice*/
95703   0, /*sq_contains*/
95704   0, /*sq_inplace_concat*/
95705   0, /*sq_inplace_repeat*/
95706 };
95707 
95708 static PyMappingMethods __pyx_tp_as_mapping__p_msg_p2p = {
95709   0, /*mp_length*/
95710   0, /*mp_subscript*/
95711   0, /*mp_ass_subscript*/
95712 };
95713 
95714 static PyBufferProcs __pyx_tp_as_buffer__p_msg_p2p = {
95715   #if PY_MAJOR_VERSION < 3
95716   0, /*bf_getreadbuffer*/
95717   #endif
95718   #if PY_MAJOR_VERSION < 3
95719   0, /*bf_getwritebuffer*/
95720   #endif
95721   #if PY_MAJOR_VERSION < 3
95722   0, /*bf_getsegcount*/
95723   #endif
95724   #if PY_MAJOR_VERSION < 3
95725   0, /*bf_getcharbuffer*/
95726   #endif
95727   #if PY_VERSION_HEX >= 0x02060000
95728   0, /*bf_getbuffer*/
95729   #endif
95730   #if PY_VERSION_HEX >= 0x02060000
95731   0, /*bf_releasebuffer*/
95732   #endif
95733 };
95734 
95735 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_msg_p2p = {
95736   PyVarObject_HEAD_INIT(0, 0)
95737   __Pyx_NAMESTR("mpi4py.MPI._p_msg_p2p"), /*tp_name*/
95738   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p), /*tp_basicsize*/
95739   0, /*tp_itemsize*/
95740   __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_p2p, /*tp_dealloc*/
95741   0, /*tp_print*/
95742   0, /*tp_getattr*/
95743   0, /*tp_setattr*/
95744   #if PY_MAJOR_VERSION < 3
95745   0, /*tp_compare*/
95746   #else
95747   0, /*reserved*/
95748   #endif
95749   0, /*tp_repr*/
95750   &__pyx_tp_as_number__p_msg_p2p, /*tp_as_number*/
95751   &__pyx_tp_as_sequence__p_msg_p2p, /*tp_as_sequence*/
95752   &__pyx_tp_as_mapping__p_msg_p2p, /*tp_as_mapping*/
95753   0, /*tp_hash*/
95754   0, /*tp_call*/
95755   0, /*tp_str*/
95756   0, /*tp_getattro*/
95757   0, /*tp_setattro*/
95758   &__pyx_tp_as_buffer__p_msg_p2p, /*tp_as_buffer*/
95759   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
95760   0, /*tp_doc*/
95761   __pyx_tp_traverse_6mpi4py_3MPI__p_msg_p2p, /*tp_traverse*/
95762   __pyx_tp_clear_6mpi4py_3MPI__p_msg_p2p, /*tp_clear*/
95763   0, /*tp_richcompare*/
95764   0, /*tp_weaklistoffset*/
95765   0, /*tp_iter*/
95766   0, /*tp_iternext*/
95767   __pyx_methods_6mpi4py_3MPI__p_msg_p2p, /*tp_methods*/
95768   0, /*tp_members*/
95769   0, /*tp_getset*/
95770   0, /*tp_base*/
95771   0, /*tp_dict*/
95772   0, /*tp_descr_get*/
95773   0, /*tp_descr_set*/
95774   0, /*tp_dictoffset*/
95775   0, /*tp_init*/
95776   0, /*tp_alloc*/
95777   __pyx_tp_new_6mpi4py_3MPI__p_msg_p2p, /*tp_new*/
95778   0, /*tp_free*/
95779   0, /*tp_is_gc*/
95780   0, /*tp_bases*/
95781   0, /*tp_mro*/
95782   0, /*tp_cache*/
95783   0, /*tp_subclasses*/
95784   0, /*tp_weaklist*/
95785   0, /*tp_del*/
95786   #if PY_VERSION_HEX >= 0x02060000
95787   0, /*tp_version_tag*/
95788   #endif
95789 };
95790 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_cco __pyx_vtable_6mpi4py_3MPI__p_msg_cco;
95791 
__pyx_tp_new_6mpi4py_3MPI__p_msg_cco(PyTypeObject * t,PyObject * a,PyObject * k)95792 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_msg_cco(PyTypeObject *t, PyObject *a, PyObject *k) {
95793   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *p;
95794   PyObject *o = (*t->tp_alloc)(t, 0);
95795   if (!o) return 0;
95796   p = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)o);
95797   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_msg_cco;
95798   p->_smsg = Py_None; Py_INCREF(Py_None);
95799   p->_rmsg = Py_None; Py_INCREF(Py_None);
95800   p->_rcnt = Py_None; Py_INCREF(Py_None);
95801   if (__pyx_pf_6mpi4py_3MPI_10_p_msg_cco___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
95802     Py_DECREF(o); o = 0;
95803   }
95804   return o;
95805 }
95806 
__pyx_tp_dealloc_6mpi4py_3MPI__p_msg_cco(PyObject * o)95807 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_cco(PyObject *o) {
95808   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)o;
95809   Py_XDECREF(p->_smsg);
95810   Py_XDECREF(p->_rmsg);
95811   Py_XDECREF(p->_rcnt);
95812   (*Py_TYPE(o)->tp_free)(o);
95813 }
95814 
__pyx_tp_traverse_6mpi4py_3MPI__p_msg_cco(PyObject * o,visitproc v,void * a)95815 static int __pyx_tp_traverse_6mpi4py_3MPI__p_msg_cco(PyObject *o, visitproc v, void *a) {
95816   int e;
95817   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)o;
95818   if (p->_smsg) {
95819     e = (*v)(p->_smsg, a); if (e) return e;
95820   }
95821   if (p->_rmsg) {
95822     e = (*v)(p->_rmsg, a); if (e) return e;
95823   }
95824   if (p->_rcnt) {
95825     e = (*v)(p->_rcnt, a); if (e) return e;
95826   }
95827   return 0;
95828 }
95829 
__pyx_tp_clear_6mpi4py_3MPI__p_msg_cco(PyObject * o)95830 static int __pyx_tp_clear_6mpi4py_3MPI__p_msg_cco(PyObject *o) {
95831   struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *)o;
95832   PyObject* tmp;
95833   tmp = ((PyObject*)p->_smsg);
95834   p->_smsg = Py_None; Py_INCREF(Py_None);
95835   Py_XDECREF(tmp);
95836   tmp = ((PyObject*)p->_rmsg);
95837   p->_rmsg = Py_None; Py_INCREF(Py_None);
95838   Py_XDECREF(tmp);
95839   tmp = ((PyObject*)p->_rcnt);
95840   p->_rcnt = Py_None; Py_INCREF(Py_None);
95841   Py_XDECREF(tmp);
95842   return 0;
95843 }
95844 
95845 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_msg_cco[] = {
95846   {0, 0, 0, 0}
95847 };
95848 
95849 static PyNumberMethods __pyx_tp_as_number__p_msg_cco = {
95850   0, /*nb_add*/
95851   0, /*nb_subtract*/
95852   0, /*nb_multiply*/
95853   #if PY_MAJOR_VERSION < 3
95854   0, /*nb_divide*/
95855   #endif
95856   0, /*nb_remainder*/
95857   0, /*nb_divmod*/
95858   0, /*nb_power*/
95859   0, /*nb_negative*/
95860   0, /*nb_positive*/
95861   0, /*nb_absolute*/
95862   0, /*nb_nonzero*/
95863   0, /*nb_invert*/
95864   0, /*nb_lshift*/
95865   0, /*nb_rshift*/
95866   0, /*nb_and*/
95867   0, /*nb_xor*/
95868   0, /*nb_or*/
95869   #if PY_MAJOR_VERSION < 3
95870   0, /*nb_coerce*/
95871   #endif
95872   0, /*nb_int*/
95873   #if PY_MAJOR_VERSION < 3
95874   0, /*nb_long*/
95875   #else
95876   0, /*reserved*/
95877   #endif
95878   0, /*nb_float*/
95879   #if PY_MAJOR_VERSION < 3
95880   0, /*nb_oct*/
95881   #endif
95882   #if PY_MAJOR_VERSION < 3
95883   0, /*nb_hex*/
95884   #endif
95885   0, /*nb_inplace_add*/
95886   0, /*nb_inplace_subtract*/
95887   0, /*nb_inplace_multiply*/
95888   #if PY_MAJOR_VERSION < 3
95889   0, /*nb_inplace_divide*/
95890   #endif
95891   0, /*nb_inplace_remainder*/
95892   0, /*nb_inplace_power*/
95893   0, /*nb_inplace_lshift*/
95894   0, /*nb_inplace_rshift*/
95895   0, /*nb_inplace_and*/
95896   0, /*nb_inplace_xor*/
95897   0, /*nb_inplace_or*/
95898   0, /*nb_floor_divide*/
95899   0, /*nb_true_divide*/
95900   0, /*nb_inplace_floor_divide*/
95901   0, /*nb_inplace_true_divide*/
95902   #if PY_VERSION_HEX >= 0x02050000
95903   0, /*nb_index*/
95904   #endif
95905 };
95906 
95907 static PySequenceMethods __pyx_tp_as_sequence__p_msg_cco = {
95908   0, /*sq_length*/
95909   0, /*sq_concat*/
95910   0, /*sq_repeat*/
95911   0, /*sq_item*/
95912   0, /*sq_slice*/
95913   0, /*sq_ass_item*/
95914   0, /*sq_ass_slice*/
95915   0, /*sq_contains*/
95916   0, /*sq_inplace_concat*/
95917   0, /*sq_inplace_repeat*/
95918 };
95919 
95920 static PyMappingMethods __pyx_tp_as_mapping__p_msg_cco = {
95921   0, /*mp_length*/
95922   0, /*mp_subscript*/
95923   0, /*mp_ass_subscript*/
95924 };
95925 
95926 static PyBufferProcs __pyx_tp_as_buffer__p_msg_cco = {
95927   #if PY_MAJOR_VERSION < 3
95928   0, /*bf_getreadbuffer*/
95929   #endif
95930   #if PY_MAJOR_VERSION < 3
95931   0, /*bf_getwritebuffer*/
95932   #endif
95933   #if PY_MAJOR_VERSION < 3
95934   0, /*bf_getsegcount*/
95935   #endif
95936   #if PY_MAJOR_VERSION < 3
95937   0, /*bf_getcharbuffer*/
95938   #endif
95939   #if PY_VERSION_HEX >= 0x02060000
95940   0, /*bf_getbuffer*/
95941   #endif
95942   #if PY_VERSION_HEX >= 0x02060000
95943   0, /*bf_releasebuffer*/
95944   #endif
95945 };
95946 
95947 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_msg_cco = {
95948   PyVarObject_HEAD_INIT(0, 0)
95949   __Pyx_NAMESTR("mpi4py.MPI._p_msg_cco"), /*tp_name*/
95950   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco), /*tp_basicsize*/
95951   0, /*tp_itemsize*/
95952   __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_cco, /*tp_dealloc*/
95953   0, /*tp_print*/
95954   0, /*tp_getattr*/
95955   0, /*tp_setattr*/
95956   #if PY_MAJOR_VERSION < 3
95957   0, /*tp_compare*/
95958   #else
95959   0, /*reserved*/
95960   #endif
95961   0, /*tp_repr*/
95962   &__pyx_tp_as_number__p_msg_cco, /*tp_as_number*/
95963   &__pyx_tp_as_sequence__p_msg_cco, /*tp_as_sequence*/
95964   &__pyx_tp_as_mapping__p_msg_cco, /*tp_as_mapping*/
95965   0, /*tp_hash*/
95966   0, /*tp_call*/
95967   0, /*tp_str*/
95968   0, /*tp_getattro*/
95969   0, /*tp_setattro*/
95970   &__pyx_tp_as_buffer__p_msg_cco, /*tp_as_buffer*/
95971   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
95972   0, /*tp_doc*/
95973   __pyx_tp_traverse_6mpi4py_3MPI__p_msg_cco, /*tp_traverse*/
95974   __pyx_tp_clear_6mpi4py_3MPI__p_msg_cco, /*tp_clear*/
95975   0, /*tp_richcompare*/
95976   0, /*tp_weaklistoffset*/
95977   0, /*tp_iter*/
95978   0, /*tp_iternext*/
95979   __pyx_methods_6mpi4py_3MPI__p_msg_cco, /*tp_methods*/
95980   0, /*tp_members*/
95981   0, /*tp_getset*/
95982   0, /*tp_base*/
95983   0, /*tp_dict*/
95984   0, /*tp_descr_get*/
95985   0, /*tp_descr_set*/
95986   0, /*tp_dictoffset*/
95987   0, /*tp_init*/
95988   0, /*tp_alloc*/
95989   __pyx_tp_new_6mpi4py_3MPI__p_msg_cco, /*tp_new*/
95990   0, /*tp_free*/
95991   0, /*tp_is_gc*/
95992   0, /*tp_bases*/
95993   0, /*tp_mro*/
95994   0, /*tp_cache*/
95995   0, /*tp_subclasses*/
95996   0, /*tp_weaklist*/
95997   0, /*tp_del*/
95998   #if PY_VERSION_HEX >= 0x02060000
95999   0, /*tp_version_tag*/
96000   #endif
96001 };
96002 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_rma __pyx_vtable_6mpi4py_3MPI__p_msg_rma;
96003 
__pyx_tp_new_6mpi4py_3MPI__p_msg_rma(PyTypeObject * t,PyObject * a,PyObject * k)96004 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_msg_rma(PyTypeObject *t, PyObject *a, PyObject *k) {
96005   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *p;
96006   PyObject *o = (*t->tp_alloc)(t, 0);
96007   if (!o) return 0;
96008   p = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)o);
96009   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_msg_rma;
96010   p->_origin = Py_None; Py_INCREF(Py_None);
96011   p->_target = Py_None; Py_INCREF(Py_None);
96012   if (__pyx_pf_6mpi4py_3MPI_10_p_msg_rma___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
96013     Py_DECREF(o); o = 0;
96014   }
96015   return o;
96016 }
96017 
__pyx_tp_dealloc_6mpi4py_3MPI__p_msg_rma(PyObject * o)96018 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_rma(PyObject *o) {
96019   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)o;
96020   Py_XDECREF(p->_origin);
96021   Py_XDECREF(p->_target);
96022   (*Py_TYPE(o)->tp_free)(o);
96023 }
96024 
__pyx_tp_traverse_6mpi4py_3MPI__p_msg_rma(PyObject * o,visitproc v,void * a)96025 static int __pyx_tp_traverse_6mpi4py_3MPI__p_msg_rma(PyObject *o, visitproc v, void *a) {
96026   int e;
96027   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)o;
96028   if (p->_origin) {
96029     e = (*v)(p->_origin, a); if (e) return e;
96030   }
96031   if (p->_target) {
96032     e = (*v)(p->_target, a); if (e) return e;
96033   }
96034   return 0;
96035 }
96036 
__pyx_tp_clear_6mpi4py_3MPI__p_msg_rma(PyObject * o)96037 static int __pyx_tp_clear_6mpi4py_3MPI__p_msg_rma(PyObject *o) {
96038   struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *)o;
96039   PyObject* tmp;
96040   tmp = ((PyObject*)p->_origin);
96041   p->_origin = Py_None; Py_INCREF(Py_None);
96042   Py_XDECREF(tmp);
96043   tmp = ((PyObject*)p->_target);
96044   p->_target = Py_None; Py_INCREF(Py_None);
96045   Py_XDECREF(tmp);
96046   return 0;
96047 }
96048 
96049 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_msg_rma[] = {
96050   {0, 0, 0, 0}
96051 };
96052 
96053 static PyNumberMethods __pyx_tp_as_number__p_msg_rma = {
96054   0, /*nb_add*/
96055   0, /*nb_subtract*/
96056   0, /*nb_multiply*/
96057   #if PY_MAJOR_VERSION < 3
96058   0, /*nb_divide*/
96059   #endif
96060   0, /*nb_remainder*/
96061   0, /*nb_divmod*/
96062   0, /*nb_power*/
96063   0, /*nb_negative*/
96064   0, /*nb_positive*/
96065   0, /*nb_absolute*/
96066   0, /*nb_nonzero*/
96067   0, /*nb_invert*/
96068   0, /*nb_lshift*/
96069   0, /*nb_rshift*/
96070   0, /*nb_and*/
96071   0, /*nb_xor*/
96072   0, /*nb_or*/
96073   #if PY_MAJOR_VERSION < 3
96074   0, /*nb_coerce*/
96075   #endif
96076   0, /*nb_int*/
96077   #if PY_MAJOR_VERSION < 3
96078   0, /*nb_long*/
96079   #else
96080   0, /*reserved*/
96081   #endif
96082   0, /*nb_float*/
96083   #if PY_MAJOR_VERSION < 3
96084   0, /*nb_oct*/
96085   #endif
96086   #if PY_MAJOR_VERSION < 3
96087   0, /*nb_hex*/
96088   #endif
96089   0, /*nb_inplace_add*/
96090   0, /*nb_inplace_subtract*/
96091   0, /*nb_inplace_multiply*/
96092   #if PY_MAJOR_VERSION < 3
96093   0, /*nb_inplace_divide*/
96094   #endif
96095   0, /*nb_inplace_remainder*/
96096   0, /*nb_inplace_power*/
96097   0, /*nb_inplace_lshift*/
96098   0, /*nb_inplace_rshift*/
96099   0, /*nb_inplace_and*/
96100   0, /*nb_inplace_xor*/
96101   0, /*nb_inplace_or*/
96102   0, /*nb_floor_divide*/
96103   0, /*nb_true_divide*/
96104   0, /*nb_inplace_floor_divide*/
96105   0, /*nb_inplace_true_divide*/
96106   #if PY_VERSION_HEX >= 0x02050000
96107   0, /*nb_index*/
96108   #endif
96109 };
96110 
96111 static PySequenceMethods __pyx_tp_as_sequence__p_msg_rma = {
96112   0, /*sq_length*/
96113   0, /*sq_concat*/
96114   0, /*sq_repeat*/
96115   0, /*sq_item*/
96116   0, /*sq_slice*/
96117   0, /*sq_ass_item*/
96118   0, /*sq_ass_slice*/
96119   0, /*sq_contains*/
96120   0, /*sq_inplace_concat*/
96121   0, /*sq_inplace_repeat*/
96122 };
96123 
96124 static PyMappingMethods __pyx_tp_as_mapping__p_msg_rma = {
96125   0, /*mp_length*/
96126   0, /*mp_subscript*/
96127   0, /*mp_ass_subscript*/
96128 };
96129 
96130 static PyBufferProcs __pyx_tp_as_buffer__p_msg_rma = {
96131   #if PY_MAJOR_VERSION < 3
96132   0, /*bf_getreadbuffer*/
96133   #endif
96134   #if PY_MAJOR_VERSION < 3
96135   0, /*bf_getwritebuffer*/
96136   #endif
96137   #if PY_MAJOR_VERSION < 3
96138   0, /*bf_getsegcount*/
96139   #endif
96140   #if PY_MAJOR_VERSION < 3
96141   0, /*bf_getcharbuffer*/
96142   #endif
96143   #if PY_VERSION_HEX >= 0x02060000
96144   0, /*bf_getbuffer*/
96145   #endif
96146   #if PY_VERSION_HEX >= 0x02060000
96147   0, /*bf_releasebuffer*/
96148   #endif
96149 };
96150 
96151 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_msg_rma = {
96152   PyVarObject_HEAD_INIT(0, 0)
96153   __Pyx_NAMESTR("mpi4py.MPI._p_msg_rma"), /*tp_name*/
96154   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma), /*tp_basicsize*/
96155   0, /*tp_itemsize*/
96156   __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_rma, /*tp_dealloc*/
96157   0, /*tp_print*/
96158   0, /*tp_getattr*/
96159   0, /*tp_setattr*/
96160   #if PY_MAJOR_VERSION < 3
96161   0, /*tp_compare*/
96162   #else
96163   0, /*reserved*/
96164   #endif
96165   0, /*tp_repr*/
96166   &__pyx_tp_as_number__p_msg_rma, /*tp_as_number*/
96167   &__pyx_tp_as_sequence__p_msg_rma, /*tp_as_sequence*/
96168   &__pyx_tp_as_mapping__p_msg_rma, /*tp_as_mapping*/
96169   0, /*tp_hash*/
96170   0, /*tp_call*/
96171   0, /*tp_str*/
96172   0, /*tp_getattro*/
96173   0, /*tp_setattro*/
96174   &__pyx_tp_as_buffer__p_msg_rma, /*tp_as_buffer*/
96175   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
96176   0, /*tp_doc*/
96177   __pyx_tp_traverse_6mpi4py_3MPI__p_msg_rma, /*tp_traverse*/
96178   __pyx_tp_clear_6mpi4py_3MPI__p_msg_rma, /*tp_clear*/
96179   0, /*tp_richcompare*/
96180   0, /*tp_weaklistoffset*/
96181   0, /*tp_iter*/
96182   0, /*tp_iternext*/
96183   __pyx_methods_6mpi4py_3MPI__p_msg_rma, /*tp_methods*/
96184   0, /*tp_members*/
96185   0, /*tp_getset*/
96186   0, /*tp_base*/
96187   0, /*tp_dict*/
96188   0, /*tp_descr_get*/
96189   0, /*tp_descr_set*/
96190   0, /*tp_dictoffset*/
96191   0, /*tp_init*/
96192   0, /*tp_alloc*/
96193   __pyx_tp_new_6mpi4py_3MPI__p_msg_rma, /*tp_new*/
96194   0, /*tp_free*/
96195   0, /*tp_is_gc*/
96196   0, /*tp_bases*/
96197   0, /*tp_mro*/
96198   0, /*tp_cache*/
96199   0, /*tp_subclasses*/
96200   0, /*tp_weaklist*/
96201   0, /*tp_del*/
96202   #if PY_VERSION_HEX >= 0x02060000
96203   0, /*tp_version_tag*/
96204   #endif
96205 };
96206 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_msg_io __pyx_vtable_6mpi4py_3MPI__p_msg_io;
96207 
__pyx_tp_new_6mpi4py_3MPI__p_msg_io(PyTypeObject * t,PyObject * a,PyObject * k)96208 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_msg_io(PyTypeObject *t, PyObject *a, PyObject *k) {
96209   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *p;
96210   PyObject *o = (*t->tp_alloc)(t, 0);
96211   if (!o) return 0;
96212   p = ((struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)o);
96213   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_msg_io;
96214   p->_msg = Py_None; Py_INCREF(Py_None);
96215   if (__pyx_pf_6mpi4py_3MPI_9_p_msg_io___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
96216     Py_DECREF(o); o = 0;
96217   }
96218   return o;
96219 }
96220 
__pyx_tp_dealloc_6mpi4py_3MPI__p_msg_io(PyObject * o)96221 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_io(PyObject *o) {
96222   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)o;
96223   Py_XDECREF(p->_msg);
96224   (*Py_TYPE(o)->tp_free)(o);
96225 }
96226 
__pyx_tp_traverse_6mpi4py_3MPI__p_msg_io(PyObject * o,visitproc v,void * a)96227 static int __pyx_tp_traverse_6mpi4py_3MPI__p_msg_io(PyObject *o, visitproc v, void *a) {
96228   int e;
96229   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)o;
96230   if (p->_msg) {
96231     e = (*v)(p->_msg, a); if (e) return e;
96232   }
96233   return 0;
96234 }
96235 
__pyx_tp_clear_6mpi4py_3MPI__p_msg_io(PyObject * o)96236 static int __pyx_tp_clear_6mpi4py_3MPI__p_msg_io(PyObject *o) {
96237   struct __pyx_obj_6mpi4py_3MPI__p_msg_io *p = (struct __pyx_obj_6mpi4py_3MPI__p_msg_io *)o;
96238   PyObject* tmp;
96239   tmp = ((PyObject*)p->_msg);
96240   p->_msg = Py_None; Py_INCREF(Py_None);
96241   Py_XDECREF(tmp);
96242   return 0;
96243 }
96244 
96245 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_msg_io[] = {
96246   {0, 0, 0, 0}
96247 };
96248 
96249 static PyNumberMethods __pyx_tp_as_number__p_msg_io = {
96250   0, /*nb_add*/
96251   0, /*nb_subtract*/
96252   0, /*nb_multiply*/
96253   #if PY_MAJOR_VERSION < 3
96254   0, /*nb_divide*/
96255   #endif
96256   0, /*nb_remainder*/
96257   0, /*nb_divmod*/
96258   0, /*nb_power*/
96259   0, /*nb_negative*/
96260   0, /*nb_positive*/
96261   0, /*nb_absolute*/
96262   0, /*nb_nonzero*/
96263   0, /*nb_invert*/
96264   0, /*nb_lshift*/
96265   0, /*nb_rshift*/
96266   0, /*nb_and*/
96267   0, /*nb_xor*/
96268   0, /*nb_or*/
96269   #if PY_MAJOR_VERSION < 3
96270   0, /*nb_coerce*/
96271   #endif
96272   0, /*nb_int*/
96273   #if PY_MAJOR_VERSION < 3
96274   0, /*nb_long*/
96275   #else
96276   0, /*reserved*/
96277   #endif
96278   0, /*nb_float*/
96279   #if PY_MAJOR_VERSION < 3
96280   0, /*nb_oct*/
96281   #endif
96282   #if PY_MAJOR_VERSION < 3
96283   0, /*nb_hex*/
96284   #endif
96285   0, /*nb_inplace_add*/
96286   0, /*nb_inplace_subtract*/
96287   0, /*nb_inplace_multiply*/
96288   #if PY_MAJOR_VERSION < 3
96289   0, /*nb_inplace_divide*/
96290   #endif
96291   0, /*nb_inplace_remainder*/
96292   0, /*nb_inplace_power*/
96293   0, /*nb_inplace_lshift*/
96294   0, /*nb_inplace_rshift*/
96295   0, /*nb_inplace_and*/
96296   0, /*nb_inplace_xor*/
96297   0, /*nb_inplace_or*/
96298   0, /*nb_floor_divide*/
96299   0, /*nb_true_divide*/
96300   0, /*nb_inplace_floor_divide*/
96301   0, /*nb_inplace_true_divide*/
96302   #if PY_VERSION_HEX >= 0x02050000
96303   0, /*nb_index*/
96304   #endif
96305 };
96306 
96307 static PySequenceMethods __pyx_tp_as_sequence__p_msg_io = {
96308   0, /*sq_length*/
96309   0, /*sq_concat*/
96310   0, /*sq_repeat*/
96311   0, /*sq_item*/
96312   0, /*sq_slice*/
96313   0, /*sq_ass_item*/
96314   0, /*sq_ass_slice*/
96315   0, /*sq_contains*/
96316   0, /*sq_inplace_concat*/
96317   0, /*sq_inplace_repeat*/
96318 };
96319 
96320 static PyMappingMethods __pyx_tp_as_mapping__p_msg_io = {
96321   0, /*mp_length*/
96322   0, /*mp_subscript*/
96323   0, /*mp_ass_subscript*/
96324 };
96325 
96326 static PyBufferProcs __pyx_tp_as_buffer__p_msg_io = {
96327   #if PY_MAJOR_VERSION < 3
96328   0, /*bf_getreadbuffer*/
96329   #endif
96330   #if PY_MAJOR_VERSION < 3
96331   0, /*bf_getwritebuffer*/
96332   #endif
96333   #if PY_MAJOR_VERSION < 3
96334   0, /*bf_getsegcount*/
96335   #endif
96336   #if PY_MAJOR_VERSION < 3
96337   0, /*bf_getcharbuffer*/
96338   #endif
96339   #if PY_VERSION_HEX >= 0x02060000
96340   0, /*bf_getbuffer*/
96341   #endif
96342   #if PY_VERSION_HEX >= 0x02060000
96343   0, /*bf_releasebuffer*/
96344   #endif
96345 };
96346 
96347 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_msg_io = {
96348   PyVarObject_HEAD_INIT(0, 0)
96349   __Pyx_NAMESTR("mpi4py.MPI._p_msg_io"), /*tp_name*/
96350   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_msg_io), /*tp_basicsize*/
96351   0, /*tp_itemsize*/
96352   __pyx_tp_dealloc_6mpi4py_3MPI__p_msg_io, /*tp_dealloc*/
96353   0, /*tp_print*/
96354   0, /*tp_getattr*/
96355   0, /*tp_setattr*/
96356   #if PY_MAJOR_VERSION < 3
96357   0, /*tp_compare*/
96358   #else
96359   0, /*reserved*/
96360   #endif
96361   0, /*tp_repr*/
96362   &__pyx_tp_as_number__p_msg_io, /*tp_as_number*/
96363   &__pyx_tp_as_sequence__p_msg_io, /*tp_as_sequence*/
96364   &__pyx_tp_as_mapping__p_msg_io, /*tp_as_mapping*/
96365   0, /*tp_hash*/
96366   0, /*tp_call*/
96367   0, /*tp_str*/
96368   0, /*tp_getattro*/
96369   0, /*tp_setattro*/
96370   &__pyx_tp_as_buffer__p_msg_io, /*tp_as_buffer*/
96371   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
96372   0, /*tp_doc*/
96373   __pyx_tp_traverse_6mpi4py_3MPI__p_msg_io, /*tp_traverse*/
96374   __pyx_tp_clear_6mpi4py_3MPI__p_msg_io, /*tp_clear*/
96375   0, /*tp_richcompare*/
96376   0, /*tp_weaklistoffset*/
96377   0, /*tp_iter*/
96378   0, /*tp_iternext*/
96379   __pyx_methods_6mpi4py_3MPI__p_msg_io, /*tp_methods*/
96380   0, /*tp_members*/
96381   0, /*tp_getset*/
96382   0, /*tp_base*/
96383   0, /*tp_dict*/
96384   0, /*tp_descr_get*/
96385   0, /*tp_descr_set*/
96386   0, /*tp_dictoffset*/
96387   0, /*tp_init*/
96388   0, /*tp_alloc*/
96389   __pyx_tp_new_6mpi4py_3MPI__p_msg_io, /*tp_new*/
96390   0, /*tp_free*/
96391   0, /*tp_is_gc*/
96392   0, /*tp_bases*/
96393   0, /*tp_mro*/
96394   0, /*tp_cache*/
96395   0, /*tp_subclasses*/
96396   0, /*tp_weaklist*/
96397   0, /*tp_del*/
96398   #if PY_VERSION_HEX >= 0x02060000
96399   0, /*tp_version_tag*/
96400   #endif
96401 };
96402 static struct __pyx_vtabstruct_6mpi4py_3MPI__p_Pickle __pyx_vtable_6mpi4py_3MPI__p_Pickle;
96403 
__pyx_tp_new_6mpi4py_3MPI__p_Pickle(PyTypeObject * t,PyObject * a,PyObject * k)96404 static PyObject *__pyx_tp_new_6mpi4py_3MPI__p_Pickle(PyTypeObject *t, PyObject *a, PyObject *k) {
96405   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *p;
96406   PyObject *o = (*t->tp_alloc)(t, 0);
96407   if (!o) return 0;
96408   p = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)o);
96409   p->__pyx_vtab = __pyx_vtabptr_6mpi4py_3MPI__p_Pickle;
96410   p->ob_dumps = Py_None; Py_INCREF(Py_None);
96411   p->ob_loads = Py_None; Py_INCREF(Py_None);
96412   p->ob_PROTOCOL = Py_None; Py_INCREF(Py_None);
96413   if (__pyx_pf_6mpi4py_3MPI_9_p_Pickle___cinit__(o, __pyx_empty_tuple, NULL) < 0) {
96414     Py_DECREF(o); o = 0;
96415   }
96416   return o;
96417 }
96418 
__pyx_tp_dealloc_6mpi4py_3MPI__p_Pickle(PyObject * o)96419 static void __pyx_tp_dealloc_6mpi4py_3MPI__p_Pickle(PyObject *o) {
96420   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *p = (struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)o;
96421   Py_XDECREF(p->ob_dumps);
96422   Py_XDECREF(p->ob_loads);
96423   Py_XDECREF(p->ob_PROTOCOL);
96424   (*Py_TYPE(o)->tp_free)(o);
96425 }
96426 
__pyx_tp_traverse_6mpi4py_3MPI__p_Pickle(PyObject * o,visitproc v,void * a)96427 static int __pyx_tp_traverse_6mpi4py_3MPI__p_Pickle(PyObject *o, visitproc v, void *a) {
96428   int e;
96429   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *p = (struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)o;
96430   if (p->ob_dumps) {
96431     e = (*v)(p->ob_dumps, a); if (e) return e;
96432   }
96433   if (p->ob_loads) {
96434     e = (*v)(p->ob_loads, a); if (e) return e;
96435   }
96436   if (p->ob_PROTOCOL) {
96437     e = (*v)(p->ob_PROTOCOL, a); if (e) return e;
96438   }
96439   return 0;
96440 }
96441 
__pyx_tp_clear_6mpi4py_3MPI__p_Pickle(PyObject * o)96442 static int __pyx_tp_clear_6mpi4py_3MPI__p_Pickle(PyObject *o) {
96443   struct __pyx_obj_6mpi4py_3MPI__p_Pickle *p = (struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)o;
96444   PyObject* tmp;
96445   tmp = ((PyObject*)p->ob_dumps);
96446   p->ob_dumps = Py_None; Py_INCREF(Py_None);
96447   Py_XDECREF(tmp);
96448   tmp = ((PyObject*)p->ob_loads);
96449   p->ob_loads = Py_None; Py_INCREF(Py_None);
96450   Py_XDECREF(tmp);
96451   tmp = ((PyObject*)p->ob_PROTOCOL);
96452   p->ob_PROTOCOL = Py_None; Py_INCREF(Py_None);
96453   Py_XDECREF(tmp);
96454   return 0;
96455 }
96456 
__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_dumps(PyObject * o,void * x)96457 static PyObject *__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_dumps(PyObject *o, void *x) {
96458   return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps___get__(o);
96459 }
96460 
__pyx_setprop_6mpi4py_3MPI_9_p_Pickle_dumps(PyObject * o,PyObject * v,void * x)96461 static int __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_dumps(PyObject *o, PyObject *v, void *x) {
96462   if (v) {
96463     return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5dumps_1__set__(o, v);
96464   }
96465   else {
96466     PyErr_SetString(PyExc_NotImplementedError, "__del__");
96467     return -1;
96468   }
96469 }
96470 
__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_loads(PyObject * o,void * x)96471 static PyObject *__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_loads(PyObject *o, void *x) {
96472   return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads___get__(o);
96473 }
96474 
__pyx_setprop_6mpi4py_3MPI_9_p_Pickle_loads(PyObject * o,PyObject * v,void * x)96475 static int __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_loads(PyObject *o, PyObject *v, void *x) {
96476   if (v) {
96477     return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_5loads_1__set__(o, v);
96478   }
96479   else {
96480     PyErr_SetString(PyExc_NotImplementedError, "__del__");
96481     return -1;
96482   }
96483 }
96484 
__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL(PyObject * o,void * x)96485 static PyObject *__pyx_getprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL(PyObject *o, void *x) {
96486   return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL___get__(o);
96487 }
96488 
__pyx_setprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL(PyObject * o,PyObject * v,void * x)96489 static int __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL(PyObject *o, PyObject *v, void *x) {
96490   if (v) {
96491     return __pyx_pf_6mpi4py_3MPI_9_p_Pickle_8PROTOCOL_1__set__(o, v);
96492   }
96493   else {
96494     PyErr_SetString(PyExc_NotImplementedError, "__del__");
96495     return -1;
96496   }
96497 }
96498 
96499 static PyMethodDef __pyx_methods_6mpi4py_3MPI__p_Pickle[] = {
96500   {0, 0, 0, 0}
96501 };
96502 
96503 static struct PyGetSetDef __pyx_getsets_6mpi4py_3MPI__p_Pickle[] = {
96504   {(char *)"dumps", __pyx_getprop_6mpi4py_3MPI_9_p_Pickle_dumps, __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_dumps, 0, 0},
96505   {(char *)"loads", __pyx_getprop_6mpi4py_3MPI_9_p_Pickle_loads, __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_loads, 0, 0},
96506   {(char *)"PROTOCOL", __pyx_getprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL, __pyx_setprop_6mpi4py_3MPI_9_p_Pickle_PROTOCOL, 0, 0},
96507   {0, 0, 0, 0, 0}
96508 };
96509 
96510 static PyNumberMethods __pyx_tp_as_number__p_Pickle = {
96511   0, /*nb_add*/
96512   0, /*nb_subtract*/
96513   0, /*nb_multiply*/
96514   #if PY_MAJOR_VERSION < 3
96515   0, /*nb_divide*/
96516   #endif
96517   0, /*nb_remainder*/
96518   0, /*nb_divmod*/
96519   0, /*nb_power*/
96520   0, /*nb_negative*/
96521   0, /*nb_positive*/
96522   0, /*nb_absolute*/
96523   0, /*nb_nonzero*/
96524   0, /*nb_invert*/
96525   0, /*nb_lshift*/
96526   0, /*nb_rshift*/
96527   0, /*nb_and*/
96528   0, /*nb_xor*/
96529   0, /*nb_or*/
96530   #if PY_MAJOR_VERSION < 3
96531   0, /*nb_coerce*/
96532   #endif
96533   0, /*nb_int*/
96534   #if PY_MAJOR_VERSION < 3
96535   0, /*nb_long*/
96536   #else
96537   0, /*reserved*/
96538   #endif
96539   0, /*nb_float*/
96540   #if PY_MAJOR_VERSION < 3
96541   0, /*nb_oct*/
96542   #endif
96543   #if PY_MAJOR_VERSION < 3
96544   0, /*nb_hex*/
96545   #endif
96546   0, /*nb_inplace_add*/
96547   0, /*nb_inplace_subtract*/
96548   0, /*nb_inplace_multiply*/
96549   #if PY_MAJOR_VERSION < 3
96550   0, /*nb_inplace_divide*/
96551   #endif
96552   0, /*nb_inplace_remainder*/
96553   0, /*nb_inplace_power*/
96554   0, /*nb_inplace_lshift*/
96555   0, /*nb_inplace_rshift*/
96556   0, /*nb_inplace_and*/
96557   0, /*nb_inplace_xor*/
96558   0, /*nb_inplace_or*/
96559   0, /*nb_floor_divide*/
96560   0, /*nb_true_divide*/
96561   0, /*nb_inplace_floor_divide*/
96562   0, /*nb_inplace_true_divide*/
96563   #if PY_VERSION_HEX >= 0x02050000
96564   0, /*nb_index*/
96565   #endif
96566 };
96567 
96568 static PySequenceMethods __pyx_tp_as_sequence__p_Pickle = {
96569   0, /*sq_length*/
96570   0, /*sq_concat*/
96571   0, /*sq_repeat*/
96572   0, /*sq_item*/
96573   0, /*sq_slice*/
96574   0, /*sq_ass_item*/
96575   0, /*sq_ass_slice*/
96576   0, /*sq_contains*/
96577   0, /*sq_inplace_concat*/
96578   0, /*sq_inplace_repeat*/
96579 };
96580 
96581 static PyMappingMethods __pyx_tp_as_mapping__p_Pickle = {
96582   0, /*mp_length*/
96583   0, /*mp_subscript*/
96584   0, /*mp_ass_subscript*/
96585 };
96586 
96587 static PyBufferProcs __pyx_tp_as_buffer__p_Pickle = {
96588   #if PY_MAJOR_VERSION < 3
96589   0, /*bf_getreadbuffer*/
96590   #endif
96591   #if PY_MAJOR_VERSION < 3
96592   0, /*bf_getwritebuffer*/
96593   #endif
96594   #if PY_MAJOR_VERSION < 3
96595   0, /*bf_getsegcount*/
96596   #endif
96597   #if PY_MAJOR_VERSION < 3
96598   0, /*bf_getcharbuffer*/
96599   #endif
96600   #if PY_VERSION_HEX >= 0x02060000
96601   0, /*bf_getbuffer*/
96602   #endif
96603   #if PY_VERSION_HEX >= 0x02060000
96604   0, /*bf_releasebuffer*/
96605   #endif
96606 };
96607 
96608 static PyTypeObject __pyx_type_6mpi4py_3MPI__p_Pickle = {
96609   PyVarObject_HEAD_INIT(0, 0)
96610   __Pyx_NAMESTR("mpi4py.MPI._p_Pickle"), /*tp_name*/
96611   sizeof(struct __pyx_obj_6mpi4py_3MPI__p_Pickle), /*tp_basicsize*/
96612   0, /*tp_itemsize*/
96613   __pyx_tp_dealloc_6mpi4py_3MPI__p_Pickle, /*tp_dealloc*/
96614   0, /*tp_print*/
96615   0, /*tp_getattr*/
96616   0, /*tp_setattr*/
96617   #if PY_MAJOR_VERSION < 3
96618   0, /*tp_compare*/
96619   #else
96620   0, /*reserved*/
96621   #endif
96622   0, /*tp_repr*/
96623   &__pyx_tp_as_number__p_Pickle, /*tp_as_number*/
96624   &__pyx_tp_as_sequence__p_Pickle, /*tp_as_sequence*/
96625   &__pyx_tp_as_mapping__p_Pickle, /*tp_as_mapping*/
96626   0, /*tp_hash*/
96627   0, /*tp_call*/
96628   0, /*tp_str*/
96629   0, /*tp_getattro*/
96630   0, /*tp_setattro*/
96631   &__pyx_tp_as_buffer__p_Pickle, /*tp_as_buffer*/
96632   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
96633   0, /*tp_doc*/
96634   __pyx_tp_traverse_6mpi4py_3MPI__p_Pickle, /*tp_traverse*/
96635   __pyx_tp_clear_6mpi4py_3MPI__p_Pickle, /*tp_clear*/
96636   0, /*tp_richcompare*/
96637   0, /*tp_weaklistoffset*/
96638   0, /*tp_iter*/
96639   0, /*tp_iternext*/
96640   __pyx_methods_6mpi4py_3MPI__p_Pickle, /*tp_methods*/
96641   0, /*tp_members*/
96642   __pyx_getsets_6mpi4py_3MPI__p_Pickle, /*tp_getset*/
96643   0, /*tp_base*/
96644   0, /*tp_dict*/
96645   0, /*tp_descr_get*/
96646   0, /*tp_descr_set*/
96647   0, /*tp_dictoffset*/
96648   0, /*tp_init*/
96649   0, /*tp_alloc*/
96650   __pyx_tp_new_6mpi4py_3MPI__p_Pickle, /*tp_new*/
96651   0, /*tp_free*/
96652   0, /*tp_is_gc*/
96653   0, /*tp_bases*/
96654   0, /*tp_mro*/
96655   0, /*tp_cache*/
96656   0, /*tp_subclasses*/
96657   0, /*tp_weaklist*/
96658   0, /*tp_del*/
96659   #if PY_VERSION_HEX >= 0x02060000
96660   0, /*tp_version_tag*/
96661   #endif
96662 };
96663 
96664 static PyMethodDef __pyx_methods[] = {
96665   {0, 0, 0, 0}
96666 };
96667 
96668 #if PY_MAJOR_VERSION >= 3
96669 static struct PyModuleDef __pyx_moduledef = {
96670     PyModuleDef_HEAD_INIT,
96671     __Pyx_NAMESTR("MPI"),
96672     0, /* m_doc */
96673     -1, /* m_size */
96674     __pyx_methods /* m_methods */,
96675     NULL, /* m_reload */
96676     NULL, /* m_traverse */
96677     NULL, /* m_clear */
96678     NULL /* m_free */
96679 };
96680 #endif
96681 
96682 static __Pyx_StringTabEntry __pyx_string_tab[] = {
96683   {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
96684   {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0},
96685   {&__pyx_kp_s_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 0, 1, 0},
96686   {&__pyx_kp_s_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 0, 1, 0},
96687   {&__pyx_n_s_148, __pyx_k_148, sizeof(__pyx_k_148), 0, 0, 1, 1},
96688   {&__pyx_kp_s_149, __pyx_k_149, sizeof(__pyx_k_149), 0, 0, 1, 0},
96689   {&__pyx_kp_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 0},
96690   {&__pyx_kp_s_150, __pyx_k_150, sizeof(__pyx_k_150), 0, 0, 1, 0},
96691   {&__pyx_kp_s_151, __pyx_k_151, sizeof(__pyx_k_151), 0, 0, 1, 0},
96692   {&__pyx_kp_s_152, __pyx_k_152, sizeof(__pyx_k_152), 0, 0, 1, 0},
96693   {&__pyx_n_s_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 0, 1, 1},
96694   {&__pyx_n_s_154, __pyx_k_154, sizeof(__pyx_k_154), 0, 0, 1, 1},
96695   {&__pyx_n_s_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 0, 1, 1},
96696   {&__pyx_n_s_156, __pyx_k_156, sizeof(__pyx_k_156), 0, 0, 1, 1},
96697   {&__pyx_n_s_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 0, 1, 1},
96698   {&__pyx_n_s_158, __pyx_k_158, sizeof(__pyx_k_158), 0, 0, 1, 1},
96699   {&__pyx_n_s_159, __pyx_k_159, sizeof(__pyx_k_159), 0, 0, 1, 1},
96700   {&__pyx_n_s_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 0, 1, 1},
96701   {&__pyx_n_s_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 0, 1, 1},
96702   {&__pyx_kp_s_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 0, 1, 0},
96703   {&__pyx_n_s_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 0, 1, 1},
96704   {&__pyx_n_s_164, __pyx_k_164, sizeof(__pyx_k_164), 0, 0, 1, 1},
96705   {&__pyx_n_s_165, __pyx_k_165, sizeof(__pyx_k_165), 0, 0, 1, 1},
96706   {&__pyx_kp_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 0},
96707   {&__pyx_kp_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 0},
96708   {&__pyx_kp_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 0},
96709   {&__pyx_kp_s_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 0, 1, 0},
96710   {&__pyx_kp_s_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 0, 1, 0},
96711   {&__pyx_kp_s_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 1, 0},
96712   {&__pyx_kp_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 0},
96713   {&__pyx_kp_s_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 0, 1, 0},
96714   {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
96715   {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0},
96716   {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0},
96717   {&__pyx_kp_s_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 0, 1, 0},
96718   {&__pyx_kp_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 0},
96719   {&__pyx_kp_s_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 1, 0},
96720   {&__pyx_kp_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 0},
96721   {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0},
96722   {&__pyx_kp_s_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 0, 1, 0},
96723   {&__pyx_kp_s_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 0, 1, 0},
96724   {&__pyx_kp_s_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 0, 1, 0},
96725   {&__pyx_kp_s_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 0, 1, 0},
96726   {&__pyx_kp_s_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 0, 1, 0},
96727   {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0},
96728   {&__pyx_kp_b_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 0, 0, 0},
96729   {&__pyx_kp_s_53, __pyx_k_53, sizeof(__pyx_k_53), 0, 0, 1, 0},
96730   {&__pyx_kp_s_54, __pyx_k_54, sizeof(__pyx_k_54), 0, 0, 1, 0},
96731   {&__pyx_kp_s_55, __pyx_k_55, sizeof(__pyx_k_55), 0, 0, 1, 0},
96732   {&__pyx_kp_s_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 0, 1, 0},
96733   {&__pyx_kp_s_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 0, 1, 0},
96734   {&__pyx_kp_s_77, __pyx_k_77, sizeof(__pyx_k_77), 0, 0, 1, 0},
96735   {&__pyx_kp_s_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 1, 0},
96736   {&__pyx_kp_s_89, __pyx_k_89, sizeof(__pyx_k_89), 0, 0, 1, 0},
96737   {&__pyx_kp_s_91, __pyx_k_91, sizeof(__pyx_k_91), 0, 0, 1, 0},
96738   {&__pyx_kp_s_93, __pyx_k_93, sizeof(__pyx_k_93), 0, 0, 1, 0},
96739   {&__pyx_kp_s_95, __pyx_k_95, sizeof(__pyx_k_95), 0, 0, 1, 0},
96740   {&__pyx_n_s__AINT, __pyx_k__AINT, sizeof(__pyx_k__AINT), 0, 0, 1, 1},
96741   {&__pyx_n_s__ANY_SOURCE, __pyx_k__ANY_SOURCE, sizeof(__pyx_k__ANY_SOURCE), 0, 0, 1, 1},
96742   {&__pyx_n_s__ANY_TAG, __pyx_k__ANY_TAG, sizeof(__pyx_k__ANY_TAG), 0, 0, 1, 1},
96743   {&__pyx_n_s__APPNUM, __pyx_k__APPNUM, sizeof(__pyx_k__APPNUM), 0, 0, 1, 1},
96744   {&__pyx_n_s__Add_error_class, __pyx_k__Add_error_class, sizeof(__pyx_k__Add_error_class), 0, 0, 1, 1},
96745   {&__pyx_n_s__Add_error_code, __pyx_k__Add_error_code, sizeof(__pyx_k__Add_error_code), 0, 0, 1, 1},
96746   {&__pyx_n_s__Add_error_string, __pyx_k__Add_error_string, sizeof(__pyx_k__Add_error_string), 0, 0, 1, 1},
96747   {&__pyx_n_s__Alloc_mem, __pyx_k__Alloc_mem, sizeof(__pyx_k__Alloc_mem), 0, 0, 1, 1},
96748   {&__pyx_n_s__Attach_buffer, __pyx_k__Attach_buffer, sizeof(__pyx_k__Attach_buffer), 0, 0, 1, 1},
96749   {&__pyx_n_s__AttributeError, __pyx_k__AttributeError, sizeof(__pyx_k__AttributeError), 0, 0, 1, 1},
96750   {&__pyx_n_s__B, __pyx_k__B, sizeof(__pyx_k__B), 0, 0, 1, 1},
96751   {&__pyx_n_s__BAND, __pyx_k__BAND, sizeof(__pyx_k__BAND), 0, 0, 1, 1},
96752   {&__pyx_n_s__BOOL, __pyx_k__BOOL, sizeof(__pyx_k__BOOL), 0, 0, 1, 1},
96753   {&__pyx_n_s__BOR, __pyx_k__BOR, sizeof(__pyx_k__BOR), 0, 0, 1, 1},
96754   {&__pyx_n_s__BOTTOM, __pyx_k__BOTTOM, sizeof(__pyx_k__BOTTOM), 0, 0, 1, 1},
96755   {&__pyx_n_s__BSEND_OVERHEAD, __pyx_k__BSEND_OVERHEAD, sizeof(__pyx_k__BSEND_OVERHEAD), 0, 0, 1, 1},
96756   {&__pyx_n_s__BXOR, __pyx_k__BXOR, sizeof(__pyx_k__BXOR), 0, 0, 1, 1},
96757   {&__pyx_n_s__BYTE, __pyx_k__BYTE, sizeof(__pyx_k__BYTE), 0, 0, 1, 1},
96758   {&__pyx_n_s__CART, __pyx_k__CART, sizeof(__pyx_k__CART), 0, 0, 1, 1},
96759   {&__pyx_n_s__CHAR, __pyx_k__CHAR, sizeof(__pyx_k__CHAR), 0, 0, 1, 1},
96760   {&__pyx_n_s__CHARACTER, __pyx_k__CHARACTER, sizeof(__pyx_k__CHARACTER), 0, 0, 1, 1},
96761   {&__pyx_n_s__COMBINER_CONTIGUOUS, __pyx_k__COMBINER_CONTIGUOUS, sizeof(__pyx_k__COMBINER_CONTIGUOUS), 0, 0, 1, 1},
96762   {&__pyx_n_s__COMBINER_DARRAY, __pyx_k__COMBINER_DARRAY, sizeof(__pyx_k__COMBINER_DARRAY), 0, 0, 1, 1},
96763   {&__pyx_n_s__COMBINER_DUP, __pyx_k__COMBINER_DUP, sizeof(__pyx_k__COMBINER_DUP), 0, 0, 1, 1},
96764   {&__pyx_n_s__COMBINER_F90_REAL, __pyx_k__COMBINER_F90_REAL, sizeof(__pyx_k__COMBINER_F90_REAL), 0, 0, 1, 1},
96765   {&__pyx_n_s__COMBINER_HINDEXED, __pyx_k__COMBINER_HINDEXED, sizeof(__pyx_k__COMBINER_HINDEXED), 0, 0, 1, 1},
96766   {&__pyx_n_s__COMBINER_HVECTOR, __pyx_k__COMBINER_HVECTOR, sizeof(__pyx_k__COMBINER_HVECTOR), 0, 0, 1, 1},
96767   {&__pyx_n_s__COMBINER_INDEXED, __pyx_k__COMBINER_INDEXED, sizeof(__pyx_k__COMBINER_INDEXED), 0, 0, 1, 1},
96768   {&__pyx_n_s__COMBINER_NAMED, __pyx_k__COMBINER_NAMED, sizeof(__pyx_k__COMBINER_NAMED), 0, 0, 1, 1},
96769   {&__pyx_n_s__COMBINER_RESIZED, __pyx_k__COMBINER_RESIZED, sizeof(__pyx_k__COMBINER_RESIZED), 0, 0, 1, 1},
96770   {&__pyx_n_s__COMBINER_STRUCT, __pyx_k__COMBINER_STRUCT, sizeof(__pyx_k__COMBINER_STRUCT), 0, 0, 1, 1},
96771   {&__pyx_n_s__COMBINER_SUBARRAY, __pyx_k__COMBINER_SUBARRAY, sizeof(__pyx_k__COMBINER_SUBARRAY), 0, 0, 1, 1},
96772   {&__pyx_n_s__COMBINER_VECTOR, __pyx_k__COMBINER_VECTOR, sizeof(__pyx_k__COMBINER_VECTOR), 0, 0, 1, 1},
96773   {&__pyx_n_s__COMM_NULL, __pyx_k__COMM_NULL, sizeof(__pyx_k__COMM_NULL), 0, 0, 1, 1},
96774   {&__pyx_n_s__COMM_SELF, __pyx_k__COMM_SELF, sizeof(__pyx_k__COMM_SELF), 0, 0, 1, 1},
96775   {&__pyx_n_s__COMM_WORLD, __pyx_k__COMM_WORLD, sizeof(__pyx_k__COMM_WORLD), 0, 0, 1, 1},
96776   {&__pyx_n_s__COMPLEX, __pyx_k__COMPLEX, sizeof(__pyx_k__COMPLEX), 0, 0, 1, 1},
96777   {&__pyx_n_s__COMPLEX16, __pyx_k__COMPLEX16, sizeof(__pyx_k__COMPLEX16), 0, 0, 1, 1},
96778   {&__pyx_n_s__COMPLEX32, __pyx_k__COMPLEX32, sizeof(__pyx_k__COMPLEX32), 0, 0, 1, 1},
96779   {&__pyx_n_s__COMPLEX4, __pyx_k__COMPLEX4, sizeof(__pyx_k__COMPLEX4), 0, 0, 1, 1},
96780   {&__pyx_n_s__COMPLEX8, __pyx_k__COMPLEX8, sizeof(__pyx_k__COMPLEX8), 0, 0, 1, 1},
96781   {&__pyx_n_s__CONGRUENT, __pyx_k__CONGRUENT, sizeof(__pyx_k__CONGRUENT), 0, 0, 1, 1},
96782   {&__pyx_n_s__CONTIGUOUS, __pyx_k__CONTIGUOUS, sizeof(__pyx_k__CONTIGUOUS), 0, 0, 1, 1},
96783   {&__pyx_n_s__C_BOOL, __pyx_k__C_BOOL, sizeof(__pyx_k__C_BOOL), 0, 0, 1, 1},
96784   {&__pyx_n_s__C_COMPLEX, __pyx_k__C_COMPLEX, sizeof(__pyx_k__C_COMPLEX), 0, 0, 1, 1},
96785   {&__pyx_n_s__C_DOUBLE_COMPLEX, __pyx_k__C_DOUBLE_COMPLEX, sizeof(__pyx_k__C_DOUBLE_COMPLEX), 0, 0, 1, 1},
96786   {&__pyx_n_s__C_FLOAT_COMPLEX, __pyx_k__C_FLOAT_COMPLEX, sizeof(__pyx_k__C_FLOAT_COMPLEX), 0, 0, 1, 1},
96787   {&__pyx_n_s__Close_port, __pyx_k__Close_port, sizeof(__pyx_k__Close_port), 0, 0, 1, 1},
96788   {&__pyx_n_s__Compare, __pyx_k__Compare, sizeof(__pyx_k__Compare), 0, 0, 1, 1},
96789   {&__pyx_n_s__Compute_dims, __pyx_k__Compute_dims, sizeof(__pyx_k__Compute_dims), 0, 0, 1, 1},
96790   {&__pyx_n_s__Create, __pyx_k__Create, sizeof(__pyx_k__Create), 0, 0, 1, 1},
96791   {&__pyx_n_s__Create_dup, __pyx_k__Create_dup, sizeof(__pyx_k__Create_dup), 0, 0, 1, 1},
96792   {&__pyx_n_s__Create_f90_complex, __pyx_k__Create_f90_complex, sizeof(__pyx_k__Create_f90_complex), 0, 0, 1, 1},
96793   {&__pyx_n_s__Create_f90_integer, __pyx_k__Create_f90_integer, sizeof(__pyx_k__Create_f90_integer), 0, 0, 1, 1},
96794   {&__pyx_n_s__Create_f90_real, __pyx_k__Create_f90_real, sizeof(__pyx_k__Create_f90_real), 0, 0, 1, 1},
96795   {&__pyx_n_s__Create_keyval, __pyx_k__Create_keyval, sizeof(__pyx_k__Create_keyval), 0, 0, 1, 1},
96796   {&__pyx_n_s__Create_resized, __pyx_k__Create_resized, sizeof(__pyx_k__Create_resized), 0, 0, 1, 1},
96797   {&__pyx_n_s__Create_struct, __pyx_k__Create_struct, sizeof(__pyx_k__Create_struct), 0, 0, 1, 1},
96798   {&__pyx_n_s__D, __pyx_k__D, sizeof(__pyx_k__D), 0, 0, 1, 1},
96799   {&__pyx_n_s__DARRAY, __pyx_k__DARRAY, sizeof(__pyx_k__DARRAY), 0, 0, 1, 1},
96800   {&__pyx_n_s__DATATYPE_NULL, __pyx_k__DATATYPE_NULL, sizeof(__pyx_k__DATATYPE_NULL), 0, 0, 1, 1},
96801   {&__pyx_n_s__DISP_CUR, __pyx_k__DISP_CUR, sizeof(__pyx_k__DISP_CUR), 0, 0, 1, 1},
96802   {&__pyx_n_s__DISTRIBUTE_BLOCK, __pyx_k__DISTRIBUTE_BLOCK, sizeof(__pyx_k__DISTRIBUTE_BLOCK), 0, 0, 1, 1},
96803   {&__pyx_n_s__DISTRIBUTE_CYCLIC, __pyx_k__DISTRIBUTE_CYCLIC, sizeof(__pyx_k__DISTRIBUTE_CYCLIC), 0, 0, 1, 1},
96804   {&__pyx_n_s__DISTRIBUTE_NONE, __pyx_k__DISTRIBUTE_NONE, sizeof(__pyx_k__DISTRIBUTE_NONE), 0, 0, 1, 1},
96805   {&__pyx_n_s__DIST_GRAPH, __pyx_k__DIST_GRAPH, sizeof(__pyx_k__DIST_GRAPH), 0, 0, 1, 1},
96806   {&__pyx_n_s__DOUBLE, __pyx_k__DOUBLE, sizeof(__pyx_k__DOUBLE), 0, 0, 1, 1},
96807   {&__pyx_n_s__DOUBLE_COMPLEX, __pyx_k__DOUBLE_COMPLEX, sizeof(__pyx_k__DOUBLE_COMPLEX), 0, 0, 1, 1},
96808   {&__pyx_n_s__DOUBLE_INT, __pyx_k__DOUBLE_INT, sizeof(__pyx_k__DOUBLE_INT), 0, 0, 1, 1},
96809   {&__pyx_n_s__DOUBLE_PRECISION, __pyx_k__DOUBLE_PRECISION, sizeof(__pyx_k__DOUBLE_PRECISION), 0, 0, 1, 1},
96810   {&__pyx_n_s__DUP, __pyx_k__DUP, sizeof(__pyx_k__DUP), 0, 0, 1, 1},
96811   {&__pyx_n_s__Delete, __pyx_k__Delete, sizeof(__pyx_k__Delete), 0, 0, 1, 1},
96812   {&__pyx_n_s__Detach_buffer, __pyx_k__Detach_buffer, sizeof(__pyx_k__Detach_buffer), 0, 0, 1, 1},
96813   {&__pyx_n_s__Difference, __pyx_k__Difference, sizeof(__pyx_k__Difference), 0, 0, 1, 1},
96814   {&__pyx_n_s__Dup, __pyx_k__Dup, sizeof(__pyx_k__Dup), 0, 0, 1, 1},
96815   {&__pyx_n_s__ERRHANDLER_NULL, __pyx_k__ERRHANDLER_NULL, sizeof(__pyx_k__ERRHANDLER_NULL), 0, 0, 1, 1},
96816   {&__pyx_n_s__ERRORS_ARE_FATAL, __pyx_k__ERRORS_ARE_FATAL, sizeof(__pyx_k__ERRORS_ARE_FATAL), 0, 0, 1, 1},
96817   {&__pyx_n_s__ERRORS_RETURN, __pyx_k__ERRORS_RETURN, sizeof(__pyx_k__ERRORS_RETURN), 0, 0, 1, 1},
96818   {&__pyx_n_s__ERR_ACCESS, __pyx_k__ERR_ACCESS, sizeof(__pyx_k__ERR_ACCESS), 0, 0, 1, 1},
96819   {&__pyx_n_s__ERR_AMODE, __pyx_k__ERR_AMODE, sizeof(__pyx_k__ERR_AMODE), 0, 0, 1, 1},
96820   {&__pyx_n_s__ERR_ARG, __pyx_k__ERR_ARG, sizeof(__pyx_k__ERR_ARG), 0, 0, 1, 1},
96821   {&__pyx_n_s__ERR_ASSERT, __pyx_k__ERR_ASSERT, sizeof(__pyx_k__ERR_ASSERT), 0, 0, 1, 1},
96822   {&__pyx_n_s__ERR_BAD_FILE, __pyx_k__ERR_BAD_FILE, sizeof(__pyx_k__ERR_BAD_FILE), 0, 0, 1, 1},
96823   {&__pyx_n_s__ERR_BASE, __pyx_k__ERR_BASE, sizeof(__pyx_k__ERR_BASE), 0, 0, 1, 1},
96824   {&__pyx_n_s__ERR_BUFFER, __pyx_k__ERR_BUFFER, sizeof(__pyx_k__ERR_BUFFER), 0, 0, 1, 1},
96825   {&__pyx_n_s__ERR_COMM, __pyx_k__ERR_COMM, sizeof(__pyx_k__ERR_COMM), 0, 0, 1, 1},
96826   {&__pyx_n_s__ERR_CONVERSION, __pyx_k__ERR_CONVERSION, sizeof(__pyx_k__ERR_CONVERSION), 0, 0, 1, 1},
96827   {&__pyx_n_s__ERR_COUNT, __pyx_k__ERR_COUNT, sizeof(__pyx_k__ERR_COUNT), 0, 0, 1, 1},
96828   {&__pyx_n_s__ERR_DIMS, __pyx_k__ERR_DIMS, sizeof(__pyx_k__ERR_DIMS), 0, 0, 1, 1},
96829   {&__pyx_n_s__ERR_DISP, __pyx_k__ERR_DISP, sizeof(__pyx_k__ERR_DISP), 0, 0, 1, 1},
96830   {&__pyx_n_s__ERR_DUP_DATAREP, __pyx_k__ERR_DUP_DATAREP, sizeof(__pyx_k__ERR_DUP_DATAREP), 0, 0, 1, 1},
96831   {&__pyx_n_s__ERR_FILE, __pyx_k__ERR_FILE, sizeof(__pyx_k__ERR_FILE), 0, 0, 1, 1},
96832   {&__pyx_n_s__ERR_FILE_EXISTS, __pyx_k__ERR_FILE_EXISTS, sizeof(__pyx_k__ERR_FILE_EXISTS), 0, 0, 1, 1},
96833   {&__pyx_n_s__ERR_FILE_IN_USE, __pyx_k__ERR_FILE_IN_USE, sizeof(__pyx_k__ERR_FILE_IN_USE), 0, 0, 1, 1},
96834   {&__pyx_n_s__ERR_GROUP, __pyx_k__ERR_GROUP, sizeof(__pyx_k__ERR_GROUP), 0, 0, 1, 1},
96835   {&__pyx_n_s__ERR_INFO, __pyx_k__ERR_INFO, sizeof(__pyx_k__ERR_INFO), 0, 0, 1, 1},
96836   {&__pyx_n_s__ERR_INFO_KEY, __pyx_k__ERR_INFO_KEY, sizeof(__pyx_k__ERR_INFO_KEY), 0, 0, 1, 1},
96837   {&__pyx_n_s__ERR_INFO_NOKEY, __pyx_k__ERR_INFO_NOKEY, sizeof(__pyx_k__ERR_INFO_NOKEY), 0, 0, 1, 1},
96838   {&__pyx_n_s__ERR_INFO_VALUE, __pyx_k__ERR_INFO_VALUE, sizeof(__pyx_k__ERR_INFO_VALUE), 0, 0, 1, 1},
96839   {&__pyx_n_s__ERR_INTERN, __pyx_k__ERR_INTERN, sizeof(__pyx_k__ERR_INTERN), 0, 0, 1, 1},
96840   {&__pyx_n_s__ERR_IN_STATUS, __pyx_k__ERR_IN_STATUS, sizeof(__pyx_k__ERR_IN_STATUS), 0, 0, 1, 1},
96841   {&__pyx_n_s__ERR_IO, __pyx_k__ERR_IO, sizeof(__pyx_k__ERR_IO), 0, 0, 1, 1},
96842   {&__pyx_n_s__ERR_KEYVAL, __pyx_k__ERR_KEYVAL, sizeof(__pyx_k__ERR_KEYVAL), 0, 0, 1, 1},
96843   {&__pyx_n_s__ERR_LASTCODE, __pyx_k__ERR_LASTCODE, sizeof(__pyx_k__ERR_LASTCODE), 0, 0, 1, 1},
96844   {&__pyx_n_s__ERR_LOCKTYPE, __pyx_k__ERR_LOCKTYPE, sizeof(__pyx_k__ERR_LOCKTYPE), 0, 0, 1, 1},
96845   {&__pyx_n_s__ERR_NAME, __pyx_k__ERR_NAME, sizeof(__pyx_k__ERR_NAME), 0, 0, 1, 1},
96846   {&__pyx_n_s__ERR_NOT_SAME, __pyx_k__ERR_NOT_SAME, sizeof(__pyx_k__ERR_NOT_SAME), 0, 0, 1, 1},
96847   {&__pyx_n_s__ERR_NO_MEM, __pyx_k__ERR_NO_MEM, sizeof(__pyx_k__ERR_NO_MEM), 0, 0, 1, 1},
96848   {&__pyx_n_s__ERR_NO_SPACE, __pyx_k__ERR_NO_SPACE, sizeof(__pyx_k__ERR_NO_SPACE), 0, 0, 1, 1},
96849   {&__pyx_n_s__ERR_NO_SUCH_FILE, __pyx_k__ERR_NO_SUCH_FILE, sizeof(__pyx_k__ERR_NO_SUCH_FILE), 0, 0, 1, 1},
96850   {&__pyx_n_s__ERR_OP, __pyx_k__ERR_OP, sizeof(__pyx_k__ERR_OP), 0, 0, 1, 1},
96851   {&__pyx_n_s__ERR_OTHER, __pyx_k__ERR_OTHER, sizeof(__pyx_k__ERR_OTHER), 0, 0, 1, 1},
96852   {&__pyx_n_s__ERR_PENDING, __pyx_k__ERR_PENDING, sizeof(__pyx_k__ERR_PENDING), 0, 0, 1, 1},
96853   {&__pyx_n_s__ERR_PORT, __pyx_k__ERR_PORT, sizeof(__pyx_k__ERR_PORT), 0, 0, 1, 1},
96854   {&__pyx_n_s__ERR_QUOTA, __pyx_k__ERR_QUOTA, sizeof(__pyx_k__ERR_QUOTA), 0, 0, 1, 1},
96855   {&__pyx_n_s__ERR_RANK, __pyx_k__ERR_RANK, sizeof(__pyx_k__ERR_RANK), 0, 0, 1, 1},
96856   {&__pyx_n_s__ERR_READ_ONLY, __pyx_k__ERR_READ_ONLY, sizeof(__pyx_k__ERR_READ_ONLY), 0, 0, 1, 1},
96857   {&__pyx_n_s__ERR_REQUEST, __pyx_k__ERR_REQUEST, sizeof(__pyx_k__ERR_REQUEST), 0, 0, 1, 1},
96858   {&__pyx_n_s__ERR_RMA_CONFLICT, __pyx_k__ERR_RMA_CONFLICT, sizeof(__pyx_k__ERR_RMA_CONFLICT), 0, 0, 1, 1},
96859   {&__pyx_n_s__ERR_RMA_SYNC, __pyx_k__ERR_RMA_SYNC, sizeof(__pyx_k__ERR_RMA_SYNC), 0, 0, 1, 1},
96860   {&__pyx_n_s__ERR_ROOT, __pyx_k__ERR_ROOT, sizeof(__pyx_k__ERR_ROOT), 0, 0, 1, 1},
96861   {&__pyx_n_s__ERR_SERVICE, __pyx_k__ERR_SERVICE, sizeof(__pyx_k__ERR_SERVICE), 0, 0, 1, 1},
96862   {&__pyx_n_s__ERR_SIZE, __pyx_k__ERR_SIZE, sizeof(__pyx_k__ERR_SIZE), 0, 0, 1, 1},
96863   {&__pyx_n_s__ERR_SPAWN, __pyx_k__ERR_SPAWN, sizeof(__pyx_k__ERR_SPAWN), 0, 0, 1, 1},
96864   {&__pyx_n_s__ERR_TAG, __pyx_k__ERR_TAG, sizeof(__pyx_k__ERR_TAG), 0, 0, 1, 1},
96865   {&__pyx_n_s__ERR_TOPOLOGY, __pyx_k__ERR_TOPOLOGY, sizeof(__pyx_k__ERR_TOPOLOGY), 0, 0, 1, 1},
96866   {&__pyx_n_s__ERR_TRUNCATE, __pyx_k__ERR_TRUNCATE, sizeof(__pyx_k__ERR_TRUNCATE), 0, 0, 1, 1},
96867   {&__pyx_n_s__ERR_TYPE, __pyx_k__ERR_TYPE, sizeof(__pyx_k__ERR_TYPE), 0, 0, 1, 1},
96868   {&__pyx_n_s__ERR_UNKNOWN, __pyx_k__ERR_UNKNOWN, sizeof(__pyx_k__ERR_UNKNOWN), 0, 0, 1, 1},
96869   {&__pyx_n_s__ERR_WIN, __pyx_k__ERR_WIN, sizeof(__pyx_k__ERR_WIN), 0, 0, 1, 1},
96870   {&__pyx_n_s__Exception, __pyx_k__Exception, sizeof(__pyx_k__Exception), 0, 0, 1, 1},
96871   {&__pyx_n_s__F, __pyx_k__F, sizeof(__pyx_k__F), 0, 0, 1, 1},
96872   {&__pyx_n_s__F90_COMPLEX, __pyx_k__F90_COMPLEX, sizeof(__pyx_k__F90_COMPLEX), 0, 0, 1, 1},
96873   {&__pyx_n_s__F90_INTEGER, __pyx_k__F90_INTEGER, sizeof(__pyx_k__F90_INTEGER), 0, 0, 1, 1},
96874   {&__pyx_n_s__F90_REAL, __pyx_k__F90_REAL, sizeof(__pyx_k__F90_REAL), 0, 0, 1, 1},
96875   {&__pyx_n_s__FILE_NULL, __pyx_k__FILE_NULL, sizeof(__pyx_k__FILE_NULL), 0, 0, 1, 1},
96876   {&__pyx_n_s__FLOAT, __pyx_k__FLOAT, sizeof(__pyx_k__FLOAT), 0, 0, 1, 1},
96877   {&__pyx_n_s__FLOAT_INT, __pyx_k__FLOAT_INT, sizeof(__pyx_k__FLOAT_INT), 0, 0, 1, 1},
96878   {&__pyx_n_s__F_BOOL, __pyx_k__F_BOOL, sizeof(__pyx_k__F_BOOL), 0, 0, 1, 1},
96879   {&__pyx_n_s__F_COMPLEX, __pyx_k__F_COMPLEX, sizeof(__pyx_k__F_COMPLEX), 0, 0, 1, 1},
96880   {&__pyx_n_s__F_DOUBLE, __pyx_k__F_DOUBLE, sizeof(__pyx_k__F_DOUBLE), 0, 0, 1, 1},
96881   {&__pyx_n_s__F_DOUBLE_COMPLEX, __pyx_k__F_DOUBLE_COMPLEX, sizeof(__pyx_k__F_DOUBLE_COMPLEX), 0, 0, 1, 1},
96882   {&__pyx_n_s__F_FLOAT, __pyx_k__F_FLOAT, sizeof(__pyx_k__F_FLOAT), 0, 0, 1, 1},
96883   {&__pyx_n_s__F_FLOAT_COMPLEX, __pyx_k__F_FLOAT_COMPLEX, sizeof(__pyx_k__F_FLOAT_COMPLEX), 0, 0, 1, 1},
96884   {&__pyx_n_s__F_INT, __pyx_k__F_INT, sizeof(__pyx_k__F_INT), 0, 0, 1, 1},
96885   {&__pyx_n_s__Finalize, __pyx_k__Finalize, sizeof(__pyx_k__Finalize), 0, 0, 1, 1},
96886   {&__pyx_n_s__Free_keyval, __pyx_k__Free_keyval, sizeof(__pyx_k__Free_keyval), 0, 0, 1, 1},
96887   {&__pyx_n_s__Free_mem, __pyx_k__Free_mem, sizeof(__pyx_k__Free_mem), 0, 0, 1, 1},
96888   {&__pyx_n_s__G, __pyx_k__G, sizeof(__pyx_k__G), 0, 0, 1, 1},
96889   {&__pyx_n_s__GRAPH, __pyx_k__GRAPH, sizeof(__pyx_k__GRAPH), 0, 0, 1, 1},
96890   {&__pyx_n_s__GROUP_EMPTY, __pyx_k__GROUP_EMPTY, sizeof(__pyx_k__GROUP_EMPTY), 0, 0, 1, 1},
96891   {&__pyx_n_s__GROUP_NULL, __pyx_k__GROUP_NULL, sizeof(__pyx_k__GROUP_NULL), 0, 0, 1, 1},
96892   {&__pyx_n_s__Get, __pyx_k__Get, sizeof(__pyx_k__Get), 0, 0, 1, 1},
96893   {&__pyx_n_s__Get_address, __pyx_k__Get_address, sizeof(__pyx_k__Get_address), 0, 0, 1, 1},
96894   {&__pyx_n_s__Get_amode, __pyx_k__Get_amode, sizeof(__pyx_k__Get_amode), 0, 0, 1, 1},
96895   {&__pyx_n_s__Get_atomicity, __pyx_k__Get_atomicity, sizeof(__pyx_k__Get_atomicity), 0, 0, 1, 1},
96896   {&__pyx_n_s__Get_count, __pyx_k__Get_count, sizeof(__pyx_k__Get_count), 0, 0, 1, 1},
96897   {&__pyx_n_s__Get_dim, __pyx_k__Get_dim, sizeof(__pyx_k__Get_dim), 0, 0, 1, 1},
96898   {&__pyx_n_s__Get_error, __pyx_k__Get_error, sizeof(__pyx_k__Get_error), 0, 0, 1, 1},
96899   {&__pyx_n_s__Get_error_class, __pyx_k__Get_error_class, sizeof(__pyx_k__Get_error_class), 0, 0, 1, 1},
96900   {&__pyx_n_s__Get_error_code, __pyx_k__Get_error_code, sizeof(__pyx_k__Get_error_code), 0, 0, 1, 1},
96901   {&__pyx_n_s__Get_error_string, __pyx_k__Get_error_string, sizeof(__pyx_k__Get_error_string), 0, 0, 1, 1},
96902   {&__pyx_n_s__Get_group, __pyx_k__Get_group, sizeof(__pyx_k__Get_group), 0, 0, 1, 1},
96903   {&__pyx_n_s__Get_info, __pyx_k__Get_info, sizeof(__pyx_k__Get_info), 0, 0, 1, 1},
96904   {&__pyx_n_s__Get_name, __pyx_k__Get_name, sizeof(__pyx_k__Get_name), 0, 0, 1, 1},
96905   {&__pyx_n_s__Get_neighbors, __pyx_k__Get_neighbors, sizeof(__pyx_k__Get_neighbors), 0, 0, 1, 1},
96906   {&__pyx_n_s__Get_neighbors_count, __pyx_k__Get_neighbors_count, sizeof(__pyx_k__Get_neighbors_count), 0, 0, 1, 1},
96907   {&__pyx_n_s__Get_nkeys, __pyx_k__Get_nkeys, sizeof(__pyx_k__Get_nkeys), 0, 0, 1, 1},
96908   {&__pyx_n_s__Get_nthkey, __pyx_k__Get_nthkey, sizeof(__pyx_k__Get_nthkey), 0, 0, 1, 1},
96909   {&__pyx_n_s__Get_parent, __pyx_k__Get_parent, sizeof(__pyx_k__Get_parent), 0, 0, 1, 1},
96910   {&__pyx_n_s__Get_processor_name, __pyx_k__Get_processor_name, sizeof(__pyx_k__Get_processor_name), 0, 0, 1, 1},
96911   {&__pyx_n_s__Get_rank, __pyx_k__Get_rank, sizeof(__pyx_k__Get_rank), 0, 0, 1, 1},
96912   {&__pyx_n_s__Get_remote_group, __pyx_k__Get_remote_group, sizeof(__pyx_k__Get_remote_group), 0, 0, 1, 1},
96913   {&__pyx_n_s__Get_remote_size, __pyx_k__Get_remote_size, sizeof(__pyx_k__Get_remote_size), 0, 0, 1, 1},
96914   {&__pyx_n_s__Get_size, __pyx_k__Get_size, sizeof(__pyx_k__Get_size), 0, 0, 1, 1},
96915   {&__pyx_n_s__Get_source, __pyx_k__Get_source, sizeof(__pyx_k__Get_source), 0, 0, 1, 1},
96916   {&__pyx_n_s__Get_tag, __pyx_k__Get_tag, sizeof(__pyx_k__Get_tag), 0, 0, 1, 1},
96917   {&__pyx_n_s__Get_topo, __pyx_k__Get_topo, sizeof(__pyx_k__Get_topo), 0, 0, 1, 1},
96918   {&__pyx_n_s__Get_topology, __pyx_k__Get_topology, sizeof(__pyx_k__Get_topology), 0, 0, 1, 1},
96919   {&__pyx_n_s__Get_version, __pyx_k__Get_version, sizeof(__pyx_k__Get_version), 0, 0, 1, 1},
96920   {&__pyx_n_s__H, __pyx_k__H, sizeof(__pyx_k__H), 0, 0, 1, 1},
96921   {&__pyx_n_s__HIGHEST_PROTOCOL, __pyx_k__HIGHEST_PROTOCOL, sizeof(__pyx_k__HIGHEST_PROTOCOL), 0, 0, 1, 1},
96922   {&__pyx_n_s__HINDEXED, __pyx_k__HINDEXED, sizeof(__pyx_k__HINDEXED), 0, 0, 1, 1},
96923   {&__pyx_n_s__HOST, __pyx_k__HOST, sizeof(__pyx_k__HOST), 0, 0, 1, 1},
96924   {&__pyx_n_s__HVECTOR, __pyx_k__HVECTOR, sizeof(__pyx_k__HVECTOR), 0, 0, 1, 1},
96925   {&__pyx_n_s__I, __pyx_k__I, sizeof(__pyx_k__I), 0, 0, 1, 1},
96926   {&__pyx_n_s__IDENT, __pyx_k__IDENT, sizeof(__pyx_k__IDENT), 0, 0, 1, 1},
96927   {&__pyx_n_s__INDEXED, __pyx_k__INDEXED, sizeof(__pyx_k__INDEXED), 0, 0, 1, 1},
96928   {&__pyx_n_s__INDEXED_BLOCK, __pyx_k__INDEXED_BLOCK, sizeof(__pyx_k__INDEXED_BLOCK), 0, 0, 1, 1},
96929   {&__pyx_n_s__INFO_NULL, __pyx_k__INFO_NULL, sizeof(__pyx_k__INFO_NULL), 0, 0, 1, 1},
96930   {&__pyx_n_s__INT, __pyx_k__INT, sizeof(__pyx_k__INT), 0, 0, 1, 1},
96931   {&__pyx_n_s__INT16_T, __pyx_k__INT16_T, sizeof(__pyx_k__INT16_T), 0, 0, 1, 1},
96932   {&__pyx_n_s__INT32_T, __pyx_k__INT32_T, sizeof(__pyx_k__INT32_T), 0, 0, 1, 1},
96933   {&__pyx_n_s__INT64_T, __pyx_k__INT64_T, sizeof(__pyx_k__INT64_T), 0, 0, 1, 1},
96934   {&__pyx_n_s__INT8_T, __pyx_k__INT8_T, sizeof(__pyx_k__INT8_T), 0, 0, 1, 1},
96935   {&__pyx_n_s__INTEGER, __pyx_k__INTEGER, sizeof(__pyx_k__INTEGER), 0, 0, 1, 1},
96936   {&__pyx_n_s__INTEGER1, __pyx_k__INTEGER1, sizeof(__pyx_k__INTEGER1), 0, 0, 1, 1},
96937   {&__pyx_n_s__INTEGER16, __pyx_k__INTEGER16, sizeof(__pyx_k__INTEGER16), 0, 0, 1, 1},
96938   {&__pyx_n_s__INTEGER2, __pyx_k__INTEGER2, sizeof(__pyx_k__INTEGER2), 0, 0, 1, 1},
96939   {&__pyx_n_s__INTEGER4, __pyx_k__INTEGER4, sizeof(__pyx_k__INTEGER4), 0, 0, 1, 1},
96940   {&__pyx_n_s__INTEGER8, __pyx_k__INTEGER8, sizeof(__pyx_k__INTEGER8), 0, 0, 1, 1},
96941   {&__pyx_n_s__INT_INT, __pyx_k__INT_INT, sizeof(__pyx_k__INT_INT), 0, 0, 1, 1},
96942   {&__pyx_n_s__IN_PLACE, __pyx_k__IN_PLACE, sizeof(__pyx_k__IN_PLACE), 0, 0, 1, 1},
96943   {&__pyx_n_s__IO, __pyx_k__IO, sizeof(__pyx_k__IO), 0, 0, 1, 1},
96944   {&__pyx_n_s__ImportError, __pyx_k__ImportError, sizeof(__pyx_k__ImportError), 0, 0, 1, 1},
96945   {&__pyx_n_s__Init, __pyx_k__Init, sizeof(__pyx_k__Init), 0, 0, 1, 1},
96946   {&__pyx_n_s__Init_thread, __pyx_k__Init_thread, sizeof(__pyx_k__Init_thread), 0, 0, 1, 1},
96947   {&__pyx_n_s__Intersect, __pyx_k__Intersect, sizeof(__pyx_k__Intersect), 0, 0, 1, 1},
96948   {&__pyx_n_s__Is_cancelled, __pyx_k__Is_cancelled, sizeof(__pyx_k__Is_cancelled), 0, 0, 1, 1},
96949   {&__pyx_n_s__Is_commutative, __pyx_k__Is_commutative, sizeof(__pyx_k__Is_commutative), 0, 0, 1, 1},
96950   {&__pyx_n_s__Is_finalized, __pyx_k__Is_finalized, sizeof(__pyx_k__Is_finalized), 0, 0, 1, 1},
96951   {&__pyx_n_s__Is_initialized, __pyx_k__Is_initialized, sizeof(__pyx_k__Is_initialized), 0, 0, 1, 1},
96952   {&__pyx_n_s__Is_inter, __pyx_k__Is_inter, sizeof(__pyx_k__Is_inter), 0, 0, 1, 1},
96953   {&__pyx_n_s__Is_intra, __pyx_k__Is_intra, sizeof(__pyx_k__Is_intra), 0, 0, 1, 1},
96954   {&__pyx_n_s__Is_thread_main, __pyx_k__Is_thread_main, sizeof(__pyx_k__Is_thread_main), 0, 0, 1, 1},
96955   {&__pyx_n_s__Join, __pyx_k__Join, sizeof(__pyx_k__Join), 0, 0, 1, 1},
96956   {&__pyx_n_s__KEYVAL_INVALID, __pyx_k__KEYVAL_INVALID, sizeof(__pyx_k__KEYVAL_INVALID), 0, 0, 1, 1},
96957   {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1},
96958   {&__pyx_n_s__L, __pyx_k__L, sizeof(__pyx_k__L), 0, 0, 1, 1},
96959   {&__pyx_n_s__LAND, __pyx_k__LAND, sizeof(__pyx_k__LAND), 0, 0, 1, 1},
96960   {&__pyx_n_s__LASTUSEDCODE, __pyx_k__LASTUSEDCODE, sizeof(__pyx_k__LASTUSEDCODE), 0, 0, 1, 1},
96961   {&__pyx_n_s__LB, __pyx_k__LB, sizeof(__pyx_k__LB), 0, 0, 1, 1},
96962   {&__pyx_n_s__LOCK_EXCLUSIVE, __pyx_k__LOCK_EXCLUSIVE, sizeof(__pyx_k__LOCK_EXCLUSIVE), 0, 0, 1, 1},
96963   {&__pyx_n_s__LOCK_SHARED, __pyx_k__LOCK_SHARED, sizeof(__pyx_k__LOCK_SHARED), 0, 0, 1, 1},
96964   {&__pyx_n_s__LOGICAL, __pyx_k__LOGICAL, sizeof(__pyx_k__LOGICAL), 0, 0, 1, 1},
96965   {&__pyx_n_s__LOGICAL1, __pyx_k__LOGICAL1, sizeof(__pyx_k__LOGICAL1), 0, 0, 1, 1},
96966   {&__pyx_n_s__LOGICAL2, __pyx_k__LOGICAL2, sizeof(__pyx_k__LOGICAL2), 0, 0, 1, 1},
96967   {&__pyx_n_s__LOGICAL4, __pyx_k__LOGICAL4, sizeof(__pyx_k__LOGICAL4), 0, 0, 1, 1},
96968   {&__pyx_n_s__LOGICAL8, __pyx_k__LOGICAL8, sizeof(__pyx_k__LOGICAL8), 0, 0, 1, 1},
96969   {&__pyx_n_s__LONG, __pyx_k__LONG, sizeof(__pyx_k__LONG), 0, 0, 1, 1},
96970   {&__pyx_n_s__LONG_DOUBLE, __pyx_k__LONG_DOUBLE, sizeof(__pyx_k__LONG_DOUBLE), 0, 0, 1, 1},
96971   {&__pyx_n_s__LONG_DOUBLE_INT, __pyx_k__LONG_DOUBLE_INT, sizeof(__pyx_k__LONG_DOUBLE_INT), 0, 0, 1, 1},
96972   {&__pyx_n_s__LONG_INT, __pyx_k__LONG_INT, sizeof(__pyx_k__LONG_INT), 0, 0, 1, 1},
96973   {&__pyx_n_s__LONG_LONG, __pyx_k__LONG_LONG, sizeof(__pyx_k__LONG_LONG), 0, 0, 1, 1},
96974   {&__pyx_n_s__LOR, __pyx_k__LOR, sizeof(__pyx_k__LOR), 0, 0, 1, 1},
96975   {&__pyx_n_s__LXOR, __pyx_k__LXOR, sizeof(__pyx_k__LXOR), 0, 0, 1, 1},
96976   {&__pyx_n_s__Lookup_name, __pyx_k__Lookup_name, sizeof(__pyx_k__Lookup_name), 0, 0, 1, 1},
96977   {&__pyx_n_s__MAX, __pyx_k__MAX, sizeof(__pyx_k__MAX), 0, 0, 1, 1},
96978   {&__pyx_n_s__MAXLOC, __pyx_k__MAXLOC, sizeof(__pyx_k__MAXLOC), 0, 0, 1, 1},
96979   {&__pyx_n_s__MAX_DATAREP_STRING, __pyx_k__MAX_DATAREP_STRING, sizeof(__pyx_k__MAX_DATAREP_STRING), 0, 0, 1, 1},
96980   {&__pyx_n_s__MAX_ERROR_STRING, __pyx_k__MAX_ERROR_STRING, sizeof(__pyx_k__MAX_ERROR_STRING), 0, 0, 1, 1},
96981   {&__pyx_n_s__MAX_INFO_KEY, __pyx_k__MAX_INFO_KEY, sizeof(__pyx_k__MAX_INFO_KEY), 0, 0, 1, 1},
96982   {&__pyx_n_s__MAX_INFO_VAL, __pyx_k__MAX_INFO_VAL, sizeof(__pyx_k__MAX_INFO_VAL), 0, 0, 1, 1},
96983   {&__pyx_n_s__MAX_OBJECT_NAME, __pyx_k__MAX_OBJECT_NAME, sizeof(__pyx_k__MAX_OBJECT_NAME), 0, 0, 1, 1},
96984   {&__pyx_n_s__MAX_PORT_NAME, __pyx_k__MAX_PORT_NAME, sizeof(__pyx_k__MAX_PORT_NAME), 0, 0, 1, 1},
96985   {&__pyx_n_s__MAX_PROCESSOR_NAME, __pyx_k__MAX_PROCESSOR_NAME, sizeof(__pyx_k__MAX_PROCESSOR_NAME), 0, 0, 1, 1},
96986   {&__pyx_n_s__MIN, __pyx_k__MIN, sizeof(__pyx_k__MIN), 0, 0, 1, 1},
96987   {&__pyx_n_s__MINLOC, __pyx_k__MINLOC, sizeof(__pyx_k__MINLOC), 0, 0, 1, 1},
96988   {&__pyx_n_s__MODE_APPEND, __pyx_k__MODE_APPEND, sizeof(__pyx_k__MODE_APPEND), 0, 0, 1, 1},
96989   {&__pyx_n_s__MODE_CREATE, __pyx_k__MODE_CREATE, sizeof(__pyx_k__MODE_CREATE), 0, 0, 1, 1},
96990   {&__pyx_n_s__MODE_EXCL, __pyx_k__MODE_EXCL, sizeof(__pyx_k__MODE_EXCL), 0, 0, 1, 1},
96991   {&__pyx_n_s__MODE_NOCHECK, __pyx_k__MODE_NOCHECK, sizeof(__pyx_k__MODE_NOCHECK), 0, 0, 1, 1},
96992   {&__pyx_n_s__MODE_NOPRECEDE, __pyx_k__MODE_NOPRECEDE, sizeof(__pyx_k__MODE_NOPRECEDE), 0, 0, 1, 1},
96993   {&__pyx_n_s__MODE_NOPUT, __pyx_k__MODE_NOPUT, sizeof(__pyx_k__MODE_NOPUT), 0, 0, 1, 1},
96994   {&__pyx_n_s__MODE_NOSTORE, __pyx_k__MODE_NOSTORE, sizeof(__pyx_k__MODE_NOSTORE), 0, 0, 1, 1},
96995   {&__pyx_n_s__MODE_NOSUCCEED, __pyx_k__MODE_NOSUCCEED, sizeof(__pyx_k__MODE_NOSUCCEED), 0, 0, 1, 1},
96996   {&__pyx_n_s__MODE_RDONLY, __pyx_k__MODE_RDONLY, sizeof(__pyx_k__MODE_RDONLY), 0, 0, 1, 1},
96997   {&__pyx_n_s__MODE_RDWR, __pyx_k__MODE_RDWR, sizeof(__pyx_k__MODE_RDWR), 0, 0, 1, 1},
96998   {&__pyx_n_s__MODE_SEQUENTIAL, __pyx_k__MODE_SEQUENTIAL, sizeof(__pyx_k__MODE_SEQUENTIAL), 0, 0, 1, 1},
96999   {&__pyx_n_s__MODE_UNIQUE_OPEN, __pyx_k__MODE_UNIQUE_OPEN, sizeof(__pyx_k__MODE_UNIQUE_OPEN), 0, 0, 1, 1},
97000   {&__pyx_n_s__MODE_WRONLY, __pyx_k__MODE_WRONLY, sizeof(__pyx_k__MODE_WRONLY), 0, 0, 1, 1},
97001   {&__pyx_n_s__Match_size, __pyx_k__Match_size, sizeof(__pyx_k__Match_size), 0, 0, 1, 1},
97002   {&__pyx_n_s__NotImplemented, __pyx_k__NotImplemented, sizeof(__pyx_k__NotImplemented), 0, 0, 1, 1},
97003   {&__pyx_n_s__NotImplementedError, __pyx_k__NotImplementedError, sizeof(__pyx_k__NotImplementedError), 0, 0, 1, 1},
97004   {&__pyx_n_s__OFFSET, __pyx_k__OFFSET, sizeof(__pyx_k__OFFSET), 0, 0, 1, 1},
97005   {&__pyx_n_s__OP_NULL, __pyx_k__OP_NULL, sizeof(__pyx_k__OP_NULL), 0, 0, 1, 1},
97006   {&__pyx_n_s__ORDER_C, __pyx_k__ORDER_C, sizeof(__pyx_k__ORDER_C), 0, 0, 1, 1},
97007   {&__pyx_n_s__ORDER_F, __pyx_k__ORDER_F, sizeof(__pyx_k__ORDER_F), 0, 0, 1, 1},
97008   {&__pyx_n_s__ORDER_FORTRAN, __pyx_k__ORDER_FORTRAN, sizeof(__pyx_k__ORDER_FORTRAN), 0, 0, 1, 1},
97009   {&__pyx_n_s__Open, __pyx_k__Open, sizeof(__pyx_k__Open), 0, 0, 1, 1},
97010   {&__pyx_n_s__Open_port, __pyx_k__Open_port, sizeof(__pyx_k__Open_port), 0, 0, 1, 1},
97011   {&__pyx_n_s__PACKED, __pyx_k__PACKED, sizeof(__pyx_k__PACKED), 0, 0, 1, 1},
97012   {&__pyx_n_s__PROC_NULL, __pyx_k__PROC_NULL, sizeof(__pyx_k__PROC_NULL), 0, 0, 1, 1},
97013   {&__pyx_n_s__PROD, __pyx_k__PROD, sizeof(__pyx_k__PROD), 0, 0, 1, 1},
97014   {&__pyx_n_s__Pcontrol, __pyx_k__Pcontrol, sizeof(__pyx_k__Pcontrol), 0, 0, 1, 1},
97015   {&__pyx_n_s__Publish_name, __pyx_k__Publish_name, sizeof(__pyx_k__Publish_name), 0, 0, 1, 1},
97016   {&__pyx_n_s__Q, __pyx_k__Q, sizeof(__pyx_k__Q), 0, 0, 1, 1},
97017   {&__pyx_n_s__Query_thread, __pyx_k__Query_thread, sizeof(__pyx_k__Query_thread), 0, 0, 1, 1},
97018   {&__pyx_n_s__REAL, __pyx_k__REAL, sizeof(__pyx_k__REAL), 0, 0, 1, 1},
97019   {&__pyx_n_s__REAL16, __pyx_k__REAL16, sizeof(__pyx_k__REAL16), 0, 0, 1, 1},
97020   {&__pyx_n_s__REAL2, __pyx_k__REAL2, sizeof(__pyx_k__REAL2), 0, 0, 1, 1},
97021   {&__pyx_n_s__REAL4, __pyx_k__REAL4, sizeof(__pyx_k__REAL4), 0, 0, 1, 1},
97022   {&__pyx_n_s__REAL8, __pyx_k__REAL8, sizeof(__pyx_k__REAL8), 0, 0, 1, 1},
97023   {&__pyx_n_s__REPLACE, __pyx_k__REPLACE, sizeof(__pyx_k__REPLACE), 0, 0, 1, 1},
97024   {&__pyx_n_s__REQUEST_NULL, __pyx_k__REQUEST_NULL, sizeof(__pyx_k__REQUEST_NULL), 0, 0, 1, 1},
97025   {&__pyx_n_s__RESIZED, __pyx_k__RESIZED, sizeof(__pyx_k__RESIZED), 0, 0, 1, 1},
97026   {&__pyx_n_s__ROOT, __pyx_k__ROOT, sizeof(__pyx_k__ROOT), 0, 0, 1, 1},
97027   {&__pyx_n_s__Resized, __pyx_k__Resized, sizeof(__pyx_k__Resized), 0, 0, 1, 1},
97028   {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1},
97029   {&__pyx_n_s__SEEK_CUR, __pyx_k__SEEK_CUR, sizeof(__pyx_k__SEEK_CUR), 0, 0, 1, 1},
97030   {&__pyx_n_s__SEEK_END, __pyx_k__SEEK_END, sizeof(__pyx_k__SEEK_END), 0, 0, 1, 1},
97031   {&__pyx_n_s__SEEK_SET, __pyx_k__SEEK_SET, sizeof(__pyx_k__SEEK_SET), 0, 0, 1, 1},
97032   {&__pyx_n_s__SHORT, __pyx_k__SHORT, sizeof(__pyx_k__SHORT), 0, 0, 1, 1},
97033   {&__pyx_n_s__SHORT_INT, __pyx_k__SHORT_INT, sizeof(__pyx_k__SHORT_INT), 0, 0, 1, 1},
97034   {&__pyx_n_s__SIGNED_CHAR, __pyx_k__SIGNED_CHAR, sizeof(__pyx_k__SIGNED_CHAR), 0, 0, 1, 1},
97035   {&__pyx_n_s__SIGNED_INT, __pyx_k__SIGNED_INT, sizeof(__pyx_k__SIGNED_INT), 0, 0, 1, 1},
97036   {&__pyx_n_s__SIGNED_LONG, __pyx_k__SIGNED_LONG, sizeof(__pyx_k__SIGNED_LONG), 0, 0, 1, 1},
97037   {&__pyx_n_s__SIGNED_LONG_LONG, __pyx_k__SIGNED_LONG_LONG, sizeof(__pyx_k__SIGNED_LONG_LONG), 0, 0, 1, 1},
97038   {&__pyx_n_s__SIGNED_SHORT, __pyx_k__SIGNED_SHORT, sizeof(__pyx_k__SIGNED_SHORT), 0, 0, 1, 1},
97039   {&__pyx_n_s__SIMILAR, __pyx_k__SIMILAR, sizeof(__pyx_k__SIMILAR), 0, 0, 1, 1},
97040   {&__pyx_n_s__SINT16_T, __pyx_k__SINT16_T, sizeof(__pyx_k__SINT16_T), 0, 0, 1, 1},
97041   {&__pyx_n_s__SINT32_T, __pyx_k__SINT32_T, sizeof(__pyx_k__SINT32_T), 0, 0, 1, 1},
97042   {&__pyx_n_s__SINT64_T, __pyx_k__SINT64_T, sizeof(__pyx_k__SINT64_T), 0, 0, 1, 1},
97043   {&__pyx_n_s__SINT8_T, __pyx_k__SINT8_T, sizeof(__pyx_k__SINT8_T), 0, 0, 1, 1},
97044   {&__pyx_n_s__STRUCT, __pyx_k__STRUCT, sizeof(__pyx_k__STRUCT), 0, 0, 1, 1},
97045   {&__pyx_n_s__SUBARRAY, __pyx_k__SUBARRAY, sizeof(__pyx_k__SUBARRAY), 0, 0, 1, 1},
97046   {&__pyx_n_s__SUBVERSION, __pyx_k__SUBVERSION, sizeof(__pyx_k__SUBVERSION), 0, 0, 1, 1},
97047   {&__pyx_n_s__SUCCESS, __pyx_k__SUCCESS, sizeof(__pyx_k__SUCCESS), 0, 0, 1, 1},
97048   {&__pyx_n_s__SUM, __pyx_k__SUM, sizeof(__pyx_k__SUM), 0, 0, 1, 1},
97049   {&__pyx_n_s__Set, __pyx_k__Set, sizeof(__pyx_k__Set), 0, 0, 1, 1},
97050   {&__pyx_n_s__Set_atomicity, __pyx_k__Set_atomicity, sizeof(__pyx_k__Set_atomicity), 0, 0, 1, 1},
97051   {&__pyx_n_s__Set_cancelled, __pyx_k__Set_cancelled, sizeof(__pyx_k__Set_cancelled), 0, 0, 1, 1},
97052   {&__pyx_n_s__Set_error, __pyx_k__Set_error, sizeof(__pyx_k__Set_error), 0, 0, 1, 1},
97053   {&__pyx_n_s__Set_info, __pyx_k__Set_info, sizeof(__pyx_k__Set_info), 0, 0, 1, 1},
97054   {&__pyx_n_s__Set_name, __pyx_k__Set_name, sizeof(__pyx_k__Set_name), 0, 0, 1, 1},
97055   {&__pyx_n_s__Set_source, __pyx_k__Set_source, sizeof(__pyx_k__Set_source), 0, 0, 1, 1},
97056   {&__pyx_n_s__Set_tag, __pyx_k__Set_tag, sizeof(__pyx_k__Set_tag), 0, 0, 1, 1},
97057   {&__pyx_n_s__Start, __pyx_k__Start, sizeof(__pyx_k__Start), 0, 0, 1, 1},
97058   {&__pyx_n_s__Startall, __pyx_k__Startall, sizeof(__pyx_k__Startall), 0, 0, 1, 1},
97059   {&__pyx_n_s__StringIO, __pyx_k__StringIO, sizeof(__pyx_k__StringIO), 0, 0, 1, 1},
97060   {&__pyx_n_s__SystemError, __pyx_k__SystemError, sizeof(__pyx_k__SystemError), 0, 0, 1, 1},
97061   {&__pyx_n_s__TAG_UB, __pyx_k__TAG_UB, sizeof(__pyx_k__TAG_UB), 0, 0, 1, 1},
97062   {&__pyx_n_s__THREAD_FUNNELED, __pyx_k__THREAD_FUNNELED, sizeof(__pyx_k__THREAD_FUNNELED), 0, 0, 1, 1},
97063   {&__pyx_n_s__THREAD_MULTIPLE, __pyx_k__THREAD_MULTIPLE, sizeof(__pyx_k__THREAD_MULTIPLE), 0, 0, 1, 1},
97064   {&__pyx_n_s__THREAD_SERIALIZED, __pyx_k__THREAD_SERIALIZED, sizeof(__pyx_k__THREAD_SERIALIZED), 0, 0, 1, 1},
97065   {&__pyx_n_s__THREAD_SINGLE, __pyx_k__THREAD_SINGLE, sizeof(__pyx_k__THREAD_SINGLE), 0, 0, 1, 1},
97066   {&__pyx_n_s__TWOINT, __pyx_k__TWOINT, sizeof(__pyx_k__TWOINT), 0, 0, 1, 1},
97067   {&__pyx_n_s__TYPECLASS_COMPLEX, __pyx_k__TYPECLASS_COMPLEX, sizeof(__pyx_k__TYPECLASS_COMPLEX), 0, 0, 1, 1},
97068   {&__pyx_n_s__TYPECLASS_INTEGER, __pyx_k__TYPECLASS_INTEGER, sizeof(__pyx_k__TYPECLASS_INTEGER), 0, 0, 1, 1},
97069   {&__pyx_n_s__TYPECLASS_REAL, __pyx_k__TYPECLASS_REAL, sizeof(__pyx_k__TYPECLASS_REAL), 0, 0, 1, 1},
97070   {&__pyx_n_s__Testall, __pyx_k__Testall, sizeof(__pyx_k__Testall), 0, 0, 1, 1},
97071   {&__pyx_n_s__Testany, __pyx_k__Testany, sizeof(__pyx_k__Testany), 0, 0, 1, 1},
97072   {&__pyx_n_s__Testsome, __pyx_k__Testsome, sizeof(__pyx_k__Testsome), 0, 0, 1, 1},
97073   {&__pyx_n_s__Translate_ranks, __pyx_k__Translate_ranks, sizeof(__pyx_k__Translate_ranks), 0, 0, 1, 1},
97074   {&__pyx_n_s__TypeError, __pyx_k__TypeError, sizeof(__pyx_k__TypeError), 0, 0, 1, 1},
97075   {&__pyx_n_s__UB, __pyx_k__UB, sizeof(__pyx_k__UB), 0, 0, 1, 1},
97076   {&__pyx_n_s__UINT16_T, __pyx_k__UINT16_T, sizeof(__pyx_k__UINT16_T), 0, 0, 1, 1},
97077   {&__pyx_n_s__UINT32_T, __pyx_k__UINT32_T, sizeof(__pyx_k__UINT32_T), 0, 0, 1, 1},
97078   {&__pyx_n_s__UINT64_T, __pyx_k__UINT64_T, sizeof(__pyx_k__UINT64_T), 0, 0, 1, 1},
97079   {&__pyx_n_s__UINT8_T, __pyx_k__UINT8_T, sizeof(__pyx_k__UINT8_T), 0, 0, 1, 1},
97080   {&__pyx_n_s__UNDEFINED, __pyx_k__UNDEFINED, sizeof(__pyx_k__UNDEFINED), 0, 0, 1, 1},
97081   {&__pyx_n_s__UNEQUAL, __pyx_k__UNEQUAL, sizeof(__pyx_k__UNEQUAL), 0, 0, 1, 1},
97082   {&__pyx_n_s__UNIVERSE_SIZE, __pyx_k__UNIVERSE_SIZE, sizeof(__pyx_k__UNIVERSE_SIZE), 0, 0, 1, 1},
97083   {&__pyx_n_s__UNSIGNED, __pyx_k__UNSIGNED, sizeof(__pyx_k__UNSIGNED), 0, 0, 1, 1},
97084   {&__pyx_n_s__UNSIGNED_CHAR, __pyx_k__UNSIGNED_CHAR, sizeof(__pyx_k__UNSIGNED_CHAR), 0, 0, 1, 1},
97085   {&__pyx_n_s__UNSIGNED_INT, __pyx_k__UNSIGNED_INT, sizeof(__pyx_k__UNSIGNED_INT), 0, 0, 1, 1},
97086   {&__pyx_n_s__UNSIGNED_LONG, __pyx_k__UNSIGNED_LONG, sizeof(__pyx_k__UNSIGNED_LONG), 0, 0, 1, 1},
97087   {&__pyx_n_s__UNSIGNED_LONG_LONG, __pyx_k__UNSIGNED_LONG_LONG, sizeof(__pyx_k__UNSIGNED_LONG_LONG), 0, 0, 1, 1},
97088   {&__pyx_n_s__UNSIGNED_SHORT, __pyx_k__UNSIGNED_SHORT, sizeof(__pyx_k__UNSIGNED_SHORT), 0, 0, 1, 1},
97089   {&__pyx_n_s__Union, __pyx_k__Union, sizeof(__pyx_k__Union), 0, 0, 1, 1},
97090   {&__pyx_n_s__Unpublish_name, __pyx_k__Unpublish_name, sizeof(__pyx_k__Unpublish_name), 0, 0, 1, 1},
97091   {&__pyx_n_s__VECTOR, __pyx_k__VECTOR, sizeof(__pyx_k__VECTOR), 0, 0, 1, 1},
97092   {&__pyx_n_s__VERSION, __pyx_k__VERSION, sizeof(__pyx_k__VERSION), 0, 0, 1, 1},
97093   {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1},
97094   {&__pyx_n_s__WCHAR, __pyx_k__WCHAR, sizeof(__pyx_k__WCHAR), 0, 0, 1, 1},
97095   {&__pyx_n_s__WIN_BASE, __pyx_k__WIN_BASE, sizeof(__pyx_k__WIN_BASE), 0, 0, 1, 1},
97096   {&__pyx_n_s__WIN_DISP_UNIT, __pyx_k__WIN_DISP_UNIT, sizeof(__pyx_k__WIN_DISP_UNIT), 0, 0, 1, 1},
97097   {&__pyx_n_s__WIN_NULL, __pyx_k__WIN_NULL, sizeof(__pyx_k__WIN_NULL), 0, 0, 1, 1},
97098   {&__pyx_n_s__WIN_SIZE, __pyx_k__WIN_SIZE, sizeof(__pyx_k__WIN_SIZE), 0, 0, 1, 1},
97099   {&__pyx_n_s__WTIME_IS_GLOBAL, __pyx_k__WTIME_IS_GLOBAL, sizeof(__pyx_k__WTIME_IS_GLOBAL), 0, 0, 1, 1},
97100   {&__pyx_n_s__Waitall, __pyx_k__Waitall, sizeof(__pyx_k__Waitall), 0, 0, 1, 1},
97101   {&__pyx_n_s__Waitany, __pyx_k__Waitany, sizeof(__pyx_k__Waitany), 0, 0, 1, 1},
97102   {&__pyx_n_s__Waitsome, __pyx_k__Waitsome, sizeof(__pyx_k__Waitsome), 0, 0, 1, 1},
97103   {&__pyx_n_s__Wtick, __pyx_k__Wtick, sizeof(__pyx_k__Wtick), 0, 0, 1, 1},
97104   {&__pyx_n_s__Wtime, __pyx_k__Wtime, sizeof(__pyx_k__Wtime), 0, 0, 1, 1},
97105   {&__pyx_n_s__Zd, __pyx_k__Zd, sizeof(__pyx_k__Zd), 0, 0, 1, 1},
97106   {&__pyx_n_s__Zf, __pyx_k__Zf, sizeof(__pyx_k__Zf), 0, 0, 1, 1},
97107   {&__pyx_n_s__Zg, __pyx_k__Zg, sizeof(__pyx_k__Zg), 0, 0, 1, 1},
97108   {&__pyx_n_s____CTypeDict__, __pyx_k____CTypeDict__, sizeof(__pyx_k____CTypeDict__), 0, 0, 1, 1},
97109   {&__pyx_n_s____FTypeDict__, __pyx_k____FTypeDict__, sizeof(__pyx_k____FTypeDict__), 0, 0, 1, 1},
97110   {&__pyx_n_s____TypeDict__, __pyx_k____TypeDict__, sizeof(__pyx_k____TypeDict__), 0, 0, 1, 1},
97111   {&__pyx_n_s____bool__, __pyx_k____bool__, sizeof(__pyx_k____bool__), 0, 0, 1, 1},
97112   {&__pyx_n_s____call__, __pyx_k____call__, sizeof(__pyx_k____call__), 0, 0, 1, 1},
97113   {&__pyx_n_s____doc__, __pyx_k____doc__, sizeof(__pyx_k____doc__), 0, 0, 1, 1},
97114   {&__pyx_n_s____eq__, __pyx_k____eq__, sizeof(__pyx_k____eq__), 0, 0, 1, 1},
97115   {&__pyx_n_s____ge__, __pyx_k____ge__, sizeof(__pyx_k____ge__), 0, 0, 1, 1},
97116   {&__pyx_n_s____gt__, __pyx_k____gt__, sizeof(__pyx_k____gt__), 0, 0, 1, 1},
97117   {&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1},
97118   {&__pyx_n_s____int__, __pyx_k____int__, sizeof(__pyx_k____int__), 0, 0, 1, 1},
97119   {&__pyx_n_s____le__, __pyx_k____le__, sizeof(__pyx_k____le__), 0, 0, 1, 1},
97120   {&__pyx_n_s____lt__, __pyx_k____lt__, sizeof(__pyx_k____lt__), 0, 0, 1, 1},
97121   {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
97122   {&__pyx_n_s____ne__, __pyx_k____ne__, sizeof(__pyx_k____ne__), 0, 0, 1, 1},
97123   {&__pyx_n_s____repr__, __pyx_k____repr__, sizeof(__pyx_k____repr__), 0, 0, 1, 1},
97124   {&__pyx_n_s____str__, __pyx_k____str__, sizeof(__pyx_k____str__), 0, 0, 1, 1},
97125   {&__pyx_n_s___p_pickle, __pyx_k___p_pickle, sizeof(__pyx_k___p_pickle), 0, 0, 1, 1},
97126   {&__pyx_n_s__amode, __pyx_k__amode, sizeof(__pyx_k__amode), 0, 0, 1, 1},
97127   {&__pyx_n_s__arg, __pyx_k__arg, sizeof(__pyx_k__arg), 0, 0, 1, 1},
97128   {&__pyx_n_s__args, __pyx_k__args, sizeof(__pyx_k__args), 0, 0, 1, 1},
97129   {&__pyx_n_s__array, __pyx_k__array, sizeof(__pyx_k__array), 0, 0, 1, 1},
97130   {&__pyx_n_s__assertion, __pyx_k__assertion, sizeof(__pyx_k__assertion), 0, 0, 1, 1},
97131   {&__pyx_n_s__attrval, __pyx_k__attrval, sizeof(__pyx_k__attrval), 0, 0, 1, 1},
97132   {&__pyx_n_s__b, __pyx_k__b, sizeof(__pyx_k__b), 0, 0, 1, 1},
97133   {&__pyx_n_s__blocklength, __pyx_k__blocklength, sizeof(__pyx_k__blocklength), 0, 0, 1, 1},
97134   {&__pyx_n_s__blocklengths, __pyx_k__blocklengths, sizeof(__pyx_k__blocklengths), 0, 0, 1, 1},
97135   {&__pyx_n_s__buf, __pyx_k__buf, sizeof(__pyx_k__buf), 0, 0, 1, 1},
97136   {&__pyx_n_s__c, __pyx_k__c, sizeof(__pyx_k__c), 0, 0, 1, 1},
97137   {&__pyx_n_s__c16, __pyx_k__c16, sizeof(__pyx_k__c16), 0, 0, 1, 1},
97138   {&__pyx_n_s__c32, __pyx_k__c32, sizeof(__pyx_k__c32), 0, 0, 1, 1},
97139   {&__pyx_n_s__c4, __pyx_k__c4, sizeof(__pyx_k__c4), 0, 0, 1, 1},
97140   {&__pyx_n_s__c8, __pyx_k__c8, sizeof(__pyx_k__c8), 0, 0, 1, 1},
97141   {&__pyx_n_s__cPickle, __pyx_k__cPickle, sizeof(__pyx_k__cPickle), 0, 0, 1, 1},
97142   {&__pyx_n_s__cStringIO, __pyx_k__cStringIO, sizeof(__pyx_k__cStringIO), 0, 0, 1, 1},
97143   {&__pyx_n_s__cancel_fn, __pyx_k__cancel_fn, sizeof(__pyx_k__cancel_fn), 0, 0, 1, 1},
97144   {&__pyx_n_s__char, __pyx_k__char, sizeof(__pyx_k__char), 0, 0, 1, 1},
97145   {&__pyx_n_s__color, __pyx_k__color, sizeof(__pyx_k__color), 0, 0, 1, 1},
97146   {&__pyx_n_s__comm, __pyx_k__comm, sizeof(__pyx_k__comm), 0, 0, 1, 1},
97147   {&__pyx_n_s__comm1, __pyx_k__comm1, sizeof(__pyx_k__comm1), 0, 0, 1, 1},
97148   {&__pyx_n_s__comm2, __pyx_k__comm2, sizeof(__pyx_k__comm2), 0, 0, 1, 1},
97149   {&__pyx_n_s__command, __pyx_k__command, sizeof(__pyx_k__command), 0, 0, 1, 1},
97150   {&__pyx_n_s__commute, __pyx_k__commute, sizeof(__pyx_k__commute), 0, 0, 1, 1},
97151   {&__pyx_n_s__coords, __pyx_k__coords, sizeof(__pyx_k__coords), 0, 0, 1, 1},
97152   {&__pyx_n_s__copy_fn, __pyx_k__copy_fn, sizeof(__pyx_k__copy_fn), 0, 0, 1, 1},
97153   {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1},
97154   {&__pyx_n_s__d, __pyx_k__d, sizeof(__pyx_k__d), 0, 0, 1, 1},
97155   {&__pyx_n_s__dargs, __pyx_k__dargs, sizeof(__pyx_k__dargs), 0, 0, 1, 1},
97156   {&__pyx_n_s__datarep, __pyx_k__datarep, sizeof(__pyx_k__datarep), 0, 0, 1, 1},
97157   {&__pyx_n_s__datatype, __pyx_k__datatype, sizeof(__pyx_k__datatype), 0, 0, 1, 1},
97158   {&__pyx_n_s__datatypes, __pyx_k__datatypes, sizeof(__pyx_k__datatypes), 0, 0, 1, 1},
97159   {&__pyx_n_s__default, __pyx_k__default, sizeof(__pyx_k__default), 0, 0, 1, 1},
97160   {&__pyx_n_s__degrees, __pyx_k__degrees, sizeof(__pyx_k__degrees), 0, 0, 1, 1},
97161   {&__pyx_n_s__delete_fn, __pyx_k__delete_fn, sizeof(__pyx_k__delete_fn), 0, 0, 1, 1},
97162   {&__pyx_n_s__dest, __pyx_k__dest, sizeof(__pyx_k__dest), 0, 0, 1, 1},
97163   {&__pyx_n_s__destinations, __pyx_k__destinations, sizeof(__pyx_k__destinations), 0, 0, 1, 1},
97164   {&__pyx_n_s__destweights, __pyx_k__destweights, sizeof(__pyx_k__destweights), 0, 0, 1, 1},
97165   {&__pyx_n_s__dims, __pyx_k__dims, sizeof(__pyx_k__dims), 0, 0, 1, 1},
97166   {&__pyx_n_s__direction, __pyx_k__direction, sizeof(__pyx_k__direction), 0, 0, 1, 1},
97167   {&__pyx_n_s__disp, __pyx_k__disp, sizeof(__pyx_k__disp), 0, 0, 1, 1},
97168   {&__pyx_n_s__disp_unit, __pyx_k__disp_unit, sizeof(__pyx_k__disp_unit), 0, 0, 1, 1},
97169   {&__pyx_n_s__displacements, __pyx_k__displacements, sizeof(__pyx_k__displacements), 0, 0, 1, 1},
97170   {&__pyx_n_s__distribs, __pyx_k__distribs, sizeof(__pyx_k__distribs), 0, 0, 1, 1},
97171   {&__pyx_n_s__doc, __pyx_k__doc, sizeof(__pyx_k__doc), 0, 0, 1, 1},
97172   {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1},
97173   {&__pyx_n_s__dumps, __pyx_k__dumps, sizeof(__pyx_k__dumps), 0, 0, 1, 1},
97174   {&__pyx_n_s__edges, __pyx_k__edges, sizeof(__pyx_k__edges), 0, 0, 1, 1},
97175   {&__pyx_n_s__errcodes, __pyx_k__errcodes, sizeof(__pyx_k__errcodes), 0, 0, 1, 1},
97176   {&__pyx_n_s__errhandler, __pyx_k__errhandler, sizeof(__pyx_k__errhandler), 0, 0, 1, 1},
97177   {&__pyx_n_s__error, __pyx_k__error, sizeof(__pyx_k__error), 0, 0, 1, 1},
97178   {&__pyx_n_s__error_class, __pyx_k__error_class, sizeof(__pyx_k__error_class), 0, 0, 1, 1},
97179   {&__pyx_n_s__error_code, __pyx_k__error_code, sizeof(__pyx_k__error_code), 0, 0, 1, 1},
97180   {&__pyx_n_s__error_string, __pyx_k__error_string, sizeof(__pyx_k__error_string), 0, 0, 1, 1},
97181   {&__pyx_n_s__errorclass, __pyx_k__errorclass, sizeof(__pyx_k__errorclass), 0, 0, 1, 1},
97182   {&__pyx_n_s__errorcode, __pyx_k__errorcode, sizeof(__pyx_k__errorcode), 0, 0, 1, 1},
97183   {&__pyx_n_s__etype, __pyx_k__etype, sizeof(__pyx_k__etype), 0, 0, 1, 1},
97184   {&__pyx_n_s__extent, __pyx_k__extent, sizeof(__pyx_k__extent), 0, 0, 1, 1},
97185   {&__pyx_n_s__f, __pyx_k__f, sizeof(__pyx_k__f), 0, 0, 1, 1},
97186   {&__pyx_n_s__f16, __pyx_k__f16, sizeof(__pyx_k__f16), 0, 0, 1, 1},
97187   {&__pyx_n_s__f2, __pyx_k__f2, sizeof(__pyx_k__f2), 0, 0, 1, 1},
97188   {&__pyx_n_s__f2py, __pyx_k__f2py, sizeof(__pyx_k__f2py), 0, 0, 1, 1},
97189   {&__pyx_n_s__f4, __pyx_k__f4, sizeof(__pyx_k__f4), 0, 0, 1, 1},
97190   {&__pyx_n_s__f8, __pyx_k__f8, sizeof(__pyx_k__f8), 0, 0, 1, 1},
97191   {&__pyx_n_s__fd, __pyx_k__fd, sizeof(__pyx_k__fd), 0, 0, 1, 1},
97192   {&__pyx_n_s__file, __pyx_k__file, sizeof(__pyx_k__file), 0, 0, 1, 1},
97193   {&__pyx_n_s__filename, __pyx_k__filename, sizeof(__pyx_k__filename), 0, 0, 1, 1},
97194   {&__pyx_n_s__filetype, __pyx_k__filetype, sizeof(__pyx_k__filetype), 0, 0, 1, 1},
97195   {&__pyx_n_s__finalize, __pyx_k__finalize, sizeof(__pyx_k__finalize), 0, 0, 1, 1},
97196   {&__pyx_n_s__flag, __pyx_k__flag, sizeof(__pyx_k__flag), 0, 0, 1, 1},
97197   {&__pyx_n_s__flush, __pyx_k__flush, sizeof(__pyx_k__flush), 0, 0, 1, 1},
97198   {&__pyx_n_s__free_fn, __pyx_k__free_fn, sizeof(__pyx_k__free_fn), 0, 0, 1, 1},
97199   {&__pyx_n_s__function, __pyx_k__function, sizeof(__pyx_k__function), 0, 0, 1, 1},
97200   {&__pyx_n_s__funneled, __pyx_k__funneled, sizeof(__pyx_k__funneled), 0, 0, 1, 1},
97201   {&__pyx_n_s__g, __pyx_k__g, sizeof(__pyx_k__g), 0, 0, 1, 1},
97202   {&__pyx_n_s__get_vendor, __pyx_k__get_vendor, sizeof(__pyx_k__get_vendor), 0, 0, 1, 1},
97203   {&__pyx_n_s__group, __pyx_k__group, sizeof(__pyx_k__group), 0, 0, 1, 1},
97204   {&__pyx_n_s__group1, __pyx_k__group1, sizeof(__pyx_k__group1), 0, 0, 1, 1},
97205   {&__pyx_n_s__group2, __pyx_k__group2, sizeof(__pyx_k__group2), 0, 0, 1, 1},
97206   {&__pyx_n_s__gsizes, __pyx_k__gsizes, sizeof(__pyx_k__gsizes), 0, 0, 1, 1},
97207   {&__pyx_n_s__h, __pyx_k__h, sizeof(__pyx_k__h), 0, 0, 1, 1},
97208   {&__pyx_n_s__high, __pyx_k__high, sizeof(__pyx_k__high), 0, 0, 1, 1},
97209   {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1},
97210   {&__pyx_n_s__i1, __pyx_k__i1, sizeof(__pyx_k__i1), 0, 0, 1, 1},
97211   {&__pyx_n_s__i16, __pyx_k__i16, sizeof(__pyx_k__i16), 0, 0, 1, 1},
97212   {&__pyx_n_s__i2, __pyx_k__i2, sizeof(__pyx_k__i2), 0, 0, 1, 1},
97213   {&__pyx_n_s__i4, __pyx_k__i4, sizeof(__pyx_k__i4), 0, 0, 1, 1},
97214   {&__pyx_n_s__i8, __pyx_k__i8, sizeof(__pyx_k__i8), 0, 0, 1, 1},
97215   {&__pyx_n_s__ierr, __pyx_k__ierr, sizeof(__pyx_k__ierr), 0, 0, 1, 1},
97216   {&__pyx_n_s__inbuf, __pyx_k__inbuf, sizeof(__pyx_k__inbuf), 0, 0, 1, 1},
97217   {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1},
97218   {&__pyx_n_s__info, __pyx_k__info, sizeof(__pyx_k__info), 0, 0, 1, 1},
97219   {&__pyx_n_s__initialize, __pyx_k__initialize, sizeof(__pyx_k__initialize), 0, 0, 1, 1},
97220   {&__pyx_n_s__inoutbuf, __pyx_k__inoutbuf, sizeof(__pyx_k__inoutbuf), 0, 0, 1, 1},
97221   {&__pyx_n_s__insert, __pyx_k__insert, sizeof(__pyx_k__insert), 0, 0, 1, 1},
97222   {&__pyx_n_s__join, __pyx_k__join, sizeof(__pyx_k__join), 0, 0, 1, 1},
97223   {&__pyx_n_s__kargs, __pyx_k__kargs, sizeof(__pyx_k__kargs), 0, 0, 1, 1},
97224   {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1},
97225   {&__pyx_n_s__keys, __pyx_k__keys, sizeof(__pyx_k__keys), 0, 0, 1, 1},
97226   {&__pyx_n_s__keyval, __pyx_k__keyval, sizeof(__pyx_k__keyval), 0, 0, 1, 1},
97227   {&__pyx_n_s__l, __pyx_k__l, sizeof(__pyx_k__l), 0, 0, 1, 1},
97228   {&__pyx_n_s__lb, __pyx_k__lb, sizeof(__pyx_k__lb), 0, 0, 1, 1},
97229   {&__pyx_n_s__level, __pyx_k__level, sizeof(__pyx_k__level), 0, 0, 1, 1},
97230   {&__pyx_n_s__load, __pyx_k__load, sizeof(__pyx_k__load), 0, 0, 1, 1},
97231   {&__pyx_n_s__loads, __pyx_k__loads, sizeof(__pyx_k__loads), 0, 0, 1, 1},
97232   {&__pyx_n_s__local_leader, __pyx_k__local_leader, sizeof(__pyx_k__local_leader), 0, 0, 1, 1},
97233   {&__pyx_n_s__location, __pyx_k__location, sizeof(__pyx_k__location), 0, 0, 1, 1},
97234   {&__pyx_n_s__lock_type, __pyx_k__lock_type, sizeof(__pyx_k__lock_type), 0, 0, 1, 1},
97235   {&__pyx_n_s__maxlen, __pyx_k__maxlen, sizeof(__pyx_k__maxlen), 0, 0, 1, 1},
97236   {&__pyx_n_s__maxprocs, __pyx_k__maxprocs, sizeof(__pyx_k__maxprocs), 0, 0, 1, 1},
97237   {&__pyx_n_s__memory, __pyx_k__memory, sizeof(__pyx_k__memory), 0, 0, 1, 1},
97238   {&__pyx_n_s__mpi4py, __pyx_k__mpi4py, sizeof(__pyx_k__mpi4py), 0, 0, 1, 1},
97239   {&__pyx_n_s__multiple, __pyx_k__multiple, sizeof(__pyx_k__multiple), 0, 0, 1, 1},
97240   {&__pyx_n_s__n, __pyx_k__n, sizeof(__pyx_k__n), 0, 0, 1, 1},
97241   {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1},
97242   {&__pyx_n_s__nnodes, __pyx_k__nnodes, sizeof(__pyx_k__nnodes), 0, 0, 1, 1},
97243   {&__pyx_n_s__no, __pyx_k__no, sizeof(__pyx_k__no), 0, 0, 1, 1},
97244   {&__pyx_n_s__ob_mpi, __pyx_k__ob_mpi, sizeof(__pyx_k__ob_mpi), 0, 0, 1, 1},
97245   {&__pyx_n_s__obj, __pyx_k__obj, sizeof(__pyx_k__obj), 0, 0, 1, 1},
97246   {&__pyx_n_s__offset, __pyx_k__offset, sizeof(__pyx_k__offset), 0, 0, 1, 1},
97247   {&__pyx_n_s__op, __pyx_k__op, sizeof(__pyx_k__op), 0, 0, 1, 1},
97248   {&__pyx_n_s__order, __pyx_k__order, sizeof(__pyx_k__order), 0, 0, 1, 1},
97249   {&__pyx_n_s__origin, __pyx_k__origin, sizeof(__pyx_k__origin), 0, 0, 1, 1},
97250   {&__pyx_n_s__other, __pyx_k__other, sizeof(__pyx_k__other), 0, 0, 1, 1},
97251   {&__pyx_n_s__outbuf, __pyx_k__outbuf, sizeof(__pyx_k__outbuf), 0, 0, 1, 1},
97252   {&__pyx_n_s__p, __pyx_k__p, sizeof(__pyx_k__p), 0, 0, 1, 1},
97253   {&__pyx_n_s__peer_comm, __pyx_k__peer_comm, sizeof(__pyx_k__peer_comm), 0, 0, 1, 1},
97254   {&__pyx_n_s__periods, __pyx_k__periods, sizeof(__pyx_k__periods), 0, 0, 1, 1},
97255   {&__pyx_n_s__pickle, __pyx_k__pickle, sizeof(__pyx_k__pickle), 0, 0, 1, 1},
97256   {&__pyx_n_s__pop, __pyx_k__pop, sizeof(__pyx_k__pop), 0, 0, 1, 1},
97257   {&__pyx_n_s__port_name, __pyx_k__port_name, sizeof(__pyx_k__port_name), 0, 0, 1, 1},
97258   {&__pyx_n_s__position, __pyx_k__position, sizeof(__pyx_k__position), 0, 0, 1, 1},
97259   {&__pyx_n_s__print_exc, __pyx_k__print_exc, sizeof(__pyx_k__print_exc), 0, 0, 1, 1},
97260   {&__pyx_n_s__property, __pyx_k__property, sizeof(__pyx_k__property), 0, 0, 1, 1},
97261   {&__pyx_n_s__psizes, __pyx_k__psizes, sizeof(__pyx_k__psizes), 0, 0, 1, 1},
97262   {&__pyx_n_s__q, __pyx_k__q, sizeof(__pyx_k__q), 0, 0, 1, 1},
97263   {&__pyx_n_s__query_fn, __pyx_k__query_fn, sizeof(__pyx_k__query_fn), 0, 0, 1, 1},
97264   {&__pyx_n_s__r, __pyx_k__r, sizeof(__pyx_k__r), 0, 0, 1, 1},
97265   {&__pyx_n_s__rank, __pyx_k__rank, sizeof(__pyx_k__rank), 0, 0, 1, 1},
97266   {&__pyx_n_s__ranks, __pyx_k__ranks, sizeof(__pyx_k__ranks), 0, 0, 1, 1},
97267   {&__pyx_n_s__ranks1, __pyx_k__ranks1, sizeof(__pyx_k__ranks1), 0, 0, 1, 1},
97268   {&__pyx_n_s__rc, __pyx_k__rc, sizeof(__pyx_k__rc), 0, 0, 1, 1},
97269   {&__pyx_n_s__rcount, __pyx_k__rcount, sizeof(__pyx_k__rcount), 0, 0, 1, 1},
97270   {&__pyx_n_s__read, __pyx_k__read, sizeof(__pyx_k__read), 0, 0, 1, 1},
97271   {&__pyx_n_s__recvbuf, __pyx_k__recvbuf, sizeof(__pyx_k__recvbuf), 0, 0, 1, 1},
97272   {&__pyx_n_s__recvcounts, __pyx_k__recvcounts, sizeof(__pyx_k__recvcounts), 0, 0, 1, 1},
97273   {&__pyx_n_s__recvobj, __pyx_k__recvobj, sizeof(__pyx_k__recvobj), 0, 0, 1, 1},
97274   {&__pyx_n_s__recvtag, __pyx_k__recvtag, sizeof(__pyx_k__recvtag), 0, 0, 1, 1},
97275   {&__pyx_n_s__remain_dims, __pyx_k__remain_dims, sizeof(__pyx_k__remain_dims), 0, 0, 1, 1},
97276   {&__pyx_n_s__remote_leader, __pyx_k__remote_leader, sizeof(__pyx_k__remote_leader), 0, 0, 1, 1},
97277   {&__pyx_n_s__reorder, __pyx_k__reorder, sizeof(__pyx_k__reorder), 0, 0, 1, 1},
97278   {&__pyx_n_s__request, __pyx_k__request, sizeof(__pyx_k__request), 0, 0, 1, 1},
97279   {&__pyx_n_s__requests, __pyx_k__requests, sizeof(__pyx_k__requests), 0, 0, 1, 1},
97280   {&__pyx_n_s__required, __pyx_k__required, sizeof(__pyx_k__required), 0, 0, 1, 1},
97281   {&__pyx_n_s__root, __pyx_k__root, sizeof(__pyx_k__root), 0, 0, 1, 1},
97282   {&__pyx_n_s__rtype, __pyx_k__rtype, sizeof(__pyx_k__rtype), 0, 0, 1, 1},
97283   {&__pyx_n_s__scount, __pyx_k__scount, sizeof(__pyx_k__scount), 0, 0, 1, 1},
97284   {&__pyx_n_s__self, __pyx_k__self, sizeof(__pyx_k__self), 0, 0, 1, 1},
97285   {&__pyx_n_s__sendbuf, __pyx_k__sendbuf, sizeof(__pyx_k__sendbuf), 0, 0, 1, 1},
97286   {&__pyx_n_s__sendobj, __pyx_k__sendobj, sizeof(__pyx_k__sendobj), 0, 0, 1, 1},
97287   {&__pyx_n_s__sendtag, __pyx_k__sendtag, sizeof(__pyx_k__sendtag), 0, 0, 1, 1},
97288   {&__pyx_n_s__serialized, __pyx_k__serialized, sizeof(__pyx_k__serialized), 0, 0, 1, 1},
97289   {&__pyx_n_s__service_name, __pyx_k__service_name, sizeof(__pyx_k__service_name), 0, 0, 1, 1},
97290   {&__pyx_n_s__single, __pyx_k__single, sizeof(__pyx_k__single), 0, 0, 1, 1},
97291   {&__pyx_n_s__size, __pyx_k__size, sizeof(__pyx_k__size), 0, 0, 1, 1},
97292   {&__pyx_n_s__sizes, __pyx_k__sizes, sizeof(__pyx_k__sizes), 0, 0, 1, 1},
97293   {&__pyx_n_s__source, __pyx_k__source, sizeof(__pyx_k__source), 0, 0, 1, 1},
97294   {&__pyx_n_s__sources, __pyx_k__sources, sizeof(__pyx_k__sources), 0, 0, 1, 1},
97295   {&__pyx_n_s__sourceweights, __pyx_k__sourceweights, sizeof(__pyx_k__sourceweights), 0, 0, 1, 1},
97296   {&__pyx_n_s__starts, __pyx_k__starts, sizeof(__pyx_k__starts), 0, 0, 1, 1},
97297   {&__pyx_n_s__status, __pyx_k__status, sizeof(__pyx_k__status), 0, 0, 1, 1},
97298   {&__pyx_n_s__statuses, __pyx_k__statuses, sizeof(__pyx_k__statuses), 0, 0, 1, 1},
97299   {&__pyx_n_s__stderr, __pyx_k__stderr, sizeof(__pyx_k__stderr), 0, 0, 1, 1},
97300   {&__pyx_n_s__stride, __pyx_k__stride, sizeof(__pyx_k__stride), 0, 0, 1, 1},
97301   {&__pyx_n_s__string, __pyx_k__string, sizeof(__pyx_k__string), 0, 0, 1, 1},
97302   {&__pyx_n_s__stype, __pyx_k__stype, sizeof(__pyx_k__stype), 0, 0, 1, 1},
97303   {&__pyx_n_s__subsizes, __pyx_k__subsizes, sizeof(__pyx_k__subsizes), 0, 0, 1, 1},
97304   {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1},
97305   {&__pyx_n_s__tag, __pyx_k__tag, sizeof(__pyx_k__tag), 0, 0, 1, 1},
97306   {&__pyx_n_s__target, __pyx_k__target, sizeof(__pyx_k__target), 0, 0, 1, 1},
97307   {&__pyx_n_s__target_rank, __pyx_k__target_rank, sizeof(__pyx_k__target_rank), 0, 0, 1, 1},
97308   {&__pyx_n_s__testall, __pyx_k__testall, sizeof(__pyx_k__testall), 0, 0, 1, 1},
97309   {&__pyx_n_s__testany, __pyx_k__testany, sizeof(__pyx_k__testany), 0, 0, 1, 1},
97310   {&__pyx_n_s__thread_level, __pyx_k__thread_level, sizeof(__pyx_k__thread_level), 0, 0, 1, 1},
97311   {&__pyx_n_s__threaded, __pyx_k__threaded, sizeof(__pyx_k__threaded), 0, 0, 1, 1},
97312   {&__pyx_n_s__traceback, __pyx_k__traceback, sizeof(__pyx_k__traceback), 0, 0, 1, 1},
97313   {&__pyx_n_s__typeclass, __pyx_k__typeclass, sizeof(__pyx_k__typeclass), 0, 0, 1, 1},
97314   {&__pyx_n_s__typecode, __pyx_k__typecode, sizeof(__pyx_k__typecode), 0, 0, 1, 1},
97315   {&__pyx_n_s__u1, __pyx_k__u1, sizeof(__pyx_k__u1), 0, 0, 1, 1},
97316   {&__pyx_n_s__u2, __pyx_k__u2, sizeof(__pyx_k__u2), 0, 0, 1, 1},
97317   {&__pyx_n_s__u4, __pyx_k__u4, sizeof(__pyx_k__u4), 0, 0, 1, 1},
97318   {&__pyx_n_s__u8, __pyx_k__u8, sizeof(__pyx_k__u8), 0, 0, 1, 1},
97319   {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1},
97320   {&__pyx_n_s__waitall, __pyx_k__waitall, sizeof(__pyx_k__waitall), 0, 0, 1, 1},
97321   {&__pyx_n_s__waitany, __pyx_k__waitany, sizeof(__pyx_k__waitany), 0, 0, 1, 1},
97322   {&__pyx_n_s__warn, __pyx_k__warn, sizeof(__pyx_k__warn), 0, 0, 1, 1},
97323   {&__pyx_n_s__warnings, __pyx_k__warnings, sizeof(__pyx_k__warnings), 0, 0, 1, 1},
97324   {&__pyx_n_s__weights, __pyx_k__weights, sizeof(__pyx_k__weights), 0, 0, 1, 1},
97325   {&__pyx_n_s__whence, __pyx_k__whence, sizeof(__pyx_k__whence), 0, 0, 1, 1},
97326   {&__pyx_n_s__win, __pyx_k__win, sizeof(__pyx_k__win), 0, 0, 1, 1},
97327   {&__pyx_n_s__x, __pyx_k__x, sizeof(__pyx_k__x), 0, 0, 1, 1},
97328   {&__pyx_n_s__y, __pyx_k__y, sizeof(__pyx_k__y), 0, 0, 1, 1},
97329   {&__pyx_n_s__yes, __pyx_k__yes, sizeof(__pyx_k__yes), 0, 0, 1, 1},
97330   {0, 0, 0, 0, 0, 0, 0}
97331 };
__Pyx_InitCachedBuiltins(void)97332 static int __Pyx_InitCachedBuiltins(void) {
97333   __pyx_builtin_ImportError = __Pyx_GetName(__pyx_b, __pyx_n_s__ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97334   __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97335   __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_n_s__property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97336   __pyx_builtin_SystemError = __Pyx_GetName(__pyx_b, __pyx_n_s__SystemError); if (!__pyx_builtin_SystemError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97337   __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97338   __pyx_builtin_AttributeError = __Pyx_GetName(__pyx_b, __pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97339   __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97340   __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97341   __pyx_builtin_NotImplemented = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97342   __pyx_builtin_NotImplementedError = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97343   return 0;
97344   __pyx_L1_error:;
97345   return -1;
97346 }
97347 
__Pyx_InitCachedConstants(void)97348 static int __Pyx_InitCachedConstants(void) {
97349   __Pyx_RefNannyDeclarations
97350   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants");
97351 
97352   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":85
97353  *         return 1
97354  *     def __getreadbuffer__(self, Py_ssize_t idx, void **p):
97355  *         if idx != 0: raise SystemError(             # <<<<<<<<<<<<<<
97356  *             "accessing non-existent buffer segment")
97357  *         p[0] = self.view.buf
97358  */
97359   __pyx_k_tuple_6 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97360   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_6));
97361   __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
97362   PyTuple_SET_ITEM(__pyx_k_tuple_6, 0, ((PyObject *)__pyx_kp_s_5));
97363   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
97364   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6));
97365 
97366   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":90
97367  *         return self.view.len
97368  *     def __getwritebuffer__(self, Py_ssize_t idx, void **p):
97369  *         if idx != 0: raise SystemError(             # <<<<<<<<<<<<<<
97370  *             "accessing non-existent buffer segment")
97371  *         if self.view.readonly:
97372  */
97373   __pyx_k_tuple_7 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97374   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_7));
97375   __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
97376   PyTuple_SET_ITEM(__pyx_k_tuple_7, 0, ((PyObject *)__pyx_kp_s_5));
97377   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
97378   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7));
97379 
97380   /* "/home/devel/mpi4py-1.3/src/MPI/asbuffer.pxi":93
97381  *             "accessing non-existent buffer segment")
97382  *         if self.view.readonly:
97383  *             raise TypeError("object is not writeable")             # <<<<<<<<<<<<<<
97384  *         p[0] = self.view.buf
97385  *         return self.view.len
97386  */
97387   __pyx_k_tuple_9 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97388   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_9));
97389   __Pyx_INCREF(((PyObject *)__pyx_kp_s_8));
97390   PyTuple_SET_ITEM(__pyx_k_tuple_9, 0, ((PyObject *)__pyx_kp_s_8));
97391   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_8));
97392   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
97393 
97394   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":182
97395  *     cdef int index = 0
97396  *     try:
97397  *         index = op_user_registry.index(None, 1)             # <<<<<<<<<<<<<<
97398  *     except ValueError:
97399  *         raise RuntimeError("cannot create too many "
97400  */
97401   __pyx_k_tuple_12 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97402   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_12));
97403   __Pyx_INCREF(Py_None);
97404   PyTuple_SET_ITEM(__pyx_k_tuple_12, 0, Py_None);
97405   __Pyx_GIVEREF(Py_None);
97406   __Pyx_INCREF(__pyx_int_1);
97407   PyTuple_SET_ITEM(__pyx_k_tuple_12, 1, __pyx_int_1);
97408   __Pyx_GIVEREF(__pyx_int_1);
97409   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_12));
97410 
97411   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":184
97412  *         index = op_user_registry.index(None, 1)
97413  *     except ValueError:
97414  *         raise RuntimeError("cannot create too many "             # <<<<<<<<<<<<<<
97415  *                            "user-defined reduction operations")
97416  *     # the line below will fail
97417  */
97418   __pyx_k_tuple_14 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97419   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_14));
97420   __Pyx_INCREF(((PyObject *)__pyx_kp_s_13));
97421   PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, ((PyObject *)__pyx_kp_s_13));
97422   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_13));
97423   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14));
97424 
97425   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":104
97426  *             (o_buf, o_count, o_displ, o_type) = msg
97427  *         else:
97428  *             raise ValueError("message: expecting 2 to 4 items")             # <<<<<<<<<<<<<<
97429  *     else:
97430  *         raise TypeError("message: expecting buffer or list/tuple")
97431  */
97432   __pyx_k_tuple_16 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97433   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_16));
97434   __Pyx_INCREF(((PyObject *)__pyx_kp_s_15));
97435   PyTuple_SET_ITEM(__pyx_k_tuple_16, 0, ((PyObject *)__pyx_kp_s_15));
97436   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_15));
97437   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_16));
97438 
97439   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":106
97440  *             raise ValueError("message: expecting 2 to 4 items")
97441  *     else:
97442  *         raise TypeError("message: expecting buffer or list/tuple")             # <<<<<<<<<<<<<<
97443  *     # buffer: address, length, and datatype
97444  *     cdef void *baddr = NULL
97445  */
97446   __pyx_k_tuple_18 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97447   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_18));
97448   __Pyx_INCREF(((PyObject *)__pyx_kp_s_17));
97449   PyTuple_SET_ITEM(__pyx_k_tuple_18, 0, ((PyObject *)__pyx_kp_s_17));
97450   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_17));
97451   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18));
97452 
97453   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":119
97454  *     cdef MPI_Aint extent = 0, lb = 0
97455  *     if o_displ is not None:
97456  *         if o_count is None: raise ValueError(             # <<<<<<<<<<<<<<
97457  *             "message: cannot handle displacement, "
97458  *             "explicit count required")
97459  */
97460   __pyx_k_tuple_20 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_20)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97461   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_20));
97462   __Pyx_INCREF(((PyObject *)__pyx_kp_s_19));
97463   PyTuple_SET_ITEM(__pyx_k_tuple_20, 0, ((PyObject *)__pyx_kp_s_19));
97464   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_19));
97465   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_20));
97466 
97467   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":129
97468  *             "message: negative diplacement %d" % displ)
97469  *         if displ != 0:
97470  *             if btype == MPI_DATATYPE_NULL: raise ValueError(             # <<<<<<<<<<<<<<
97471  *                 "message: cannot handle diplacement, "
97472  *                 "datatype is null")
97473  */
97474   __pyx_k_tuple_24 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97475   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_24));
97476   __Pyx_INCREF(((PyObject *)__pyx_kp_s_23));
97477   PyTuple_SET_ITEM(__pyx_k_tuple_24, 0, ((PyObject *)__pyx_kp_s_23));
97478   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_23));
97479   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
97480 
97481   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":140
97482  *                 "message: negative count %d" % count)
97483  *     elif bsize > 0:
97484  *         if btype == MPI_DATATYPE_NULL: raise ValueError(             # <<<<<<<<<<<<<<
97485  *             "message: cannot guess count, "
97486  *             "datatype is null")
97487  */
97488   __pyx_k_tuple_26 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_26)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97489   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_26));
97490   __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
97491   PyTuple_SET_ITEM(__pyx_k_tuple_26, 0, ((PyObject *)__pyx_kp_s_25));
97492   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_25));
97493   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_26));
97494 
97495   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":219
97496  *             (o_buf, o_counts, o_displs, o_type) = msg
97497  *         else:
97498  *             raise ValueError("message: expecting 2 to 4 items")             # <<<<<<<<<<<<<<
97499  *     else:
97500  *         raise TypeError("message: expecting buffer or list/tuple")
97501  */
97502   __pyx_k_tuple_32 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_32)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97503   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_32));
97504   __Pyx_INCREF(((PyObject *)__pyx_kp_s_15));
97505   PyTuple_SET_ITEM(__pyx_k_tuple_32, 0, ((PyObject *)__pyx_kp_s_15));
97506   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_15));
97507   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_32));
97508 
97509   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":221
97510  *             raise ValueError("message: expecting 2 to 4 items")
97511  *     else:
97512  *         raise TypeError("message: expecting buffer or list/tuple")             # <<<<<<<<<<<<<<
97513  *     # buffer: address, length, and datatype
97514  *     cdef void *baddr = NULL
97515  */
97516   __pyx_k_tuple_33 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_33)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97517   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_33));
97518   __Pyx_INCREF(((PyObject *)__pyx_kp_s_17));
97519   PyTuple_SET_ITEM(__pyx_k_tuple_33, 0, ((PyObject *)__pyx_kp_s_17));
97520   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_17));
97521   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_33));
97522 
97523   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":237
97524  *         if bsize > 0:
97525  *             if btype == MPI_DATATYPE_NULL:
97526  *                 raise ValueError(             # <<<<<<<<<<<<<<
97527  *                     "message: cannot guess count, "
97528  *                     "datatype is null")
97529  */
97530   __pyx_k_tuple_34 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97531   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_34));
97532   __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
97533   PyTuple_SET_ITEM(__pyx_k_tuple_34, 0, ((PyObject *)__pyx_kp_s_25));
97534   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_25));
97535   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));
97536 
97537   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":594
97538  *         if (self.sbuf  != MPI_IN_PLACE and
97539  *             self.stype != self.rtype):
97540  *             raise ValueError(             # <<<<<<<<<<<<<<
97541  *                 "mismatch in send and receive MPI datatypes")
97542  *         return 0
97543  */
97544   __pyx_k_tuple_37 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_37)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97545   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_37));
97546   __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
97547   PyTuple_SET_ITEM(__pyx_k_tuple_37, 0, ((PyObject *)__pyx_kp_s_36));
97548   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
97549   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_37));
97550 
97551   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":615
97552  *         if self.sbuf != MPI_IN_PLACE:
97553  *             if self.stype != self.rtype:
97554  *                 raise ValueError(             # <<<<<<<<<<<<<<
97555  *                     "mismatch in send and receive MPI datatypes")
97556  *             if self.scount != self.rcount:
97557  */
97558   __pyx_k_tuple_38 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_38)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97559   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_38));
97560   __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
97561   PyTuple_SET_ITEM(__pyx_k_tuple_38, 0, ((PyObject *)__pyx_kp_s_36));
97562   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
97563   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_38));
97564 
97565   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":651
97566  *         if self.sbuf != MPI_IN_PLACE:
97567  *             if self.stype != self.rtype:
97568  *                 raise ValueError(             # <<<<<<<<<<<<<<
97569  *                     "mismatch in send and receive MPI datatypes")
97570  *             if self.scount != sumrcounts:
97571  */
97572   __pyx_k_tuple_40 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_40)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97573   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_40));
97574   __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
97575   PyTuple_SET_ITEM(__pyx_k_tuple_40, 0, ((PyObject *)__pyx_kp_s_36));
97576   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
97577   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_40));
97578 
97579   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":688
97580  *         if (self.sbuf  != MPI_IN_PLACE and
97581  *             self.stype != self.rtype):
97582  *             raise ValueError(             # <<<<<<<<<<<<<<
97583  *                 "mismatch in send and receive MPI datatypes")
97584  *         return 0
97585  */
97586   __pyx_k_tuple_44 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_44)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97587   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_44));
97588   __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
97589   PyTuple_SET_ITEM(__pyx_k_tuple_44, 0, ((PyObject *)__pyx_kp_s_36));
97590   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
97591   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_44));
97592 
97593   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":710
97594  *                 (self.scount, self.rcount))
97595  *         if self.stype != self.rtype:
97596  *             raise ValueError(             # <<<<<<<<<<<<<<
97597  *                 "mismatch in send and receive MPI datatypes")
97598  *         return 0
97599  */
97600   __pyx_k_tuple_45 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_45)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97601   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_45));
97602   __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
97603   PyTuple_SET_ITEM(__pyx_k_tuple_45, 0, ((PyObject *)__pyx_kp_s_36));
97604   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
97605   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_45));
97606 
97607   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":766
97608  *         elif is_list(target) or is_tuple(target):
97609  *             if len(target) != 3:
97610  *                 raise ValueError("target: expecting 3 items")             # <<<<<<<<<<<<<<
97611  *             self.tdisp  = <MPI_Aint>target[0]
97612  *             self.tcount = <int>target[1]
97613  */
97614   __pyx_k_tuple_47 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_47)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97615   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_47));
97616   __Pyx_INCREF(((PyObject *)__pyx_kp_s_46));
97617   PyTuple_SET_ITEM(__pyx_k_tuple_47, 0, ((PyObject *)__pyx_kp_s_46));
97618   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_46));
97619   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_47));
97620 
97621   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":771
97622  *             self.ttype  = (<Datatype?>target[2]).ob_mpi
97623  *         else:
97624  *             raise ValueError("target: expecting integral or list/tuple")             # <<<<<<<<<<<<<<
97625  *         self._target = target
97626  *         return 0
97627  */
97628   __pyx_k_tuple_49 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_49)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97629   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_49));
97630   __Pyx_INCREF(((PyObject *)__pyx_kp_s_48));
97631   PyTuple_SET_ITEM(__pyx_k_tuple_49, 0, ((PyObject *)__pyx_kp_s_48));
97632   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_48));
97633   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_49));
97634 
97635   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":770
97636  *     if seq is None: return None
97637  *     seq = _py_scan(seq, op)
97638  *     seq.pop(-1)             # <<<<<<<<<<<<<<
97639  *     seq.insert(0, None)
97640  *     return seq
97641  */
97642   __pyx_k_tuple_51 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_51)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97643   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_51));
97644   __Pyx_INCREF(__pyx_int_neg_1);
97645   PyTuple_SET_ITEM(__pyx_k_tuple_51, 0, __pyx_int_neg_1);
97646   __Pyx_GIVEREF(__pyx_int_neg_1);
97647   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_51));
97648 
97649   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":771
97650  *     seq = _py_scan(seq, op)
97651  *     seq.pop(-1)
97652  *     seq.insert(0, None)             # <<<<<<<<<<<<<<
97653  *     return seq
97654  *
97655  */
97656   __pyx_k_tuple_52 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_52)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97657   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_52));
97658   __Pyx_INCREF(__pyx_int_0);
97659   PyTuple_SET_ITEM(__pyx_k_tuple_52, 0, __pyx_int_0);
97660   __Pyx_GIVEREF(__pyx_int_0);
97661   __Pyx_INCREF(Py_None);
97662   PyTuple_SET_ITEM(__pyx_k_tuple_52, 1, Py_None);
97663   __Pyx_GIVEREF(Py_None);
97664   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_52));
97665 
97666   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":20
97667  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97668  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97669  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97670  *
97671  *     def __bool__(self):
97672  */
97673   __pyx_k_tuple_56 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_56)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97674   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_56));
97675   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97676   PyTuple_SET_ITEM(__pyx_k_tuple_56, 0, ((PyObject *)__pyx_kp_s_55));
97677   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97678   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_56));
97679 
97680   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":66
97681  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97682  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97683  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97684  *
97685  *     def __bool__(self):
97686  */
97687   __pyx_k_tuple_57 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_57)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97688   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_57));
97689   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97690   PyTuple_SET_ITEM(__pyx_k_tuple_57, 0, ((PyObject *)__pyx_kp_s_55));
97691   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97692   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_57));
97693 
97694   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":19
97695  *         if   op == Py_EQ: return  r == 0
97696  *         elif op == Py_NE: return  r != 0
97697  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97698  *
97699  *
97700  */
97701   __pyx_k_tuple_60 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_60)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97702   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_60));
97703   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97704   PyTuple_SET_ITEM(__pyx_k_tuple_60, 0, ((PyObject *)__pyx_kp_s_55));
97705   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97706   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_60));
97707 
97708   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":23
97709  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97710  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97711  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97712  *
97713  *     def __bool__(self):
97714  */
97715   __pyx_k_tuple_62 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_62)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97716   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_62));
97717   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97718   PyTuple_SET_ITEM(__pyx_k_tuple_62, 0, ((PyObject *)__pyx_kp_s_55));
97719   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97720   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_62));
97721 
97722   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":20
97723  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97724  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97725  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97726  *
97727  *     def __bool__(self):
97728  */
97729   __pyx_k_tuple_63 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_63)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97730   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_63));
97731   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97732   PyTuple_SET_ITEM(__pyx_k_tuple_63, 0, ((PyObject *)__pyx_kp_s_55));
97733   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97734   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_63));
97735 
97736   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":214
97737  *         cdef object key
97738  *         for k from 0 <= k < nkeys:
97739  *             key = self.Get_nthkey(0)             # <<<<<<<<<<<<<<
97740  *             self.Delete(key)
97741  *
97742  */
97743   __pyx_k_tuple_64 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_64)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97744   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_64));
97745   __Pyx_INCREF(__pyx_int_0);
97746   PyTuple_SET_ITEM(__pyx_k_tuple_64, 0, __pyx_int_0);
97747   __Pyx_GIVEREF(__pyx_int_0);
97748   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_64));
97749 
97750   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":21
97751  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97752  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97753  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97754  *
97755  *     def __bool__(self):
97756  */
97757   __pyx_k_tuple_65 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_65)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97758   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_65));
97759   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97760   PyTuple_SET_ITEM(__pyx_k_tuple_65, 0, ((PyObject *)__pyx_kp_s_55));
97761   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97762   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_65));
97763 
97764   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":80
97765  *                 (self.scount, self.rcount))
97766  *         if (self.stype != self.rtype):
97767  *             raise ValueError(             # <<<<<<<<<<<<<<
97768  *                 "mismatch in inbuf and inoutbuf MPI datatypes")
97769  *         # do local reduction
97770  */
97771   __pyx_k_tuple_68 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_68)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97772   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_68));
97773   __Pyx_INCREF(((PyObject *)__pyx_kp_s_67));
97774   PyTuple_SET_ITEM(__pyx_k_tuple_68, 0, ((PyObject *)__pyx_kp_s_67));
97775   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_67));
97776   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_68));
97777 
97778   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":20
97779  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97780  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97781  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97782  *
97783  *     def __bool__(self):
97784  */
97785   __pyx_k_tuple_69 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_69)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97786   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_69));
97787   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97788   PyTuple_SET_ITEM(__pyx_k_tuple_69, 0, ((PyObject *)__pyx_kp_s_55));
97789   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97790   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_69));
97791 
97792   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":39
97793  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97794  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97795  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97796  *
97797  *     def __bool__(self):
97798  */
97799   __pyx_k_tuple_70 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_70)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97800   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_70));
97801   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97802   PyTuple_SET_ITEM(__pyx_k_tuple_70, 0, ((PyObject *)__pyx_kp_s_55));
97803   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97804   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_70));
97805 
97806   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":909
97807  *         if self.ob_mpi != MPI_COMM_NULL:
97808  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
97809  *             if inter: raise TypeError(             # <<<<<<<<<<<<<<
97810  *                 "expecting an intracommunicator")
97811  *
97812  */
97813   __pyx_k_tuple_78 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_78)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97814   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_78));
97815   __Pyx_INCREF(((PyObject *)__pyx_kp_s_77));
97816   PyTuple_SET_ITEM(__pyx_k_tuple_78, 0, ((PyObject *)__pyx_kp_s_77));
97817   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_77));
97818   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_78));
97819 
97820   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1216
97821  *         if self.ob_mpi != MPI_COMM_NULL:
97822  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
97823  *             if topo != MPI_CART: raise TypeError(             # <<<<<<<<<<<<<<
97824  *                 "expecting a Cartesian communicator")
97825  *
97826  */
97827   __pyx_k_tuple_90 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_90)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97828   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_90));
97829   __Pyx_INCREF(((PyObject *)__pyx_kp_s_89));
97830   PyTuple_SET_ITEM(__pyx_k_tuple_90, 0, ((PyObject *)__pyx_kp_s_89));
97831   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_89));
97832   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_90));
97833 
97834   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1388
97835  *         if self.ob_mpi != MPI_COMM_NULL:
97836  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
97837  *             if topo != MPI_GRAPH: raise TypeError(             # <<<<<<<<<<<<<<
97838  *                 "expecting a general graph communicator")
97839  *
97840  */
97841   __pyx_k_tuple_92 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_92)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97842   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_92));
97843   __Pyx_INCREF(((PyObject *)__pyx_kp_s_91));
97844   PyTuple_SET_ITEM(__pyx_k_tuple_92, 0, ((PyObject *)__pyx_kp_s_91));
97845   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_91));
97846   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_92));
97847 
97848   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1528
97849  *         if self.ob_mpi != MPI_COMM_NULL:
97850  *             CHKERR( MPI_Topo_test(self.ob_mpi, &topo) )
97851  *             if topo != MPI_DIST_GRAPH: raise TypeError(             # <<<<<<<<<<<<<<
97852  *                 "expecting a distributed graph communicator")
97853  *
97854  */
97855   __pyx_k_tuple_94 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_94)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97856   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_94));
97857   __Pyx_INCREF(((PyObject *)__pyx_kp_s_93));
97858   PyTuple_SET_ITEM(__pyx_k_tuple_94, 0, ((PyObject *)__pyx_kp_s_93));
97859   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_93));
97860   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_94));
97861 
97862   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1602
97863  *         if self.ob_mpi != MPI_COMM_NULL:
97864  *             CHKERR( MPI_Comm_test_inter(self.ob_mpi, &inter) )
97865  *             if not inter: raise TypeError(             # <<<<<<<<<<<<<<
97866  *                 "expecting an intercommunicator")
97867  *
97868  */
97869   __pyx_k_tuple_96 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_96)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97870   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_96));
97871   __Pyx_INCREF(((PyObject *)__pyx_kp_s_95));
97872   PyTuple_SET_ITEM(__pyx_k_tuple_96, 0, ((PyObject *)__pyx_kp_s_95));
97873   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_95));
97874   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_96));
97875 
97876   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":38
97877  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97878  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97879  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97880  *
97881  *     def __bool__(self):
97882  */
97883   __pyx_k_tuple_99 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97884   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_99));
97885   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97886   PyTuple_SET_ITEM(__pyx_k_tuple_99, 0, ((PyObject *)__pyx_kp_s_55));
97887   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97888   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_99));
97889 
97890   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":46
97891  *         if   op == Py_EQ: return (s.ob_mpi == o.ob_mpi)
97892  *         elif op == Py_NE: return (s.ob_mpi != o.ob_mpi)
97893  *         else: raise TypeError("only '==' and '!='")             # <<<<<<<<<<<<<<
97894  *
97895  *     def __bool__(self):
97896  */
97897   __pyx_k_tuple_103 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97898   __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_103));
97899   __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
97900   PyTuple_SET_ITEM(__pyx_k_tuple_103, 0, ((PyObject *)__pyx_kp_s_55));
97901   __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_55));
97902   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103));
97903   __Pyx_RefNannyFinishContext();
97904   return 0;
97905   __pyx_L1_error:;
97906   __Pyx_RefNannyFinishContext();
97907   return -1;
97908 }
97909 
__Pyx_InitGlobals(void)97910 static int __Pyx_InitGlobals(void) {
97911   if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97912   __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97913   __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97914   __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97915   __pyx_int_17 = PyInt_FromLong(17); if (unlikely(!__pyx_int_17)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97916   return 0;
97917   __pyx_L1_error:;
97918   return -1;
97919 }
97920 
97921 #if PY_MAJOR_VERSION < 3
97922 PyMODINIT_FUNC initMPI(void); /*proto*/
initMPI(void)97923 PyMODINIT_FUNC initMPI(void)
97924 #else
97925 PyMODINIT_FUNC PyInit_MPI(void); /*proto*/
97926 PyMODINIT_FUNC PyInit_MPI(void)
97927 #endif
97928 {
97929   int __pyx_t_1;
97930   PyObject *__pyx_t_2 = NULL;
97931   PyObject *__pyx_t_3 = NULL;
97932   PyObject *__pyx_t_4 = NULL;
97933   PyObject *__pyx_t_5 = NULL;
97934   PyObject *__pyx_t_6 = NULL;
97935   PyObject *__pyx_t_7 = NULL;
97936   PyObject *__pyx_t_8 = NULL;
97937   PyObject *__pyx_t_9 = NULL;
97938   PyObject *__pyx_t_10 = NULL;
97939   __Pyx_RefNannyDeclarations
97940   #if CYTHON_REFNANNY
97941   __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
97942   if (!__Pyx_RefNanny) {
97943       PyErr_Clear();
97944       __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
97945       if (!__Pyx_RefNanny)
97946           Py_FatalError("failed to import 'refnanny' module");
97947   }
97948   #endif
97949   __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_MPI(void)");
97950   if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97951   __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97952   __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97953   #ifdef __pyx_binding_PyCFunctionType_USED
97954   if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97955   #endif
97956   /*--- Library function declarations ---*/
97957   /*--- Threads initialization code ---*/
97958   #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
97959   #ifdef WITH_THREAD /* Python build with threading support? */
97960   PyEval_InitThreads();
97961   #endif
97962   #endif
97963   /*--- Module creation code ---*/
97964   #if PY_MAJOR_VERSION < 3
97965   __pyx_m = Py_InitModule4(__Pyx_NAMESTR("MPI"), __pyx_methods, 0, 0, PYTHON_API_VERSION);
97966   #else
97967   __pyx_m = PyModule_Create(&__pyx_moduledef);
97968   #endif
97969   if (!__pyx_m) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97970   #if PY_MAJOR_VERSION < 3
97971   Py_INCREF(__pyx_m);
97972   #endif
97973   __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
97974   if (!__pyx_b) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97975   if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97976   /*--- Initialize various global constants etc. ---*/
97977   if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97978   if (__pyx_module_is_main_mpi4py__MPI) {
97979     if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
97980   }
97981   /*--- Builtin init code ---*/
97982   if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97983   /*--- Constants init code ---*/
97984   if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
97985   /*--- Global init code ---*/
97986   __pyx_v_6mpi4py_3MPI_MPIException = Py_None; Py_INCREF(Py_None);
97987   __pyx_v_6mpi4py_3MPI_arraytype = ((PyObject*)Py_None); Py_INCREF(Py_None);
97988   __pyx_v_6mpi4py_3MPI_type_keyval = ((PyObject*)Py_None); Py_INCREF(Py_None);
97989   __pyx_v_6mpi4py_3MPI_op_user_registry = Py_None; Py_INCREF(Py_None);
97990   __pyx_v_6mpi4py_3MPI_comm_keyval = ((PyObject*)Py_None); Py_INCREF(Py_None);
97991   __pyx_v_6mpi4py_3MPI__buffer = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None); Py_INCREF(Py_None);
97992   __pyx_v_6mpi4py_3MPI_win_keyval = ((PyObject*)Py_None); Py_INCREF(Py_None);
97993   __pyx_v_6mpi4py_3MPI___BOTTOM__ = Py_None; Py_INCREF(Py_None);
97994   __pyx_v_6mpi4py_3MPI___IN_PLACE__ = Py_None; Py_INCREF(Py_None);
97995   __pyx_v_6mpi4py_3MPI_PyPickle_dumps = Py_None; Py_INCREF(Py_None);
97996   __pyx_v_6mpi4py_3MPI_PyPickle_loads = Py_None; Py_INCREF(Py_None);
97997   __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = Py_None; Py_INCREF(Py_None);
97998   __pyx_v_6mpi4py_3MPI_PyStringIO_New = Py_None; Py_INCREF(Py_None);
97999   __pyx_v_6mpi4py_3MPI_PyPickle_loadf = Py_None; Py_INCREF(Py_None);
98000   __pyx_v_6mpi4py_3MPI_PyMPI_PICKLE = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)Py_None); Py_INCREF(Py_None);
98001   __pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__ = ((struct PyMPIErrhandlerObject *)Py_None); Py_INCREF(Py_None);
98002   __pyx_v_6mpi4py_3MPI___ERRORS_RETURN__ = ((struct PyMPIErrhandlerObject *)Py_None); Py_INCREF(Py_None);
98003   __pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__ = ((struct PyMPIErrhandlerObject *)Py_None); Py_INCREF(Py_None);
98004   __pyx_v_6mpi4py_3MPI___DATATYPE_NULL__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98005   __pyx_v_6mpi4py_3MPI___UB__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98006   __pyx_v_6mpi4py_3MPI___LB__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98007   __pyx_v_6mpi4py_3MPI___PACKED__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98008   __pyx_v_6mpi4py_3MPI___BYTE__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98009   __pyx_v_6mpi4py_3MPI___AINT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98010   __pyx_v_6mpi4py_3MPI___OFFSET__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98011   __pyx_v_6mpi4py_3MPI___CHAR__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98012   __pyx_v_6mpi4py_3MPI___WCHAR__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98013   __pyx_v_6mpi4py_3MPI___SIGNED_CHAR__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98014   __pyx_v_6mpi4py_3MPI___SHORT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98015   __pyx_v_6mpi4py_3MPI___INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98016   __pyx_v_6mpi4py_3MPI___LONG__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98017   __pyx_v_6mpi4py_3MPI___LONG_LONG__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98018   __pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98019   __pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98020   __pyx_v_6mpi4py_3MPI___UNSIGNED__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98021   __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98022   __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98023   __pyx_v_6mpi4py_3MPI___FLOAT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98024   __pyx_v_6mpi4py_3MPI___DOUBLE__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98025   __pyx_v_6mpi4py_3MPI___LONG_DOUBLE__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98026   __pyx_v_6mpi4py_3MPI___C_BOOL__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98027   __pyx_v_6mpi4py_3MPI___INT8_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98028   __pyx_v_6mpi4py_3MPI___INT16_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98029   __pyx_v_6mpi4py_3MPI___INT32_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98030   __pyx_v_6mpi4py_3MPI___INT64_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98031   __pyx_v_6mpi4py_3MPI___UINT8_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98032   __pyx_v_6mpi4py_3MPI___UINT16_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98033   __pyx_v_6mpi4py_3MPI___UINT32_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98034   __pyx_v_6mpi4py_3MPI___UINT64_T__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98035   __pyx_v_6mpi4py_3MPI___C_COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98036   __pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98037   __pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98038   __pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98039   __pyx_v_6mpi4py_3MPI___SHORT_INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98040   __pyx_v_6mpi4py_3MPI___TWOINT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98041   __pyx_v_6mpi4py_3MPI___LONG_INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98042   __pyx_v_6mpi4py_3MPI___FLOAT_INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98043   __pyx_v_6mpi4py_3MPI___DOUBLE_INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98044   __pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98045   __pyx_v_6mpi4py_3MPI___CHARACTER__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98046   __pyx_v_6mpi4py_3MPI___LOGICAL__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98047   __pyx_v_6mpi4py_3MPI___INTEGER__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98048   __pyx_v_6mpi4py_3MPI___REAL__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98049   __pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98050   __pyx_v_6mpi4py_3MPI___COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98051   __pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98052   __pyx_v_6mpi4py_3MPI___LOGICAL1__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98053   __pyx_v_6mpi4py_3MPI___LOGICAL2__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98054   __pyx_v_6mpi4py_3MPI___LOGICAL4__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98055   __pyx_v_6mpi4py_3MPI___LOGICAL8__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98056   __pyx_v_6mpi4py_3MPI___INTEGER1__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98057   __pyx_v_6mpi4py_3MPI___INTEGER2__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98058   __pyx_v_6mpi4py_3MPI___INTEGER4__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98059   __pyx_v_6mpi4py_3MPI___INTEGER8__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98060   __pyx_v_6mpi4py_3MPI___INTEGER16__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98061   __pyx_v_6mpi4py_3MPI___REAL2__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98062   __pyx_v_6mpi4py_3MPI___REAL4__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98063   __pyx_v_6mpi4py_3MPI___REAL8__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98064   __pyx_v_6mpi4py_3MPI___REAL16__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98065   __pyx_v_6mpi4py_3MPI___COMPLEX4__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98066   __pyx_v_6mpi4py_3MPI___COMPLEX8__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98067   __pyx_v_6mpi4py_3MPI___COMPLEX16__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98068   __pyx_v_6mpi4py_3MPI___COMPLEX32__ = ((struct PyMPIDatatypeObject *)Py_None); Py_INCREF(Py_None);
98069   __pyx_v_6mpi4py_3MPI_TypeDict = ((PyObject*)Py_None); Py_INCREF(Py_None);
98070   __pyx_v_6mpi4py_3MPI_CTypeDict = ((PyObject*)Py_None); Py_INCREF(Py_None);
98071   __pyx_v_6mpi4py_3MPI_FTypeDict = ((PyObject*)Py_None); Py_INCREF(Py_None);
98072   __pyx_v_6mpi4py_3MPI___REQUEST_NULL__ = ((struct PyMPIRequestObject *)Py_None); Py_INCREF(Py_None);
98073   __pyx_v_6mpi4py_3MPI___INFO_NULL__ = ((struct PyMPIInfoObject *)Py_None); Py_INCREF(Py_None);
98074   __pyx_v_6mpi4py_3MPI___OP_NULL__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98075   __pyx_v_6mpi4py_3MPI___MAX__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98076   __pyx_v_6mpi4py_3MPI___MIN__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98077   __pyx_v_6mpi4py_3MPI___SUM__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98078   __pyx_v_6mpi4py_3MPI___PROD__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98079   __pyx_v_6mpi4py_3MPI___LAND__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98080   __pyx_v_6mpi4py_3MPI___BAND__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98081   __pyx_v_6mpi4py_3MPI___LOR__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98082   __pyx_v_6mpi4py_3MPI___BOR__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98083   __pyx_v_6mpi4py_3MPI___LXOR__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98084   __pyx_v_6mpi4py_3MPI___BXOR__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98085   __pyx_v_6mpi4py_3MPI___MAXLOC__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98086   __pyx_v_6mpi4py_3MPI___MINLOC__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98087   __pyx_v_6mpi4py_3MPI___REPLACE__ = ((struct PyMPIOpObject *)Py_None); Py_INCREF(Py_None);
98088   __pyx_v_6mpi4py_3MPI___GROUP_NULL__ = ((struct PyMPIGroupObject *)Py_None); Py_INCREF(Py_None);
98089   __pyx_v_6mpi4py_3MPI___GROUP_EMPTY__ = ((struct PyMPIGroupObject *)Py_None); Py_INCREF(Py_None);
98090   __pyx_v_6mpi4py_3MPI___COMM_NULL__ = ((struct PyMPICommObject *)Py_None); Py_INCREF(Py_None);
98091   __pyx_v_6mpi4py_3MPI___COMM_SELF__ = ((struct PyMPIIntracommObject *)Py_None); Py_INCREF(Py_None);
98092   __pyx_v_6mpi4py_3MPI___COMM_WORLD__ = ((struct PyMPIIntracommObject *)Py_None); Py_INCREF(Py_None);
98093   __pyx_v_6mpi4py_3MPI___COMM_PARENT__ = ((struct PyMPIIntercommObject *)Py_None); Py_INCREF(Py_None);
98094   __pyx_v_6mpi4py_3MPI___WIN_NULL__ = ((struct PyMPIWinObject *)Py_None); Py_INCREF(Py_None);
98095   __pyx_v_6mpi4py_3MPI___FILE_NULL__ = ((struct PyMPIFileObject *)Py_None); Py_INCREF(Py_None);
98096   /*--- Variable export code ---*/
98097   /*--- Function export code ---*/
98098   if (__Pyx_ExportFunction("PyMPIDatatype_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIDatatype_New, "PyObject *(MPI_Datatype)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98099   if (__Pyx_ExportFunction("PyMPIDatatype_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIDatatype_Get, "MPI_Datatype *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98100   if (__Pyx_ExportFunction("PyMPIStatus_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIStatus_New, "PyObject *(MPI_Status *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98101   if (__Pyx_ExportFunction("PyMPIStatus_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIStatus_Get, "MPI_Status *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98102   if (__Pyx_ExportFunction("PyMPIRequest_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIRequest_New, "PyObject *(MPI_Request)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98103   if (__Pyx_ExportFunction("PyMPIRequest_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIRequest_Get, "MPI_Request *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98104   if (__Pyx_ExportFunction("PyMPIOp_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIOp_New, "PyObject *(MPI_Op)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98105   if (__Pyx_ExportFunction("PyMPIOp_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIOp_Get, "MPI_Op *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98106   if (__Pyx_ExportFunction("PyMPIInfo_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIInfo_New, "PyObject *(MPI_Info)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98107   if (__Pyx_ExportFunction("PyMPIInfo_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIInfo_Get, "MPI_Info *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98108   if (__Pyx_ExportFunction("PyMPIGroup_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIGroup_New, "PyObject *(MPI_Group)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98109   if (__Pyx_ExportFunction("PyMPIGroup_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIGroup_Get, "MPI_Group *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98110   if (__Pyx_ExportFunction("PyMPIComm_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIComm_New, "PyObject *(MPI_Comm)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98111   if (__Pyx_ExportFunction("PyMPIComm_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIComm_Get, "MPI_Comm *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98112   if (__Pyx_ExportFunction("PyMPIWin_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIWin_New, "PyObject *(MPI_Win)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98113   if (__Pyx_ExportFunction("PyMPIWin_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIWin_Get, "MPI_Win *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98114   if (__Pyx_ExportFunction("PyMPIFile_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIFile_New, "PyObject *(MPI_File)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98115   if (__Pyx_ExportFunction("PyMPIFile_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIFile_Get, "MPI_File *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98116   if (__Pyx_ExportFunction("PyMPIErrhandler_New", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_New, "PyObject *(MPI_Errhandler)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98117   if (__Pyx_ExportFunction("PyMPIErrhandler_Get", (void (*)(void))__pyx_f_6mpi4py_3MPI_PyMPIErrhandler_Get, "MPI_Errhandler *(PyObject *)") < 0) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98118   /*--- Type init code ---*/
98119   if (PyType_Ready(&PyMPIStatus_Type) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98120   if (__Pyx_SetAttrString(__pyx_m, "Status", (PyObject *)&PyMPIStatus_Type) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98121   __pyx_ptype_6mpi4py_3MPI_Status = &PyMPIStatus_Type;
98122   if (PyType_Ready(&PyMPIDatatype_Type) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98123   if (__Pyx_SetAttrString(__pyx_m, "Datatype", (PyObject *)&PyMPIDatatype_Type) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98124   __pyx_ptype_6mpi4py_3MPI_Datatype = &PyMPIDatatype_Type;
98125   if (PyType_Ready(&PyMPIRequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98126   if (__Pyx_SetAttrString(__pyx_m, "Request", (PyObject *)&PyMPIRequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98127   __pyx_ptype_6mpi4py_3MPI_Request = &PyMPIRequest_Type;
98128   PyMPIPrequest_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Request;
98129   if (PyType_Ready(&PyMPIPrequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98130   if (__Pyx_SetAttrString(__pyx_m, "Prequest", (PyObject *)&PyMPIPrequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98131   __pyx_ptype_6mpi4py_3MPI_Prequest = &PyMPIPrequest_Type;
98132   PyMPIGrequest_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Request;
98133   if (PyType_Ready(&PyMPIGrequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98134   if (__Pyx_SetAttrString(__pyx_m, "Grequest", (PyObject *)&PyMPIGrequest_Type) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98135   __pyx_ptype_6mpi4py_3MPI_Grequest = &PyMPIGrequest_Type;
98136   if (PyType_Ready(&PyMPIOp_Type) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98137   if (__Pyx_SetAttrString(__pyx_m, "Op", (PyObject *)&PyMPIOp_Type) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98138   __pyx_ptype_6mpi4py_3MPI_Op = &PyMPIOp_Type;
98139   if (PyType_Ready(&PyMPIGroup_Type) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98140   if (__Pyx_SetAttrString(__pyx_m, "Group", (PyObject *)&PyMPIGroup_Type) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98141   __pyx_ptype_6mpi4py_3MPI_Group = &PyMPIGroup_Type;
98142   if (PyType_Ready(&PyMPIInfo_Type) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98143   if (__Pyx_SetAttrString(__pyx_m, "Info", (PyObject *)&PyMPIInfo_Type) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98144   __pyx_ptype_6mpi4py_3MPI_Info = &PyMPIInfo_Type;
98145   if (PyType_Ready(&PyMPIErrhandler_Type) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98146   if (__Pyx_SetAttrString(__pyx_m, "Errhandler", (PyObject *)&PyMPIErrhandler_Type) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98147   __pyx_ptype_6mpi4py_3MPI_Errhandler = &PyMPIErrhandler_Type;
98148   if (PyType_Ready(&PyMPIComm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98149   if (__Pyx_SetAttrString(__pyx_m, "Comm", (PyObject *)&PyMPIComm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98150   __pyx_ptype_6mpi4py_3MPI_Comm = &PyMPIComm_Type;
98151   PyMPIIntracomm_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Comm;
98152   if (PyType_Ready(&PyMPIIntracomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98153   if (__Pyx_SetAttrString(__pyx_m, "Intracomm", (PyObject *)&PyMPIIntracomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98154   __pyx_ptype_6mpi4py_3MPI_Intracomm = &PyMPIIntracomm_Type;
98155   PyMPICartcomm_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Intracomm;
98156   if (PyType_Ready(&PyMPICartcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98157   if (__Pyx_SetAttrString(__pyx_m, "Cartcomm", (PyObject *)&PyMPICartcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98158   __pyx_ptype_6mpi4py_3MPI_Cartcomm = &PyMPICartcomm_Type;
98159   PyMPIGraphcomm_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Intracomm;
98160   if (PyType_Ready(&PyMPIGraphcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98161   if (__Pyx_SetAttrString(__pyx_m, "Graphcomm", (PyObject *)&PyMPIGraphcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98162   __pyx_ptype_6mpi4py_3MPI_Graphcomm = &PyMPIGraphcomm_Type;
98163   PyMPIDistgraphcomm_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Intracomm;
98164   if (PyType_Ready(&PyMPIDistgraphcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98165   if (__Pyx_SetAttrString(__pyx_m, "Distgraphcomm", (PyObject *)&PyMPIDistgraphcomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98166   __pyx_ptype_6mpi4py_3MPI_Distgraphcomm = &PyMPIDistgraphcomm_Type;
98167   PyMPIIntercomm_Type.tp_base = __pyx_ptype_6mpi4py_3MPI_Comm;
98168   if (PyType_Ready(&PyMPIIntercomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98169   if (__Pyx_SetAttrString(__pyx_m, "Intercomm", (PyObject *)&PyMPIIntercomm_Type) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98170   __pyx_ptype_6mpi4py_3MPI_Intercomm = &PyMPIIntercomm_Type;
98171   if (PyType_Ready(&PyMPIWin_Type) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98172   if (__Pyx_SetAttrString(__pyx_m, "Win", (PyObject *)&PyMPIWin_Type) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98173   __pyx_ptype_6mpi4py_3MPI_Win = &PyMPIWin_Type;
98174   if (PyType_Ready(&PyMPIFile_Type) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98175   if (__Pyx_SetAttrString(__pyx_m, "File", (PyObject *)&PyMPIFile_Type) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98176   __pyx_ptype_6mpi4py_3MPI_File = &PyMPIFile_Type;
98177   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_buffer) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98178   if (__Pyx_SetAttrString(__pyx_m, "_p_buffer", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_buffer) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98179   __pyx_ptype_6mpi4py_3MPI__p_buffer = &__pyx_type_6mpi4py_3MPI__p_buffer;
98180   __pyx_vtabptr_6mpi4py_3MPI__p_greq = &__pyx_vtable_6mpi4py_3MPI__p_greq;
98181   __pyx_vtable_6mpi4py_3MPI__p_greq.query = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_greq *, MPI_Status *))__pyx_f_6mpi4py_3MPI_7_p_greq_query;
98182   __pyx_vtable_6mpi4py_3MPI__p_greq.free = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_greq *))__pyx_f_6mpi4py_3MPI_7_p_greq_free;
98183   __pyx_vtable_6mpi4py_3MPI__p_greq.cancel = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_greq *, int))__pyx_f_6mpi4py_3MPI_7_p_greq_cancel;
98184   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_greq) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98185   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_greq.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_greq) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98186   if (__Pyx_SetAttrString(__pyx_m, "_p_greq", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_greq) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98187   __pyx_ptype_6mpi4py_3MPI__p_greq = &__pyx_type_6mpi4py_3MPI__p_greq;
98188   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_message) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98189   if (__Pyx_SetAttrString(__pyx_m, "_p_message", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_message) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98190   __pyx_ptype_6mpi4py_3MPI__p_message = &__pyx_type_6mpi4py_3MPI__p_message;
98191   __pyx_vtabptr_6mpi4py_3MPI__p_msg_p2p = &__pyx_vtable_6mpi4py_3MPI__p_msg_p2p;
98192   __pyx_vtable_6mpi4py_3MPI__p_msg_p2p.for_send = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *, PyObject *, int))__pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_send;
98193   __pyx_vtable_6mpi4py_3MPI__p_msg_p2p.for_recv = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_p2p *, PyObject *, int))__pyx_f_6mpi4py_3MPI_10_p_msg_p2p_for_recv;
98194   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_msg_p2p) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98195   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_msg_p2p.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_msg_p2p) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98196   if (__Pyx_SetAttrString(__pyx_m, "_p_msg_p2p", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_msg_p2p) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98197   __pyx_ptype_6mpi4py_3MPI__p_msg_p2p = &__pyx_type_6mpi4py_3MPI__p_msg_p2p;
98198   __pyx_vtabptr_6mpi4py_3MPI__p_msg_cco = &__pyx_vtable_6mpi4py_3MPI__p_msg_cco;
98199   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_cco_send = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, int, int))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_send;
98200   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_cco_recv = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, int, int))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cco_recv;
98201   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_bcast = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_bcast;
98202   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_gather = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, int, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_gather;
98203   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_scatter = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, int, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scatter;
98204   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_allgather = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allgather;
98205   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_alltoall = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, int, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_alltoall;
98206   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_cro_send = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_send;
98207   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_cro_recv = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, int))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_cro_recv;
98208   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_reduce = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, int, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce;
98209   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_allreduce = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_allreduce;
98210   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_reduce_scatter_block = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter_block;
98211   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_reduce_scatter = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_reduce_scatter;
98212   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_scan = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_scan;
98213   __pyx_vtable_6mpi4py_3MPI__p_msg_cco.for_exscan = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_cco *, PyObject *, PyObject *, MPI_Comm))__pyx_f_6mpi4py_3MPI_10_p_msg_cco_for_exscan;
98214   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_msg_cco) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98215   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_msg_cco.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_msg_cco) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98216   if (__Pyx_SetAttrString(__pyx_m, "_p_msg_cco", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_msg_cco) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98217   __pyx_ptype_6mpi4py_3MPI__p_msg_cco = &__pyx_type_6mpi4py_3MPI__p_msg_cco;
98218   __pyx_vtabptr_6mpi4py_3MPI__p_msg_rma = &__pyx_vtable_6mpi4py_3MPI__p_msg_rma;
98219   __pyx_vtable_6mpi4py_3MPI__p_msg_rma.for_rma = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, int, PyObject *, int, PyObject *))__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_rma;
98220   __pyx_vtable_6mpi4py_3MPI__p_msg_rma.for_put = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *))__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_put;
98221   __pyx_vtable_6mpi4py_3MPI__p_msg_rma.for_get = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *))__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_get;
98222   __pyx_vtable_6mpi4py_3MPI__p_msg_rma.for_acc = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_rma *, PyObject *, int, PyObject *))__pyx_f_6mpi4py_3MPI_10_p_msg_rma_for_acc;
98223   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_msg_rma) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98224   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_msg_rma.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_msg_rma) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98225   if (__Pyx_SetAttrString(__pyx_m, "_p_msg_rma", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_msg_rma) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98226   __pyx_ptype_6mpi4py_3MPI__p_msg_rma = &__pyx_type_6mpi4py_3MPI__p_msg_rma;
98227   __pyx_vtabptr_6mpi4py_3MPI__p_msg_io = &__pyx_vtable_6mpi4py_3MPI__p_msg_io;
98228   __pyx_vtable_6mpi4py_3MPI__p_msg_io.for_read = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *, PyObject *))__pyx_f_6mpi4py_3MPI_9_p_msg_io_for_read;
98229   __pyx_vtable_6mpi4py_3MPI__p_msg_io.for_write = (int (*)(struct __pyx_obj_6mpi4py_3MPI__p_msg_io *, PyObject *))__pyx_f_6mpi4py_3MPI_9_p_msg_io_for_write;
98230   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_msg_io) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98231   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_msg_io.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_msg_io) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98232   if (__Pyx_SetAttrString(__pyx_m, "_p_msg_io", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_msg_io) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98233   __pyx_ptype_6mpi4py_3MPI__p_msg_io = &__pyx_type_6mpi4py_3MPI__p_msg_io;
98234   __pyx_vtabptr_6mpi4py_3MPI__p_Pickle = &__pyx_vtable_6mpi4py_3MPI__p_Pickle;
98235   __pyx_vtable_6mpi4py_3MPI__p_Pickle.dump = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, void **, int *))__pyx_f_6mpi4py_3MPI_9_p_Pickle_dump;
98236   __pyx_vtable_6mpi4py_3MPI__p_Pickle.alloc = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, void **, int))__pyx_f_6mpi4py_3MPI_9_p_Pickle_alloc;
98237   __pyx_vtable_6mpi4py_3MPI__p_Pickle.load = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *))__pyx_f_6mpi4py_3MPI_9_p_Pickle_load;
98238   __pyx_vtable_6mpi4py_3MPI__p_Pickle.dumpv = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, void **, int, int *, int *))__pyx_f_6mpi4py_3MPI_9_p_Pickle_dumpv;
98239   __pyx_vtable_6mpi4py_3MPI__p_Pickle.allocv = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, void **, int, int *, int *))__pyx_f_6mpi4py_3MPI_9_p_Pickle_allocv;
98240   __pyx_vtable_6mpi4py_3MPI__p_Pickle.loadv = (PyObject *(*)(struct __pyx_obj_6mpi4py_3MPI__p_Pickle *, PyObject *, int, int *, int *))__pyx_f_6mpi4py_3MPI_9_p_Pickle_loadv;
98241   if (PyType_Ready(&__pyx_type_6mpi4py_3MPI__p_Pickle) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98242   if (__Pyx_SetVtable(__pyx_type_6mpi4py_3MPI__p_Pickle.tp_dict, __pyx_vtabptr_6mpi4py_3MPI__p_Pickle) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98243   if (__Pyx_SetAttrString(__pyx_m, "_p_Pickle", (PyObject *)&__pyx_type_6mpi4py_3MPI__p_Pickle) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98244   __pyx_ptype_6mpi4py_3MPI__p_Pickle = &__pyx_type_6mpi4py_3MPI__p_Pickle;
98245   /*--- Type import code ---*/
98246   /*--- Variable import code ---*/
98247   /*--- Function import code ---*/
98248   /*--- Execution code ---*/
98249 
98250   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":1
98251  * __doc__ = """             # <<<<<<<<<<<<<<
98252  * Message Passing Interface
98253  * """
98254  */
98255   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____doc__, ((PyObject *)__pyx_kp_s_147)) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98256 
98257   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":98
98258  *     int PyMPI_CleanUp() nogil
98259  *
98260  * cdef int inited_atimport = 0             # <<<<<<<<<<<<<<
98261  * cdef int finalize_atexit = 0
98262  *
98263  */
98264   __pyx_v_6mpi4py_3MPI_inited_atimport = 0;
98265 
98266   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":99
98267  *
98268  * cdef int inited_atimport = 0
98269  * cdef int finalize_atexit = 0             # <<<<<<<<<<<<<<
98270  *
98271  * PyMPI_STARTUP_DONE = 0
98272  */
98273   __pyx_v_6mpi4py_3MPI_finalize_atexit = 0;
98274 
98275   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":101
98276  * cdef int finalize_atexit = 0
98277  *
98278  * PyMPI_STARTUP_DONE = 0             # <<<<<<<<<<<<<<
98279  * PyMPI_CLEANUP_DONE = 0
98280  *
98281  */
98282   PyMPI_STARTUP_DONE = 0;
98283 
98284   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":102
98285  *
98286  * PyMPI_STARTUP_DONE = 0
98287  * PyMPI_CLEANUP_DONE = 0             # <<<<<<<<<<<<<<
98288  *
98289  * cdef int initialize() except -1:
98290  */
98291   PyMPI_CLEANUP_DONE = 0;
98292 
98293   /* "/home/devel/mpi4py-1.3/src/MPI/atimport.pxi":194
98294  *     void *PyExc_NotImplementedError
98295  *
98296  * cdef object MPIException = <object>PyExc_RuntimeError             # <<<<<<<<<<<<<<
98297  *
98298  * cdef int PyMPI_Raise(int ierr) except -1 with gil:
98299  */
98300   __Pyx_INCREF(((PyObject *)PyExc_RuntimeError));
98301   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_MPIException);
98302   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_MPIException);
98303   __Pyx_GIVEREF(((PyObject *)PyExc_RuntimeError));
98304   __pyx_v_6mpi4py_3MPI_MPIException = ((PyObject *)PyExc_RuntimeError);
98305 
98306   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":10
98307  * include "atimport.pxi"
98308  *
98309  * initialize()             # <<<<<<<<<<<<<<
98310  * startup()
98311  *
98312  */
98313   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_initialize(); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98314 
98315   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":11
98316  *
98317  * initialize()
98318  * startup()             # <<<<<<<<<<<<<<
98319  *
98320  * include "asmpistr.pxi"
98321  */
98322   __pyx_f_6mpi4py_3MPI_startup();
98323 
98324   /* "/home/devel/mpi4py-1.3/src/MPI/asarray.pxi":4
98325  *
98326  * cdef type arraytype
98327  * from array import array as arraytype             # <<<<<<<<<<<<<<
98328  *
98329  * cdef extern from "Python.h":
98330  */
98331   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98332   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98333   __Pyx_INCREF(((PyObject *)__pyx_n_s__array));
98334   PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__array));
98335   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__array));
98336   __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__array), ((PyObject *)__pyx_t_2), -1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98337   __Pyx_GOTREF(__pyx_t_3);
98338   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
98339   __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__array); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98340   __Pyx_GOTREF(__pyx_t_2);
98341   if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected type, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98342   __Pyx_INCREF(__pyx_t_2);
98343   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_arraytype));
98344   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_arraytype));
98345   __Pyx_GIVEREF(__pyx_t_2);
98346   __pyx_v_6mpi4py_3MPI_arraytype = ((PyObject*)__pyx_t_2);
98347   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98348   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
98349 
98350   /* "/home/devel/mpi4py-1.3/src/MPI/typeimpl.pxi":3
98351  * # -----------------------------------------------------------------------------
98352  *
98353  * cdef dict type_keyval = {}             # <<<<<<<<<<<<<<
98354  *
98355  * cdef inline int type_keyval_new(int keyval,
98356  */
98357   __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98358   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
98359   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval));
98360   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_type_keyval));
98361   __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
98362   __pyx_v_6mpi4py_3MPI_type_keyval = __pyx_t_3;
98363   __pyx_t_3 = 0;
98364 
98365   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":4
98366  *
98367  * cdef MPI_Status empty_status
98368  * empty_status.MPI_SOURCE = MPI_ANY_SOURCE             # <<<<<<<<<<<<<<
98369  * empty_status.MPI_TAG = MPI_ANY_TAG
98370  * empty_status.MPI_ERROR  = MPI_SUCCESS
98371  */
98372   __pyx_v_6mpi4py_3MPI_empty_status.MPI_SOURCE = MPI_ANY_SOURCE;
98373 
98374   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":5
98375  * cdef MPI_Status empty_status
98376  * empty_status.MPI_SOURCE = MPI_ANY_SOURCE
98377  * empty_status.MPI_TAG = MPI_ANY_TAG             # <<<<<<<<<<<<<<
98378  * empty_status.MPI_ERROR  = MPI_SUCCESS
98379  *
98380  */
98381   __pyx_v_6mpi4py_3MPI_empty_status.MPI_TAG = MPI_ANY_TAG;
98382 
98383   /* "/home/devel/mpi4py-1.3/src/MPI/reqimpl.pxi":6
98384  * empty_status.MPI_SOURCE = MPI_ANY_SOURCE
98385  * empty_status.MPI_TAG = MPI_ANY_TAG
98386  * empty_status.MPI_ERROR  = MPI_SUCCESS             # <<<<<<<<<<<<<<
98387  *
98388  * cdef object acquire_rs(object requests,
98389  */
98390   __pyx_v_6mpi4py_3MPI_empty_status.MPI_ERROR = MPI_SUCCESS;
98391 
98392   /* "/home/devel/mpi4py-1.3/src/MPI/opimpl.pxi":79
98393  * # -----------------------------------------------------------------------------
98394  *
98395  * cdef object op_user_registry = [None]*(1+16)             # <<<<<<<<<<<<<<
98396  *
98397  * cdef inline object op_user_py(int index, object x, object y, object dt):
98398  */
98399   __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98400   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
98401   __Pyx_INCREF(Py_None);
98402   PyList_SET_ITEM(__pyx_t_3, 0, Py_None);
98403   __Pyx_GIVEREF(Py_None);
98404   __pyx_t_2 = PyNumber_Multiply(((PyObject *)__pyx_t_3), __pyx_int_17); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98405   __Pyx_GOTREF(__pyx_t_2);
98406   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
98407   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_op_user_registry);
98408   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_op_user_registry);
98409   __Pyx_GIVEREF(__pyx_t_2);
98410   __pyx_v_6mpi4py_3MPI_op_user_registry = __pyx_t_2;
98411   __pyx_t_2 = 0;
98412 
98413   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":3
98414  * # -----------------------------------------------------------------------------
98415  *
98416  * cdef dict comm_keyval = {}             # <<<<<<<<<<<<<<
98417  *
98418  * cdef int comm_keyval_new(int keyval,
98419  */
98420   __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98421   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98422   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval));
98423   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_comm_keyval));
98424   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
98425   __pyx_v_6mpi4py_3MPI_comm_keyval = __pyx_t_2;
98426   __pyx_t_2 = 0;
98427 
98428   /* "/home/devel/mpi4py-1.3/src/MPI/commimpl.pxi":95
98429  * # -----------------------------------------------------------------------------
98430  *
98431  * cdef _p_buffer _buffer = None             # <<<<<<<<<<<<<<
98432  *
98433  * cdef inline int attach_buffer(ob, void **p, int *n) except -1:
98434  */
98435   __Pyx_INCREF(Py_None);
98436   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
98437   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI__buffer));
98438   __Pyx_GIVEREF(Py_None);
98439   __pyx_v_6mpi4py_3MPI__buffer = ((struct __pyx_obj_6mpi4py_3MPI__p_buffer *)Py_None);
98440 
98441   /* "/home/devel/mpi4py-1.3/src/MPI/winimpl.pxi":33
98442  * # -----------------------------------------------------------------------------
98443  *
98444  * cdef dict win_keyval = {}             # <<<<<<<<<<<<<<
98445  *
98446  * cdef inline int win_keyval_new(int keyval,
98447  */
98448   __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98449   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98450   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval));
98451   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_win_keyval));
98452   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
98453   __pyx_v_6mpi4py_3MPI_win_keyval = __pyx_t_2;
98454   __pyx_t_2 = 0;
98455 
98456   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":14
98457  * #------------------------------------------------------------------------------
98458  *
98459  * cdef object __BOTTOM__ = <MPI_Aint>MPI_BOTTOM             # <<<<<<<<<<<<<<
98460  *
98461  * cdef object __IN_PLACE__ = <MPI_Aint>MPI_IN_PLACE
98462  */
98463   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(((MPI_Aint)MPI_BOTTOM)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98464   __Pyx_GOTREF(__pyx_t_2);
98465   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI___BOTTOM__);
98466   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI___BOTTOM__);
98467   __Pyx_GIVEREF(__pyx_t_2);
98468   __pyx_v_6mpi4py_3MPI___BOTTOM__ = __pyx_t_2;
98469   __pyx_t_2 = 0;
98470 
98471   /* "/home/devel/mpi4py-1.3/src/MPI/message.pxi":16
98472  * cdef object __BOTTOM__ = <MPI_Aint>MPI_BOTTOM
98473  *
98474  * cdef object __IN_PLACE__ = <MPI_Aint>MPI_IN_PLACE             # <<<<<<<<<<<<<<
98475  *
98476  * #------------------------------------------------------------------------------
98477  */
98478   __pyx_t_2 = __Pyx_PyInt_to_py_MPI_Aint(((MPI_Aint)MPI_IN_PLACE)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98479   __Pyx_GOTREF(__pyx_t_2);
98480   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI___IN_PLACE__);
98481   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI___IN_PLACE__);
98482   __Pyx_GIVEREF(__pyx_t_2);
98483   __pyx_v_6mpi4py_3MPI___IN_PLACE__ = __pyx_t_2;
98484   __pyx_t_2 = 0;
98485 
98486   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":12
98487  * # -----------------------------------------------------------------------------
98488  *
98489  * cdef object PyPickle_dumps = None             # <<<<<<<<<<<<<<
98490  * cdef object PyPickle_loads = None
98491  * cdef object PyPickle_PROTOCOL = -1
98492  */
98493   __Pyx_INCREF(Py_None);
98494   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98495   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98496   __Pyx_GIVEREF(Py_None);
98497   __pyx_v_6mpi4py_3MPI_PyPickle_dumps = Py_None;
98498 
98499   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":13
98500  *
98501  * cdef object PyPickle_dumps = None
98502  * cdef object PyPickle_loads = None             # <<<<<<<<<<<<<<
98503  * cdef object PyPickle_PROTOCOL = -1
98504  *
98505  */
98506   __Pyx_INCREF(Py_None);
98507   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98508   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98509   __Pyx_GIVEREF(Py_None);
98510   __pyx_v_6mpi4py_3MPI_PyPickle_loads = Py_None;
98511 
98512   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":14
98513  * cdef object PyPickle_dumps = None
98514  * cdef object PyPickle_loads = None
98515  * cdef object PyPickle_PROTOCOL = -1             # <<<<<<<<<<<<<<
98516  *
98517  * try:
98518  */
98519   __Pyx_INCREF(__pyx_int_neg_1);
98520   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98521   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98522   __Pyx_GIVEREF(__pyx_int_neg_1);
98523   __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = __pyx_int_neg_1;
98524 
98525   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":16
98526  * cdef object PyPickle_PROTOCOL = -1
98527  *
98528  * try:             # <<<<<<<<<<<<<<
98529  *     from cPickle import dumps as PyPickle_dumps
98530  *     from cPickle import loads as PyPickle_loads
98531  */
98532   {
98533     __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
98534     __Pyx_XGOTREF(__pyx_t_5);
98535     __Pyx_XGOTREF(__pyx_t_6);
98536     __Pyx_XGOTREF(__pyx_t_7);
98537     /*try:*/ {
98538 
98539       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":17
98540  *
98541  * try:
98542  *     from cPickle import dumps as PyPickle_dumps             # <<<<<<<<<<<<<<
98543  *     from cPickle import loads as PyPickle_loads
98544  *     from cPickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98545  */
98546       __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98547       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98548       __Pyx_INCREF(((PyObject *)__pyx_n_s__dumps));
98549       PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__dumps));
98550       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dumps));
98551       __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__cPickle), ((PyObject *)__pyx_t_2), -1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98552       __Pyx_GOTREF(__pyx_t_3);
98553       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
98554       __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__dumps); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98555       __Pyx_GOTREF(__pyx_t_2);
98556       __Pyx_INCREF(__pyx_t_2);
98557       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98558       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98559       __Pyx_GIVEREF(__pyx_t_2);
98560       __pyx_v_6mpi4py_3MPI_PyPickle_dumps = __pyx_t_2;
98561       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98562       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
98563 
98564       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":18
98565  * try:
98566  *     from cPickle import dumps as PyPickle_dumps
98567  *     from cPickle import loads as PyPickle_loads             # <<<<<<<<<<<<<<
98568  *     from cPickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98569  * except ImportError:
98570  */
98571       __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98572       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
98573       __Pyx_INCREF(((PyObject *)__pyx_n_s__loads));
98574       PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__loads));
98575       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__loads));
98576       __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__cPickle), ((PyObject *)__pyx_t_3), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98577       __Pyx_GOTREF(__pyx_t_2);
98578       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
98579       __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__loads); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98580       __Pyx_GOTREF(__pyx_t_3);
98581       __Pyx_INCREF(__pyx_t_3);
98582       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98583       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98584       __Pyx_GIVEREF(__pyx_t_3);
98585       __pyx_v_6mpi4py_3MPI_PyPickle_loads = __pyx_t_3;
98586       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
98587       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98588 
98589       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":19
98590  *     from cPickle import dumps as PyPickle_dumps
98591  *     from cPickle import loads as PyPickle_loads
98592  *     from cPickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL             # <<<<<<<<<<<<<<
98593  * except ImportError:
98594  *     from pickle import dumps as PyPickle_dumps
98595  */
98596       __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98597       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98598       __Pyx_INCREF(((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98599       PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98600       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98601       __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__cPickle), ((PyObject *)__pyx_t_2), -1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98602       __Pyx_GOTREF(__pyx_t_3);
98603       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
98604       __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__HIGHEST_PROTOCOL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
98605       __Pyx_GOTREF(__pyx_t_2);
98606       __Pyx_INCREF(__pyx_t_2);
98607       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98608       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98609       __Pyx_GIVEREF(__pyx_t_2);
98610       __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = __pyx_t_2;
98611       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98612       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
98613     }
98614     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
98615     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
98616     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
98617     goto __pyx_L9_try_end;
98618     __pyx_L2_error:;
98619     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
98620     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
98621 
98622     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":20
98623  *     from cPickle import loads as PyPickle_loads
98624  *     from cPickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98625  * except ImportError:             # <<<<<<<<<<<<<<
98626  *     from pickle import dumps as PyPickle_dumps
98627  *     from pickle import loads as PyPickle_loads
98628  */
98629     __pyx_t_1 = PyErr_ExceptionMatches(__pyx_builtin_ImportError);
98630     if (__pyx_t_1) {
98631       __Pyx_AddTraceback("mpi4py.MPI", __pyx_clineno, __pyx_lineno, __pyx_filename);
98632       if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98633       __Pyx_GOTREF(__pyx_t_3);
98634       __Pyx_GOTREF(__pyx_t_2);
98635       __Pyx_GOTREF(__pyx_t_8);
98636 
98637       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":21
98638  *     from cPickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98639  * except ImportError:
98640  *     from pickle import dumps as PyPickle_dumps             # <<<<<<<<<<<<<<
98641  *     from pickle import loads as PyPickle_loads
98642  *     from pickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98643  */
98644       __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98645       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
98646       __Pyx_INCREF(((PyObject *)__pyx_n_s__dumps));
98647       PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_n_s__dumps));
98648       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dumps));
98649       __pyx_t_10 = __Pyx_Import(((PyObject *)__pyx_n_s__pickle), ((PyObject *)__pyx_t_9), -1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98650       __Pyx_GOTREF(__pyx_t_10);
98651       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
98652       __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__dumps); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98653       __Pyx_GOTREF(__pyx_t_9);
98654       __Pyx_INCREF(__pyx_t_9);
98655       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98656       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps);
98657       __Pyx_GIVEREF(__pyx_t_9);
98658       __pyx_v_6mpi4py_3MPI_PyPickle_dumps = __pyx_t_9;
98659       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
98660       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
98661 
98662       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":22
98663  * except ImportError:
98664  *     from pickle import dumps as PyPickle_dumps
98665  *     from pickle import loads as PyPickle_loads             # <<<<<<<<<<<<<<
98666  *     from pickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98667  *
98668  */
98669       __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98670       __Pyx_GOTREF(((PyObject *)__pyx_t_10));
98671       __Pyx_INCREF(((PyObject *)__pyx_n_s__loads));
98672       PyList_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_n_s__loads));
98673       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__loads));
98674       __pyx_t_9 = __Pyx_Import(((PyObject *)__pyx_n_s__pickle), ((PyObject *)__pyx_t_10), -1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98675       __Pyx_GOTREF(__pyx_t_9);
98676       __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
98677       __pyx_t_10 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__loads); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98678       __Pyx_GOTREF(__pyx_t_10);
98679       __Pyx_INCREF(__pyx_t_10);
98680       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98681       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads);
98682       __Pyx_GIVEREF(__pyx_t_10);
98683       __pyx_v_6mpi4py_3MPI_PyPickle_loads = __pyx_t_10;
98684       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
98685       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
98686 
98687       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":23
98688  *     from pickle import dumps as PyPickle_dumps
98689  *     from pickle import loads as PyPickle_loads
98690  *     from pickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL             # <<<<<<<<<<<<<<
98691  *
98692  * cdef object PyStringIO_New = None
98693  */
98694       __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98695       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
98696       __Pyx_INCREF(((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98697       PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98698       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HIGHEST_PROTOCOL));
98699       __pyx_t_10 = __Pyx_Import(((PyObject *)__pyx_n_s__pickle), ((PyObject *)__pyx_t_9), -1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98700       __Pyx_GOTREF(__pyx_t_10);
98701       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
98702       __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__HIGHEST_PROTOCOL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
98703       __Pyx_GOTREF(__pyx_t_9);
98704       __Pyx_INCREF(__pyx_t_9);
98705       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98706       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL);
98707       __Pyx_GIVEREF(__pyx_t_9);
98708       __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = __pyx_t_9;
98709       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
98710       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
98711       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
98712       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98713       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
98714       goto __pyx_L3_exception_handled;
98715     }
98716     __pyx_L4_except_error:;
98717     __Pyx_XGIVEREF(__pyx_t_5);
98718     __Pyx_XGIVEREF(__pyx_t_6);
98719     __Pyx_XGIVEREF(__pyx_t_7);
98720     __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
98721     goto __pyx_L1_error;
98722     __pyx_L3_exception_handled:;
98723     __Pyx_XGIVEREF(__pyx_t_5);
98724     __Pyx_XGIVEREF(__pyx_t_6);
98725     __Pyx_XGIVEREF(__pyx_t_7);
98726     __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
98727     __pyx_L9_try_end:;
98728   }
98729 
98730   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":25
98731  *     from pickle import HIGHEST_PROTOCOL as PyPickle_PROTOCOL
98732  *
98733  * cdef object PyStringIO_New = None             # <<<<<<<<<<<<<<
98734  * cdef object PyPickle_loadf  = None
98735  * try:
98736  */
98737   __Pyx_INCREF(Py_None);
98738   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyStringIO_New);
98739   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyStringIO_New);
98740   __Pyx_GIVEREF(Py_None);
98741   __pyx_v_6mpi4py_3MPI_PyStringIO_New = Py_None;
98742 
98743   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":26
98744  *
98745  * cdef object PyStringIO_New = None
98746  * cdef object PyPickle_loadf  = None             # <<<<<<<<<<<<<<
98747  * try:
98748  *     from cStringIO import StringIO as PyStringIO_New
98749  */
98750   __Pyx_INCREF(Py_None);
98751   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_loadf);
98752   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loadf);
98753   __Pyx_GIVEREF(Py_None);
98754   __pyx_v_6mpi4py_3MPI_PyPickle_loadf = Py_None;
98755 
98756   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":27
98757  * cdef object PyStringIO_New = None
98758  * cdef object PyPickle_loadf  = None
98759  * try:             # <<<<<<<<<<<<<<
98760  *     from cStringIO import StringIO as PyStringIO_New
98761  *     from cPickle import load as PyPickle_loadf
98762  */
98763   {
98764     __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5);
98765     __Pyx_XGOTREF(__pyx_t_7);
98766     __Pyx_XGOTREF(__pyx_t_6);
98767     __Pyx_XGOTREF(__pyx_t_5);
98768     /*try:*/ {
98769 
98770       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":28
98771  * cdef object PyPickle_loadf  = None
98772  * try:
98773  *     from cStringIO import StringIO as PyStringIO_New             # <<<<<<<<<<<<<<
98774  *     from cPickle import load as PyPickle_loadf
98775  * except ImportError:
98776  */
98777       __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98778       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
98779       __Pyx_INCREF(((PyObject *)__pyx_n_s__StringIO));
98780       PyList_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_n_s__StringIO));
98781       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__StringIO));
98782       __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__cStringIO), ((PyObject *)__pyx_t_8), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98783       __Pyx_GOTREF(__pyx_t_2);
98784       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
98785       __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98786       __Pyx_GOTREF(__pyx_t_8);
98787       __Pyx_INCREF(__pyx_t_8);
98788       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyStringIO_New);
98789       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyStringIO_New);
98790       __Pyx_GIVEREF(__pyx_t_8);
98791       __pyx_v_6mpi4py_3MPI_PyStringIO_New = __pyx_t_8;
98792       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
98793       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98794 
98795       /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":29
98796  * try:
98797  *     from cStringIO import StringIO as PyStringIO_New
98798  *     from cPickle import load as PyPickle_loadf             # <<<<<<<<<<<<<<
98799  * except ImportError:
98800  *     pass
98801  */
98802       __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98803       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
98804       __Pyx_INCREF(((PyObject *)__pyx_n_s__load));
98805       PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__load));
98806       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__load));
98807       __pyx_t_8 = __Pyx_Import(((PyObject *)__pyx_n_s__cPickle), ((PyObject *)__pyx_t_2), -1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98808       __Pyx_GOTREF(__pyx_t_8);
98809       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
98810       __pyx_t_2 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__load); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
98811       __Pyx_GOTREF(__pyx_t_2);
98812       __Pyx_INCREF(__pyx_t_2);
98813       __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_PyPickle_loadf);
98814       __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loadf);
98815       __Pyx_GIVEREF(__pyx_t_2);
98816       __pyx_v_6mpi4py_3MPI_PyPickle_loadf = __pyx_t_2;
98817       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98818       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
98819     }
98820     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
98821     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
98822     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
98823     goto __pyx_L19_try_end;
98824     __pyx_L12_error:;
98825     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
98826     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
98827     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
98828     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
98829     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
98830 
98831     /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":30
98832  *     from cStringIO import StringIO as PyStringIO_New
98833  *     from cPickle import load as PyPickle_loadf
98834  * except ImportError:             # <<<<<<<<<<<<<<
98835  *     pass
98836  *
98837  */
98838     __pyx_t_1 = PyErr_ExceptionMatches(__pyx_builtin_ImportError);
98839     if (__pyx_t_1) {
98840       PyErr_Restore(0,0,0);
98841       goto __pyx_L13_exception_handled;
98842     }
98843     __Pyx_XGIVEREF(__pyx_t_7);
98844     __Pyx_XGIVEREF(__pyx_t_6);
98845     __Pyx_XGIVEREF(__pyx_t_5);
98846     __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
98847     goto __pyx_L1_error;
98848     __pyx_L13_exception_handled:;
98849     __Pyx_XGIVEREF(__pyx_t_7);
98850     __Pyx_XGIVEREF(__pyx_t_6);
98851     __Pyx_XGIVEREF(__pyx_t_5);
98852     __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
98853     __pyx_L19_try_end:;
98854   }
98855 
98856   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":160
98857  *
98858  *
98859  * cdef _p_Pickle PyMPI_PICKLE = _p_Pickle()             # <<<<<<<<<<<<<<
98860  *
98861  * cdef inline _p_Pickle PyMPI_pickle():
98862  */
98863   __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6mpi4py_3MPI__p_Pickle)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98864   __Pyx_GOTREF(__pyx_t_8);
98865   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE));
98866   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE));
98867   __Pyx_GIVEREF(__pyx_t_8);
98868   __pyx_v_6mpi4py_3MPI_PyMPI_PICKLE = ((struct __pyx_obj_6mpi4py_3MPI__p_Pickle *)__pyx_t_8);
98869   __pyx_t_8 = 0;
98870 
98871   /* "/home/devel/mpi4py-1.3/src/MPI/pickled.pxi":165
98872  *     return PyMPI_PICKLE
98873  *
98874  * _p_pickle = PyMPI_PICKLE             # <<<<<<<<<<<<<<
98875  *
98876  * # -----------------------------------------------------------------------------
98877  */
98878   if (PyObject_SetAttr(__pyx_m, __pyx_n_s___p_pickle, ((PyObject *)__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98879 
98880   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":1
98881  * class Exception(RuntimeError):             # <<<<<<<<<<<<<<
98882  *
98883  *     """
98884  */
98885   __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98886   __Pyx_GOTREF(((PyObject *)__pyx_t_8));
98887 
98888   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":7
98889  *     """
98890  *
98891  *     def __init__(self, int ierr=0):             # <<<<<<<<<<<<<<
98892  *         if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN
98893  *         if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
98894  */
98895   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception___init__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98896   __Pyx_GOTREF(__pyx_t_2);
98897   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____init__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98898   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98899 
98900   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":13
98901  *         RuntimeError.__init__(self, self.ob_mpi)
98902  *
98903  *     def __eq__(self, int error):             # <<<<<<<<<<<<<<
98904  *         cdef int ierr = self.ob_mpi
98905  *         return <bint> (ierr == error)
98906  */
98907   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_1__eq__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98908   __Pyx_GOTREF(__pyx_t_2);
98909   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____eq__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98910   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98911 
98912   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":16
98913  *         cdef int ierr = self.ob_mpi
98914  *         return <bint> (ierr == error)
98915  *     def __ne__(self, int error):             # <<<<<<<<<<<<<<
98916  *         cdef int ierr = self.ob_mpi
98917  *         return <bint> (ierr != error)
98918  */
98919   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_2__ne__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98920   __Pyx_GOTREF(__pyx_t_2);
98921   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____ne__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98922   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98923 
98924   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":19
98925  *         cdef int ierr = self.ob_mpi
98926  *         return <bint> (ierr != error)
98927  *     def __lt__(self, int error):             # <<<<<<<<<<<<<<
98928  *         cdef int ierr = self.ob_mpi
98929  *         return <bint> (ierr < error)
98930  */
98931   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_3__lt__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98932   __Pyx_GOTREF(__pyx_t_2);
98933   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____lt__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98934   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98935 
98936   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":22
98937  *         cdef int ierr = self.ob_mpi
98938  *         return <bint> (ierr < error)
98939  *     def __le__(self, int error):             # <<<<<<<<<<<<<<
98940  *         cdef int ierr = self.ob_mpi
98941  *         return <bint> (ierr <= error)
98942  */
98943   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_4__le__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98944   __Pyx_GOTREF(__pyx_t_2);
98945   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____le__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98946   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98947 
98948   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":25
98949  *         cdef int ierr = self.ob_mpi
98950  *         return <bint> (ierr <= error)
98951  *     def __gt__(self, int error):             # <<<<<<<<<<<<<<
98952  *         cdef int ierr = self.ob_mpi
98953  *         return <bint> (ierr > error)
98954  */
98955   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_5__gt__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98956   __Pyx_GOTREF(__pyx_t_2);
98957   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____gt__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98958   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98959 
98960   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":28
98961  *         cdef int ierr = self.ob_mpi
98962  *         return <bint> (ierr > error)
98963  *     def __ge__(self, int error):             # <<<<<<<<<<<<<<
98964  *         cdef int ierr = self.ob_mpi
98965  *         return <bint> (ierr >= error)
98966  */
98967   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_6__ge__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98968   __Pyx_GOTREF(__pyx_t_2);
98969   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____ge__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98970   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98971 
98972   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":32
98973  *         return <bint> (ierr >= error)
98974  *
98975  *     def __bool__(self):             # <<<<<<<<<<<<<<
98976  *         cdef int ierr = self.ob_mpi
98977  *         return ierr != MPI_SUCCESS
98978  */
98979   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_7__bool__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98980   __Pyx_GOTREF(__pyx_t_2);
98981   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____bool__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98982   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98983 
98984   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":36
98985  *         return ierr != MPI_SUCCESS
98986  *
98987  *     def __int__(self):             # <<<<<<<<<<<<<<
98988  *         if not mpi_active():
98989  *             return self.ob_mpi
98990  */
98991   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_8__int__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98992   __Pyx_GOTREF(__pyx_t_2);
98993   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____int__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
98994   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
98995 
98996   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":41
98997  *         return self.Get_error_code()
98998  *
98999  *     def __repr__(self):             # <<<<<<<<<<<<<<
99000  *         return "MPI.Exception(%d)" % self.ob_mpi
99001  *
99002  */
99003   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_9__repr__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99004   __Pyx_GOTREF(__pyx_t_2);
99005   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____repr__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99006   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
99007 
99008   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":44
99009  *         return "MPI.Exception(%d)" % self.ob_mpi
99010  *
99011  *     def __str__(self):             # <<<<<<<<<<<<<<
99012  *         if not mpi_active():
99013  *             return "error code: %d" % self.ob_mpi
99014  */
99015   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_10__str__, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99016   __Pyx_GOTREF(__pyx_t_2);
99017   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s____str__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99018   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
99019 
99020   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":49
99021  *         return self.Get_error_string()
99022  *
99023  *     def Get_error_code(self):             # <<<<<<<<<<<<<<
99024  *         """
99025  *         Error code
99026  */
99027   __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_11Get_error_code, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99028   __Pyx_GOTREF(__pyx_t_2);
99029   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__Get_error_code, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99030   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
99031 
99032   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":57
99033  *         return errorcode
99034  *
99035  *     error_code = property(Get_error_code, doc="error code")             # <<<<<<<<<<<<<<
99036  *
99037  *     def Get_error_class(self):
99038  */
99039   __pyx_t_2 = PyObject_GetItem(__pyx_t_8, __pyx_n_s__Get_error_code); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99040   __Pyx_GOTREF(__pyx_t_2);
99041   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99042   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
99043   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
99044   __Pyx_GIVEREF(__pyx_t_2);
99045   __pyx_t_2 = 0;
99046   __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99047   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
99048   if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_kp_s_149)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99049   __pyx_t_10 = PyEval_CallObjectWithKeywords(__pyx_builtin_property, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99050   __Pyx_GOTREF(__pyx_t_10);
99051   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
99052   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
99053   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__error_code, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99054   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
99055 
99056   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":59
99057  *     error_code = property(Get_error_code, doc="error code")
99058  *
99059  *     def Get_error_class(self):             # <<<<<<<<<<<<<<
99060  *         """
99061  *         Error class
99062  */
99063   __pyx_t_10 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_12Get_error_class, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99064   __Pyx_GOTREF(__pyx_t_10);
99065   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__Get_error_class, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99066   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
99067 
99068   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":67
99069  *         return errorclass
99070  *
99071  *     error_class = property(Get_error_class, doc="error class")             # <<<<<<<<<<<<<<
99072  *
99073  *     def Get_error_string(self):
99074  */
99075   __pyx_t_10 = PyObject_GetItem(__pyx_t_8, __pyx_n_s__Get_error_class); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99076   __Pyx_GOTREF(__pyx_t_10);
99077   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99078   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
99079   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
99080   __Pyx_GIVEREF(__pyx_t_10);
99081   __pyx_t_10 = 0;
99082   __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99083   __Pyx_GOTREF(((PyObject *)__pyx_t_10));
99084   if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_kp_s_150)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99085   __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_builtin_property, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99086   __Pyx_GOTREF(__pyx_t_3);
99087   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
99088   __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
99089   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__error_class, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99090   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99091 
99092   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":69
99093  *     error_class = property(Get_error_class, doc="error class")
99094  *
99095  *     def Get_error_string(self):             # <<<<<<<<<<<<<<
99096  *         """
99097  *         Error string
99098  */
99099   __pyx_t_3 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Exception_13Get_error_string, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99100   __Pyx_GOTREF(__pyx_t_3);
99101   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__Get_error_string, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99102   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99103 
99104   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":78
99105  *         return tompistr(string, resultlen)
99106  *
99107  *     error_string = property(Get_error_string, doc="error string")             # <<<<<<<<<<<<<<
99108  */
99109   __pyx_t_3 = PyObject_GetItem(__pyx_t_8, __pyx_n_s__Get_error_string); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99110   __Pyx_GOTREF(__pyx_t_3);
99111   __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99112   __Pyx_GOTREF(((PyObject *)__pyx_t_10));
99113   PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
99114   __Pyx_GIVEREF(__pyx_t_3);
99115   __pyx_t_3 = 0;
99116   __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99117   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
99118   if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_kp_s_151)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99119   __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_builtin_property, ((PyObject *)__pyx_t_10), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99120   __Pyx_GOTREF(__pyx_t_2);
99121   __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
99122   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
99123   if (PyObject_SetItem(__pyx_t_8, __pyx_n_s__error_string, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99124   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
99125 
99126   /* "/home/devel/mpi4py-1.3/src/MPI/ExceptionP.pyx":1
99127  * class Exception(RuntimeError):             # <<<<<<<<<<<<<<
99128  *
99129  *     """
99130  */
99131   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99132   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
99133   __Pyx_INCREF(__pyx_builtin_RuntimeError);
99134   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_RuntimeError);
99135   __Pyx_GIVEREF(__pyx_builtin_RuntimeError);
99136   if (PyDict_SetItemString(((PyObject *)__pyx_t_8), "__doc__", ((PyObject *)__pyx_kp_s_152)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99137   __pyx_t_3 = __Pyx_CreateClass(((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_8), __pyx_n_s__Exception, __pyx_n_s_148); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99138   __Pyx_GOTREF(__pyx_t_3);
99139   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
99140   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Exception, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99141   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99142   __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
99143 
99144   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":3
99145  * include "ExceptionP.pyx"
99146  * #include "ExceptionC.pyx"
99147  * MPIException = Exception             # <<<<<<<<<<<<<<
99148  *
99149  *
99150  */
99151   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__Exception); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99152   __Pyx_GOTREF(__pyx_t_8);
99153   __Pyx_XGOTREF(__pyx_v_6mpi4py_3MPI_MPIException);
99154   __Pyx_DECREF(__pyx_v_6mpi4py_3MPI_MPIException);
99155   __Pyx_GIVEREF(__pyx_t_8);
99156   __pyx_v_6mpi4py_3MPI_MPIException = __pyx_t_8;
99157   __pyx_t_8 = 0;
99158 
99159   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":7
99160  *
99161  * # Actually no errors
99162  * SUCCESS      = MPI_SUCCESS             # <<<<<<<<<<<<<<
99163  * ERR_LASTCODE = MPI_ERR_LASTCODE
99164  *
99165  */
99166   __pyx_t_8 = PyInt_FromLong(MPI_SUCCESS); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99167   __Pyx_GOTREF(__pyx_t_8);
99168   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SUCCESS, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99169   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99170 
99171   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":8
99172  * # Actually no errors
99173  * SUCCESS      = MPI_SUCCESS
99174  * ERR_LASTCODE = MPI_ERR_LASTCODE             # <<<<<<<<<<<<<<
99175  *
99176  * # MPI-1 Error classes
99177  */
99178   __pyx_t_8 = PyInt_FromLong(MPI_ERR_LASTCODE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99179   __Pyx_GOTREF(__pyx_t_8);
99180   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_LASTCODE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99181   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99182 
99183   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":13
99184  * # -------------------
99185  * # MPI-1 Objects
99186  * ERR_COMM      = MPI_ERR_COMM             # <<<<<<<<<<<<<<
99187  * ERR_GROUP     = MPI_ERR_GROUP
99188  * ERR_TYPE      = MPI_ERR_TYPE
99189  */
99190   __pyx_t_8 = PyInt_FromLong(MPI_ERR_COMM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99191   __Pyx_GOTREF(__pyx_t_8);
99192   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_COMM, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99193   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99194 
99195   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":14
99196  * # MPI-1 Objects
99197  * ERR_COMM      = MPI_ERR_COMM
99198  * ERR_GROUP     = MPI_ERR_GROUP             # <<<<<<<<<<<<<<
99199  * ERR_TYPE      = MPI_ERR_TYPE
99200  * ERR_REQUEST   = MPI_ERR_REQUEST
99201  */
99202   __pyx_t_8 = PyInt_FromLong(MPI_ERR_GROUP); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99203   __Pyx_GOTREF(__pyx_t_8);
99204   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_GROUP, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99205   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99206 
99207   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":15
99208  * ERR_COMM      = MPI_ERR_COMM
99209  * ERR_GROUP     = MPI_ERR_GROUP
99210  * ERR_TYPE      = MPI_ERR_TYPE             # <<<<<<<<<<<<<<
99211  * ERR_REQUEST   = MPI_ERR_REQUEST
99212  * ERR_OP        = MPI_ERR_OP
99213  */
99214   __pyx_t_8 = PyInt_FromLong(MPI_ERR_TYPE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99215   __Pyx_GOTREF(__pyx_t_8);
99216   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_TYPE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99217   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99218 
99219   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":16
99220  * ERR_GROUP     = MPI_ERR_GROUP
99221  * ERR_TYPE      = MPI_ERR_TYPE
99222  * ERR_REQUEST   = MPI_ERR_REQUEST             # <<<<<<<<<<<<<<
99223  * ERR_OP        = MPI_ERR_OP
99224  * # Communication argument parameters
99225  */
99226   __pyx_t_8 = PyInt_FromLong(MPI_ERR_REQUEST); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99227   __Pyx_GOTREF(__pyx_t_8);
99228   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_REQUEST, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99229   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99230 
99231   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":17
99232  * ERR_TYPE      = MPI_ERR_TYPE
99233  * ERR_REQUEST   = MPI_ERR_REQUEST
99234  * ERR_OP        = MPI_ERR_OP             # <<<<<<<<<<<<<<
99235  * # Communication argument parameters
99236  * ERR_BUFFER    = MPI_ERR_BUFFER
99237  */
99238   __pyx_t_8 = PyInt_FromLong(MPI_ERR_OP); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99239   __Pyx_GOTREF(__pyx_t_8);
99240   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_OP, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99241   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99242 
99243   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":19
99244  * ERR_OP        = MPI_ERR_OP
99245  * # Communication argument parameters
99246  * ERR_BUFFER    = MPI_ERR_BUFFER             # <<<<<<<<<<<<<<
99247  * ERR_COUNT     = MPI_ERR_COUNT
99248  * ERR_TAG       = MPI_ERR_TAG
99249  */
99250   __pyx_t_8 = PyInt_FromLong(MPI_ERR_BUFFER); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99251   __Pyx_GOTREF(__pyx_t_8);
99252   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_BUFFER, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99253   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99254 
99255   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":20
99256  * # Communication argument parameters
99257  * ERR_BUFFER    = MPI_ERR_BUFFER
99258  * ERR_COUNT     = MPI_ERR_COUNT             # <<<<<<<<<<<<<<
99259  * ERR_TAG       = MPI_ERR_TAG
99260  * ERR_RANK      = MPI_ERR_RANK
99261  */
99262   __pyx_t_8 = PyInt_FromLong(MPI_ERR_COUNT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99263   __Pyx_GOTREF(__pyx_t_8);
99264   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_COUNT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99265   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99266 
99267   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":21
99268  * ERR_BUFFER    = MPI_ERR_BUFFER
99269  * ERR_COUNT     = MPI_ERR_COUNT
99270  * ERR_TAG       = MPI_ERR_TAG             # <<<<<<<<<<<<<<
99271  * ERR_RANK      = MPI_ERR_RANK
99272  * ERR_ROOT      = MPI_ERR_ROOT
99273  */
99274   __pyx_t_8 = PyInt_FromLong(MPI_ERR_TAG); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99275   __Pyx_GOTREF(__pyx_t_8);
99276   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_TAG, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99277   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99278 
99279   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":22
99280  * ERR_COUNT     = MPI_ERR_COUNT
99281  * ERR_TAG       = MPI_ERR_TAG
99282  * ERR_RANK      = MPI_ERR_RANK             # <<<<<<<<<<<<<<
99283  * ERR_ROOT      = MPI_ERR_ROOT
99284  * ERR_TRUNCATE  = MPI_ERR_TRUNCATE
99285  */
99286   __pyx_t_8 = PyInt_FromLong(MPI_ERR_RANK); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99287   __Pyx_GOTREF(__pyx_t_8);
99288   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_RANK, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99289   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99290 
99291   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":23
99292  * ERR_TAG       = MPI_ERR_TAG
99293  * ERR_RANK      = MPI_ERR_RANK
99294  * ERR_ROOT      = MPI_ERR_ROOT             # <<<<<<<<<<<<<<
99295  * ERR_TRUNCATE  = MPI_ERR_TRUNCATE
99296  * # Multiple completion
99297  */
99298   __pyx_t_8 = PyInt_FromLong(MPI_ERR_ROOT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99299   __Pyx_GOTREF(__pyx_t_8);
99300   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_ROOT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99301   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99302 
99303   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":24
99304  * ERR_RANK      = MPI_ERR_RANK
99305  * ERR_ROOT      = MPI_ERR_ROOT
99306  * ERR_TRUNCATE  = MPI_ERR_TRUNCATE             # <<<<<<<<<<<<<<
99307  * # Multiple completion
99308  * ERR_IN_STATUS = MPI_ERR_IN_STATUS
99309  */
99310   __pyx_t_8 = PyInt_FromLong(MPI_ERR_TRUNCATE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99311   __Pyx_GOTREF(__pyx_t_8);
99312   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_TRUNCATE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99313   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99314 
99315   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":26
99316  * ERR_TRUNCATE  = MPI_ERR_TRUNCATE
99317  * # Multiple completion
99318  * ERR_IN_STATUS = MPI_ERR_IN_STATUS             # <<<<<<<<<<<<<<
99319  * ERR_PENDING   = MPI_ERR_PENDING
99320  * # Topology argument parameters
99321  */
99322   __pyx_t_8 = PyInt_FromLong(MPI_ERR_IN_STATUS); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99323   __Pyx_GOTREF(__pyx_t_8);
99324   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_IN_STATUS, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99325   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99326 
99327   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":27
99328  * # Multiple completion
99329  * ERR_IN_STATUS = MPI_ERR_IN_STATUS
99330  * ERR_PENDING   = MPI_ERR_PENDING             # <<<<<<<<<<<<<<
99331  * # Topology argument parameters
99332  * ERR_TOPOLOGY  = MPI_ERR_TOPOLOGY
99333  */
99334   __pyx_t_8 = PyInt_FromLong(MPI_ERR_PENDING); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99335   __Pyx_GOTREF(__pyx_t_8);
99336   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_PENDING, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99337   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99338 
99339   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":29
99340  * ERR_PENDING   = MPI_ERR_PENDING
99341  * # Topology argument parameters
99342  * ERR_TOPOLOGY  = MPI_ERR_TOPOLOGY             # <<<<<<<<<<<<<<
99343  * ERR_DIMS      = MPI_ERR_DIMS
99344  * # Other arguments parameters
99345  */
99346   __pyx_t_8 = PyInt_FromLong(MPI_ERR_TOPOLOGY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99347   __Pyx_GOTREF(__pyx_t_8);
99348   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_TOPOLOGY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99349   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99350 
99351   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":30
99352  * # Topology argument parameters
99353  * ERR_TOPOLOGY  = MPI_ERR_TOPOLOGY
99354  * ERR_DIMS      = MPI_ERR_DIMS             # <<<<<<<<<<<<<<
99355  * # Other arguments parameters
99356  * ERR_ARG       = MPI_ERR_ARG
99357  */
99358   __pyx_t_8 = PyInt_FromLong(MPI_ERR_DIMS); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99359   __Pyx_GOTREF(__pyx_t_8);
99360   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_DIMS, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99361   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99362 
99363   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":32
99364  * ERR_DIMS      = MPI_ERR_DIMS
99365  * # Other arguments parameters
99366  * ERR_ARG       = MPI_ERR_ARG             # <<<<<<<<<<<<<<
99367  * # Other errors
99368  * ERR_OTHER     = MPI_ERR_OTHER
99369  */
99370   __pyx_t_8 = PyInt_FromLong(MPI_ERR_ARG); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99371   __Pyx_GOTREF(__pyx_t_8);
99372   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_ARG, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99373   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99374 
99375   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":34
99376  * ERR_ARG       = MPI_ERR_ARG
99377  * # Other errors
99378  * ERR_OTHER     = MPI_ERR_OTHER             # <<<<<<<<<<<<<<
99379  * ERR_UNKNOWN   = MPI_ERR_UNKNOWN
99380  * ERR_INTERN    = MPI_ERR_INTERN
99381  */
99382   __pyx_t_8 = PyInt_FromLong(MPI_ERR_OTHER); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99383   __Pyx_GOTREF(__pyx_t_8);
99384   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_OTHER, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99385   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99386 
99387   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":35
99388  * # Other errors
99389  * ERR_OTHER     = MPI_ERR_OTHER
99390  * ERR_UNKNOWN   = MPI_ERR_UNKNOWN             # <<<<<<<<<<<<<<
99391  * ERR_INTERN    = MPI_ERR_INTERN
99392  *
99393  */
99394   __pyx_t_8 = PyInt_FromLong(MPI_ERR_UNKNOWN); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99395   __Pyx_GOTREF(__pyx_t_8);
99396   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_UNKNOWN, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99397   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99398 
99399   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":36
99400  * ERR_OTHER     = MPI_ERR_OTHER
99401  * ERR_UNKNOWN   = MPI_ERR_UNKNOWN
99402  * ERR_INTERN    = MPI_ERR_INTERN             # <<<<<<<<<<<<<<
99403  *
99404  * # MPI-2 Error classes
99405  */
99406   __pyx_t_8 = PyInt_FromLong(MPI_ERR_INTERN); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99407   __Pyx_GOTREF(__pyx_t_8);
99408   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_INTERN, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99409   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99410 
99411   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":41
99412  * # -------------------
99413  * # MPI-2 Objects
99414  * ERR_INFO                   = MPI_ERR_INFO             # <<<<<<<<<<<<<<
99415  * ERR_FILE                   = MPI_ERR_FILE
99416  * ERR_WIN                    = MPI_ERR_WIN
99417  */
99418   __pyx_t_8 = PyInt_FromLong(MPI_ERR_INFO); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99419   __Pyx_GOTREF(__pyx_t_8);
99420   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_INFO, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99421   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99422 
99423   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":42
99424  * # MPI-2 Objects
99425  * ERR_INFO                   = MPI_ERR_INFO
99426  * ERR_FILE                   = MPI_ERR_FILE             # <<<<<<<<<<<<<<
99427  * ERR_WIN                    = MPI_ERR_WIN
99428  * # Object attributes
99429  */
99430   __pyx_t_8 = PyInt_FromLong(MPI_ERR_FILE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99431   __Pyx_GOTREF(__pyx_t_8);
99432   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_FILE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99433   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99434 
99435   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":43
99436  * ERR_INFO                   = MPI_ERR_INFO
99437  * ERR_FILE                   = MPI_ERR_FILE
99438  * ERR_WIN                    = MPI_ERR_WIN             # <<<<<<<<<<<<<<
99439  * # Object attributes
99440  * ERR_KEYVAL                 = MPI_ERR_KEYVAL
99441  */
99442   __pyx_t_8 = PyInt_FromLong(MPI_ERR_WIN); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99443   __Pyx_GOTREF(__pyx_t_8);
99444   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_WIN, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99445   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99446 
99447   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":45
99448  * ERR_WIN                    = MPI_ERR_WIN
99449  * # Object attributes
99450  * ERR_KEYVAL                 = MPI_ERR_KEYVAL             # <<<<<<<<<<<<<<
99451  * # Info Object
99452  * ERR_INFO_KEY               = MPI_ERR_INFO_KEY
99453  */
99454   __pyx_t_8 = PyInt_FromLong(MPI_ERR_KEYVAL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99455   __Pyx_GOTREF(__pyx_t_8);
99456   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_KEYVAL, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99457   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99458 
99459   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":47
99460  * ERR_KEYVAL                 = MPI_ERR_KEYVAL
99461  * # Info Object
99462  * ERR_INFO_KEY               = MPI_ERR_INFO_KEY             # <<<<<<<<<<<<<<
99463  * ERR_INFO_VALUE             = MPI_ERR_INFO_VALUE
99464  * ERR_INFO_NOKEY             = MPI_ERR_INFO_NOKEY
99465  */
99466   __pyx_t_8 = PyInt_FromLong(MPI_ERR_INFO_KEY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99467   __Pyx_GOTREF(__pyx_t_8);
99468   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_INFO_KEY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99469   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99470 
99471   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":48
99472  * # Info Object
99473  * ERR_INFO_KEY               = MPI_ERR_INFO_KEY
99474  * ERR_INFO_VALUE             = MPI_ERR_INFO_VALUE             # <<<<<<<<<<<<<<
99475  * ERR_INFO_NOKEY             = MPI_ERR_INFO_NOKEY
99476  * # Input/Ouput
99477  */
99478   __pyx_t_8 = PyInt_FromLong(MPI_ERR_INFO_VALUE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99479   __Pyx_GOTREF(__pyx_t_8);
99480   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_INFO_VALUE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99481   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99482 
99483   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":49
99484  * ERR_INFO_KEY               = MPI_ERR_INFO_KEY
99485  * ERR_INFO_VALUE             = MPI_ERR_INFO_VALUE
99486  * ERR_INFO_NOKEY             = MPI_ERR_INFO_NOKEY             # <<<<<<<<<<<<<<
99487  * # Input/Ouput
99488  * ERR_ACCESS                 = MPI_ERR_ACCESS
99489  */
99490   __pyx_t_8 = PyInt_FromLong(MPI_ERR_INFO_NOKEY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99491   __Pyx_GOTREF(__pyx_t_8);
99492   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_INFO_NOKEY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99493   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99494 
99495   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":51
99496  * ERR_INFO_NOKEY             = MPI_ERR_INFO_NOKEY
99497  * # Input/Ouput
99498  * ERR_ACCESS                 = MPI_ERR_ACCESS             # <<<<<<<<<<<<<<
99499  * ERR_AMODE                  = MPI_ERR_AMODE
99500  * ERR_BAD_FILE               = MPI_ERR_BAD_FILE
99501  */
99502   __pyx_t_8 = PyInt_FromLong(MPI_ERR_ACCESS); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99503   __Pyx_GOTREF(__pyx_t_8);
99504   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_ACCESS, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99505   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99506 
99507   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":52
99508  * # Input/Ouput
99509  * ERR_ACCESS                 = MPI_ERR_ACCESS
99510  * ERR_AMODE                  = MPI_ERR_AMODE             # <<<<<<<<<<<<<<
99511  * ERR_BAD_FILE               = MPI_ERR_BAD_FILE
99512  * ERR_FILE_EXISTS            = MPI_ERR_FILE_EXISTS
99513  */
99514   __pyx_t_8 = PyInt_FromLong(MPI_ERR_AMODE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99515   __Pyx_GOTREF(__pyx_t_8);
99516   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_AMODE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99517   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99518 
99519   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":53
99520  * ERR_ACCESS                 = MPI_ERR_ACCESS
99521  * ERR_AMODE                  = MPI_ERR_AMODE
99522  * ERR_BAD_FILE               = MPI_ERR_BAD_FILE             # <<<<<<<<<<<<<<
99523  * ERR_FILE_EXISTS            = MPI_ERR_FILE_EXISTS
99524  * ERR_FILE_IN_USE            = MPI_ERR_FILE_IN_USE
99525  */
99526   __pyx_t_8 = PyInt_FromLong(MPI_ERR_BAD_FILE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99527   __Pyx_GOTREF(__pyx_t_8);
99528   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_BAD_FILE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99529   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99530 
99531   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":54
99532  * ERR_AMODE                  = MPI_ERR_AMODE
99533  * ERR_BAD_FILE               = MPI_ERR_BAD_FILE
99534  * ERR_FILE_EXISTS            = MPI_ERR_FILE_EXISTS             # <<<<<<<<<<<<<<
99535  * ERR_FILE_IN_USE            = MPI_ERR_FILE_IN_USE
99536  * ERR_NO_SPACE               = MPI_ERR_NO_SPACE
99537  */
99538   __pyx_t_8 = PyInt_FromLong(MPI_ERR_FILE_EXISTS); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99539   __Pyx_GOTREF(__pyx_t_8);
99540   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_FILE_EXISTS, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99541   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99542 
99543   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":55
99544  * ERR_BAD_FILE               = MPI_ERR_BAD_FILE
99545  * ERR_FILE_EXISTS            = MPI_ERR_FILE_EXISTS
99546  * ERR_FILE_IN_USE            = MPI_ERR_FILE_IN_USE             # <<<<<<<<<<<<<<
99547  * ERR_NO_SPACE               = MPI_ERR_NO_SPACE
99548  * ERR_NO_SUCH_FILE           = MPI_ERR_NO_SUCH_FILE
99549  */
99550   __pyx_t_8 = PyInt_FromLong(MPI_ERR_FILE_IN_USE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99551   __Pyx_GOTREF(__pyx_t_8);
99552   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_FILE_IN_USE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99553   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99554 
99555   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":56
99556  * ERR_FILE_EXISTS            = MPI_ERR_FILE_EXISTS
99557  * ERR_FILE_IN_USE            = MPI_ERR_FILE_IN_USE
99558  * ERR_NO_SPACE               = MPI_ERR_NO_SPACE             # <<<<<<<<<<<<<<
99559  * ERR_NO_SUCH_FILE           = MPI_ERR_NO_SUCH_FILE
99560  * ERR_IO                     = MPI_ERR_IO
99561  */
99562   __pyx_t_8 = PyInt_FromLong(MPI_ERR_NO_SPACE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99563   __Pyx_GOTREF(__pyx_t_8);
99564   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_NO_SPACE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99565   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99566 
99567   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":57
99568  * ERR_FILE_IN_USE            = MPI_ERR_FILE_IN_USE
99569  * ERR_NO_SPACE               = MPI_ERR_NO_SPACE
99570  * ERR_NO_SUCH_FILE           = MPI_ERR_NO_SUCH_FILE             # <<<<<<<<<<<<<<
99571  * ERR_IO                     = MPI_ERR_IO
99572  * ERR_READ_ONLY              = MPI_ERR_READ_ONLY
99573  */
99574   __pyx_t_8 = PyInt_FromLong(MPI_ERR_NO_SUCH_FILE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99575   __Pyx_GOTREF(__pyx_t_8);
99576   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_NO_SUCH_FILE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99577   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99578 
99579   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":58
99580  * ERR_NO_SPACE               = MPI_ERR_NO_SPACE
99581  * ERR_NO_SUCH_FILE           = MPI_ERR_NO_SUCH_FILE
99582  * ERR_IO                     = MPI_ERR_IO             # <<<<<<<<<<<<<<
99583  * ERR_READ_ONLY              = MPI_ERR_READ_ONLY
99584  * ERR_CONVERSION             = MPI_ERR_CONVERSION
99585  */
99586   __pyx_t_8 = PyInt_FromLong(MPI_ERR_IO); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99587   __Pyx_GOTREF(__pyx_t_8);
99588   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_IO, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99589   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99590 
99591   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":59
99592  * ERR_NO_SUCH_FILE           = MPI_ERR_NO_SUCH_FILE
99593  * ERR_IO                     = MPI_ERR_IO
99594  * ERR_READ_ONLY              = MPI_ERR_READ_ONLY             # <<<<<<<<<<<<<<
99595  * ERR_CONVERSION             = MPI_ERR_CONVERSION
99596  * ERR_DUP_DATAREP            = MPI_ERR_DUP_DATAREP
99597  */
99598   __pyx_t_8 = PyInt_FromLong(MPI_ERR_READ_ONLY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99599   __Pyx_GOTREF(__pyx_t_8);
99600   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_READ_ONLY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99601   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99602 
99603   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":60
99604  * ERR_IO                     = MPI_ERR_IO
99605  * ERR_READ_ONLY              = MPI_ERR_READ_ONLY
99606  * ERR_CONVERSION             = MPI_ERR_CONVERSION             # <<<<<<<<<<<<<<
99607  * ERR_DUP_DATAREP            = MPI_ERR_DUP_DATAREP
99608  * ERR_UNSUPPORTED_DATAREP    = MPI_ERR_UNSUPPORTED_DATAREP
99609  */
99610   __pyx_t_8 = PyInt_FromLong(MPI_ERR_CONVERSION); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99611   __Pyx_GOTREF(__pyx_t_8);
99612   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_CONVERSION, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99613   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99614 
99615   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":61
99616  * ERR_READ_ONLY              = MPI_ERR_READ_ONLY
99617  * ERR_CONVERSION             = MPI_ERR_CONVERSION
99618  * ERR_DUP_DATAREP            = MPI_ERR_DUP_DATAREP             # <<<<<<<<<<<<<<
99619  * ERR_UNSUPPORTED_DATAREP    = MPI_ERR_UNSUPPORTED_DATAREP
99620  * ERR_UNSUPPORTED_OPERATION  = MPI_ERR_UNSUPPORTED_OPERATION
99621  */
99622   __pyx_t_8 = PyInt_FromLong(MPI_ERR_DUP_DATAREP); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99623   __Pyx_GOTREF(__pyx_t_8);
99624   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_DUP_DATAREP, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99625   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99626 
99627   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":62
99628  * ERR_CONVERSION             = MPI_ERR_CONVERSION
99629  * ERR_DUP_DATAREP            = MPI_ERR_DUP_DATAREP
99630  * ERR_UNSUPPORTED_DATAREP    = MPI_ERR_UNSUPPORTED_DATAREP             # <<<<<<<<<<<<<<
99631  * ERR_UNSUPPORTED_OPERATION  = MPI_ERR_UNSUPPORTED_OPERATION
99632  * # Dynamic Process Management
99633  */
99634   __pyx_t_8 = PyInt_FromLong(MPI_ERR_UNSUPPORTED_DATAREP); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99635   __Pyx_GOTREF(__pyx_t_8);
99636   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_153, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99637   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99638 
99639   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":63
99640  * ERR_DUP_DATAREP            = MPI_ERR_DUP_DATAREP
99641  * ERR_UNSUPPORTED_DATAREP    = MPI_ERR_UNSUPPORTED_DATAREP
99642  * ERR_UNSUPPORTED_OPERATION  = MPI_ERR_UNSUPPORTED_OPERATION             # <<<<<<<<<<<<<<
99643  * # Dynamic Process Management
99644  * ERR_NAME                   = MPI_ERR_NAME
99645  */
99646   __pyx_t_8 = PyInt_FromLong(MPI_ERR_UNSUPPORTED_OPERATION); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99647   __Pyx_GOTREF(__pyx_t_8);
99648   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_154, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99649   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99650 
99651   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":65
99652  * ERR_UNSUPPORTED_OPERATION  = MPI_ERR_UNSUPPORTED_OPERATION
99653  * # Dynamic Process Management
99654  * ERR_NAME                   = MPI_ERR_NAME             # <<<<<<<<<<<<<<
99655  * ERR_NO_MEM                 = MPI_ERR_NO_MEM
99656  * ERR_NOT_SAME               = MPI_ERR_NOT_SAME
99657  */
99658   __pyx_t_8 = PyInt_FromLong(MPI_ERR_NAME); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99659   __Pyx_GOTREF(__pyx_t_8);
99660   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_NAME, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99661   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99662 
99663   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":66
99664  * # Dynamic Process Management
99665  * ERR_NAME                   = MPI_ERR_NAME
99666  * ERR_NO_MEM                 = MPI_ERR_NO_MEM             # <<<<<<<<<<<<<<
99667  * ERR_NOT_SAME               = MPI_ERR_NOT_SAME
99668  * ERR_PORT                   = MPI_ERR_PORT
99669  */
99670   __pyx_t_8 = PyInt_FromLong(MPI_ERR_NO_MEM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99671   __Pyx_GOTREF(__pyx_t_8);
99672   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_NO_MEM, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99673   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99674 
99675   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":67
99676  * ERR_NAME                   = MPI_ERR_NAME
99677  * ERR_NO_MEM                 = MPI_ERR_NO_MEM
99678  * ERR_NOT_SAME               = MPI_ERR_NOT_SAME             # <<<<<<<<<<<<<<
99679  * ERR_PORT                   = MPI_ERR_PORT
99680  * ERR_QUOTA                  = MPI_ERR_QUOTA
99681  */
99682   __pyx_t_8 = PyInt_FromLong(MPI_ERR_NOT_SAME); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99683   __Pyx_GOTREF(__pyx_t_8);
99684   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_NOT_SAME, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99685   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99686 
99687   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":68
99688  * ERR_NO_MEM                 = MPI_ERR_NO_MEM
99689  * ERR_NOT_SAME               = MPI_ERR_NOT_SAME
99690  * ERR_PORT                   = MPI_ERR_PORT             # <<<<<<<<<<<<<<
99691  * ERR_QUOTA                  = MPI_ERR_QUOTA
99692  * ERR_SERVICE                = MPI_ERR_SERVICE
99693  */
99694   __pyx_t_8 = PyInt_FromLong(MPI_ERR_PORT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99695   __Pyx_GOTREF(__pyx_t_8);
99696   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_PORT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99697   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99698 
99699   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":69
99700  * ERR_NOT_SAME               = MPI_ERR_NOT_SAME
99701  * ERR_PORT                   = MPI_ERR_PORT
99702  * ERR_QUOTA                  = MPI_ERR_QUOTA             # <<<<<<<<<<<<<<
99703  * ERR_SERVICE                = MPI_ERR_SERVICE
99704  * ERR_SPAWN                  = MPI_ERR_SPAWN
99705  */
99706   __pyx_t_8 = PyInt_FromLong(MPI_ERR_QUOTA); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99707   __Pyx_GOTREF(__pyx_t_8);
99708   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_QUOTA, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99709   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99710 
99711   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":70
99712  * ERR_PORT                   = MPI_ERR_PORT
99713  * ERR_QUOTA                  = MPI_ERR_QUOTA
99714  * ERR_SERVICE                = MPI_ERR_SERVICE             # <<<<<<<<<<<<<<
99715  * ERR_SPAWN                  = MPI_ERR_SPAWN
99716  * # Windows
99717  */
99718   __pyx_t_8 = PyInt_FromLong(MPI_ERR_SERVICE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99719   __Pyx_GOTREF(__pyx_t_8);
99720   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_SERVICE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99721   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99722 
99723   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":71
99724  * ERR_QUOTA                  = MPI_ERR_QUOTA
99725  * ERR_SERVICE                = MPI_ERR_SERVICE
99726  * ERR_SPAWN                  = MPI_ERR_SPAWN             # <<<<<<<<<<<<<<
99727  * # Windows
99728  * ERR_BASE                   = MPI_ERR_BASE
99729  */
99730   __pyx_t_8 = PyInt_FromLong(MPI_ERR_SPAWN); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99731   __Pyx_GOTREF(__pyx_t_8);
99732   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_SPAWN, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99733   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99734 
99735   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":73
99736  * ERR_SPAWN                  = MPI_ERR_SPAWN
99737  * # Windows
99738  * ERR_BASE                   = MPI_ERR_BASE             # <<<<<<<<<<<<<<
99739  * ERR_LOCKTYPE               = MPI_ERR_LOCKTYPE
99740  * ERR_RMA_CONFLICT           = MPI_ERR_RMA_CONFLICT
99741  */
99742   __pyx_t_8 = PyInt_FromLong(MPI_ERR_BASE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99743   __Pyx_GOTREF(__pyx_t_8);
99744   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_BASE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99745   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99746 
99747   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":74
99748  * # Windows
99749  * ERR_BASE                   = MPI_ERR_BASE
99750  * ERR_LOCKTYPE               = MPI_ERR_LOCKTYPE             # <<<<<<<<<<<<<<
99751  * ERR_RMA_CONFLICT           = MPI_ERR_RMA_CONFLICT
99752  * ERR_RMA_SYNC               = MPI_ERR_RMA_SYNC
99753  */
99754   __pyx_t_8 = PyInt_FromLong(MPI_ERR_LOCKTYPE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99755   __Pyx_GOTREF(__pyx_t_8);
99756   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_LOCKTYPE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99757   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99758 
99759   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":75
99760  * ERR_BASE                   = MPI_ERR_BASE
99761  * ERR_LOCKTYPE               = MPI_ERR_LOCKTYPE
99762  * ERR_RMA_CONFLICT           = MPI_ERR_RMA_CONFLICT             # <<<<<<<<<<<<<<
99763  * ERR_RMA_SYNC               = MPI_ERR_RMA_SYNC
99764  * ERR_SIZE                   = MPI_ERR_SIZE
99765  */
99766   __pyx_t_8 = PyInt_FromLong(MPI_ERR_RMA_CONFLICT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99767   __Pyx_GOTREF(__pyx_t_8);
99768   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_RMA_CONFLICT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99769   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99770 
99771   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":76
99772  * ERR_LOCKTYPE               = MPI_ERR_LOCKTYPE
99773  * ERR_RMA_CONFLICT           = MPI_ERR_RMA_CONFLICT
99774  * ERR_RMA_SYNC               = MPI_ERR_RMA_SYNC             # <<<<<<<<<<<<<<
99775  * ERR_SIZE                   = MPI_ERR_SIZE
99776  * ERR_DISP                   = MPI_ERR_DISP
99777  */
99778   __pyx_t_8 = PyInt_FromLong(MPI_ERR_RMA_SYNC); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99779   __Pyx_GOTREF(__pyx_t_8);
99780   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_RMA_SYNC, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99781   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99782 
99783   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":77
99784  * ERR_RMA_CONFLICT           = MPI_ERR_RMA_CONFLICT
99785  * ERR_RMA_SYNC               = MPI_ERR_RMA_SYNC
99786  * ERR_SIZE                   = MPI_ERR_SIZE             # <<<<<<<<<<<<<<
99787  * ERR_DISP                   = MPI_ERR_DISP
99788  * ERR_ASSERT                 = MPI_ERR_ASSERT
99789  */
99790   __pyx_t_8 = PyInt_FromLong(MPI_ERR_SIZE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99791   __Pyx_GOTREF(__pyx_t_8);
99792   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_SIZE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99793   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99794 
99795   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":78
99796  * ERR_RMA_SYNC               = MPI_ERR_RMA_SYNC
99797  * ERR_SIZE                   = MPI_ERR_SIZE
99798  * ERR_DISP                   = MPI_ERR_DISP             # <<<<<<<<<<<<<<
99799  * ERR_ASSERT                 = MPI_ERR_ASSERT
99800  *
99801  */
99802   __pyx_t_8 = PyInt_FromLong(MPI_ERR_DISP); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99803   __Pyx_GOTREF(__pyx_t_8);
99804   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_DISP, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99805   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99806 
99807   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":79
99808  * ERR_SIZE                   = MPI_ERR_SIZE
99809  * ERR_DISP                   = MPI_ERR_DISP
99810  * ERR_ASSERT                 = MPI_ERR_ASSERT             # <<<<<<<<<<<<<<
99811  *
99812  *
99813  */
99814   __pyx_t_8 = PyInt_FromLong(MPI_ERR_ASSERT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99815   __Pyx_GOTREF(__pyx_t_8);
99816   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERR_ASSERT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99817   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99818 
99819   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":82
99820  *
99821  *
99822  * def Get_error_class(int errorcode):             # <<<<<<<<<<<<<<
99823  *     """
99824  *     Convert an *error code* into an *error class*
99825  */
99826   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_Get_error_class, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99827   __Pyx_GOTREF(__pyx_t_8);
99828   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Get_error_class, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99829   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99830 
99831   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":90
99832  *     return errorclass
99833  *
99834  * def Get_error_string(int errorcode):             # <<<<<<<<<<<<<<
99835  *     """
99836  *     Return the *error string* for a given
99837  */
99838   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_1Get_error_string, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99839   __Pyx_GOTREF(__pyx_t_8);
99840   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Get_error_string, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99841   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99842 
99843   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":101
99844  *
99845  *
99846  * def Add_error_class():             # <<<<<<<<<<<<<<
99847  *     """
99848  *     Add an *error class* to the known error classes
99849  */
99850   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_2Add_error_class, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99851   __Pyx_GOTREF(__pyx_t_8);
99852   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Add_error_class, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99853   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99854 
99855   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":109
99856  *     return errorclass
99857  *
99858  * def Add_error_code(int errorclass):             # <<<<<<<<<<<<<<
99859  *     """
99860  *     Add an *error code* to an *error class*
99861  */
99862   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_3Add_error_code, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99863   __Pyx_GOTREF(__pyx_t_8);
99864   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Add_error_code, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99865   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99866 
99867   /* "/home/devel/mpi4py-1.3/src/MPI/Exception.pyx":117
99868  *     return errorcode
99869  *
99870  * def Add_error_string(int errorcode, string):             # <<<<<<<<<<<<<<
99871  *     """
99872  *     Associate an *error string* with an
99873  */
99874   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_4Add_error_string, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99875   __Pyx_GOTREF(__pyx_t_8);
99876   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Add_error_string, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99877   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99878 
99879   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":40
99880  *
99881  *     @classmethod
99882  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
99883  *         """
99884  *         """
99885  */
99886   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Errhandler, __pyx_n_s__f2py); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99887   __Pyx_GOTREF(__pyx_t_8);
99888   __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99889   __Pyx_GOTREF(__pyx_t_3);
99890   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
99891   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Errhandler->tp_dict, __pyx_n_s__f2py, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99892   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99893   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Errhandler);
99894 
99895   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":49
99896  *
99897  *
99898  * cdef Errhandler __ERRHANDLER_NULL__  = new_Errhandler(MPI_ERRHANDLER_NULL)             # <<<<<<<<<<<<<<
99899  * cdef Errhandler __ERRORS_RETURN__    = new_Errhandler(MPI_ERRORS_RETURN)
99900  * cdef Errhandler __ERRORS_ARE_FATAL__ = new_Errhandler(MPI_ERRORS_ARE_FATAL)
99901  */
99902   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_ERRHANDLER_NULL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99903   __Pyx_GOTREF(__pyx_t_3);
99904   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__));
99905   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__));
99906   __Pyx_GIVEREF(__pyx_t_3);
99907   __pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__ = ((struct PyMPIErrhandlerObject *)__pyx_t_3);
99908   __pyx_t_3 = 0;
99909 
99910   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":50
99911  *
99912  * cdef Errhandler __ERRHANDLER_NULL__  = new_Errhandler(MPI_ERRHANDLER_NULL)
99913  * cdef Errhandler __ERRORS_RETURN__    = new_Errhandler(MPI_ERRORS_RETURN)             # <<<<<<<<<<<<<<
99914  * cdef Errhandler __ERRORS_ARE_FATAL__ = new_Errhandler(MPI_ERRORS_ARE_FATAL)
99915  *
99916  */
99917   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_ERRORS_RETURN)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99918   __Pyx_GOTREF(__pyx_t_3);
99919   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_RETURN__));
99920   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_RETURN__));
99921   __Pyx_GIVEREF(__pyx_t_3);
99922   __pyx_v_6mpi4py_3MPI___ERRORS_RETURN__ = ((struct PyMPIErrhandlerObject *)__pyx_t_3);
99923   __pyx_t_3 = 0;
99924 
99925   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":51
99926  * cdef Errhandler __ERRHANDLER_NULL__  = new_Errhandler(MPI_ERRHANDLER_NULL)
99927  * cdef Errhandler __ERRORS_RETURN__    = new_Errhandler(MPI_ERRORS_RETURN)
99928  * cdef Errhandler __ERRORS_ARE_FATAL__ = new_Errhandler(MPI_ERRORS_ARE_FATAL)             # <<<<<<<<<<<<<<
99929  *
99930  *
99931  */
99932   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Errhandler(MPI_ERRORS_ARE_FATAL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99933   __Pyx_GOTREF(__pyx_t_3);
99934   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__));
99935   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__));
99936   __Pyx_GIVEREF(__pyx_t_3);
99937   __pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__ = ((struct PyMPIErrhandlerObject *)__pyx_t_3);
99938   __pyx_t_3 = 0;
99939 
99940   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":57
99941  * # -----------------------------
99942  *
99943  * ERRHANDLER_NULL  = __ERRHANDLER_NULL__  #: Null error handler             # <<<<<<<<<<<<<<
99944  * ERRORS_RETURN    = __ERRORS_RETURN__    #: Errors return error handler
99945  * ERRORS_ARE_FATAL = __ERRORS_ARE_FATAL__ #: Errors are fatal error handler
99946  */
99947   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERRHANDLER_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99948 
99949   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":58
99950  *
99951  * ERRHANDLER_NULL  = __ERRHANDLER_NULL__  #: Null error handler
99952  * ERRORS_RETURN    = __ERRORS_RETURN__    #: Errors return error handler             # <<<<<<<<<<<<<<
99953  * ERRORS_ARE_FATAL = __ERRORS_ARE_FATAL__ #: Errors are fatal error handler
99954  */
99955   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERRORS_RETURN, ((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_RETURN__)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99956 
99957   /* "/home/devel/mpi4py-1.3/src/MPI/Errhandler.pyx":59
99958  * ERRHANDLER_NULL  = __ERRHANDLER_NULL__  #: Null error handler
99959  * ERRORS_RETURN    = __ERRORS_RETURN__    #: Errors return error handler
99960  * ERRORS_ARE_FATAL = __ERRORS_ARE_FATAL__ #: Errors are fatal error handler             # <<<<<<<<<<<<<<
99961  */
99962   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ERRORS_ARE_FATAL, ((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99963 
99964   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":4
99965  * # ------------------------
99966  *
99967  * ORDER_C       = MPI_ORDER_C       #: C order (a.k.a. row major)             # <<<<<<<<<<<<<<
99968  * ORDER_FORTRAN = MPI_ORDER_FORTRAN #: Fortran order (a.k.a. column major)
99969  * ORDER_F       = MPI_ORDER_FORTRAN #: Convenience alias for ORDER_FORTRAN
99970  */
99971   __pyx_t_3 = PyInt_FromLong(MPI_ORDER_C); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99972   __Pyx_GOTREF(__pyx_t_3);
99973   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ORDER_C, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99974   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99975 
99976   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":5
99977  *
99978  * ORDER_C       = MPI_ORDER_C       #: C order (a.k.a. row major)
99979  * ORDER_FORTRAN = MPI_ORDER_FORTRAN #: Fortran order (a.k.a. column major)             # <<<<<<<<<<<<<<
99980  * ORDER_F       = MPI_ORDER_FORTRAN #: Convenience alias for ORDER_FORTRAN
99981  *
99982  */
99983   __pyx_t_3 = PyInt_FromLong(MPI_ORDER_FORTRAN); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99984   __Pyx_GOTREF(__pyx_t_3);
99985   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ORDER_FORTRAN, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99986   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99987 
99988   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":6
99989  * ORDER_C       = MPI_ORDER_C       #: C order (a.k.a. row major)
99990  * ORDER_FORTRAN = MPI_ORDER_FORTRAN #: Fortran order (a.k.a. column major)
99991  * ORDER_F       = MPI_ORDER_FORTRAN #: Convenience alias for ORDER_FORTRAN             # <<<<<<<<<<<<<<
99992  *
99993  *
99994  */
99995   __pyx_t_3 = PyInt_FromLong(MPI_ORDER_FORTRAN); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99996   __Pyx_GOTREF(__pyx_t_3);
99997   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ORDER_F, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
99998   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
99999 
100000   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":11
100001  * # Type classes for Fortran datatype matching
100002  * # ------------------------------------------
100003  * TYPECLASS_INTEGER = MPI_TYPECLASS_INTEGER             # <<<<<<<<<<<<<<
100004  * TYPECLASS_REAL    = MPI_TYPECLASS_REAL
100005  * TYPECLASS_COMPLEX = MPI_TYPECLASS_COMPLEX
100006  */
100007   __pyx_t_3 = PyInt_FromLong(MPI_TYPECLASS_INTEGER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100008   __Pyx_GOTREF(__pyx_t_3);
100009   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TYPECLASS_INTEGER, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100010   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100011 
100012   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":12
100013  * # ------------------------------------------
100014  * TYPECLASS_INTEGER = MPI_TYPECLASS_INTEGER
100015  * TYPECLASS_REAL    = MPI_TYPECLASS_REAL             # <<<<<<<<<<<<<<
100016  * TYPECLASS_COMPLEX = MPI_TYPECLASS_COMPLEX
100017  *
100018  */
100019   __pyx_t_3 = PyInt_FromLong(MPI_TYPECLASS_REAL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100020   __Pyx_GOTREF(__pyx_t_3);
100021   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TYPECLASS_REAL, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100022   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100023 
100024   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":13
100025  * TYPECLASS_INTEGER = MPI_TYPECLASS_INTEGER
100026  * TYPECLASS_REAL    = MPI_TYPECLASS_REAL
100027  * TYPECLASS_COMPLEX = MPI_TYPECLASS_COMPLEX             # <<<<<<<<<<<<<<
100028  *
100029  *
100030  */
100031   __pyx_t_3 = PyInt_FromLong(MPI_TYPECLASS_COMPLEX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100032   __Pyx_GOTREF(__pyx_t_3);
100033   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TYPECLASS_COMPLEX, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100034   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100035 
100036   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":19
100037  * # ---------------------------------------
100038  *
100039  * DISTRIBUTE_NONE      = MPI_DISTRIBUTE_NONE      #: Dimension not distributed             # <<<<<<<<<<<<<<
100040  * DISTRIBUTE_BLOCK     = MPI_DISTRIBUTE_BLOCK     #: Block distribution
100041  * DISTRIBUTE_CYCLIC    = MPI_DISTRIBUTE_CYCLIC    #: Cyclic distribution
100042  */
100043   __pyx_t_3 = PyInt_FromLong(MPI_DISTRIBUTE_NONE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100044   __Pyx_GOTREF(__pyx_t_3);
100045   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DISTRIBUTE_NONE, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100046   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100047 
100048   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":20
100049  *
100050  * DISTRIBUTE_NONE      = MPI_DISTRIBUTE_NONE      #: Dimension not distributed
100051  * DISTRIBUTE_BLOCK     = MPI_DISTRIBUTE_BLOCK     #: Block distribution             # <<<<<<<<<<<<<<
100052  * DISTRIBUTE_CYCLIC    = MPI_DISTRIBUTE_CYCLIC    #: Cyclic distribution
100053  * DISTRIBUTE_DFLT_DARG = MPI_DISTRIBUTE_DFLT_DARG #: Default distribution
100054  */
100055   __pyx_t_3 = PyInt_FromLong(MPI_DISTRIBUTE_BLOCK); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100056   __Pyx_GOTREF(__pyx_t_3);
100057   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DISTRIBUTE_BLOCK, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100058   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100059 
100060   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":21
100061  * DISTRIBUTE_NONE      = MPI_DISTRIBUTE_NONE      #: Dimension not distributed
100062  * DISTRIBUTE_BLOCK     = MPI_DISTRIBUTE_BLOCK     #: Block distribution
100063  * DISTRIBUTE_CYCLIC    = MPI_DISTRIBUTE_CYCLIC    #: Cyclic distribution             # <<<<<<<<<<<<<<
100064  * DISTRIBUTE_DFLT_DARG = MPI_DISTRIBUTE_DFLT_DARG #: Default distribution
100065  *
100066  */
100067   __pyx_t_3 = PyInt_FromLong(MPI_DISTRIBUTE_CYCLIC); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100068   __Pyx_GOTREF(__pyx_t_3);
100069   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DISTRIBUTE_CYCLIC, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100070   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100071 
100072   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":22
100073  * DISTRIBUTE_BLOCK     = MPI_DISTRIBUTE_BLOCK     #: Block distribution
100074  * DISTRIBUTE_CYCLIC    = MPI_DISTRIBUTE_CYCLIC    #: Cyclic distribution
100075  * DISTRIBUTE_DFLT_DARG = MPI_DISTRIBUTE_DFLT_DARG #: Default distribution             # <<<<<<<<<<<<<<
100076  *
100077  *
100078  */
100079   __pyx_t_3 = PyInt_FromLong(MPI_DISTRIBUTE_DFLT_DARG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100080   __Pyx_GOTREF(__pyx_t_3);
100081   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_155, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100082   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100083 
100084   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":27
100085  * # Combiner values for datatype decoding
100086  * # -------------------------------------
100087  * COMBINER_NAMED            = MPI_COMBINER_NAMED             # <<<<<<<<<<<<<<
100088  * COMBINER_DUP              = MPI_COMBINER_DUP
100089  * COMBINER_CONTIGUOUS       = MPI_COMBINER_CONTIGUOUS
100090  */
100091   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_NAMED); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100092   __Pyx_GOTREF(__pyx_t_3);
100093   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_NAMED, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100094   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100095 
100096   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":28
100097  * # -------------------------------------
100098  * COMBINER_NAMED            = MPI_COMBINER_NAMED
100099  * COMBINER_DUP              = MPI_COMBINER_DUP             # <<<<<<<<<<<<<<
100100  * COMBINER_CONTIGUOUS       = MPI_COMBINER_CONTIGUOUS
100101  * COMBINER_VECTOR           = MPI_COMBINER_VECTOR
100102  */
100103   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_DUP); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100104   __Pyx_GOTREF(__pyx_t_3);
100105   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_DUP, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100106   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100107 
100108   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":29
100109  * COMBINER_NAMED            = MPI_COMBINER_NAMED
100110  * COMBINER_DUP              = MPI_COMBINER_DUP
100111  * COMBINER_CONTIGUOUS       = MPI_COMBINER_CONTIGUOUS             # <<<<<<<<<<<<<<
100112  * COMBINER_VECTOR           = MPI_COMBINER_VECTOR
100113  * COMBINER_HVECTOR          = MPI_COMBINER_HVECTOR
100114  */
100115   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_CONTIGUOUS); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100116   __Pyx_GOTREF(__pyx_t_3);
100117   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_CONTIGUOUS, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100118   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100119 
100120   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":30
100121  * COMBINER_DUP              = MPI_COMBINER_DUP
100122  * COMBINER_CONTIGUOUS       = MPI_COMBINER_CONTIGUOUS
100123  * COMBINER_VECTOR           = MPI_COMBINER_VECTOR             # <<<<<<<<<<<<<<
100124  * COMBINER_HVECTOR          = MPI_COMBINER_HVECTOR
100125  * COMBINER_HVECTOR_INTEGER  = MPI_COMBINER_HVECTOR_INTEGER  #: from Fortran call
100126  */
100127   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_VECTOR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100128   __Pyx_GOTREF(__pyx_t_3);
100129   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_VECTOR, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100130   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100131 
100132   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":31
100133  * COMBINER_CONTIGUOUS       = MPI_COMBINER_CONTIGUOUS
100134  * COMBINER_VECTOR           = MPI_COMBINER_VECTOR
100135  * COMBINER_HVECTOR          = MPI_COMBINER_HVECTOR             # <<<<<<<<<<<<<<
100136  * COMBINER_HVECTOR_INTEGER  = MPI_COMBINER_HVECTOR_INTEGER  #: from Fortran call
100137  * COMBINER_INDEXED          = MPI_COMBINER_INDEXED
100138  */
100139   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_HVECTOR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100140   __Pyx_GOTREF(__pyx_t_3);
100141   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_HVECTOR, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100142   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100143 
100144   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":32
100145  * COMBINER_VECTOR           = MPI_COMBINER_VECTOR
100146  * COMBINER_HVECTOR          = MPI_COMBINER_HVECTOR
100147  * COMBINER_HVECTOR_INTEGER  = MPI_COMBINER_HVECTOR_INTEGER  #: from Fortran call             # <<<<<<<<<<<<<<
100148  * COMBINER_INDEXED          = MPI_COMBINER_INDEXED
100149  * COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER #: from Fortran call
100150  */
100151   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_HVECTOR_INTEGER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100152   __Pyx_GOTREF(__pyx_t_3);
100153   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_156, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100154   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100155 
100156   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":33
100157  * COMBINER_HVECTOR          = MPI_COMBINER_HVECTOR
100158  * COMBINER_HVECTOR_INTEGER  = MPI_COMBINER_HVECTOR_INTEGER  #: from Fortran call
100159  * COMBINER_INDEXED          = MPI_COMBINER_INDEXED             # <<<<<<<<<<<<<<
100160  * COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER #: from Fortran call
100161  * COMBINER_HINDEXED         = MPI_COMBINER_HINDEXED
100162  */
100163   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_INDEXED); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100164   __Pyx_GOTREF(__pyx_t_3);
100165   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_INDEXED, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100166   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100167 
100168   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":34
100169  * COMBINER_HVECTOR_INTEGER  = MPI_COMBINER_HVECTOR_INTEGER  #: from Fortran call
100170  * COMBINER_INDEXED          = MPI_COMBINER_INDEXED
100171  * COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER #: from Fortran call             # <<<<<<<<<<<<<<
100172  * COMBINER_HINDEXED         = MPI_COMBINER_HINDEXED
100173  * COMBINER_INDEXED_BLOCK    = MPI_COMBINER_INDEXED_BLOCK
100174  */
100175   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_HINDEXED_INTEGER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100176   __Pyx_GOTREF(__pyx_t_3);
100177   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_157, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100178   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100179 
100180   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":35
100181  * COMBINER_INDEXED          = MPI_COMBINER_INDEXED
100182  * COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER #: from Fortran call
100183  * COMBINER_HINDEXED         = MPI_COMBINER_HINDEXED             # <<<<<<<<<<<<<<
100184  * COMBINER_INDEXED_BLOCK    = MPI_COMBINER_INDEXED_BLOCK
100185  * COMBINER_STRUCT           = MPI_COMBINER_STRUCT
100186  */
100187   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_HINDEXED); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100188   __Pyx_GOTREF(__pyx_t_3);
100189   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_HINDEXED, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100190   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100191 
100192   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":36
100193  * COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER #: from Fortran call
100194  * COMBINER_HINDEXED         = MPI_COMBINER_HINDEXED
100195  * COMBINER_INDEXED_BLOCK    = MPI_COMBINER_INDEXED_BLOCK             # <<<<<<<<<<<<<<
100196  * COMBINER_STRUCT           = MPI_COMBINER_STRUCT
100197  * COMBINER_STRUCT_INTEGER   = MPI_COMBINER_STRUCT_INTEGER   #: from Fortran call
100198  */
100199   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_INDEXED_BLOCK); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100200   __Pyx_GOTREF(__pyx_t_3);
100201   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_158, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100202   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100203 
100204   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":37
100205  * COMBINER_HINDEXED         = MPI_COMBINER_HINDEXED
100206  * COMBINER_INDEXED_BLOCK    = MPI_COMBINER_INDEXED_BLOCK
100207  * COMBINER_STRUCT           = MPI_COMBINER_STRUCT             # <<<<<<<<<<<<<<
100208  * COMBINER_STRUCT_INTEGER   = MPI_COMBINER_STRUCT_INTEGER   #: from Fortran call
100209  * COMBINER_SUBARRAY         = MPI_COMBINER_SUBARRAY
100210  */
100211   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_STRUCT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100212   __Pyx_GOTREF(__pyx_t_3);
100213   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_STRUCT, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100214   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100215 
100216   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":38
100217  * COMBINER_INDEXED_BLOCK    = MPI_COMBINER_INDEXED_BLOCK
100218  * COMBINER_STRUCT           = MPI_COMBINER_STRUCT
100219  * COMBINER_STRUCT_INTEGER   = MPI_COMBINER_STRUCT_INTEGER   #: from Fortran call             # <<<<<<<<<<<<<<
100220  * COMBINER_SUBARRAY         = MPI_COMBINER_SUBARRAY
100221  * COMBINER_DARRAY           = MPI_COMBINER_DARRAY
100222  */
100223   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_STRUCT_INTEGER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100224   __Pyx_GOTREF(__pyx_t_3);
100225   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_159, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100226   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100227 
100228   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":39
100229  * COMBINER_STRUCT           = MPI_COMBINER_STRUCT
100230  * COMBINER_STRUCT_INTEGER   = MPI_COMBINER_STRUCT_INTEGER   #: from Fortran call
100231  * COMBINER_SUBARRAY         = MPI_COMBINER_SUBARRAY             # <<<<<<<<<<<<<<
100232  * COMBINER_DARRAY           = MPI_COMBINER_DARRAY
100233  * COMBINER_RESIZED          = MPI_COMBINER_RESIZED
100234  */
100235   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_SUBARRAY); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100236   __Pyx_GOTREF(__pyx_t_3);
100237   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_SUBARRAY, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100238   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100239 
100240   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":40
100241  * COMBINER_STRUCT_INTEGER   = MPI_COMBINER_STRUCT_INTEGER   #: from Fortran call
100242  * COMBINER_SUBARRAY         = MPI_COMBINER_SUBARRAY
100243  * COMBINER_DARRAY           = MPI_COMBINER_DARRAY             # <<<<<<<<<<<<<<
100244  * COMBINER_RESIZED          = MPI_COMBINER_RESIZED
100245  * COMBINER_F90_REAL         = MPI_COMBINER_F90_REAL
100246  */
100247   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_DARRAY); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100248   __Pyx_GOTREF(__pyx_t_3);
100249   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_DARRAY, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100250   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100251 
100252   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":41
100253  * COMBINER_SUBARRAY         = MPI_COMBINER_SUBARRAY
100254  * COMBINER_DARRAY           = MPI_COMBINER_DARRAY
100255  * COMBINER_RESIZED          = MPI_COMBINER_RESIZED             # <<<<<<<<<<<<<<
100256  * COMBINER_F90_REAL         = MPI_COMBINER_F90_REAL
100257  * COMBINER_F90_COMPLEX      = MPI_COMBINER_F90_COMPLEX
100258  */
100259   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_RESIZED); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100260   __Pyx_GOTREF(__pyx_t_3);
100261   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_RESIZED, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100262   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100263 
100264   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":42
100265  * COMBINER_DARRAY           = MPI_COMBINER_DARRAY
100266  * COMBINER_RESIZED          = MPI_COMBINER_RESIZED
100267  * COMBINER_F90_REAL         = MPI_COMBINER_F90_REAL             # <<<<<<<<<<<<<<
100268  * COMBINER_F90_COMPLEX      = MPI_COMBINER_F90_COMPLEX
100269  * COMBINER_F90_INTEGER      = MPI_COMBINER_F90_INTEGER
100270  */
100271   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_F90_REAL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100272   __Pyx_GOTREF(__pyx_t_3);
100273   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMBINER_F90_REAL, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100274   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100275 
100276   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":43
100277  * COMBINER_RESIZED          = MPI_COMBINER_RESIZED
100278  * COMBINER_F90_REAL         = MPI_COMBINER_F90_REAL
100279  * COMBINER_F90_COMPLEX      = MPI_COMBINER_F90_COMPLEX             # <<<<<<<<<<<<<<
100280  * COMBINER_F90_INTEGER      = MPI_COMBINER_F90_INTEGER
100281  *
100282  */
100283   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_F90_COMPLEX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100284   __Pyx_GOTREF(__pyx_t_3);
100285   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_160, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100286   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100287 
100288   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":44
100289  * COMBINER_F90_REAL         = MPI_COMBINER_F90_REAL
100290  * COMBINER_F90_COMPLEX      = MPI_COMBINER_F90_COMPLEX
100291  * COMBINER_F90_INTEGER      = MPI_COMBINER_F90_INTEGER             # <<<<<<<<<<<<<<
100292  *
100293  *
100294  */
100295   __pyx_t_3 = PyInt_FromLong(MPI_COMBINER_F90_INTEGER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100296   __Pyx_GOTREF(__pyx_t_3);
100297   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_161, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100298   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100299 
100300   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":130
100301  *         return datatype
100302  *
100303  *     Create_dup = Dup #: convenience alias             # <<<<<<<<<<<<<<
100304  *
100305  *     def Create_contiguous(self, int count):
100306  */
100307   __pyx_t_3 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Dup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100308   __Pyx_GOTREF(__pyx_t_3);
100309   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_dup, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100310   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100311   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100312 
100313   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":204
100314  *
100315  *     def Create_subarray(self, sizes, subsizes, starts,
100316  *                         int order=ORDER_C):             # <<<<<<<<<<<<<<
100317  *         """
100318  *         Create a datatype for a subarray of
100319  */
100320   __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ORDER_C); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100321   __Pyx_GOTREF(__pyx_t_3);
100322   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100323   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100324   __pyx_k_58 = __pyx_t_1;
100325 
100326   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":226
100327  *     def Create_darray(self, int size, int rank,
100328  *                       gsizes, distribs, dargs, psizes,
100329  *                       int order=ORDER_C):             # <<<<<<<<<<<<<<
100330  *         """
100331  *         Create a datatype representing an HPF-like
100332  */
100333   __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ORDER_C); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100334   __Pyx_GOTREF(__pyx_t_3);
100335   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100336   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100337   __pyx_k_59 = __pyx_t_1;
100338 
100339   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":246
100340  *
100341  *     @classmethod
100342  *     def Create_struct(cls, blocklengths, displacements, datatypes):             # <<<<<<<<<<<<<<
100343  *         """
100344  *         Create an datatype from a general set of
100345  */
100346   __pyx_t_3 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_struct); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100347   __Pyx_GOTREF(__pyx_t_3);
100348   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100349   __Pyx_GOTREF(__pyx_t_8);
100350   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100351   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_struct, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100352   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100353   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100354 
100355   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":267
100356  *
100357  *     @classmethod
100358  *     def Create_f90_integer(cls, int r):             # <<<<<<<<<<<<<<
100359  *         """
100360  *         Return a bounded integer datatype
100361  */
100362   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_f90_integer); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100363   __Pyx_GOTREF(__pyx_t_8);
100364   __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100365   __Pyx_GOTREF(__pyx_t_3);
100366   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100367   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_f90_integer, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100368   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100369   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100370 
100371   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":276
100372  *
100373  *     @classmethod
100374  *     def Create_f90_real(cls, int p, int r):             # <<<<<<<<<<<<<<
100375  *         """
100376  *         Return a bounded real datatype
100377  */
100378   __pyx_t_3 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_f90_real); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100379   __Pyx_GOTREF(__pyx_t_3);
100380   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100381   __Pyx_GOTREF(__pyx_t_8);
100382   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100383   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_f90_real, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100384   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100385   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100386 
100387   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":285
100388  *
100389  *     @classmethod
100390  *     def Create_f90_complex(cls, int p, int r):             # <<<<<<<<<<<<<<
100391  *         """
100392  *         Return a bounded complex datatype
100393  */
100394   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_f90_complex); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100395   __Pyx_GOTREF(__pyx_t_8);
100396   __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100397   __Pyx_GOTREF(__pyx_t_3);
100398   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100399   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_f90_complex, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100400   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100401   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100402 
100403   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":294
100404  *
100405  *     @classmethod
100406  *     def Match_size(cls, int typeclass, int size):             # <<<<<<<<<<<<<<
100407  *         """
100408  *         Find a datatype matching a specified size in bytes
100409  */
100410   __pyx_t_3 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Match_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100411   __Pyx_GOTREF(__pyx_t_3);
100412   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100413   __Pyx_GOTREF(__pyx_t_8);
100414   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100415   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Match_size, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100416   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100417   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100418 
100419   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":331
100420  *         return datatype
100421  *
100422  *     Resized = Create_resized #: compatibility alias             # <<<<<<<<<<<<<<
100423  *
100424  *     def Get_true_extent(self):
100425  */
100426   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_resized); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100427   __Pyx_GOTREF(__pyx_t_8);
100428   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Resized, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100429   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100430   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100431 
100432   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":655
100433  *
100434  *     @classmethod
100435  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
100436  *         """
100437  *         Create a new attribute key for datatypes
100438  */
100439   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Create_keyval); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100440   __Pyx_GOTREF(__pyx_t_8);
100441   __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100442   __Pyx_GOTREF(__pyx_t_3);
100443   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100444   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Create_keyval, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100445   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100446   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100447 
100448   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":668
100449  *
100450  *     @classmethod
100451  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
100452  *         """
100453  *         Free and attribute key for datatypes
100454  */
100455   __pyx_t_3 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__Free_keyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100456   __Pyx_GOTREF(__pyx_t_3);
100457   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100458   __Pyx_GOTREF(__pyx_t_8);
100459   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100460   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__Free_keyval, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100461   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100462   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100463 
100464   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":713
100465  *
100466  *     @classmethod
100467  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
100468  *         """
100469  *         """
100470  */
100471   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype, __pyx_n_s__f2py); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100472   __Pyx_GOTREF(__pyx_t_8);
100473   __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100474   __Pyx_GOTREF(__pyx_t_3);
100475   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
100476   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Datatype->tp_dict, __pyx_n_s__f2py, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100477   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100478   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Datatype);
100479 
100480   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":725
100481  * # ----------------
100482  *
100483  * def Get_address(location):             # <<<<<<<<<<<<<<
100484  *     """
100485  *     Get the address of a location in memory
100486  */
100487   __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_5Get_address, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100488   __Pyx_GOTREF(__pyx_t_3);
100489   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Get_address, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100490   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
100491 
100492   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":737
100493  *
100494  *
100495  * cdef Datatype __DATATYPE_NULL__ = new_Datatype( MPI_DATATYPE_NULL )             # <<<<<<<<<<<<<<
100496  *
100497  * cdef Datatype __UB__ = new_Datatype( MPI_UB )
100498  */
100499   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_DATATYPE_NULL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100500   __Pyx_GOTREF(__pyx_t_3);
100501   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DATATYPE_NULL__));
100502   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DATATYPE_NULL__));
100503   __Pyx_GIVEREF(__pyx_t_3);
100504   __pyx_v_6mpi4py_3MPI___DATATYPE_NULL__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100505   __pyx_t_3 = 0;
100506 
100507   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":739
100508  * cdef Datatype __DATATYPE_NULL__ = new_Datatype( MPI_DATATYPE_NULL )
100509  *
100510  * cdef Datatype __UB__ = new_Datatype( MPI_UB )             # <<<<<<<<<<<<<<
100511  * cdef Datatype __LB__ = new_Datatype( MPI_LB )
100512  *
100513  */
100514   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UB)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100515   __Pyx_GOTREF(__pyx_t_3);
100516   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UB__));
100517   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UB__));
100518   __Pyx_GIVEREF(__pyx_t_3);
100519   __pyx_v_6mpi4py_3MPI___UB__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100520   __pyx_t_3 = 0;
100521 
100522   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":740
100523  *
100524  * cdef Datatype __UB__ = new_Datatype( MPI_UB )
100525  * cdef Datatype __LB__ = new_Datatype( MPI_LB )             # <<<<<<<<<<<<<<
100526  *
100527  * cdef Datatype __PACKED__ = new_Datatype( MPI_PACKED )
100528  */
100529   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LB)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100530   __Pyx_GOTREF(__pyx_t_3);
100531   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LB__));
100532   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LB__));
100533   __Pyx_GIVEREF(__pyx_t_3);
100534   __pyx_v_6mpi4py_3MPI___LB__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100535   __pyx_t_3 = 0;
100536 
100537   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":742
100538  * cdef Datatype __LB__ = new_Datatype( MPI_LB )
100539  *
100540  * cdef Datatype __PACKED__ = new_Datatype( MPI_PACKED )             # <<<<<<<<<<<<<<
100541  * cdef Datatype __BYTE__   = new_Datatype( MPI_BYTE   )
100542  * cdef Datatype __AINT__   = new_Datatype( MPI_AINT   )
100543  */
100544   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_PACKED)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100545   __Pyx_GOTREF(__pyx_t_3);
100546   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___PACKED__));
100547   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___PACKED__));
100548   __Pyx_GIVEREF(__pyx_t_3);
100549   __pyx_v_6mpi4py_3MPI___PACKED__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100550   __pyx_t_3 = 0;
100551 
100552   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":743
100553  *
100554  * cdef Datatype __PACKED__ = new_Datatype( MPI_PACKED )
100555  * cdef Datatype __BYTE__   = new_Datatype( MPI_BYTE   )             # <<<<<<<<<<<<<<
100556  * cdef Datatype __AINT__   = new_Datatype( MPI_AINT   )
100557  * cdef Datatype __OFFSET__ = new_Datatype( MPI_OFFSET )
100558  */
100559   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_BYTE)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100560   __Pyx_GOTREF(__pyx_t_3);
100561   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__));
100562   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__));
100563   __Pyx_GIVEREF(__pyx_t_3);
100564   __pyx_v_6mpi4py_3MPI___BYTE__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100565   __pyx_t_3 = 0;
100566 
100567   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":744
100568  * cdef Datatype __PACKED__ = new_Datatype( MPI_PACKED )
100569  * cdef Datatype __BYTE__   = new_Datatype( MPI_BYTE   )
100570  * cdef Datatype __AINT__   = new_Datatype( MPI_AINT   )             # <<<<<<<<<<<<<<
100571  * cdef Datatype __OFFSET__ = new_Datatype( MPI_OFFSET )
100572  *
100573  */
100574   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_AINT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100575   __Pyx_GOTREF(__pyx_t_3);
100576   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___AINT__));
100577   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___AINT__));
100578   __Pyx_GIVEREF(__pyx_t_3);
100579   __pyx_v_6mpi4py_3MPI___AINT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100580   __pyx_t_3 = 0;
100581 
100582   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":745
100583  * cdef Datatype __BYTE__   = new_Datatype( MPI_BYTE   )
100584  * cdef Datatype __AINT__   = new_Datatype( MPI_AINT   )
100585  * cdef Datatype __OFFSET__ = new_Datatype( MPI_OFFSET )             # <<<<<<<<<<<<<<
100586  *
100587  * cdef Datatype __CHAR__               = new_Datatype( MPI_CHAR               )
100588  */
100589   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_OFFSET)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100590   __Pyx_GOTREF(__pyx_t_3);
100591   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___OFFSET__));
100592   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___OFFSET__));
100593   __Pyx_GIVEREF(__pyx_t_3);
100594   __pyx_v_6mpi4py_3MPI___OFFSET__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100595   __pyx_t_3 = 0;
100596 
100597   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":747
100598  * cdef Datatype __OFFSET__ = new_Datatype( MPI_OFFSET )
100599  *
100600  * cdef Datatype __CHAR__               = new_Datatype( MPI_CHAR               )             # <<<<<<<<<<<<<<
100601  * cdef Datatype __WCHAR__              = new_Datatype( MPI_WCHAR              )
100602  * cdef Datatype __SIGNED_CHAR__        = new_Datatype( MPI_SIGNED_CHAR        )
100603  */
100604   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_CHAR)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100605   __Pyx_GOTREF(__pyx_t_3);
100606   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__));
100607   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__));
100608   __Pyx_GIVEREF(__pyx_t_3);
100609   __pyx_v_6mpi4py_3MPI___CHAR__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100610   __pyx_t_3 = 0;
100611 
100612   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":748
100613  *
100614  * cdef Datatype __CHAR__               = new_Datatype( MPI_CHAR               )
100615  * cdef Datatype __WCHAR__              = new_Datatype( MPI_WCHAR              )             # <<<<<<<<<<<<<<
100616  * cdef Datatype __SIGNED_CHAR__        = new_Datatype( MPI_SIGNED_CHAR        )
100617  * cdef Datatype __SHORT__              = new_Datatype( MPI_SHORT              )
100618  */
100619   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_WCHAR)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100620   __Pyx_GOTREF(__pyx_t_3);
100621   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___WCHAR__));
100622   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___WCHAR__));
100623   __Pyx_GIVEREF(__pyx_t_3);
100624   __pyx_v_6mpi4py_3MPI___WCHAR__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100625   __pyx_t_3 = 0;
100626 
100627   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":749
100628  * cdef Datatype __CHAR__               = new_Datatype( MPI_CHAR               )
100629  * cdef Datatype __WCHAR__              = new_Datatype( MPI_WCHAR              )
100630  * cdef Datatype __SIGNED_CHAR__        = new_Datatype( MPI_SIGNED_CHAR        )             # <<<<<<<<<<<<<<
100631  * cdef Datatype __SHORT__              = new_Datatype( MPI_SHORT              )
100632  * cdef Datatype __INT__                = new_Datatype( MPI_INT                )
100633  */
100634   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_SIGNED_CHAR)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100635   __Pyx_GOTREF(__pyx_t_3);
100636   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__));
100637   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__));
100638   __Pyx_GIVEREF(__pyx_t_3);
100639   __pyx_v_6mpi4py_3MPI___SIGNED_CHAR__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100640   __pyx_t_3 = 0;
100641 
100642   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":750
100643  * cdef Datatype __WCHAR__              = new_Datatype( MPI_WCHAR              )
100644  * cdef Datatype __SIGNED_CHAR__        = new_Datatype( MPI_SIGNED_CHAR        )
100645  * cdef Datatype __SHORT__              = new_Datatype( MPI_SHORT              )             # <<<<<<<<<<<<<<
100646  * cdef Datatype __INT__                = new_Datatype( MPI_INT                )
100647  * cdef Datatype __LONG__               = new_Datatype( MPI_LONG               )
100648  */
100649   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_SHORT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100650   __Pyx_GOTREF(__pyx_t_3);
100651   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__));
100652   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__));
100653   __Pyx_GIVEREF(__pyx_t_3);
100654   __pyx_v_6mpi4py_3MPI___SHORT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100655   __pyx_t_3 = 0;
100656 
100657   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":751
100658  * cdef Datatype __SIGNED_CHAR__        = new_Datatype( MPI_SIGNED_CHAR        )
100659  * cdef Datatype __SHORT__              = new_Datatype( MPI_SHORT              )
100660  * cdef Datatype __INT__                = new_Datatype( MPI_INT                )             # <<<<<<<<<<<<<<
100661  * cdef Datatype __LONG__               = new_Datatype( MPI_LONG               )
100662  * cdef Datatype __LONG_LONG__          = new_Datatype( MPI_LONG_LONG          )
100663  */
100664   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100665   __Pyx_GOTREF(__pyx_t_3);
100666   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT__));
100667   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT__));
100668   __Pyx_GIVEREF(__pyx_t_3);
100669   __pyx_v_6mpi4py_3MPI___INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100670   __pyx_t_3 = 0;
100671 
100672   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":752
100673  * cdef Datatype __SHORT__              = new_Datatype( MPI_SHORT              )
100674  * cdef Datatype __INT__                = new_Datatype( MPI_INT                )
100675  * cdef Datatype __LONG__               = new_Datatype( MPI_LONG               )             # <<<<<<<<<<<<<<
100676  * cdef Datatype __LONG_LONG__          = new_Datatype( MPI_LONG_LONG          )
100677  * cdef Datatype __UNSIGNED_CHAR__      = new_Datatype( MPI_UNSIGNED_CHAR      )
100678  */
100679   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LONG)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100680   __Pyx_GOTREF(__pyx_t_3);
100681   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__));
100682   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__));
100683   __Pyx_GIVEREF(__pyx_t_3);
100684   __pyx_v_6mpi4py_3MPI___LONG__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100685   __pyx_t_3 = 0;
100686 
100687   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":753
100688  * cdef Datatype __INT__                = new_Datatype( MPI_INT                )
100689  * cdef Datatype __LONG__               = new_Datatype( MPI_LONG               )
100690  * cdef Datatype __LONG_LONG__          = new_Datatype( MPI_LONG_LONG          )             # <<<<<<<<<<<<<<
100691  * cdef Datatype __UNSIGNED_CHAR__      = new_Datatype( MPI_UNSIGNED_CHAR      )
100692  * cdef Datatype __UNSIGNED_SHORT__     = new_Datatype( MPI_UNSIGNED_SHORT     )
100693  */
100694   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LONG_LONG)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100695   __Pyx_GOTREF(__pyx_t_3);
100696   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__));
100697   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__));
100698   __Pyx_GIVEREF(__pyx_t_3);
100699   __pyx_v_6mpi4py_3MPI___LONG_LONG__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100700   __pyx_t_3 = 0;
100701 
100702   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":754
100703  * cdef Datatype __LONG__               = new_Datatype( MPI_LONG               )
100704  * cdef Datatype __LONG_LONG__          = new_Datatype( MPI_LONG_LONG          )
100705  * cdef Datatype __UNSIGNED_CHAR__      = new_Datatype( MPI_UNSIGNED_CHAR      )             # <<<<<<<<<<<<<<
100706  * cdef Datatype __UNSIGNED_SHORT__     = new_Datatype( MPI_UNSIGNED_SHORT     )
100707  * cdef Datatype __UNSIGNED__           = new_Datatype( MPI_UNSIGNED           )
100708  */
100709   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UNSIGNED_CHAR)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100710   __Pyx_GOTREF(__pyx_t_3);
100711   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__));
100712   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__));
100713   __Pyx_GIVEREF(__pyx_t_3);
100714   __pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100715   __pyx_t_3 = 0;
100716 
100717   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":755
100718  * cdef Datatype __LONG_LONG__          = new_Datatype( MPI_LONG_LONG          )
100719  * cdef Datatype __UNSIGNED_CHAR__      = new_Datatype( MPI_UNSIGNED_CHAR      )
100720  * cdef Datatype __UNSIGNED_SHORT__     = new_Datatype( MPI_UNSIGNED_SHORT     )             # <<<<<<<<<<<<<<
100721  * cdef Datatype __UNSIGNED__           = new_Datatype( MPI_UNSIGNED           )
100722  * cdef Datatype __UNSIGNED_LONG__      = new_Datatype( MPI_UNSIGNED_LONG      )
100723  */
100724   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UNSIGNED_SHORT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100725   __Pyx_GOTREF(__pyx_t_3);
100726   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__));
100727   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__));
100728   __Pyx_GIVEREF(__pyx_t_3);
100729   __pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100730   __pyx_t_3 = 0;
100731 
100732   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":756
100733  * cdef Datatype __UNSIGNED_CHAR__      = new_Datatype( MPI_UNSIGNED_CHAR      )
100734  * cdef Datatype __UNSIGNED_SHORT__     = new_Datatype( MPI_UNSIGNED_SHORT     )
100735  * cdef Datatype __UNSIGNED__           = new_Datatype( MPI_UNSIGNED           )             # <<<<<<<<<<<<<<
100736  * cdef Datatype __UNSIGNED_LONG__      = new_Datatype( MPI_UNSIGNED_LONG      )
100737  * cdef Datatype __UNSIGNED_LONG_LONG__ = new_Datatype( MPI_UNSIGNED_LONG_LONG )
100738  */
100739   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UNSIGNED)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100740   __Pyx_GOTREF(__pyx_t_3);
100741   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__));
100742   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__));
100743   __Pyx_GIVEREF(__pyx_t_3);
100744   __pyx_v_6mpi4py_3MPI___UNSIGNED__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100745   __pyx_t_3 = 0;
100746 
100747   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":757
100748  * cdef Datatype __UNSIGNED_SHORT__     = new_Datatype( MPI_UNSIGNED_SHORT     )
100749  * cdef Datatype __UNSIGNED__           = new_Datatype( MPI_UNSIGNED           )
100750  * cdef Datatype __UNSIGNED_LONG__      = new_Datatype( MPI_UNSIGNED_LONG      )             # <<<<<<<<<<<<<<
100751  * cdef Datatype __UNSIGNED_LONG_LONG__ = new_Datatype( MPI_UNSIGNED_LONG_LONG )
100752  * cdef Datatype __FLOAT__              = new_Datatype( MPI_FLOAT              )
100753  */
100754   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UNSIGNED_LONG)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100755   __Pyx_GOTREF(__pyx_t_3);
100756   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__));
100757   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__));
100758   __Pyx_GIVEREF(__pyx_t_3);
100759   __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100760   __pyx_t_3 = 0;
100761 
100762   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":758
100763  * cdef Datatype __UNSIGNED__           = new_Datatype( MPI_UNSIGNED           )
100764  * cdef Datatype __UNSIGNED_LONG__      = new_Datatype( MPI_UNSIGNED_LONG      )
100765  * cdef Datatype __UNSIGNED_LONG_LONG__ = new_Datatype( MPI_UNSIGNED_LONG_LONG )             # <<<<<<<<<<<<<<
100766  * cdef Datatype __FLOAT__              = new_Datatype( MPI_FLOAT              )
100767  * cdef Datatype __DOUBLE__             = new_Datatype( MPI_DOUBLE             )
100768  */
100769   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UNSIGNED_LONG_LONG)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100770   __Pyx_GOTREF(__pyx_t_3);
100771   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__));
100772   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__));
100773   __Pyx_GIVEREF(__pyx_t_3);
100774   __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100775   __pyx_t_3 = 0;
100776 
100777   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":759
100778  * cdef Datatype __UNSIGNED_LONG__      = new_Datatype( MPI_UNSIGNED_LONG      )
100779  * cdef Datatype __UNSIGNED_LONG_LONG__ = new_Datatype( MPI_UNSIGNED_LONG_LONG )
100780  * cdef Datatype __FLOAT__              = new_Datatype( MPI_FLOAT              )             # <<<<<<<<<<<<<<
100781  * cdef Datatype __DOUBLE__             = new_Datatype( MPI_DOUBLE             )
100782  * cdef Datatype __LONG_DOUBLE__        = new_Datatype( MPI_LONG_DOUBLE        )
100783  */
100784   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_FLOAT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100785   __Pyx_GOTREF(__pyx_t_3);
100786   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__));
100787   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__));
100788   __Pyx_GIVEREF(__pyx_t_3);
100789   __pyx_v_6mpi4py_3MPI___FLOAT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100790   __pyx_t_3 = 0;
100791 
100792   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":760
100793  * cdef Datatype __UNSIGNED_LONG_LONG__ = new_Datatype( MPI_UNSIGNED_LONG_LONG )
100794  * cdef Datatype __FLOAT__              = new_Datatype( MPI_FLOAT              )
100795  * cdef Datatype __DOUBLE__             = new_Datatype( MPI_DOUBLE             )             # <<<<<<<<<<<<<<
100796  * cdef Datatype __LONG_DOUBLE__        = new_Datatype( MPI_LONG_DOUBLE        )
100797  *
100798  */
100799   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_DOUBLE)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100800   __Pyx_GOTREF(__pyx_t_3);
100801   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__));
100802   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__));
100803   __Pyx_GIVEREF(__pyx_t_3);
100804   __pyx_v_6mpi4py_3MPI___DOUBLE__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100805   __pyx_t_3 = 0;
100806 
100807   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":761
100808  * cdef Datatype __FLOAT__              = new_Datatype( MPI_FLOAT              )
100809  * cdef Datatype __DOUBLE__             = new_Datatype( MPI_DOUBLE             )
100810  * cdef Datatype __LONG_DOUBLE__        = new_Datatype( MPI_LONG_DOUBLE        )             # <<<<<<<<<<<<<<
100811  *
100812  * cdef Datatype __C_BOOL__                = new_Datatype( MPI_C_BOOL           )
100813  */
100814   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LONG_DOUBLE)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100815   __Pyx_GOTREF(__pyx_t_3);
100816   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__));
100817   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__));
100818   __Pyx_GIVEREF(__pyx_t_3);
100819   __pyx_v_6mpi4py_3MPI___LONG_DOUBLE__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100820   __pyx_t_3 = 0;
100821 
100822   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":763
100823  * cdef Datatype __LONG_DOUBLE__        = new_Datatype( MPI_LONG_DOUBLE        )
100824  *
100825  * cdef Datatype __C_BOOL__                = new_Datatype( MPI_C_BOOL           )             # <<<<<<<<<<<<<<
100826  * cdef Datatype __INT8_T__                = new_Datatype( MPI_INT8_T           )
100827  * cdef Datatype __INT16_T__               = new_Datatype( MPI_INT16_T          )
100828  */
100829   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_C_BOOL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100830   __Pyx_GOTREF(__pyx_t_3);
100831   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__));
100832   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__));
100833   __Pyx_GIVEREF(__pyx_t_3);
100834   __pyx_v_6mpi4py_3MPI___C_BOOL__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100835   __pyx_t_3 = 0;
100836 
100837   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":764
100838  *
100839  * cdef Datatype __C_BOOL__                = new_Datatype( MPI_C_BOOL           )
100840  * cdef Datatype __INT8_T__                = new_Datatype( MPI_INT8_T           )             # <<<<<<<<<<<<<<
100841  * cdef Datatype __INT16_T__               = new_Datatype( MPI_INT16_T          )
100842  * cdef Datatype __INT32_T__               = new_Datatype( MPI_INT32_T          )
100843  */
100844   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INT8_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100845   __Pyx_GOTREF(__pyx_t_3);
100846   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__));
100847   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__));
100848   __Pyx_GIVEREF(__pyx_t_3);
100849   __pyx_v_6mpi4py_3MPI___INT8_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100850   __pyx_t_3 = 0;
100851 
100852   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":765
100853  * cdef Datatype __C_BOOL__                = new_Datatype( MPI_C_BOOL           )
100854  * cdef Datatype __INT8_T__                = new_Datatype( MPI_INT8_T           )
100855  * cdef Datatype __INT16_T__               = new_Datatype( MPI_INT16_T          )             # <<<<<<<<<<<<<<
100856  * cdef Datatype __INT32_T__               = new_Datatype( MPI_INT32_T          )
100857  * cdef Datatype __INT64_T__               = new_Datatype( MPI_INT64_T          )
100858  */
100859   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INT16_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100860   __Pyx_GOTREF(__pyx_t_3);
100861   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__));
100862   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__));
100863   __Pyx_GIVEREF(__pyx_t_3);
100864   __pyx_v_6mpi4py_3MPI___INT16_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100865   __pyx_t_3 = 0;
100866 
100867   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":766
100868  * cdef Datatype __INT8_T__                = new_Datatype( MPI_INT8_T           )
100869  * cdef Datatype __INT16_T__               = new_Datatype( MPI_INT16_T          )
100870  * cdef Datatype __INT32_T__               = new_Datatype( MPI_INT32_T          )             # <<<<<<<<<<<<<<
100871  * cdef Datatype __INT64_T__               = new_Datatype( MPI_INT64_T          )
100872  * cdef Datatype __UINT8_T__               = new_Datatype( MPI_UINT8_T          )
100873  */
100874   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INT32_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100875   __Pyx_GOTREF(__pyx_t_3);
100876   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__));
100877   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__));
100878   __Pyx_GIVEREF(__pyx_t_3);
100879   __pyx_v_6mpi4py_3MPI___INT32_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100880   __pyx_t_3 = 0;
100881 
100882   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":767
100883  * cdef Datatype __INT16_T__               = new_Datatype( MPI_INT16_T          )
100884  * cdef Datatype __INT32_T__               = new_Datatype( MPI_INT32_T          )
100885  * cdef Datatype __INT64_T__               = new_Datatype( MPI_INT64_T          )             # <<<<<<<<<<<<<<
100886  * cdef Datatype __UINT8_T__               = new_Datatype( MPI_UINT8_T          )
100887  * cdef Datatype __UINT16_T__              = new_Datatype( MPI_UINT16_T         )
100888  */
100889   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INT64_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100890   __Pyx_GOTREF(__pyx_t_3);
100891   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__));
100892   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__));
100893   __Pyx_GIVEREF(__pyx_t_3);
100894   __pyx_v_6mpi4py_3MPI___INT64_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100895   __pyx_t_3 = 0;
100896 
100897   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":768
100898  * cdef Datatype __INT32_T__               = new_Datatype( MPI_INT32_T          )
100899  * cdef Datatype __INT64_T__               = new_Datatype( MPI_INT64_T          )
100900  * cdef Datatype __UINT8_T__               = new_Datatype( MPI_UINT8_T          )             # <<<<<<<<<<<<<<
100901  * cdef Datatype __UINT16_T__              = new_Datatype( MPI_UINT16_T         )
100902  * cdef Datatype __UINT32_T__              = new_Datatype( MPI_UINT32_T         )
100903  */
100904   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UINT8_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100905   __Pyx_GOTREF(__pyx_t_3);
100906   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT8_T__));
100907   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT8_T__));
100908   __Pyx_GIVEREF(__pyx_t_3);
100909   __pyx_v_6mpi4py_3MPI___UINT8_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100910   __pyx_t_3 = 0;
100911 
100912   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":769
100913  * cdef Datatype __INT64_T__               = new_Datatype( MPI_INT64_T          )
100914  * cdef Datatype __UINT8_T__               = new_Datatype( MPI_UINT8_T          )
100915  * cdef Datatype __UINT16_T__              = new_Datatype( MPI_UINT16_T         )             # <<<<<<<<<<<<<<
100916  * cdef Datatype __UINT32_T__              = new_Datatype( MPI_UINT32_T         )
100917  * cdef Datatype __UINT64_T__              = new_Datatype( MPI_UINT64_T         )
100918  */
100919   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UINT16_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100920   __Pyx_GOTREF(__pyx_t_3);
100921   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT16_T__));
100922   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT16_T__));
100923   __Pyx_GIVEREF(__pyx_t_3);
100924   __pyx_v_6mpi4py_3MPI___UINT16_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100925   __pyx_t_3 = 0;
100926 
100927   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":770
100928  * cdef Datatype __UINT8_T__               = new_Datatype( MPI_UINT8_T          )
100929  * cdef Datatype __UINT16_T__              = new_Datatype( MPI_UINT16_T         )
100930  * cdef Datatype __UINT32_T__              = new_Datatype( MPI_UINT32_T         )             # <<<<<<<<<<<<<<
100931  * cdef Datatype __UINT64_T__              = new_Datatype( MPI_UINT64_T         )
100932  * cdef Datatype __C_COMPLEX__             = new_Datatype( MPI_C_COMPLEX        )
100933  */
100934   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UINT32_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100935   __Pyx_GOTREF(__pyx_t_3);
100936   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT32_T__));
100937   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT32_T__));
100938   __Pyx_GIVEREF(__pyx_t_3);
100939   __pyx_v_6mpi4py_3MPI___UINT32_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100940   __pyx_t_3 = 0;
100941 
100942   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":771
100943  * cdef Datatype __UINT16_T__              = new_Datatype( MPI_UINT16_T         )
100944  * cdef Datatype __UINT32_T__              = new_Datatype( MPI_UINT32_T         )
100945  * cdef Datatype __UINT64_T__              = new_Datatype( MPI_UINT64_T         )             # <<<<<<<<<<<<<<
100946  * cdef Datatype __C_COMPLEX__             = new_Datatype( MPI_C_COMPLEX        )
100947  * cdef Datatype __C_FLOAT_COMPLEX__       = new_Datatype( MPI_C_FLOAT_COMPLEX  )
100948  */
100949   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_UINT64_T)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100950   __Pyx_GOTREF(__pyx_t_3);
100951   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT64_T__));
100952   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___UINT64_T__));
100953   __Pyx_GIVEREF(__pyx_t_3);
100954   __pyx_v_6mpi4py_3MPI___UINT64_T__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100955   __pyx_t_3 = 0;
100956 
100957   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":772
100958  * cdef Datatype __UINT32_T__              = new_Datatype( MPI_UINT32_T         )
100959  * cdef Datatype __UINT64_T__              = new_Datatype( MPI_UINT64_T         )
100960  * cdef Datatype __C_COMPLEX__             = new_Datatype( MPI_C_COMPLEX        )             # <<<<<<<<<<<<<<
100961  * cdef Datatype __C_FLOAT_COMPLEX__       = new_Datatype( MPI_C_FLOAT_COMPLEX  )
100962  * cdef Datatype __C_DOUBLE_COMPLEX__      = new_Datatype( MPI_C_DOUBLE_COMPLEX )
100963  */
100964   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_C_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100965   __Pyx_GOTREF(__pyx_t_3);
100966   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_COMPLEX__));
100967   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_COMPLEX__));
100968   __Pyx_GIVEREF(__pyx_t_3);
100969   __pyx_v_6mpi4py_3MPI___C_COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100970   __pyx_t_3 = 0;
100971 
100972   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":773
100973  * cdef Datatype __UINT64_T__              = new_Datatype( MPI_UINT64_T         )
100974  * cdef Datatype __C_COMPLEX__             = new_Datatype( MPI_C_COMPLEX        )
100975  * cdef Datatype __C_FLOAT_COMPLEX__       = new_Datatype( MPI_C_FLOAT_COMPLEX  )             # <<<<<<<<<<<<<<
100976  * cdef Datatype __C_DOUBLE_COMPLEX__      = new_Datatype( MPI_C_DOUBLE_COMPLEX )
100977  * cdef Datatype __C_LONG_DOUBLE_COMPLEX__ = new_Datatype(
100978  */
100979   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_C_FLOAT_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100980   __Pyx_GOTREF(__pyx_t_3);
100981   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__));
100982   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__));
100983   __Pyx_GIVEREF(__pyx_t_3);
100984   __pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
100985   __pyx_t_3 = 0;
100986 
100987   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":774
100988  * cdef Datatype __C_COMPLEX__             = new_Datatype( MPI_C_COMPLEX        )
100989  * cdef Datatype __C_FLOAT_COMPLEX__       = new_Datatype( MPI_C_FLOAT_COMPLEX  )
100990  * cdef Datatype __C_DOUBLE_COMPLEX__      = new_Datatype( MPI_C_DOUBLE_COMPLEX )             # <<<<<<<<<<<<<<
100991  * cdef Datatype __C_LONG_DOUBLE_COMPLEX__ = new_Datatype(
100992  *                                               MPI_C_LONG_DOUBLE_COMPLEX      )
100993  */
100994   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_C_DOUBLE_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
100995   __Pyx_GOTREF(__pyx_t_3);
100996   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__));
100997   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__));
100998   __Pyx_GIVEREF(__pyx_t_3);
100999   __pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101000   __pyx_t_3 = 0;
101001 
101002   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":776
101003  * cdef Datatype __C_DOUBLE_COMPLEX__      = new_Datatype( MPI_C_DOUBLE_COMPLEX )
101004  * cdef Datatype __C_LONG_DOUBLE_COMPLEX__ = new_Datatype(
101005  *                                               MPI_C_LONG_DOUBLE_COMPLEX      )             # <<<<<<<<<<<<<<
101006  *
101007  * cdef Datatype __SHORT_INT__        = new_Datatype( MPI_SHORT_INT       )
101008  */
101009   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_C_LONG_DOUBLE_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101010   __Pyx_GOTREF(__pyx_t_3);
101011   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__));
101012   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__));
101013   __Pyx_GIVEREF(__pyx_t_3);
101014   __pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101015   __pyx_t_3 = 0;
101016 
101017   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":778
101018  *                                               MPI_C_LONG_DOUBLE_COMPLEX      )
101019  *
101020  * cdef Datatype __SHORT_INT__        = new_Datatype( MPI_SHORT_INT       )             # <<<<<<<<<<<<<<
101021  * cdef Datatype __TWOINT__           = new_Datatype( MPI_2INT            )
101022  * cdef Datatype __LONG_INT__         = new_Datatype( MPI_LONG_INT        )
101023  */
101024   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_SHORT_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101025   __Pyx_GOTREF(__pyx_t_3);
101026   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT_INT__));
101027   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT_INT__));
101028   __Pyx_GIVEREF(__pyx_t_3);
101029   __pyx_v_6mpi4py_3MPI___SHORT_INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101030   __pyx_t_3 = 0;
101031 
101032   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":779
101033  *
101034  * cdef Datatype __SHORT_INT__        = new_Datatype( MPI_SHORT_INT       )
101035  * cdef Datatype __TWOINT__           = new_Datatype( MPI_2INT            )             # <<<<<<<<<<<<<<
101036  * cdef Datatype __LONG_INT__         = new_Datatype( MPI_LONG_INT        )
101037  * cdef Datatype __FLOAT_INT__        = new_Datatype( MPI_FLOAT_INT       )
101038  */
101039   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_2INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101040   __Pyx_GOTREF(__pyx_t_3);
101041   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___TWOINT__));
101042   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___TWOINT__));
101043   __Pyx_GIVEREF(__pyx_t_3);
101044   __pyx_v_6mpi4py_3MPI___TWOINT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101045   __pyx_t_3 = 0;
101046 
101047   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":780
101048  * cdef Datatype __SHORT_INT__        = new_Datatype( MPI_SHORT_INT       )
101049  * cdef Datatype __TWOINT__           = new_Datatype( MPI_2INT            )
101050  * cdef Datatype __LONG_INT__         = new_Datatype( MPI_LONG_INT        )             # <<<<<<<<<<<<<<
101051  * cdef Datatype __FLOAT_INT__        = new_Datatype( MPI_FLOAT_INT       )
101052  * cdef Datatype __DOUBLE_INT__       = new_Datatype( MPI_DOUBLE_INT      )
101053  */
101054   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LONG_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101055   __Pyx_GOTREF(__pyx_t_3);
101056   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_INT__));
101057   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_INT__));
101058   __Pyx_GIVEREF(__pyx_t_3);
101059   __pyx_v_6mpi4py_3MPI___LONG_INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101060   __pyx_t_3 = 0;
101061 
101062   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":781
101063  * cdef Datatype __TWOINT__           = new_Datatype( MPI_2INT            )
101064  * cdef Datatype __LONG_INT__         = new_Datatype( MPI_LONG_INT        )
101065  * cdef Datatype __FLOAT_INT__        = new_Datatype( MPI_FLOAT_INT       )             # <<<<<<<<<<<<<<
101066  * cdef Datatype __DOUBLE_INT__       = new_Datatype( MPI_DOUBLE_INT      )
101067  * cdef Datatype __LONG_DOUBLE_INT__  = new_Datatype( MPI_LONG_DOUBLE_INT )
101068  */
101069   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_FLOAT_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101070   __Pyx_GOTREF(__pyx_t_3);
101071   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT_INT__));
101072   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT_INT__));
101073   __Pyx_GIVEREF(__pyx_t_3);
101074   __pyx_v_6mpi4py_3MPI___FLOAT_INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101075   __pyx_t_3 = 0;
101076 
101077   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":782
101078  * cdef Datatype __LONG_INT__         = new_Datatype( MPI_LONG_INT        )
101079  * cdef Datatype __FLOAT_INT__        = new_Datatype( MPI_FLOAT_INT       )
101080  * cdef Datatype __DOUBLE_INT__       = new_Datatype( MPI_DOUBLE_INT      )             # <<<<<<<<<<<<<<
101081  * cdef Datatype __LONG_DOUBLE_INT__  = new_Datatype( MPI_LONG_DOUBLE_INT )
101082  *
101083  */
101084   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_DOUBLE_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101085   __Pyx_GOTREF(__pyx_t_3);
101086   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_INT__));
101087   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_INT__));
101088   __Pyx_GIVEREF(__pyx_t_3);
101089   __pyx_v_6mpi4py_3MPI___DOUBLE_INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101090   __pyx_t_3 = 0;
101091 
101092   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":783
101093  * cdef Datatype __FLOAT_INT__        = new_Datatype( MPI_FLOAT_INT       )
101094  * cdef Datatype __DOUBLE_INT__       = new_Datatype( MPI_DOUBLE_INT      )
101095  * cdef Datatype __LONG_DOUBLE_INT__  = new_Datatype( MPI_LONG_DOUBLE_INT )             # <<<<<<<<<<<<<<
101096  *
101097  * cdef Datatype __CHARACTER__        = new_Datatype( MPI_CHARACTER        )
101098  */
101099   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LONG_DOUBLE_INT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101100   __Pyx_GOTREF(__pyx_t_3);
101101   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__));
101102   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__));
101103   __Pyx_GIVEREF(__pyx_t_3);
101104   __pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101105   __pyx_t_3 = 0;
101106 
101107   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":785
101108  * cdef Datatype __LONG_DOUBLE_INT__  = new_Datatype( MPI_LONG_DOUBLE_INT )
101109  *
101110  * cdef Datatype __CHARACTER__        = new_Datatype( MPI_CHARACTER        )             # <<<<<<<<<<<<<<
101111  * cdef Datatype __LOGICAL__          = new_Datatype( MPI_LOGICAL          )
101112  * cdef Datatype __INTEGER__          = new_Datatype( MPI_INTEGER          )
101113  */
101114   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_CHARACTER)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101115   __Pyx_GOTREF(__pyx_t_3);
101116   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___CHARACTER__));
101117   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___CHARACTER__));
101118   __Pyx_GIVEREF(__pyx_t_3);
101119   __pyx_v_6mpi4py_3MPI___CHARACTER__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101120   __pyx_t_3 = 0;
101121 
101122   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":786
101123  *
101124  * cdef Datatype __CHARACTER__        = new_Datatype( MPI_CHARACTER        )
101125  * cdef Datatype __LOGICAL__          = new_Datatype( MPI_LOGICAL          )             # <<<<<<<<<<<<<<
101126  * cdef Datatype __INTEGER__          = new_Datatype( MPI_INTEGER          )
101127  * cdef Datatype __REAL__             = new_Datatype( MPI_REAL             )
101128  */
101129   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LOGICAL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101130   __Pyx_GOTREF(__pyx_t_3);
101131   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__));
101132   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__));
101133   __Pyx_GIVEREF(__pyx_t_3);
101134   __pyx_v_6mpi4py_3MPI___LOGICAL__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101135   __pyx_t_3 = 0;
101136 
101137   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":787
101138  * cdef Datatype __CHARACTER__        = new_Datatype( MPI_CHARACTER        )
101139  * cdef Datatype __LOGICAL__          = new_Datatype( MPI_LOGICAL          )
101140  * cdef Datatype __INTEGER__          = new_Datatype( MPI_INTEGER          )             # <<<<<<<<<<<<<<
101141  * cdef Datatype __REAL__             = new_Datatype( MPI_REAL             )
101142  * cdef Datatype __DOUBLE_PRECISION__ = new_Datatype( MPI_DOUBLE_PRECISION )
101143  */
101144   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101145   __Pyx_GOTREF(__pyx_t_3);
101146   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__));
101147   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__));
101148   __Pyx_GIVEREF(__pyx_t_3);
101149   __pyx_v_6mpi4py_3MPI___INTEGER__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101150   __pyx_t_3 = 0;
101151 
101152   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":788
101153  * cdef Datatype __LOGICAL__          = new_Datatype( MPI_LOGICAL          )
101154  * cdef Datatype __INTEGER__          = new_Datatype( MPI_INTEGER          )
101155  * cdef Datatype __REAL__             = new_Datatype( MPI_REAL             )             # <<<<<<<<<<<<<<
101156  * cdef Datatype __DOUBLE_PRECISION__ = new_Datatype( MPI_DOUBLE_PRECISION )
101157  * cdef Datatype __COMPLEX__          = new_Datatype( MPI_COMPLEX          )
101158  */
101159   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_REAL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101160   __Pyx_GOTREF(__pyx_t_3);
101161   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__));
101162   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__));
101163   __Pyx_GIVEREF(__pyx_t_3);
101164   __pyx_v_6mpi4py_3MPI___REAL__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101165   __pyx_t_3 = 0;
101166 
101167   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":789
101168  * cdef Datatype __INTEGER__          = new_Datatype( MPI_INTEGER          )
101169  * cdef Datatype __REAL__             = new_Datatype( MPI_REAL             )
101170  * cdef Datatype __DOUBLE_PRECISION__ = new_Datatype( MPI_DOUBLE_PRECISION )             # <<<<<<<<<<<<<<
101171  * cdef Datatype __COMPLEX__          = new_Datatype( MPI_COMPLEX          )
101172  * cdef Datatype __DOUBLE_COMPLEX__   = new_Datatype( MPI_DOUBLE_COMPLEX   )
101173  */
101174   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_DOUBLE_PRECISION)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101175   __Pyx_GOTREF(__pyx_t_3);
101176   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__));
101177   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__));
101178   __Pyx_GIVEREF(__pyx_t_3);
101179   __pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101180   __pyx_t_3 = 0;
101181 
101182   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":790
101183  * cdef Datatype __REAL__             = new_Datatype( MPI_REAL             )
101184  * cdef Datatype __DOUBLE_PRECISION__ = new_Datatype( MPI_DOUBLE_PRECISION )
101185  * cdef Datatype __COMPLEX__          = new_Datatype( MPI_COMPLEX          )             # <<<<<<<<<<<<<<
101186  * cdef Datatype __DOUBLE_COMPLEX__   = new_Datatype( MPI_DOUBLE_COMPLEX   )
101187  *
101188  */
101189   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101190   __Pyx_GOTREF(__pyx_t_3);
101191   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__));
101192   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__));
101193   __Pyx_GIVEREF(__pyx_t_3);
101194   __pyx_v_6mpi4py_3MPI___COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101195   __pyx_t_3 = 0;
101196 
101197   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":791
101198  * cdef Datatype __DOUBLE_PRECISION__ = new_Datatype( MPI_DOUBLE_PRECISION )
101199  * cdef Datatype __COMPLEX__          = new_Datatype( MPI_COMPLEX          )
101200  * cdef Datatype __DOUBLE_COMPLEX__   = new_Datatype( MPI_DOUBLE_COMPLEX   )             # <<<<<<<<<<<<<<
101201  *
101202  * cdef Datatype __LOGICAL1__  = new_Datatype( MPI_LOGICAL1  )
101203  */
101204   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_DOUBLE_COMPLEX)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101205   __Pyx_GOTREF(__pyx_t_3);
101206   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__));
101207   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__));
101208   __Pyx_GIVEREF(__pyx_t_3);
101209   __pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101210   __pyx_t_3 = 0;
101211 
101212   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":793
101213  * cdef Datatype __DOUBLE_COMPLEX__   = new_Datatype( MPI_DOUBLE_COMPLEX   )
101214  *
101215  * cdef Datatype __LOGICAL1__  = new_Datatype( MPI_LOGICAL1  )             # <<<<<<<<<<<<<<
101216  * cdef Datatype __LOGICAL2__  = new_Datatype( MPI_LOGICAL2  )
101217  * cdef Datatype __LOGICAL4__  = new_Datatype( MPI_LOGICAL4  )
101218  */
101219   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LOGICAL1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101220   __Pyx_GOTREF(__pyx_t_3);
101221   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL1__));
101222   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL1__));
101223   __Pyx_GIVEREF(__pyx_t_3);
101224   __pyx_v_6mpi4py_3MPI___LOGICAL1__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101225   __pyx_t_3 = 0;
101226 
101227   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":794
101228  *
101229  * cdef Datatype __LOGICAL1__  = new_Datatype( MPI_LOGICAL1  )
101230  * cdef Datatype __LOGICAL2__  = new_Datatype( MPI_LOGICAL2  )             # <<<<<<<<<<<<<<
101231  * cdef Datatype __LOGICAL4__  = new_Datatype( MPI_LOGICAL4  )
101232  * cdef Datatype __LOGICAL8__  = new_Datatype( MPI_LOGICAL8  )
101233  */
101234   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LOGICAL2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101235   __Pyx_GOTREF(__pyx_t_3);
101236   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL2__));
101237   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL2__));
101238   __Pyx_GIVEREF(__pyx_t_3);
101239   __pyx_v_6mpi4py_3MPI___LOGICAL2__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101240   __pyx_t_3 = 0;
101241 
101242   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":795
101243  * cdef Datatype __LOGICAL1__  = new_Datatype( MPI_LOGICAL1  )
101244  * cdef Datatype __LOGICAL2__  = new_Datatype( MPI_LOGICAL2  )
101245  * cdef Datatype __LOGICAL4__  = new_Datatype( MPI_LOGICAL4  )             # <<<<<<<<<<<<<<
101246  * cdef Datatype __LOGICAL8__  = new_Datatype( MPI_LOGICAL8  )
101247  * cdef Datatype __INTEGER1__  = new_Datatype( MPI_INTEGER1  )
101248  */
101249   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LOGICAL4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101250   __Pyx_GOTREF(__pyx_t_3);
101251   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL4__));
101252   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL4__));
101253   __Pyx_GIVEREF(__pyx_t_3);
101254   __pyx_v_6mpi4py_3MPI___LOGICAL4__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101255   __pyx_t_3 = 0;
101256 
101257   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":796
101258  * cdef Datatype __LOGICAL2__  = new_Datatype( MPI_LOGICAL2  )
101259  * cdef Datatype __LOGICAL4__  = new_Datatype( MPI_LOGICAL4  )
101260  * cdef Datatype __LOGICAL8__  = new_Datatype( MPI_LOGICAL8  )             # <<<<<<<<<<<<<<
101261  * cdef Datatype __INTEGER1__  = new_Datatype( MPI_INTEGER1  )
101262  * cdef Datatype __INTEGER2__  = new_Datatype( MPI_INTEGER2  )
101263  */
101264   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_LOGICAL8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101265   __Pyx_GOTREF(__pyx_t_3);
101266   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL8__));
101267   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL8__));
101268   __Pyx_GIVEREF(__pyx_t_3);
101269   __pyx_v_6mpi4py_3MPI___LOGICAL8__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101270   __pyx_t_3 = 0;
101271 
101272   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":797
101273  * cdef Datatype __LOGICAL4__  = new_Datatype( MPI_LOGICAL4  )
101274  * cdef Datatype __LOGICAL8__  = new_Datatype( MPI_LOGICAL8  )
101275  * cdef Datatype __INTEGER1__  = new_Datatype( MPI_INTEGER1  )             # <<<<<<<<<<<<<<
101276  * cdef Datatype __INTEGER2__  = new_Datatype( MPI_INTEGER2  )
101277  * cdef Datatype __INTEGER4__  = new_Datatype( MPI_INTEGER4  )
101278  */
101279   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101280   __Pyx_GOTREF(__pyx_t_3);
101281   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER1__));
101282   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER1__));
101283   __Pyx_GIVEREF(__pyx_t_3);
101284   __pyx_v_6mpi4py_3MPI___INTEGER1__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101285   __pyx_t_3 = 0;
101286 
101287   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":798
101288  * cdef Datatype __LOGICAL8__  = new_Datatype( MPI_LOGICAL8  )
101289  * cdef Datatype __INTEGER1__  = new_Datatype( MPI_INTEGER1  )
101290  * cdef Datatype __INTEGER2__  = new_Datatype( MPI_INTEGER2  )             # <<<<<<<<<<<<<<
101291  * cdef Datatype __INTEGER4__  = new_Datatype( MPI_INTEGER4  )
101292  * cdef Datatype __INTEGER8__  = new_Datatype( MPI_INTEGER8  )
101293  */
101294   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101295   __Pyx_GOTREF(__pyx_t_3);
101296   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER2__));
101297   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER2__));
101298   __Pyx_GIVEREF(__pyx_t_3);
101299   __pyx_v_6mpi4py_3MPI___INTEGER2__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101300   __pyx_t_3 = 0;
101301 
101302   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":799
101303  * cdef Datatype __INTEGER1__  = new_Datatype( MPI_INTEGER1  )
101304  * cdef Datatype __INTEGER2__  = new_Datatype( MPI_INTEGER2  )
101305  * cdef Datatype __INTEGER4__  = new_Datatype( MPI_INTEGER4  )             # <<<<<<<<<<<<<<
101306  * cdef Datatype __INTEGER8__  = new_Datatype( MPI_INTEGER8  )
101307  * cdef Datatype __INTEGER16__ = new_Datatype( MPI_INTEGER16 )
101308  */
101309   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101310   __Pyx_GOTREF(__pyx_t_3);
101311   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER4__));
101312   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER4__));
101313   __Pyx_GIVEREF(__pyx_t_3);
101314   __pyx_v_6mpi4py_3MPI___INTEGER4__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101315   __pyx_t_3 = 0;
101316 
101317   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":800
101318  * cdef Datatype __INTEGER2__  = new_Datatype( MPI_INTEGER2  )
101319  * cdef Datatype __INTEGER4__  = new_Datatype( MPI_INTEGER4  )
101320  * cdef Datatype __INTEGER8__  = new_Datatype( MPI_INTEGER8  )             # <<<<<<<<<<<<<<
101321  * cdef Datatype __INTEGER16__ = new_Datatype( MPI_INTEGER16 )
101322  * cdef Datatype __REAL2__     = new_Datatype( MPI_REAL2     )
101323  */
101324   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101325   __Pyx_GOTREF(__pyx_t_3);
101326   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER8__));
101327   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER8__));
101328   __Pyx_GIVEREF(__pyx_t_3);
101329   __pyx_v_6mpi4py_3MPI___INTEGER8__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101330   __pyx_t_3 = 0;
101331 
101332   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":801
101333  * cdef Datatype __INTEGER4__  = new_Datatype( MPI_INTEGER4  )
101334  * cdef Datatype __INTEGER8__  = new_Datatype( MPI_INTEGER8  )
101335  * cdef Datatype __INTEGER16__ = new_Datatype( MPI_INTEGER16 )             # <<<<<<<<<<<<<<
101336  * cdef Datatype __REAL2__     = new_Datatype( MPI_REAL2     )
101337  * cdef Datatype __REAL4__     = new_Datatype( MPI_REAL4     )
101338  */
101339   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_INTEGER16)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101340   __Pyx_GOTREF(__pyx_t_3);
101341   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER16__));
101342   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER16__));
101343   __Pyx_GIVEREF(__pyx_t_3);
101344   __pyx_v_6mpi4py_3MPI___INTEGER16__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101345   __pyx_t_3 = 0;
101346 
101347   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":802
101348  * cdef Datatype __INTEGER8__  = new_Datatype( MPI_INTEGER8  )
101349  * cdef Datatype __INTEGER16__ = new_Datatype( MPI_INTEGER16 )
101350  * cdef Datatype __REAL2__     = new_Datatype( MPI_REAL2     )             # <<<<<<<<<<<<<<
101351  * cdef Datatype __REAL4__     = new_Datatype( MPI_REAL4     )
101352  * cdef Datatype __REAL8__     = new_Datatype( MPI_REAL8     )
101353  */
101354   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_REAL2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101355   __Pyx_GOTREF(__pyx_t_3);
101356   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL2__));
101357   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL2__));
101358   __Pyx_GIVEREF(__pyx_t_3);
101359   __pyx_v_6mpi4py_3MPI___REAL2__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101360   __pyx_t_3 = 0;
101361 
101362   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":803
101363  * cdef Datatype __INTEGER16__ = new_Datatype( MPI_INTEGER16 )
101364  * cdef Datatype __REAL2__     = new_Datatype( MPI_REAL2     )
101365  * cdef Datatype __REAL4__     = new_Datatype( MPI_REAL4     )             # <<<<<<<<<<<<<<
101366  * cdef Datatype __REAL8__     = new_Datatype( MPI_REAL8     )
101367  * cdef Datatype __REAL16__    = new_Datatype( MPI_REAL16    )
101368  */
101369   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_REAL4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101370   __Pyx_GOTREF(__pyx_t_3);
101371   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL4__));
101372   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL4__));
101373   __Pyx_GIVEREF(__pyx_t_3);
101374   __pyx_v_6mpi4py_3MPI___REAL4__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101375   __pyx_t_3 = 0;
101376 
101377   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":804
101378  * cdef Datatype __REAL2__     = new_Datatype( MPI_REAL2     )
101379  * cdef Datatype __REAL4__     = new_Datatype( MPI_REAL4     )
101380  * cdef Datatype __REAL8__     = new_Datatype( MPI_REAL8     )             # <<<<<<<<<<<<<<
101381  * cdef Datatype __REAL16__    = new_Datatype( MPI_REAL16    )
101382  * cdef Datatype __COMPLEX4__  = new_Datatype( MPI_COMPLEX4  )
101383  */
101384   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_REAL8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101385   __Pyx_GOTREF(__pyx_t_3);
101386   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL8__));
101387   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL8__));
101388   __Pyx_GIVEREF(__pyx_t_3);
101389   __pyx_v_6mpi4py_3MPI___REAL8__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101390   __pyx_t_3 = 0;
101391 
101392   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":805
101393  * cdef Datatype __REAL4__     = new_Datatype( MPI_REAL4     )
101394  * cdef Datatype __REAL8__     = new_Datatype( MPI_REAL8     )
101395  * cdef Datatype __REAL16__    = new_Datatype( MPI_REAL16    )             # <<<<<<<<<<<<<<
101396  * cdef Datatype __COMPLEX4__  = new_Datatype( MPI_COMPLEX4  )
101397  * cdef Datatype __COMPLEX8__  = new_Datatype( MPI_COMPLEX8  )
101398  */
101399   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_REAL16)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101400   __Pyx_GOTREF(__pyx_t_3);
101401   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL16__));
101402   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REAL16__));
101403   __Pyx_GIVEREF(__pyx_t_3);
101404   __pyx_v_6mpi4py_3MPI___REAL16__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101405   __pyx_t_3 = 0;
101406 
101407   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":806
101408  * cdef Datatype __REAL8__     = new_Datatype( MPI_REAL8     )
101409  * cdef Datatype __REAL16__    = new_Datatype( MPI_REAL16    )
101410  * cdef Datatype __COMPLEX4__  = new_Datatype( MPI_COMPLEX4  )             # <<<<<<<<<<<<<<
101411  * cdef Datatype __COMPLEX8__  = new_Datatype( MPI_COMPLEX8  )
101412  * cdef Datatype __COMPLEX16__ = new_Datatype( MPI_COMPLEX16 )
101413  */
101414   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_COMPLEX4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101415   __Pyx_GOTREF(__pyx_t_3);
101416   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX4__));
101417   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX4__));
101418   __Pyx_GIVEREF(__pyx_t_3);
101419   __pyx_v_6mpi4py_3MPI___COMPLEX4__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101420   __pyx_t_3 = 0;
101421 
101422   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":807
101423  * cdef Datatype __REAL16__    = new_Datatype( MPI_REAL16    )
101424  * cdef Datatype __COMPLEX4__  = new_Datatype( MPI_COMPLEX4  )
101425  * cdef Datatype __COMPLEX8__  = new_Datatype( MPI_COMPLEX8  )             # <<<<<<<<<<<<<<
101426  * cdef Datatype __COMPLEX16__ = new_Datatype( MPI_COMPLEX16 )
101427  * cdef Datatype __COMPLEX32__ = new_Datatype( MPI_COMPLEX32 )
101428  */
101429   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_COMPLEX8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101430   __Pyx_GOTREF(__pyx_t_3);
101431   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__));
101432   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__));
101433   __Pyx_GIVEREF(__pyx_t_3);
101434   __pyx_v_6mpi4py_3MPI___COMPLEX8__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101435   __pyx_t_3 = 0;
101436 
101437   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":808
101438  * cdef Datatype __COMPLEX4__  = new_Datatype( MPI_COMPLEX4  )
101439  * cdef Datatype __COMPLEX8__  = new_Datatype( MPI_COMPLEX8  )
101440  * cdef Datatype __COMPLEX16__ = new_Datatype( MPI_COMPLEX16 )             # <<<<<<<<<<<<<<
101441  * cdef Datatype __COMPLEX32__ = new_Datatype( MPI_COMPLEX32 )
101442  *
101443  */
101444   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_COMPLEX16)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101445   __Pyx_GOTREF(__pyx_t_3);
101446   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__));
101447   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__));
101448   __Pyx_GIVEREF(__pyx_t_3);
101449   __pyx_v_6mpi4py_3MPI___COMPLEX16__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101450   __pyx_t_3 = 0;
101451 
101452   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":809
101453  * cdef Datatype __COMPLEX8__  = new_Datatype( MPI_COMPLEX8  )
101454  * cdef Datatype __COMPLEX16__ = new_Datatype( MPI_COMPLEX16 )
101455  * cdef Datatype __COMPLEX32__ = new_Datatype( MPI_COMPLEX32 )             # <<<<<<<<<<<<<<
101456  *
101457  * include "typemap.pxi"
101458  */
101459   __pyx_t_3 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Datatype(MPI_COMPLEX32)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101460   __Pyx_GOTREF(__pyx_t_3);
101461   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX32__));
101462   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX32__));
101463   __Pyx_GIVEREF(__pyx_t_3);
101464   __pyx_v_6mpi4py_3MPI___COMPLEX32__ = ((struct PyMPIDatatypeObject *)__pyx_t_3);
101465   __pyx_t_3 = 0;
101466 
101467   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":12
101468  * # -----------------------------------------------------------------------------
101469  *
101470  * cdef dict TypeDict = { }             # <<<<<<<<<<<<<<
101471  * __TypeDict__ = TypeDict
101472  *
101473  */
101474   __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101475   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
101476   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict));
101477   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict));
101478   __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
101479   __pyx_v_6mpi4py_3MPI_TypeDict = __pyx_t_3;
101480   __pyx_t_3 = 0;
101481 
101482   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":13
101483  *
101484  * cdef dict TypeDict = { }
101485  * __TypeDict__ = TypeDict             # <<<<<<<<<<<<<<
101486  *
101487  * # boolean (C99)
101488  */
101489   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____TypeDict__, ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict)) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101490 
101491   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":16
101492  *
101493  * # boolean (C99)
101494  * AddTypeMap(TypeDict, "?"  , __C_BOOL__ ) # PEP-3118 & NumPy             # <<<<<<<<<<<<<<
101495  * # character
101496  * AddTypeMap(TypeDict, "c"  , __CHAR__   ) # PEP-3118 & NumPy
101497  */
101498   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101499   __Pyx_INCREF(__pyx_t_3);
101500   __pyx_t_8 = ((PyObject *)__pyx_kp_s_162);
101501   __Pyx_INCREF(__pyx_t_8);
101502   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__);
101503   __Pyx_INCREF(__pyx_t_2);
101504   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101505   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101506   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101507   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101508 
101509   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":18
101510  * AddTypeMap(TypeDict, "?"  , __C_BOOL__ ) # PEP-3118 & NumPy
101511  * # character
101512  * AddTypeMap(TypeDict, "c"  , __CHAR__   ) # PEP-3118 & NumPy             # <<<<<<<<<<<<<<
101513  * ## XXX this requires special handling
101514  * ## AddTypeMap(TypeDict, "u"  , __????__   ) # PEP-3118
101515  */
101516   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101517   __Pyx_INCREF(__pyx_t_2);
101518   __pyx_t_8 = ((PyObject *)__pyx_n_s__c);
101519   __Pyx_INCREF(__pyx_t_8);
101520   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__);
101521   __Pyx_INCREF(__pyx_t_3);
101522   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101523   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101524   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101525   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101526 
101527   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":23
101528  * ## AddTypeMap(TypeDict, "w"  , __????__   ) # PEP-3118
101529  * # (signed) integer
101530  * AddTypeMap(TypeDict, "b" , __SIGNED_CHAR__ ) # MPI-2             # <<<<<<<<<<<<<<
101531  * AddTypeMap(TypeDict, "h" , __SHORT__       )
101532  * AddTypeMap(TypeDict, "i" , __INT__         )
101533  */
101534   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101535   __Pyx_INCREF(__pyx_t_3);
101536   __pyx_t_8 = ((PyObject *)__pyx_n_s__b);
101537   __Pyx_INCREF(__pyx_t_8);
101538   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__);
101539   __Pyx_INCREF(__pyx_t_2);
101540   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101541   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101542   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101543   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101544 
101545   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":24
101546  * # (signed) integer
101547  * AddTypeMap(TypeDict, "b" , __SIGNED_CHAR__ ) # MPI-2
101548  * AddTypeMap(TypeDict, "h" , __SHORT__       )             # <<<<<<<<<<<<<<
101549  * AddTypeMap(TypeDict, "i" , __INT__         )
101550  * AddTypeMap(TypeDict, "l" , __LONG__        )
101551  */
101552   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101553   __Pyx_INCREF(__pyx_t_2);
101554   __pyx_t_8 = ((PyObject *)__pyx_n_s__h);
101555   __Pyx_INCREF(__pyx_t_8);
101556   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__);
101557   __Pyx_INCREF(__pyx_t_3);
101558   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101559   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101560   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101561   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101562 
101563   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":25
101564  * AddTypeMap(TypeDict, "b" , __SIGNED_CHAR__ ) # MPI-2
101565  * AddTypeMap(TypeDict, "h" , __SHORT__       )
101566  * AddTypeMap(TypeDict, "i" , __INT__         )             # <<<<<<<<<<<<<<
101567  * AddTypeMap(TypeDict, "l" , __LONG__        )
101568  * AddTypeMap(TypeDict, "q" , __LONG_LONG__   )
101569  */
101570   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101571   __Pyx_INCREF(__pyx_t_3);
101572   __pyx_t_8 = ((PyObject *)__pyx_n_s__i);
101573   __Pyx_INCREF(__pyx_t_8);
101574   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT__);
101575   __Pyx_INCREF(__pyx_t_2);
101576   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101577   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101578   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101579   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101580 
101581   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":26
101582  * AddTypeMap(TypeDict, "h" , __SHORT__       )
101583  * AddTypeMap(TypeDict, "i" , __INT__         )
101584  * AddTypeMap(TypeDict, "l" , __LONG__        )             # <<<<<<<<<<<<<<
101585  * AddTypeMap(TypeDict, "q" , __LONG_LONG__   )
101586  * # unsigned integer
101587  */
101588   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101589   __Pyx_INCREF(__pyx_t_2);
101590   __pyx_t_8 = ((PyObject *)__pyx_n_s__l);
101591   __Pyx_INCREF(__pyx_t_8);
101592   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__);
101593   __Pyx_INCREF(__pyx_t_3);
101594   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101595   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101596   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101597   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101598 
101599   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":27
101600  * AddTypeMap(TypeDict, "i" , __INT__         )
101601  * AddTypeMap(TypeDict, "l" , __LONG__        )
101602  * AddTypeMap(TypeDict, "q" , __LONG_LONG__   )             # <<<<<<<<<<<<<<
101603  * # unsigned integer
101604  * AddTypeMap(TypeDict, "B" , __UNSIGNED_CHAR__     )
101605  */
101606   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101607   __Pyx_INCREF(__pyx_t_3);
101608   __pyx_t_8 = ((PyObject *)__pyx_n_s__q);
101609   __Pyx_INCREF(__pyx_t_8);
101610   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__);
101611   __Pyx_INCREF(__pyx_t_2);
101612   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101613   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101614   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101615   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101616 
101617   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":29
101618  * AddTypeMap(TypeDict, "q" , __LONG_LONG__   )
101619  * # unsigned integer
101620  * AddTypeMap(TypeDict, "B" , __UNSIGNED_CHAR__     )             # <<<<<<<<<<<<<<
101621  * AddTypeMap(TypeDict, "H" , __UNSIGNED_SHORT__    )
101622  * AddTypeMap(TypeDict, "I" , __UNSIGNED__          )
101623  */
101624   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101625   __Pyx_INCREF(__pyx_t_2);
101626   __pyx_t_8 = ((PyObject *)__pyx_n_s__B);
101627   __Pyx_INCREF(__pyx_t_8);
101628   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__);
101629   __Pyx_INCREF(__pyx_t_3);
101630   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101631   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101632   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101633   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101634 
101635   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":30
101636  * # unsigned integer
101637  * AddTypeMap(TypeDict, "B" , __UNSIGNED_CHAR__     )
101638  * AddTypeMap(TypeDict, "H" , __UNSIGNED_SHORT__    )             # <<<<<<<<<<<<<<
101639  * AddTypeMap(TypeDict, "I" , __UNSIGNED__          )
101640  * AddTypeMap(TypeDict, "L" , __UNSIGNED_LONG__     )
101641  */
101642   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101643   __Pyx_INCREF(__pyx_t_3);
101644   __pyx_t_8 = ((PyObject *)__pyx_n_s__H);
101645   __Pyx_INCREF(__pyx_t_8);
101646   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__);
101647   __Pyx_INCREF(__pyx_t_2);
101648   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101649   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101650   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101651   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101652 
101653   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":31
101654  * AddTypeMap(TypeDict, "B" , __UNSIGNED_CHAR__     )
101655  * AddTypeMap(TypeDict, "H" , __UNSIGNED_SHORT__    )
101656  * AddTypeMap(TypeDict, "I" , __UNSIGNED__          )             # <<<<<<<<<<<<<<
101657  * AddTypeMap(TypeDict, "L" , __UNSIGNED_LONG__     )
101658  * AddTypeMap(TypeDict, "Q" , __UNSIGNED_LONG_LONG__)
101659  */
101660   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101661   __Pyx_INCREF(__pyx_t_2);
101662   __pyx_t_8 = ((PyObject *)__pyx_n_s__I);
101663   __Pyx_INCREF(__pyx_t_8);
101664   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__);
101665   __Pyx_INCREF(__pyx_t_3);
101666   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101667   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101668   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101669   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101670 
101671   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":32
101672  * AddTypeMap(TypeDict, "H" , __UNSIGNED_SHORT__    )
101673  * AddTypeMap(TypeDict, "I" , __UNSIGNED__          )
101674  * AddTypeMap(TypeDict, "L" , __UNSIGNED_LONG__     )             # <<<<<<<<<<<<<<
101675  * AddTypeMap(TypeDict, "Q" , __UNSIGNED_LONG_LONG__)
101676  * # (real) floating
101677  */
101678   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101679   __Pyx_INCREF(__pyx_t_3);
101680   __pyx_t_8 = ((PyObject *)__pyx_n_s__L);
101681   __Pyx_INCREF(__pyx_t_8);
101682   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__);
101683   __Pyx_INCREF(__pyx_t_2);
101684   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101685   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101686   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101687   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101688 
101689   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":33
101690  * AddTypeMap(TypeDict, "I" , __UNSIGNED__          )
101691  * AddTypeMap(TypeDict, "L" , __UNSIGNED_LONG__     )
101692  * AddTypeMap(TypeDict, "Q" , __UNSIGNED_LONG_LONG__)             # <<<<<<<<<<<<<<
101693  * # (real) floating
101694  * AddTypeMap(TypeDict, "f" , __FLOAT__       )
101695  */
101696   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101697   __Pyx_INCREF(__pyx_t_2);
101698   __pyx_t_8 = ((PyObject *)__pyx_n_s__Q);
101699   __Pyx_INCREF(__pyx_t_8);
101700   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__);
101701   __Pyx_INCREF(__pyx_t_3);
101702   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101703   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101704   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101705   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101706 
101707   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":35
101708  * AddTypeMap(TypeDict, "Q" , __UNSIGNED_LONG_LONG__)
101709  * # (real) floating
101710  * AddTypeMap(TypeDict, "f" , __FLOAT__       )             # <<<<<<<<<<<<<<
101711  * AddTypeMap(TypeDict, "d" , __DOUBLE__      )
101712  * AddTypeMap(TypeDict, "g" , __LONG_DOUBLE__ ) # PEP-3118 & NumPy
101713  */
101714   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101715   __Pyx_INCREF(__pyx_t_3);
101716   __pyx_t_8 = ((PyObject *)__pyx_n_s__f);
101717   __Pyx_INCREF(__pyx_t_8);
101718   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__);
101719   __Pyx_INCREF(__pyx_t_2);
101720   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101721   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101722   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101723   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101724 
101725   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":36
101726  * # (real) floating
101727  * AddTypeMap(TypeDict, "f" , __FLOAT__       )
101728  * AddTypeMap(TypeDict, "d" , __DOUBLE__      )             # <<<<<<<<<<<<<<
101729  * AddTypeMap(TypeDict, "g" , __LONG_DOUBLE__ ) # PEP-3118 & NumPy
101730  * # complex floating (F77)
101731  */
101732   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101733   __Pyx_INCREF(__pyx_t_2);
101734   __pyx_t_8 = ((PyObject *)__pyx_n_s__d);
101735   __Pyx_INCREF(__pyx_t_8);
101736   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__);
101737   __Pyx_INCREF(__pyx_t_3);
101738   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101739   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101740   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101741   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101742 
101743   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":37
101744  * AddTypeMap(TypeDict, "f" , __FLOAT__       )
101745  * AddTypeMap(TypeDict, "d" , __DOUBLE__      )
101746  * AddTypeMap(TypeDict, "g" , __LONG_DOUBLE__ ) # PEP-3118 & NumPy             # <<<<<<<<<<<<<<
101747  * # complex floating (F77)
101748  * AddTypeMap(TypeDict, "Zf" , __COMPLEX__        ) # PEP-3118
101749  */
101750   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101751   __Pyx_INCREF(__pyx_t_3);
101752   __pyx_t_8 = ((PyObject *)__pyx_n_s__g);
101753   __Pyx_INCREF(__pyx_t_8);
101754   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__);
101755   __Pyx_INCREF(__pyx_t_2);
101756   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101757   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101758   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101759   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101760 
101761   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":39
101762  * AddTypeMap(TypeDict, "g" , __LONG_DOUBLE__ ) # PEP-3118 & NumPy
101763  * # complex floating (F77)
101764  * AddTypeMap(TypeDict, "Zf" , __COMPLEX__        ) # PEP-3118             # <<<<<<<<<<<<<<
101765  * AddTypeMap(TypeDict, "Zd" , __DOUBLE_COMPLEX__ ) # PEP-3118
101766  * AddTypeMap(TypeDict, "F"  , __COMPLEX__        ) # NumPy
101767  */
101768   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101769   __Pyx_INCREF(__pyx_t_2);
101770   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zf);
101771   __Pyx_INCREF(__pyx_t_8);
101772   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__);
101773   __Pyx_INCREF(__pyx_t_3);
101774   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101775   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101776   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101777   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101778 
101779   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":40
101780  * # complex floating (F77)
101781  * AddTypeMap(TypeDict, "Zf" , __COMPLEX__        ) # PEP-3118
101782  * AddTypeMap(TypeDict, "Zd" , __DOUBLE_COMPLEX__ ) # PEP-3118             # <<<<<<<<<<<<<<
101783  * AddTypeMap(TypeDict, "F"  , __COMPLEX__        ) # NumPy
101784  * AddTypeMap(TypeDict, "D"  , __DOUBLE_COMPLEX__ ) # NumPy
101785  */
101786   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101787   __Pyx_INCREF(__pyx_t_3);
101788   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zd);
101789   __Pyx_INCREF(__pyx_t_8);
101790   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__);
101791   __Pyx_INCREF(__pyx_t_2);
101792   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101793   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101794   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101795   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101796 
101797   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":41
101798  * AddTypeMap(TypeDict, "Zf" , __COMPLEX__        ) # PEP-3118
101799  * AddTypeMap(TypeDict, "Zd" , __DOUBLE_COMPLEX__ ) # PEP-3118
101800  * AddTypeMap(TypeDict, "F"  , __COMPLEX__        ) # NumPy             # <<<<<<<<<<<<<<
101801  * AddTypeMap(TypeDict, "D"  , __DOUBLE_COMPLEX__ ) # NumPy
101802  * # complex floating (F90)
101803  */
101804   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101805   __Pyx_INCREF(__pyx_t_2);
101806   __pyx_t_8 = ((PyObject *)__pyx_n_s__F);
101807   __Pyx_INCREF(__pyx_t_8);
101808   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__);
101809   __Pyx_INCREF(__pyx_t_3);
101810   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101811   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101812   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101813   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101814 
101815   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":42
101816  * AddTypeMap(TypeDict, "Zd" , __DOUBLE_COMPLEX__ ) # PEP-3118
101817  * AddTypeMap(TypeDict, "F"  , __COMPLEX__        ) # NumPy
101818  * AddTypeMap(TypeDict, "D"  , __DOUBLE_COMPLEX__ ) # NumPy             # <<<<<<<<<<<<<<
101819  * # complex floating (F90)
101820  * AddTypeMap(TypeDict, "Zf" , __COMPLEX8__       ) # PEP-3118
101821  */
101822   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101823   __Pyx_INCREF(__pyx_t_3);
101824   __pyx_t_8 = ((PyObject *)__pyx_n_s__D);
101825   __Pyx_INCREF(__pyx_t_8);
101826   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__);
101827   __Pyx_INCREF(__pyx_t_2);
101828   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101829   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101830   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101831   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101832 
101833   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":44
101834  * AddTypeMap(TypeDict, "D"  , __DOUBLE_COMPLEX__ ) # NumPy
101835  * # complex floating (F90)
101836  * AddTypeMap(TypeDict, "Zf" , __COMPLEX8__       ) # PEP-3118             # <<<<<<<<<<<<<<
101837  * AddTypeMap(TypeDict, "Zd" , __COMPLEX16__      ) # PEP-3118
101838  * AddTypeMap(TypeDict, "F"  , __COMPLEX8__       ) # NumPy
101839  */
101840   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101841   __Pyx_INCREF(__pyx_t_2);
101842   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zf);
101843   __Pyx_INCREF(__pyx_t_8);
101844   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__);
101845   __Pyx_INCREF(__pyx_t_3);
101846   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101847   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101848   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101849   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101850 
101851   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":45
101852  * # complex floating (F90)
101853  * AddTypeMap(TypeDict, "Zf" , __COMPLEX8__       ) # PEP-3118
101854  * AddTypeMap(TypeDict, "Zd" , __COMPLEX16__      ) # PEP-3118             # <<<<<<<<<<<<<<
101855  * AddTypeMap(TypeDict, "F"  , __COMPLEX8__       ) # NumPy
101856  * AddTypeMap(TypeDict, "D"  , __COMPLEX16__      ) # NumPy
101857  */
101858   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101859   __Pyx_INCREF(__pyx_t_3);
101860   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zd);
101861   __Pyx_INCREF(__pyx_t_8);
101862   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__);
101863   __Pyx_INCREF(__pyx_t_2);
101864   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101865   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101866   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101867   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101868 
101869   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":46
101870  * AddTypeMap(TypeDict, "Zf" , __COMPLEX8__       ) # PEP-3118
101871  * AddTypeMap(TypeDict, "Zd" , __COMPLEX16__      ) # PEP-3118
101872  * AddTypeMap(TypeDict, "F"  , __COMPLEX8__       ) # NumPy             # <<<<<<<<<<<<<<
101873  * AddTypeMap(TypeDict, "D"  , __COMPLEX16__      ) # NumPy
101874  * # complex floating (C99)
101875  */
101876   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101877   __Pyx_INCREF(__pyx_t_2);
101878   __pyx_t_8 = ((PyObject *)__pyx_n_s__F);
101879   __Pyx_INCREF(__pyx_t_8);
101880   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__);
101881   __Pyx_INCREF(__pyx_t_3);
101882   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101883   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101884   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101885   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101886 
101887   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":47
101888  * AddTypeMap(TypeDict, "Zd" , __COMPLEX16__      ) # PEP-3118
101889  * AddTypeMap(TypeDict, "F"  , __COMPLEX8__       ) # NumPy
101890  * AddTypeMap(TypeDict, "D"  , __COMPLEX16__      ) # NumPy             # <<<<<<<<<<<<<<
101891  * # complex floating (C99)
101892  * AddTypeMap(TypeDict, "Zf" , __C_FLOAT_COMPLEX__       ) # PEP-3118
101893  */
101894   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101895   __Pyx_INCREF(__pyx_t_3);
101896   __pyx_t_8 = ((PyObject *)__pyx_n_s__D);
101897   __Pyx_INCREF(__pyx_t_8);
101898   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__);
101899   __Pyx_INCREF(__pyx_t_2);
101900   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101901   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101902   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101903   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101904 
101905   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":49
101906  * AddTypeMap(TypeDict, "D"  , __COMPLEX16__      ) # NumPy
101907  * # complex floating (C99)
101908  * AddTypeMap(TypeDict, "Zf" , __C_FLOAT_COMPLEX__       ) # PEP-3118             # <<<<<<<<<<<<<<
101909  * AddTypeMap(TypeDict, "Zd" , __C_DOUBLE_COMPLEX__      ) # PEP-3118
101910  * AddTypeMap(TypeDict, "Zg" , __C_LONG_DOUBLE_COMPLEX__ ) # PEP-3118
101911  */
101912   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101913   __Pyx_INCREF(__pyx_t_2);
101914   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zf);
101915   __Pyx_INCREF(__pyx_t_8);
101916   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__);
101917   __Pyx_INCREF(__pyx_t_3);
101918   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101919   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101920   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101921   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101922 
101923   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":50
101924  * # complex floating (C99)
101925  * AddTypeMap(TypeDict, "Zf" , __C_FLOAT_COMPLEX__       ) # PEP-3118
101926  * AddTypeMap(TypeDict, "Zd" , __C_DOUBLE_COMPLEX__      ) # PEP-3118             # <<<<<<<<<<<<<<
101927  * AddTypeMap(TypeDict, "Zg" , __C_LONG_DOUBLE_COMPLEX__ ) # PEP-3118
101928  * AddTypeMap(TypeDict, "F"  , __C_FLOAT_COMPLEX__       ) # NumPy
101929  */
101930   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101931   __Pyx_INCREF(__pyx_t_3);
101932   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zd);
101933   __Pyx_INCREF(__pyx_t_8);
101934   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__);
101935   __Pyx_INCREF(__pyx_t_2);
101936   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101937   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101938   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101939   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101940 
101941   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":51
101942  * AddTypeMap(TypeDict, "Zf" , __C_FLOAT_COMPLEX__       ) # PEP-3118
101943  * AddTypeMap(TypeDict, "Zd" , __C_DOUBLE_COMPLEX__      ) # PEP-3118
101944  * AddTypeMap(TypeDict, "Zg" , __C_LONG_DOUBLE_COMPLEX__ ) # PEP-3118             # <<<<<<<<<<<<<<
101945  * AddTypeMap(TypeDict, "F"  , __C_FLOAT_COMPLEX__       ) # NumPy
101946  * AddTypeMap(TypeDict, "D"  , __C_DOUBLE_COMPLEX__      ) # NumPy
101947  */
101948   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101949   __Pyx_INCREF(__pyx_t_2);
101950   __pyx_t_8 = ((PyObject *)__pyx_n_s__Zg);
101951   __Pyx_INCREF(__pyx_t_8);
101952   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__);
101953   __Pyx_INCREF(__pyx_t_3);
101954   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101955   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101956   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101957   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101958 
101959   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":52
101960  * AddTypeMap(TypeDict, "Zd" , __C_DOUBLE_COMPLEX__      ) # PEP-3118
101961  * AddTypeMap(TypeDict, "Zg" , __C_LONG_DOUBLE_COMPLEX__ ) # PEP-3118
101962  * AddTypeMap(TypeDict, "F"  , __C_FLOAT_COMPLEX__       ) # NumPy             # <<<<<<<<<<<<<<
101963  * AddTypeMap(TypeDict, "D"  , __C_DOUBLE_COMPLEX__      ) # NumPy
101964  * AddTypeMap(TypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ ) # NumPy
101965  */
101966   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101967   __Pyx_INCREF(__pyx_t_3);
101968   __pyx_t_8 = ((PyObject *)__pyx_n_s__F);
101969   __Pyx_INCREF(__pyx_t_8);
101970   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__);
101971   __Pyx_INCREF(__pyx_t_2);
101972   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101973   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101974   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101975   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101976 
101977   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":53
101978  * AddTypeMap(TypeDict, "Zg" , __C_LONG_DOUBLE_COMPLEX__ ) # PEP-3118
101979  * AddTypeMap(TypeDict, "F"  , __C_FLOAT_COMPLEX__       ) # NumPy
101980  * AddTypeMap(TypeDict, "D"  , __C_DOUBLE_COMPLEX__      ) # NumPy             # <<<<<<<<<<<<<<
101981  * AddTypeMap(TypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ ) # NumPy
101982  *
101983  */
101984   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
101985   __Pyx_INCREF(__pyx_t_2);
101986   __pyx_t_8 = ((PyObject *)__pyx_n_s__D);
101987   __Pyx_INCREF(__pyx_t_8);
101988   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__);
101989   __Pyx_INCREF(__pyx_t_3);
101990   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
101991   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
101992   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
101993   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
101994 
101995   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":54
101996  * AddTypeMap(TypeDict, "F"  , __C_FLOAT_COMPLEX__       ) # NumPy
101997  * AddTypeMap(TypeDict, "D"  , __C_DOUBLE_COMPLEX__      ) # NumPy
101998  * AddTypeMap(TypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ ) # NumPy             # <<<<<<<<<<<<<<
101999  *
102000  * # -----------------------------------------------------------------------------
102001  */
102002   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_TypeDict);
102003   __Pyx_INCREF(__pyx_t_3);
102004   __pyx_t_8 = ((PyObject *)__pyx_n_s__G);
102005   __Pyx_INCREF(__pyx_t_8);
102006   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__);
102007   __Pyx_INCREF(__pyx_t_2);
102008   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102009   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102010   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102011   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102012 
102013   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":58
102014  * # -----------------------------------------------------------------------------
102015  *
102016  * cdef dict CTypeDict = { }             # <<<<<<<<<<<<<<
102017  * __CTypeDict__ = CTypeDict
102018  *
102019  */
102020   __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102021   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
102022   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict));
102023   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict));
102024   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
102025   __pyx_v_6mpi4py_3MPI_CTypeDict = __pyx_t_2;
102026   __pyx_t_2 = 0;
102027 
102028   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":59
102029  *
102030  * cdef dict CTypeDict = { }
102031  * __CTypeDict__ = CTypeDict             # <<<<<<<<<<<<<<
102032  *
102033  * AddTypeMap(CTypeDict, "?"  , __C_BOOL__ )
102034  */
102035   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____CTypeDict__, ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict)) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102036 
102037   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":61
102038  * __CTypeDict__ = CTypeDict
102039  *
102040  * AddTypeMap(CTypeDict, "?"  , __C_BOOL__ )             # <<<<<<<<<<<<<<
102041  * AddTypeMap(CTypeDict, "c"  , __CHAR__   )
102042  *
102043  */
102044   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102045   __Pyx_INCREF(__pyx_t_2);
102046   __pyx_t_8 = ((PyObject *)__pyx_kp_s_162);
102047   __Pyx_INCREF(__pyx_t_8);
102048   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__);
102049   __Pyx_INCREF(__pyx_t_3);
102050   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102051   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102052   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102053   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102054 
102055   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":62
102056  *
102057  * AddTypeMap(CTypeDict, "?"  , __C_BOOL__ )
102058  * AddTypeMap(CTypeDict, "c"  , __CHAR__   )             # <<<<<<<<<<<<<<
102059  *
102060  * AddTypeMap(CTypeDict, "b" , __SIGNED_CHAR__ )
102061  */
102062   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102063   __Pyx_INCREF(__pyx_t_3);
102064   __pyx_t_8 = ((PyObject *)__pyx_n_s__c);
102065   __Pyx_INCREF(__pyx_t_8);
102066   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__);
102067   __Pyx_INCREF(__pyx_t_2);
102068   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102069   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102070   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102071   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102072 
102073   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":64
102074  * AddTypeMap(CTypeDict, "c"  , __CHAR__   )
102075  *
102076  * AddTypeMap(CTypeDict, "b" , __SIGNED_CHAR__ )             # <<<<<<<<<<<<<<
102077  * AddTypeMap(CTypeDict, "h" , __SHORT__       )
102078  * AddTypeMap(CTypeDict, "i" , __INT__         )
102079  */
102080   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102081   __Pyx_INCREF(__pyx_t_2);
102082   __pyx_t_8 = ((PyObject *)__pyx_n_s__b);
102083   __Pyx_INCREF(__pyx_t_8);
102084   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__);
102085   __Pyx_INCREF(__pyx_t_3);
102086   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102087   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102088   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102089   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102090 
102091   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":65
102092  *
102093  * AddTypeMap(CTypeDict, "b" , __SIGNED_CHAR__ )
102094  * AddTypeMap(CTypeDict, "h" , __SHORT__       )             # <<<<<<<<<<<<<<
102095  * AddTypeMap(CTypeDict, "i" , __INT__         )
102096  * AddTypeMap(CTypeDict, "l" , __LONG__        )
102097  */
102098   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102099   __Pyx_INCREF(__pyx_t_3);
102100   __pyx_t_8 = ((PyObject *)__pyx_n_s__h);
102101   __Pyx_INCREF(__pyx_t_8);
102102   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__);
102103   __Pyx_INCREF(__pyx_t_2);
102104   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102105   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102106   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102107   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102108 
102109   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":66
102110  * AddTypeMap(CTypeDict, "b" , __SIGNED_CHAR__ )
102111  * AddTypeMap(CTypeDict, "h" , __SHORT__       )
102112  * AddTypeMap(CTypeDict, "i" , __INT__         )             # <<<<<<<<<<<<<<
102113  * AddTypeMap(CTypeDict, "l" , __LONG__        )
102114  * AddTypeMap(CTypeDict, "q" , __LONG_LONG__   )
102115  */
102116   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102117   __Pyx_INCREF(__pyx_t_2);
102118   __pyx_t_8 = ((PyObject *)__pyx_n_s__i);
102119   __Pyx_INCREF(__pyx_t_8);
102120   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT__);
102121   __Pyx_INCREF(__pyx_t_3);
102122   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102123   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102124   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102125   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102126 
102127   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":67
102128  * AddTypeMap(CTypeDict, "h" , __SHORT__       )
102129  * AddTypeMap(CTypeDict, "i" , __INT__         )
102130  * AddTypeMap(CTypeDict, "l" , __LONG__        )             # <<<<<<<<<<<<<<
102131  * AddTypeMap(CTypeDict, "q" , __LONG_LONG__   )
102132  *
102133  */
102134   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102135   __Pyx_INCREF(__pyx_t_3);
102136   __pyx_t_8 = ((PyObject *)__pyx_n_s__l);
102137   __Pyx_INCREF(__pyx_t_8);
102138   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__);
102139   __Pyx_INCREF(__pyx_t_2);
102140   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102141   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102142   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102143   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102144 
102145   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":68
102146  * AddTypeMap(CTypeDict, "i" , __INT__         )
102147  * AddTypeMap(CTypeDict, "l" , __LONG__        )
102148  * AddTypeMap(CTypeDict, "q" , __LONG_LONG__   )             # <<<<<<<<<<<<<<
102149  *
102150  * AddTypeMap(CTypeDict, "B" , __UNSIGNED_CHAR__      )
102151  */
102152   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102153   __Pyx_INCREF(__pyx_t_2);
102154   __pyx_t_8 = ((PyObject *)__pyx_n_s__q);
102155   __Pyx_INCREF(__pyx_t_8);
102156   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__);
102157   __Pyx_INCREF(__pyx_t_3);
102158   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102159   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102160   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102161   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102162 
102163   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":70
102164  * AddTypeMap(CTypeDict, "q" , __LONG_LONG__   )
102165  *
102166  * AddTypeMap(CTypeDict, "B" , __UNSIGNED_CHAR__      )             # <<<<<<<<<<<<<<
102167  * AddTypeMap(CTypeDict, "H" , __UNSIGNED_SHORT__     )
102168  * AddTypeMap(CTypeDict, "I" , __UNSIGNED__           )
102169  */
102170   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102171   __Pyx_INCREF(__pyx_t_3);
102172   __pyx_t_8 = ((PyObject *)__pyx_n_s__B);
102173   __Pyx_INCREF(__pyx_t_8);
102174   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__);
102175   __Pyx_INCREF(__pyx_t_2);
102176   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102177   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102178   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102179   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102180 
102181   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":71
102182  *
102183  * AddTypeMap(CTypeDict, "B" , __UNSIGNED_CHAR__      )
102184  * AddTypeMap(CTypeDict, "H" , __UNSIGNED_SHORT__     )             # <<<<<<<<<<<<<<
102185  * AddTypeMap(CTypeDict, "I" , __UNSIGNED__           )
102186  * AddTypeMap(CTypeDict, "L" , __UNSIGNED_LONG__      )
102187  */
102188   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102189   __Pyx_INCREF(__pyx_t_2);
102190   __pyx_t_8 = ((PyObject *)__pyx_n_s__H);
102191   __Pyx_INCREF(__pyx_t_8);
102192   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__);
102193   __Pyx_INCREF(__pyx_t_3);
102194   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102195   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102196   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102197   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102198 
102199   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":72
102200  * AddTypeMap(CTypeDict, "B" , __UNSIGNED_CHAR__      )
102201  * AddTypeMap(CTypeDict, "H" , __UNSIGNED_SHORT__     )
102202  * AddTypeMap(CTypeDict, "I" , __UNSIGNED__           )             # <<<<<<<<<<<<<<
102203  * AddTypeMap(CTypeDict, "L" , __UNSIGNED_LONG__      )
102204  * AddTypeMap(CTypeDict, "Q" , __UNSIGNED_LONG_LONG__ )
102205  */
102206   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102207   __Pyx_INCREF(__pyx_t_3);
102208   __pyx_t_8 = ((PyObject *)__pyx_n_s__I);
102209   __Pyx_INCREF(__pyx_t_8);
102210   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__);
102211   __Pyx_INCREF(__pyx_t_2);
102212   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102213   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102214   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102215   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102216 
102217   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":73
102218  * AddTypeMap(CTypeDict, "H" , __UNSIGNED_SHORT__     )
102219  * AddTypeMap(CTypeDict, "I" , __UNSIGNED__           )
102220  * AddTypeMap(CTypeDict, "L" , __UNSIGNED_LONG__      )             # <<<<<<<<<<<<<<
102221  * AddTypeMap(CTypeDict, "Q" , __UNSIGNED_LONG_LONG__ )
102222  *
102223  */
102224   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102225   __Pyx_INCREF(__pyx_t_2);
102226   __pyx_t_8 = ((PyObject *)__pyx_n_s__L);
102227   __Pyx_INCREF(__pyx_t_8);
102228   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__);
102229   __Pyx_INCREF(__pyx_t_3);
102230   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102231   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102232   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102233   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102234 
102235   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":74
102236  * AddTypeMap(CTypeDict, "I" , __UNSIGNED__           )
102237  * AddTypeMap(CTypeDict, "L" , __UNSIGNED_LONG__      )
102238  * AddTypeMap(CTypeDict, "Q" , __UNSIGNED_LONG_LONG__ )             # <<<<<<<<<<<<<<
102239  *
102240  * AddTypeMap(CTypeDict, "f" , __FLOAT__       )
102241  */
102242   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102243   __Pyx_INCREF(__pyx_t_3);
102244   __pyx_t_8 = ((PyObject *)__pyx_n_s__Q);
102245   __Pyx_INCREF(__pyx_t_8);
102246   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__);
102247   __Pyx_INCREF(__pyx_t_2);
102248   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102249   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102250   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102251   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102252 
102253   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":76
102254  * AddTypeMap(CTypeDict, "Q" , __UNSIGNED_LONG_LONG__ )
102255  *
102256  * AddTypeMap(CTypeDict, "f" , __FLOAT__       )             # <<<<<<<<<<<<<<
102257  * AddTypeMap(CTypeDict, "d" , __DOUBLE__      )
102258  * AddTypeMap(CTypeDict, "g" , __LONG_DOUBLE__ )
102259  */
102260   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102261   __Pyx_INCREF(__pyx_t_2);
102262   __pyx_t_8 = ((PyObject *)__pyx_n_s__f);
102263   __Pyx_INCREF(__pyx_t_8);
102264   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__);
102265   __Pyx_INCREF(__pyx_t_3);
102266   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102267   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102268   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102269   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102270 
102271   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":77
102272  *
102273  * AddTypeMap(CTypeDict, "f" , __FLOAT__       )
102274  * AddTypeMap(CTypeDict, "d" , __DOUBLE__      )             # <<<<<<<<<<<<<<
102275  * AddTypeMap(CTypeDict, "g" , __LONG_DOUBLE__ )
102276  *
102277  */
102278   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102279   __Pyx_INCREF(__pyx_t_3);
102280   __pyx_t_8 = ((PyObject *)__pyx_n_s__d);
102281   __Pyx_INCREF(__pyx_t_8);
102282   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__);
102283   __Pyx_INCREF(__pyx_t_2);
102284   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102285   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102286   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102287   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102288 
102289   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":78
102290  * AddTypeMap(CTypeDict, "f" , __FLOAT__       )
102291  * AddTypeMap(CTypeDict, "d" , __DOUBLE__      )
102292  * AddTypeMap(CTypeDict, "g" , __LONG_DOUBLE__ )             # <<<<<<<<<<<<<<
102293  *
102294  * AddTypeMap(CTypeDict, "F"  , __C_FLOAT_COMPLEX__       )
102295  */
102296   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102297   __Pyx_INCREF(__pyx_t_2);
102298   __pyx_t_8 = ((PyObject *)__pyx_n_s__g);
102299   __Pyx_INCREF(__pyx_t_8);
102300   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__);
102301   __Pyx_INCREF(__pyx_t_3);
102302   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102303   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102304   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102305   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102306 
102307   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":80
102308  * AddTypeMap(CTypeDict, "g" , __LONG_DOUBLE__ )
102309  *
102310  * AddTypeMap(CTypeDict, "F"  , __C_FLOAT_COMPLEX__       )             # <<<<<<<<<<<<<<
102311  * AddTypeMap(CTypeDict, "D"  , __C_DOUBLE_COMPLEX__      )
102312  * AddTypeMap(CTypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ )
102313  */
102314   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102315   __Pyx_INCREF(__pyx_t_3);
102316   __pyx_t_8 = ((PyObject *)__pyx_n_s__F);
102317   __Pyx_INCREF(__pyx_t_8);
102318   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__);
102319   __Pyx_INCREF(__pyx_t_2);
102320   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102321   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102322   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102323   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102324 
102325   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":81
102326  *
102327  * AddTypeMap(CTypeDict, "F"  , __C_FLOAT_COMPLEX__       )
102328  * AddTypeMap(CTypeDict, "D"  , __C_DOUBLE_COMPLEX__      )             # <<<<<<<<<<<<<<
102329  * AddTypeMap(CTypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ )
102330  *
102331  */
102332   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102333   __Pyx_INCREF(__pyx_t_2);
102334   __pyx_t_8 = ((PyObject *)__pyx_n_s__D);
102335   __Pyx_INCREF(__pyx_t_8);
102336   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__);
102337   __Pyx_INCREF(__pyx_t_3);
102338   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102339   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102340   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102341   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102342 
102343   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":82
102344  * AddTypeMap(CTypeDict, "F"  , __C_FLOAT_COMPLEX__       )
102345  * AddTypeMap(CTypeDict, "D"  , __C_DOUBLE_COMPLEX__      )
102346  * AddTypeMap(CTypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ )             # <<<<<<<<<<<<<<
102347  *
102348  * AddTypeMap(CTypeDict, "i1" , __INT8_T__   )
102349  */
102350   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102351   __Pyx_INCREF(__pyx_t_3);
102352   __pyx_t_8 = ((PyObject *)__pyx_n_s__G);
102353   __Pyx_INCREF(__pyx_t_8);
102354   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__);
102355   __Pyx_INCREF(__pyx_t_2);
102356   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102357   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102358   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102359   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102360 
102361   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":84
102362  * AddTypeMap(CTypeDict, "G"  , __C_LONG_DOUBLE_COMPLEX__ )
102363  *
102364  * AddTypeMap(CTypeDict, "i1" , __INT8_T__   )             # <<<<<<<<<<<<<<
102365  * AddTypeMap(CTypeDict, "i2" , __INT16_T__  )
102366  * AddTypeMap(CTypeDict, "i4" , __INT32_T__  )
102367  */
102368   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102369   __Pyx_INCREF(__pyx_t_2);
102370   __pyx_t_8 = ((PyObject *)__pyx_n_s__i1);
102371   __Pyx_INCREF(__pyx_t_8);
102372   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__);
102373   __Pyx_INCREF(__pyx_t_3);
102374   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102375   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102376   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102377   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102378 
102379   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":85
102380  *
102381  * AddTypeMap(CTypeDict, "i1" , __INT8_T__   )
102382  * AddTypeMap(CTypeDict, "i2" , __INT16_T__  )             # <<<<<<<<<<<<<<
102383  * AddTypeMap(CTypeDict, "i4" , __INT32_T__  )
102384  * AddTypeMap(CTypeDict, "i8" , __INT64_T__  )
102385  */
102386   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102387   __Pyx_INCREF(__pyx_t_3);
102388   __pyx_t_8 = ((PyObject *)__pyx_n_s__i2);
102389   __Pyx_INCREF(__pyx_t_8);
102390   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__);
102391   __Pyx_INCREF(__pyx_t_2);
102392   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102393   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102394   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102395   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102396 
102397   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":86
102398  * AddTypeMap(CTypeDict, "i1" , __INT8_T__   )
102399  * AddTypeMap(CTypeDict, "i2" , __INT16_T__  )
102400  * AddTypeMap(CTypeDict, "i4" , __INT32_T__  )             # <<<<<<<<<<<<<<
102401  * AddTypeMap(CTypeDict, "i8" , __INT64_T__  )
102402  *
102403  */
102404   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102405   __Pyx_INCREF(__pyx_t_2);
102406   __pyx_t_8 = ((PyObject *)__pyx_n_s__i4);
102407   __Pyx_INCREF(__pyx_t_8);
102408   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__);
102409   __Pyx_INCREF(__pyx_t_3);
102410   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102411   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102412   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102413   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102414 
102415   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":87
102416  * AddTypeMap(CTypeDict, "i2" , __INT16_T__  )
102417  * AddTypeMap(CTypeDict, "i4" , __INT32_T__  )
102418  * AddTypeMap(CTypeDict, "i8" , __INT64_T__  )             # <<<<<<<<<<<<<<
102419  *
102420  * AddTypeMap(CTypeDict, "u1" , __UINT8_T__  )
102421  */
102422   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102423   __Pyx_INCREF(__pyx_t_3);
102424   __pyx_t_8 = ((PyObject *)__pyx_n_s__i8);
102425   __Pyx_INCREF(__pyx_t_8);
102426   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__);
102427   __Pyx_INCREF(__pyx_t_2);
102428   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102429   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102430   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102431   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102432 
102433   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":89
102434  * AddTypeMap(CTypeDict, "i8" , __INT64_T__  )
102435  *
102436  * AddTypeMap(CTypeDict, "u1" , __UINT8_T__  )             # <<<<<<<<<<<<<<
102437  * AddTypeMap(CTypeDict, "u2" , __UINT16_T__ )
102438  * AddTypeMap(CTypeDict, "u4" , __UINT32_T__ )
102439  */
102440   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102441   __Pyx_INCREF(__pyx_t_2);
102442   __pyx_t_8 = ((PyObject *)__pyx_n_s__u1);
102443   __Pyx_INCREF(__pyx_t_8);
102444   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT8_T__);
102445   __Pyx_INCREF(__pyx_t_3);
102446   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102447   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102448   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102449   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102450 
102451   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":90
102452  *
102453  * AddTypeMap(CTypeDict, "u1" , __UINT8_T__  )
102454  * AddTypeMap(CTypeDict, "u2" , __UINT16_T__ )             # <<<<<<<<<<<<<<
102455  * AddTypeMap(CTypeDict, "u4" , __UINT32_T__ )
102456  * AddTypeMap(CTypeDict, "u8" , __UINT64_T__ )
102457  */
102458   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102459   __Pyx_INCREF(__pyx_t_3);
102460   __pyx_t_8 = ((PyObject *)__pyx_n_s__u2);
102461   __Pyx_INCREF(__pyx_t_8);
102462   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT16_T__);
102463   __Pyx_INCREF(__pyx_t_2);
102464   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102465   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102466   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102467   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102468 
102469   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":91
102470  * AddTypeMap(CTypeDict, "u1" , __UINT8_T__  )
102471  * AddTypeMap(CTypeDict, "u2" , __UINT16_T__ )
102472  * AddTypeMap(CTypeDict, "u4" , __UINT32_T__ )             # <<<<<<<<<<<<<<
102473  * AddTypeMap(CTypeDict, "u8" , __UINT64_T__ )
102474  *
102475  */
102476   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102477   __Pyx_INCREF(__pyx_t_2);
102478   __pyx_t_8 = ((PyObject *)__pyx_n_s__u4);
102479   __Pyx_INCREF(__pyx_t_8);
102480   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT32_T__);
102481   __Pyx_INCREF(__pyx_t_3);
102482   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102483   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102484   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102485   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102486 
102487   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":92
102488  * AddTypeMap(CTypeDict, "u2" , __UINT16_T__ )
102489  * AddTypeMap(CTypeDict, "u4" , __UINT32_T__ )
102490  * AddTypeMap(CTypeDict, "u8" , __UINT64_T__ )             # <<<<<<<<<<<<<<
102491  *
102492  * # -----------------------------------------------------------------------------
102493  */
102494   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_CTypeDict);
102495   __Pyx_INCREF(__pyx_t_3);
102496   __pyx_t_8 = ((PyObject *)__pyx_n_s__u8);
102497   __Pyx_INCREF(__pyx_t_8);
102498   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT64_T__);
102499   __Pyx_INCREF(__pyx_t_2);
102500   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102501   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102502   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102503   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102504 
102505   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":96
102506  * # -----------------------------------------------------------------------------
102507  *
102508  * cdef dict FTypeDict = { }             # <<<<<<<<<<<<<<
102509  * __FTypeDict__ = FTypeDict
102510  *
102511  */
102512   __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102513   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
102514   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict));
102515   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict));
102516   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
102517   __pyx_v_6mpi4py_3MPI_FTypeDict = __pyx_t_2;
102518   __pyx_t_2 = 0;
102519 
102520   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":97
102521  *
102522  * cdef dict FTypeDict = { }
102523  * __FTypeDict__ = FTypeDict             # <<<<<<<<<<<<<<
102524  *
102525  * AddTypeMap(FTypeDict, "?"   , __LOGICAL__          )
102526  */
102527   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____FTypeDict__, ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict)) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102528 
102529   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":99
102530  * __FTypeDict__ = FTypeDict
102531  *
102532  * AddTypeMap(FTypeDict, "?"   , __LOGICAL__          )             # <<<<<<<<<<<<<<
102533  * AddTypeMap(FTypeDict, "c"   , __CHARACTER__        )
102534  * AddTypeMap(FTypeDict, "i"   , __INTEGER__          )
102535  */
102536   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102537   __Pyx_INCREF(__pyx_t_2);
102538   __pyx_t_8 = ((PyObject *)__pyx_kp_s_162);
102539   __Pyx_INCREF(__pyx_t_8);
102540   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__);
102541   __Pyx_INCREF(__pyx_t_3);
102542   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102543   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102544   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102545   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102546 
102547   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":100
102548  *
102549  * AddTypeMap(FTypeDict, "?"   , __LOGICAL__          )
102550  * AddTypeMap(FTypeDict, "c"   , __CHARACTER__        )             # <<<<<<<<<<<<<<
102551  * AddTypeMap(FTypeDict, "i"   , __INTEGER__          )
102552  * AddTypeMap(FTypeDict, "f"   , __REAL__             )
102553  */
102554   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102555   __Pyx_INCREF(__pyx_t_3);
102556   __pyx_t_8 = ((PyObject *)__pyx_n_s__c);
102557   __Pyx_INCREF(__pyx_t_8);
102558   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___CHARACTER__);
102559   __Pyx_INCREF(__pyx_t_2);
102560   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102561   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102562   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102563   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102564 
102565   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":101
102566  * AddTypeMap(FTypeDict, "?"   , __LOGICAL__          )
102567  * AddTypeMap(FTypeDict, "c"   , __CHARACTER__        )
102568  * AddTypeMap(FTypeDict, "i"   , __INTEGER__          )             # <<<<<<<<<<<<<<
102569  * AddTypeMap(FTypeDict, "f"   , __REAL__             )
102570  * AddTypeMap(FTypeDict, "d"   , __DOUBLE_PRECISION__ )
102571  */
102572   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102573   __Pyx_INCREF(__pyx_t_2);
102574   __pyx_t_8 = ((PyObject *)__pyx_n_s__i);
102575   __Pyx_INCREF(__pyx_t_8);
102576   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__);
102577   __Pyx_INCREF(__pyx_t_3);
102578   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102579   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102580   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102581   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102582 
102583   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":102
102584  * AddTypeMap(FTypeDict, "c"   , __CHARACTER__        )
102585  * AddTypeMap(FTypeDict, "i"   , __INTEGER__          )
102586  * AddTypeMap(FTypeDict, "f"   , __REAL__             )             # <<<<<<<<<<<<<<
102587  * AddTypeMap(FTypeDict, "d"   , __DOUBLE_PRECISION__ )
102588  * AddTypeMap(FTypeDict, "F"   , __COMPLEX__          )
102589  */
102590   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102591   __Pyx_INCREF(__pyx_t_3);
102592   __pyx_t_8 = ((PyObject *)__pyx_n_s__f);
102593   __Pyx_INCREF(__pyx_t_8);
102594   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__);
102595   __Pyx_INCREF(__pyx_t_2);
102596   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102597   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102598   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102599   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102600 
102601   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":103
102602  * AddTypeMap(FTypeDict, "i"   , __INTEGER__          )
102603  * AddTypeMap(FTypeDict, "f"   , __REAL__             )
102604  * AddTypeMap(FTypeDict, "d"   , __DOUBLE_PRECISION__ )             # <<<<<<<<<<<<<<
102605  * AddTypeMap(FTypeDict, "F"   , __COMPLEX__          )
102606  * AddTypeMap(FTypeDict, "D"   , __DOUBLE_COMPLEX__   )
102607  */
102608   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102609   __Pyx_INCREF(__pyx_t_2);
102610   __pyx_t_8 = ((PyObject *)__pyx_n_s__d);
102611   __Pyx_INCREF(__pyx_t_8);
102612   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__);
102613   __Pyx_INCREF(__pyx_t_3);
102614   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102615   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102616   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102617   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102618 
102619   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":104
102620  * AddTypeMap(FTypeDict, "f"   , __REAL__             )
102621  * AddTypeMap(FTypeDict, "d"   , __DOUBLE_PRECISION__ )
102622  * AddTypeMap(FTypeDict, "F"   , __COMPLEX__          )             # <<<<<<<<<<<<<<
102623  * AddTypeMap(FTypeDict, "D"   , __DOUBLE_COMPLEX__   )
102624  *
102625  */
102626   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102627   __Pyx_INCREF(__pyx_t_3);
102628   __pyx_t_8 = ((PyObject *)__pyx_n_s__F);
102629   __Pyx_INCREF(__pyx_t_8);
102630   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__);
102631   __Pyx_INCREF(__pyx_t_2);
102632   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102633   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102634   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102635   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102636 
102637   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":105
102638  * AddTypeMap(FTypeDict, "d"   , __DOUBLE_PRECISION__ )
102639  * AddTypeMap(FTypeDict, "F"   , __COMPLEX__          )
102640  * AddTypeMap(FTypeDict, "D"   , __DOUBLE_COMPLEX__   )             # <<<<<<<<<<<<<<
102641  *
102642  * AddTypeMap(FTypeDict, "i1"  , __INTEGER1__  )
102643  */
102644   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102645   __Pyx_INCREF(__pyx_t_2);
102646   __pyx_t_8 = ((PyObject *)__pyx_n_s__D);
102647   __Pyx_INCREF(__pyx_t_8);
102648   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__);
102649   __Pyx_INCREF(__pyx_t_3);
102650   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102651   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102652   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102653   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102654 
102655   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":107
102656  * AddTypeMap(FTypeDict, "D"   , __DOUBLE_COMPLEX__   )
102657  *
102658  * AddTypeMap(FTypeDict, "i1"  , __INTEGER1__  )             # <<<<<<<<<<<<<<
102659  * AddTypeMap(FTypeDict, "i2"  , __INTEGER2__  )
102660  * AddTypeMap(FTypeDict, "i4"  , __INTEGER4__  )
102661  */
102662   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102663   __Pyx_INCREF(__pyx_t_3);
102664   __pyx_t_8 = ((PyObject *)__pyx_n_s__i1);
102665   __Pyx_INCREF(__pyx_t_8);
102666   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER1__);
102667   __Pyx_INCREF(__pyx_t_2);
102668   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102669   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102670   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102671   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102672 
102673   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":108
102674  *
102675  * AddTypeMap(FTypeDict, "i1"  , __INTEGER1__  )
102676  * AddTypeMap(FTypeDict, "i2"  , __INTEGER2__  )             # <<<<<<<<<<<<<<
102677  * AddTypeMap(FTypeDict, "i4"  , __INTEGER4__  )
102678  * AddTypeMap(FTypeDict, "i8"  , __INTEGER8__  )
102679  */
102680   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102681   __Pyx_INCREF(__pyx_t_2);
102682   __pyx_t_8 = ((PyObject *)__pyx_n_s__i2);
102683   __Pyx_INCREF(__pyx_t_8);
102684   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER2__);
102685   __Pyx_INCREF(__pyx_t_3);
102686   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102687   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102688   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102689   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102690 
102691   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":109
102692  * AddTypeMap(FTypeDict, "i1"  , __INTEGER1__  )
102693  * AddTypeMap(FTypeDict, "i2"  , __INTEGER2__  )
102694  * AddTypeMap(FTypeDict, "i4"  , __INTEGER4__  )             # <<<<<<<<<<<<<<
102695  * AddTypeMap(FTypeDict, "i8"  , __INTEGER8__  )
102696  * AddTypeMap(FTypeDict, "i16" , __INTEGER16__ )
102697  */
102698   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102699   __Pyx_INCREF(__pyx_t_3);
102700   __pyx_t_8 = ((PyObject *)__pyx_n_s__i4);
102701   __Pyx_INCREF(__pyx_t_8);
102702   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER4__);
102703   __Pyx_INCREF(__pyx_t_2);
102704   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102705   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102706   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102707   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102708 
102709   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":110
102710  * AddTypeMap(FTypeDict, "i2"  , __INTEGER2__  )
102711  * AddTypeMap(FTypeDict, "i4"  , __INTEGER4__  )
102712  * AddTypeMap(FTypeDict, "i8"  , __INTEGER8__  )             # <<<<<<<<<<<<<<
102713  * AddTypeMap(FTypeDict, "i16" , __INTEGER16__ )
102714  *
102715  */
102716   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102717   __Pyx_INCREF(__pyx_t_2);
102718   __pyx_t_8 = ((PyObject *)__pyx_n_s__i8);
102719   __Pyx_INCREF(__pyx_t_8);
102720   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER8__);
102721   __Pyx_INCREF(__pyx_t_3);
102722   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102723   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102724   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102725   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102726 
102727   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":111
102728  * AddTypeMap(FTypeDict, "i4"  , __INTEGER4__  )
102729  * AddTypeMap(FTypeDict, "i8"  , __INTEGER8__  )
102730  * AddTypeMap(FTypeDict, "i16" , __INTEGER16__ )             # <<<<<<<<<<<<<<
102731  *
102732  * AddTypeMap(FTypeDict, "f2"  , __REAL2__     )
102733  */
102734   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102735   __Pyx_INCREF(__pyx_t_3);
102736   __pyx_t_8 = ((PyObject *)__pyx_n_s__i16);
102737   __Pyx_INCREF(__pyx_t_8);
102738   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER16__);
102739   __Pyx_INCREF(__pyx_t_2);
102740   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102741   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102742   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102743   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102744 
102745   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":113
102746  * AddTypeMap(FTypeDict, "i16" , __INTEGER16__ )
102747  *
102748  * AddTypeMap(FTypeDict, "f2"  , __REAL2__     )             # <<<<<<<<<<<<<<
102749  * AddTypeMap(FTypeDict, "f4"  , __REAL4__     )
102750  * AddTypeMap(FTypeDict, "f8"  , __REAL8__     )
102751  */
102752   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102753   __Pyx_INCREF(__pyx_t_2);
102754   __pyx_t_8 = ((PyObject *)__pyx_n_s__f2);
102755   __Pyx_INCREF(__pyx_t_8);
102756   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL2__);
102757   __Pyx_INCREF(__pyx_t_3);
102758   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102759   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102760   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102761   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102762 
102763   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":114
102764  *
102765  * AddTypeMap(FTypeDict, "f2"  , __REAL2__     )
102766  * AddTypeMap(FTypeDict, "f4"  , __REAL4__     )             # <<<<<<<<<<<<<<
102767  * AddTypeMap(FTypeDict, "f8"  , __REAL8__     )
102768  * AddTypeMap(FTypeDict, "f16" , __REAL16__    )
102769  */
102770   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102771   __Pyx_INCREF(__pyx_t_3);
102772   __pyx_t_8 = ((PyObject *)__pyx_n_s__f4);
102773   __Pyx_INCREF(__pyx_t_8);
102774   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL4__);
102775   __Pyx_INCREF(__pyx_t_2);
102776   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102777   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102778   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102779   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102780 
102781   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":115
102782  * AddTypeMap(FTypeDict, "f2"  , __REAL2__     )
102783  * AddTypeMap(FTypeDict, "f4"  , __REAL4__     )
102784  * AddTypeMap(FTypeDict, "f8"  , __REAL8__     )             # <<<<<<<<<<<<<<
102785  * AddTypeMap(FTypeDict, "f16" , __REAL16__    )
102786  *
102787  */
102788   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102789   __Pyx_INCREF(__pyx_t_2);
102790   __pyx_t_8 = ((PyObject *)__pyx_n_s__f8);
102791   __Pyx_INCREF(__pyx_t_8);
102792   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL8__);
102793   __Pyx_INCREF(__pyx_t_3);
102794   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102795   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102796   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102797   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102798 
102799   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":116
102800  * AddTypeMap(FTypeDict, "f4"  , __REAL4__     )
102801  * AddTypeMap(FTypeDict, "f8"  , __REAL8__     )
102802  * AddTypeMap(FTypeDict, "f16" , __REAL16__    )             # <<<<<<<<<<<<<<
102803  *
102804  * AddTypeMap(FTypeDict, "c4"  , __COMPLEX4__  )
102805  */
102806   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102807   __Pyx_INCREF(__pyx_t_3);
102808   __pyx_t_8 = ((PyObject *)__pyx_n_s__f16);
102809   __Pyx_INCREF(__pyx_t_8);
102810   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL16__);
102811   __Pyx_INCREF(__pyx_t_2);
102812   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102813   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102814   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102815   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102816 
102817   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":118
102818  * AddTypeMap(FTypeDict, "f16" , __REAL16__    )
102819  *
102820  * AddTypeMap(FTypeDict, "c4"  , __COMPLEX4__  )             # <<<<<<<<<<<<<<
102821  * AddTypeMap(FTypeDict, "c8"  , __COMPLEX8__  )
102822  * AddTypeMap(FTypeDict, "c16" , __COMPLEX16__ )
102823  */
102824   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102825   __Pyx_INCREF(__pyx_t_2);
102826   __pyx_t_8 = ((PyObject *)__pyx_n_s__c4);
102827   __Pyx_INCREF(__pyx_t_8);
102828   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX4__);
102829   __Pyx_INCREF(__pyx_t_3);
102830   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102831   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102832   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102833   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102834 
102835   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":119
102836  *
102837  * AddTypeMap(FTypeDict, "c4"  , __COMPLEX4__  )
102838  * AddTypeMap(FTypeDict, "c8"  , __COMPLEX8__  )             # <<<<<<<<<<<<<<
102839  * AddTypeMap(FTypeDict, "c16" , __COMPLEX16__ )
102840  * AddTypeMap(FTypeDict, "c32" , __COMPLEX32__ )
102841  */
102842   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102843   __Pyx_INCREF(__pyx_t_3);
102844   __pyx_t_8 = ((PyObject *)__pyx_n_s__c8);
102845   __Pyx_INCREF(__pyx_t_8);
102846   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__);
102847   __Pyx_INCREF(__pyx_t_2);
102848   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102849   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102850   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102851   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102852 
102853   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":120
102854  * AddTypeMap(FTypeDict, "c4"  , __COMPLEX4__  )
102855  * AddTypeMap(FTypeDict, "c8"  , __COMPLEX8__  )
102856  * AddTypeMap(FTypeDict, "c16" , __COMPLEX16__ )             # <<<<<<<<<<<<<<
102857  * AddTypeMap(FTypeDict, "c32" , __COMPLEX32__ )
102858  *
102859  */
102860   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102861   __Pyx_INCREF(__pyx_t_2);
102862   __pyx_t_8 = ((PyObject *)__pyx_n_s__c16);
102863   __Pyx_INCREF(__pyx_t_8);
102864   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__);
102865   __Pyx_INCREF(__pyx_t_3);
102866   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_2), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102867   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102868   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102869   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102870 
102871   /* "/home/devel/mpi4py-1.3/src/MPI/typemap.pxi":121
102872  * AddTypeMap(FTypeDict, "c8"  , __COMPLEX8__  )
102873  * AddTypeMap(FTypeDict, "c16" , __COMPLEX16__ )
102874  * AddTypeMap(FTypeDict, "c32" , __COMPLEX32__ )             # <<<<<<<<<<<<<<
102875  *
102876  * # -----------------------------------------------------------------------------
102877  */
102878   __pyx_t_3 = ((PyObject *)__pyx_v_6mpi4py_3MPI_FTypeDict);
102879   __Pyx_INCREF(__pyx_t_3);
102880   __pyx_t_8 = ((PyObject *)__pyx_n_s__c32);
102881   __Pyx_INCREF(__pyx_t_8);
102882   __pyx_t_2 = ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX32__);
102883   __Pyx_INCREF(__pyx_t_2);
102884   __pyx_t_1 = __pyx_f_6mpi4py_3MPI_AddTypeMap(((PyObject*)__pyx_t_3), __pyx_t_8, ((struct PyMPIDatatypeObject *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102885   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
102886   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
102887   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
102888 
102889   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":817
102890  * # ---------------------------
102891  *
102892  * DATATYPE_NULL = __DATATYPE_NULL__ #: Null datatype handle             # <<<<<<<<<<<<<<
102893  * # Deprecated datatypes (since MPI-2)
102894  * UB = __UB__ #: upper-bound marker
102895  */
102896   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DATATYPE_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___DATATYPE_NULL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102897 
102898   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":819
102899  * DATATYPE_NULL = __DATATYPE_NULL__ #: Null datatype handle
102900  * # Deprecated datatypes (since MPI-2)
102901  * UB = __UB__ #: upper-bound marker             # <<<<<<<<<<<<<<
102902  * LB = __LB__ #: lower-bound marker
102903  * # MPI-specific datatypes
102904  */
102905   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UB, ((PyObject *)__pyx_v_6mpi4py_3MPI___UB__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102906 
102907   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":820
102908  * # Deprecated datatypes (since MPI-2)
102909  * UB = __UB__ #: upper-bound marker
102910  * LB = __LB__ #: lower-bound marker             # <<<<<<<<<<<<<<
102911  * # MPI-specific datatypes
102912  * PACKED = __PACKED__
102913  */
102914   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LB, ((PyObject *)__pyx_v_6mpi4py_3MPI___LB__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102915 
102916   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":822
102917  * LB = __LB__ #: lower-bound marker
102918  * # MPI-specific datatypes
102919  * PACKED = __PACKED__             # <<<<<<<<<<<<<<
102920  * BYTE   = __BYTE__
102921  * AINT   = __AINT__
102922  */
102923   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PACKED, ((PyObject *)__pyx_v_6mpi4py_3MPI___PACKED__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102924 
102925   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":823
102926  * # MPI-specific datatypes
102927  * PACKED = __PACKED__
102928  * BYTE   = __BYTE__             # <<<<<<<<<<<<<<
102929  * AINT   = __AINT__
102930  * OFFSET = __OFFSET__
102931  */
102932   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BYTE, ((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102933 
102934   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":824
102935  * PACKED = __PACKED__
102936  * BYTE   = __BYTE__
102937  * AINT   = __AINT__             # <<<<<<<<<<<<<<
102938  * OFFSET = __OFFSET__
102939  * # Elementary C datatypes
102940  */
102941   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__AINT, ((PyObject *)__pyx_v_6mpi4py_3MPI___AINT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102942 
102943   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":825
102944  * BYTE   = __BYTE__
102945  * AINT   = __AINT__
102946  * OFFSET = __OFFSET__             # <<<<<<<<<<<<<<
102947  * # Elementary C datatypes
102948  * CHAR                = __CHAR__
102949  */
102950   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__OFFSET, ((PyObject *)__pyx_v_6mpi4py_3MPI___OFFSET__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102951 
102952   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":827
102953  * OFFSET = __OFFSET__
102954  * # Elementary C datatypes
102955  * CHAR                = __CHAR__             # <<<<<<<<<<<<<<
102956  * WCHAR               = __WCHAR__
102957  * SIGNED_CHAR         = __SIGNED_CHAR__
102958  */
102959   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__CHAR, ((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102960 
102961   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":828
102962  * # Elementary C datatypes
102963  * CHAR                = __CHAR__
102964  * WCHAR               = __WCHAR__             # <<<<<<<<<<<<<<
102965  * SIGNED_CHAR         = __SIGNED_CHAR__
102966  * SHORT               = __SHORT__
102967  */
102968   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WCHAR, ((PyObject *)__pyx_v_6mpi4py_3MPI___WCHAR__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102969 
102970   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":829
102971  * CHAR                = __CHAR__
102972  * WCHAR               = __WCHAR__
102973  * SIGNED_CHAR         = __SIGNED_CHAR__             # <<<<<<<<<<<<<<
102974  * SHORT               = __SHORT__
102975  * INT                 = __INT__
102976  */
102977   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIGNED_CHAR, ((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102978 
102979   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":830
102980  * WCHAR               = __WCHAR__
102981  * SIGNED_CHAR         = __SIGNED_CHAR__
102982  * SHORT               = __SHORT__             # <<<<<<<<<<<<<<
102983  * INT                 = __INT__
102984  * LONG                = __LONG__
102985  */
102986   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SHORT, ((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102987 
102988   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":831
102989  * SIGNED_CHAR         = __SIGNED_CHAR__
102990  * SHORT               = __SHORT__
102991  * INT                 = __INT__             # <<<<<<<<<<<<<<
102992  * LONG                = __LONG__
102993  * LONG_LONG           = __LONG_LONG__
102994  */
102995   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
102996 
102997   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":832
102998  * SHORT               = __SHORT__
102999  * INT                 = __INT__
103000  * LONG                = __LONG__             # <<<<<<<<<<<<<<
103001  * LONG_LONG           = __LONG_LONG__
103002  * UNSIGNED_CHAR       = __UNSIGNED_CHAR__
103003  */
103004   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103005 
103006   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":833
103007  * INT                 = __INT__
103008  * LONG                = __LONG__
103009  * LONG_LONG           = __LONG_LONG__             # <<<<<<<<<<<<<<
103010  * UNSIGNED_CHAR       = __UNSIGNED_CHAR__
103011  * UNSIGNED_SHORT      = __UNSIGNED_SHORT__
103012  */
103013   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LONG_LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103014 
103015   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":834
103016  * LONG                = __LONG__
103017  * LONG_LONG           = __LONG_LONG__
103018  * UNSIGNED_CHAR       = __UNSIGNED_CHAR__             # <<<<<<<<<<<<<<
103019  * UNSIGNED_SHORT      = __UNSIGNED_SHORT__
103020  * UNSIGNED            = __UNSIGNED__
103021  */
103022   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED_CHAR, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103023 
103024   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":835
103025  * LONG_LONG           = __LONG_LONG__
103026  * UNSIGNED_CHAR       = __UNSIGNED_CHAR__
103027  * UNSIGNED_SHORT      = __UNSIGNED_SHORT__             # <<<<<<<<<<<<<<
103028  * UNSIGNED            = __UNSIGNED__
103029  * UNSIGNED_LONG       = __UNSIGNED_LONG__
103030  */
103031   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED_SHORT, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103032 
103033   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":836
103034  * UNSIGNED_CHAR       = __UNSIGNED_CHAR__
103035  * UNSIGNED_SHORT      = __UNSIGNED_SHORT__
103036  * UNSIGNED            = __UNSIGNED__             # <<<<<<<<<<<<<<
103037  * UNSIGNED_LONG       = __UNSIGNED_LONG__
103038  * UNSIGNED_LONG_LONG  = __UNSIGNED_LONG_LONG__
103039  */
103040   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103041 
103042   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":837
103043  * UNSIGNED_SHORT      = __UNSIGNED_SHORT__
103044  * UNSIGNED            = __UNSIGNED__
103045  * UNSIGNED_LONG       = __UNSIGNED_LONG__             # <<<<<<<<<<<<<<
103046  * UNSIGNED_LONG_LONG  = __UNSIGNED_LONG_LONG__
103047  * FLOAT               = __FLOAT__
103048  */
103049   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED_LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103050 
103051   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":838
103052  * UNSIGNED            = __UNSIGNED__
103053  * UNSIGNED_LONG       = __UNSIGNED_LONG__
103054  * UNSIGNED_LONG_LONG  = __UNSIGNED_LONG_LONG__             # <<<<<<<<<<<<<<
103055  * FLOAT               = __FLOAT__
103056  * DOUBLE              = __DOUBLE__
103057  */
103058   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED_LONG_LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103059 
103060   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":839
103061  * UNSIGNED_LONG       = __UNSIGNED_LONG__
103062  * UNSIGNED_LONG_LONG  = __UNSIGNED_LONG_LONG__
103063  * FLOAT               = __FLOAT__             # <<<<<<<<<<<<<<
103064  * DOUBLE              = __DOUBLE__
103065  * LONG_DOUBLE         = __LONG_DOUBLE__
103066  */
103067   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FLOAT, ((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103068 
103069   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":840
103070  * UNSIGNED_LONG_LONG  = __UNSIGNED_LONG_LONG__
103071  * FLOAT               = __FLOAT__
103072  * DOUBLE              = __DOUBLE__             # <<<<<<<<<<<<<<
103073  * LONG_DOUBLE         = __LONG_DOUBLE__
103074  * # C99 datatypes
103075  */
103076   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DOUBLE, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103077 
103078   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":841
103079  * FLOAT               = __FLOAT__
103080  * DOUBLE              = __DOUBLE__
103081  * LONG_DOUBLE         = __LONG_DOUBLE__             # <<<<<<<<<<<<<<
103082  * # C99 datatypes
103083  * C_BOOL                = __C_BOOL__
103084  */
103085   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LONG_DOUBLE, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103086 
103087   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":843
103088  * LONG_DOUBLE         = __LONG_DOUBLE__
103089  * # C99 datatypes
103090  * C_BOOL                = __C_BOOL__             # <<<<<<<<<<<<<<
103091  * INT8_T                = __INT8_T__
103092  * INT16_T               = __INT16_T__
103093  */
103094   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__C_BOOL, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103095 
103096   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":844
103097  * # C99 datatypes
103098  * C_BOOL                = __C_BOOL__
103099  * INT8_T                = __INT8_T__             # <<<<<<<<<<<<<<
103100  * INT16_T               = __INT16_T__
103101  * INT32_T               = __INT32_T__
103102  */
103103   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT8_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103104 
103105   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":845
103106  * C_BOOL                = __C_BOOL__
103107  * INT8_T                = __INT8_T__
103108  * INT16_T               = __INT16_T__             # <<<<<<<<<<<<<<
103109  * INT32_T               = __INT32_T__
103110  * INT64_T               = __INT64_T__
103111  */
103112   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT16_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103113 
103114   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":846
103115  * INT8_T                = __INT8_T__
103116  * INT16_T               = __INT16_T__
103117  * INT32_T               = __INT32_T__             # <<<<<<<<<<<<<<
103118  * INT64_T               = __INT64_T__
103119  * UINT8_T               = __UINT8_T__
103120  */
103121   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT32_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103122 
103123   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":847
103124  * INT16_T               = __INT16_T__
103125  * INT32_T               = __INT32_T__
103126  * INT64_T               = __INT64_T__             # <<<<<<<<<<<<<<
103127  * UINT8_T               = __UINT8_T__
103128  * UINT16_T              = __UINT16_T__
103129  */
103130   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT64_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103131 
103132   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":848
103133  * INT32_T               = __INT32_T__
103134  * INT64_T               = __INT64_T__
103135  * UINT8_T               = __UINT8_T__             # <<<<<<<<<<<<<<
103136  * UINT16_T              = __UINT16_T__
103137  * UINT32_T              = __UINT32_T__
103138  */
103139   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UINT8_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT8_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103140 
103141   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":849
103142  * INT64_T               = __INT64_T__
103143  * UINT8_T               = __UINT8_T__
103144  * UINT16_T              = __UINT16_T__             # <<<<<<<<<<<<<<
103145  * UINT32_T              = __UINT32_T__
103146  * UINT64_T              = __UINT64_T__
103147  */
103148   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UINT16_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT16_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103149 
103150   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":850
103151  * UINT8_T               = __UINT8_T__
103152  * UINT16_T              = __UINT16_T__
103153  * UINT32_T              = __UINT32_T__             # <<<<<<<<<<<<<<
103154  * UINT64_T              = __UINT64_T__
103155  * C_COMPLEX             = __C_COMPLEX__
103156  */
103157   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UINT32_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT32_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103158 
103159   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":851
103160  * UINT16_T              = __UINT16_T__
103161  * UINT32_T              = __UINT32_T__
103162  * UINT64_T              = __UINT64_T__             # <<<<<<<<<<<<<<
103163  * C_COMPLEX             = __C_COMPLEX__
103164  * C_FLOAT_COMPLEX       = __C_FLOAT_COMPLEX__
103165  */
103166   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UINT64_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___UINT64_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103167 
103168   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":852
103169  * UINT32_T              = __UINT32_T__
103170  * UINT64_T              = __UINT64_T__
103171  * C_COMPLEX             = __C_COMPLEX__             # <<<<<<<<<<<<<<
103172  * C_FLOAT_COMPLEX       = __C_FLOAT_COMPLEX__
103173  * C_DOUBLE_COMPLEX      = __C_DOUBLE_COMPLEX__
103174  */
103175   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__C_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103176 
103177   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":853
103178  * UINT64_T              = __UINT64_T__
103179  * C_COMPLEX             = __C_COMPLEX__
103180  * C_FLOAT_COMPLEX       = __C_FLOAT_COMPLEX__             # <<<<<<<<<<<<<<
103181  * C_DOUBLE_COMPLEX      = __C_DOUBLE_COMPLEX__
103182  * C_LONG_DOUBLE_COMPLEX = __C_LONG_DOUBLE_COMPLEX__
103183  */
103184   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__C_FLOAT_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103185 
103186   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":854
103187  * C_COMPLEX             = __C_COMPLEX__
103188  * C_FLOAT_COMPLEX       = __C_FLOAT_COMPLEX__
103189  * C_DOUBLE_COMPLEX      = __C_DOUBLE_COMPLEX__             # <<<<<<<<<<<<<<
103190  * C_LONG_DOUBLE_COMPLEX = __C_LONG_DOUBLE_COMPLEX__
103191  * # C Datatypes for reduction operations
103192  */
103193   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__C_DOUBLE_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103194 
103195   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":855
103196  * C_FLOAT_COMPLEX       = __C_FLOAT_COMPLEX__
103197  * C_DOUBLE_COMPLEX      = __C_DOUBLE_COMPLEX__
103198  * C_LONG_DOUBLE_COMPLEX = __C_LONG_DOUBLE_COMPLEX__             # <<<<<<<<<<<<<<
103199  * # C Datatypes for reduction operations
103200  * SHORT_INT        = __SHORT_INT__
103201  */
103202   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_163, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103203 
103204   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":857
103205  * C_LONG_DOUBLE_COMPLEX = __C_LONG_DOUBLE_COMPLEX__
103206  * # C Datatypes for reduction operations
103207  * SHORT_INT        = __SHORT_INT__             # <<<<<<<<<<<<<<
103208  * INT_INT = TWOINT = __TWOINT__
103209  * LONG_INT         = __LONG_INT__
103210  */
103211   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SHORT_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT_INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103212 
103213   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":858
103214  * # C Datatypes for reduction operations
103215  * SHORT_INT        = __SHORT_INT__
103216  * INT_INT = TWOINT = __TWOINT__             # <<<<<<<<<<<<<<
103217  * LONG_INT         = __LONG_INT__
103218  * FLOAT_INT        = __FLOAT_INT__
103219  */
103220   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INT_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___TWOINT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103221   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TWOINT, ((PyObject *)__pyx_v_6mpi4py_3MPI___TWOINT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103222 
103223   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":859
103224  * SHORT_INT        = __SHORT_INT__
103225  * INT_INT = TWOINT = __TWOINT__
103226  * LONG_INT         = __LONG_INT__             # <<<<<<<<<<<<<<
103227  * FLOAT_INT        = __FLOAT_INT__
103228  * DOUBLE_INT       = __DOUBLE_INT__
103229  */
103230   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LONG_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103231 
103232   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":860
103233  * INT_INT = TWOINT = __TWOINT__
103234  * LONG_INT         = __LONG_INT__
103235  * FLOAT_INT        = __FLOAT_INT__             # <<<<<<<<<<<<<<
103236  * DOUBLE_INT       = __DOUBLE_INT__
103237  * LONG_DOUBLE_INT  = __LONG_DOUBLE_INT__
103238  */
103239   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FLOAT_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT_INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103240 
103241   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":861
103242  * LONG_INT         = __LONG_INT__
103243  * FLOAT_INT        = __FLOAT_INT__
103244  * DOUBLE_INT       = __DOUBLE_INT__             # <<<<<<<<<<<<<<
103245  * LONG_DOUBLE_INT  = __LONG_DOUBLE_INT__
103246  * # Elementary Fortran datatypes
103247  */
103248   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DOUBLE_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103249 
103250   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":862
103251  * FLOAT_INT        = __FLOAT_INT__
103252  * DOUBLE_INT       = __DOUBLE_INT__
103253  * LONG_DOUBLE_INT  = __LONG_DOUBLE_INT__             # <<<<<<<<<<<<<<
103254  * # Elementary Fortran datatypes
103255  * CHARACTER        = __CHARACTER__
103256  */
103257   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LONG_DOUBLE_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103258 
103259   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":864
103260  * LONG_DOUBLE_INT  = __LONG_DOUBLE_INT__
103261  * # Elementary Fortran datatypes
103262  * CHARACTER        = __CHARACTER__             # <<<<<<<<<<<<<<
103263  * LOGICAL          = __LOGICAL__
103264  * INTEGER          = __INTEGER__
103265  */
103266   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__CHARACTER, ((PyObject *)__pyx_v_6mpi4py_3MPI___CHARACTER__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103267 
103268   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":865
103269  * # Elementary Fortran datatypes
103270  * CHARACTER        = __CHARACTER__
103271  * LOGICAL          = __LOGICAL__             # <<<<<<<<<<<<<<
103272  * INTEGER          = __INTEGER__
103273  * REAL             = __REAL__
103274  */
103275   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOGICAL, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103276 
103277   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":866
103278  * CHARACTER        = __CHARACTER__
103279  * LOGICAL          = __LOGICAL__
103280  * INTEGER          = __INTEGER__             # <<<<<<<<<<<<<<
103281  * REAL             = __REAL__
103282  * DOUBLE_PRECISION = __DOUBLE_PRECISION__
103283  */
103284   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103285 
103286   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":867
103287  * LOGICAL          = __LOGICAL__
103288  * INTEGER          = __INTEGER__
103289  * REAL             = __REAL__             # <<<<<<<<<<<<<<
103290  * DOUBLE_PRECISION = __DOUBLE_PRECISION__
103291  * COMPLEX          = __COMPLEX__
103292  */
103293   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REAL, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103294 
103295   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":868
103296  * INTEGER          = __INTEGER__
103297  * REAL             = __REAL__
103298  * DOUBLE_PRECISION = __DOUBLE_PRECISION__             # <<<<<<<<<<<<<<
103299  * COMPLEX          = __COMPLEX__
103300  * DOUBLE_COMPLEX   = __DOUBLE_COMPLEX__
103301  */
103302   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DOUBLE_PRECISION, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103303 
103304   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":869
103305  * REAL             = __REAL__
103306  * DOUBLE_PRECISION = __DOUBLE_PRECISION__
103307  * COMPLEX          = __COMPLEX__             # <<<<<<<<<<<<<<
103308  * DOUBLE_COMPLEX   = __DOUBLE_COMPLEX__
103309  * # Size-specific Fortran datatypes
103310  */
103311   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103312 
103313   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":870
103314  * DOUBLE_PRECISION = __DOUBLE_PRECISION__
103315  * COMPLEX          = __COMPLEX__
103316  * DOUBLE_COMPLEX   = __DOUBLE_COMPLEX__             # <<<<<<<<<<<<<<
103317  * # Size-specific Fortran datatypes
103318  * LOGICAL1  = __LOGICAL1__
103319  */
103320   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DOUBLE_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103321 
103322   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":872
103323  * DOUBLE_COMPLEX   = __DOUBLE_COMPLEX__
103324  * # Size-specific Fortran datatypes
103325  * LOGICAL1  = __LOGICAL1__             # <<<<<<<<<<<<<<
103326  * LOGICAL2  = __LOGICAL2__
103327  * LOGICAL4  = __LOGICAL4__
103328  */
103329   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOGICAL1, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL1__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103330 
103331   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":873
103332  * # Size-specific Fortran datatypes
103333  * LOGICAL1  = __LOGICAL1__
103334  * LOGICAL2  = __LOGICAL2__             # <<<<<<<<<<<<<<
103335  * LOGICAL4  = __LOGICAL4__
103336  * LOGICAL8  = __LOGICAL8__
103337  */
103338   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOGICAL2, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL2__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103339 
103340   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":874
103341  * LOGICAL1  = __LOGICAL1__
103342  * LOGICAL2  = __LOGICAL2__
103343  * LOGICAL4  = __LOGICAL4__             # <<<<<<<<<<<<<<
103344  * LOGICAL8  = __LOGICAL8__
103345  * INTEGER1  = __INTEGER1__
103346  */
103347   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOGICAL4, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL4__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103348 
103349   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":875
103350  * LOGICAL2  = __LOGICAL2__
103351  * LOGICAL4  = __LOGICAL4__
103352  * LOGICAL8  = __LOGICAL8__             # <<<<<<<<<<<<<<
103353  * INTEGER1  = __INTEGER1__
103354  * INTEGER2  = __INTEGER2__
103355  */
103356   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOGICAL8, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL8__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103357 
103358   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":876
103359  * LOGICAL4  = __LOGICAL4__
103360  * LOGICAL8  = __LOGICAL8__
103361  * INTEGER1  = __INTEGER1__             # <<<<<<<<<<<<<<
103362  * INTEGER2  = __INTEGER2__
103363  * INTEGER4  = __INTEGER4__
103364  */
103365   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER1, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER1__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103366 
103367   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":877
103368  * LOGICAL8  = __LOGICAL8__
103369  * INTEGER1  = __INTEGER1__
103370  * INTEGER2  = __INTEGER2__             # <<<<<<<<<<<<<<
103371  * INTEGER4  = __INTEGER4__
103372  * INTEGER8  = __INTEGER8__
103373  */
103374   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER2, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER2__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103375 
103376   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":878
103377  * INTEGER1  = __INTEGER1__
103378  * INTEGER2  = __INTEGER2__
103379  * INTEGER4  = __INTEGER4__             # <<<<<<<<<<<<<<
103380  * INTEGER8  = __INTEGER8__
103381  * INTEGER16 = __INTEGER16__
103382  */
103383   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER4, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER4__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103384 
103385   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":879
103386  * INTEGER2  = __INTEGER2__
103387  * INTEGER4  = __INTEGER4__
103388  * INTEGER8  = __INTEGER8__             # <<<<<<<<<<<<<<
103389  * INTEGER16 = __INTEGER16__
103390  * REAL2     = __REAL2__
103391  */
103392   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER8, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER8__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103393 
103394   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":880
103395  * INTEGER4  = __INTEGER4__
103396  * INTEGER8  = __INTEGER8__
103397  * INTEGER16 = __INTEGER16__             # <<<<<<<<<<<<<<
103398  * REAL2     = __REAL2__
103399  * REAL4     = __REAL4__
103400  */
103401   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INTEGER16, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER16__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103402 
103403   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":881
103404  * INTEGER8  = __INTEGER8__
103405  * INTEGER16 = __INTEGER16__
103406  * REAL2     = __REAL2__             # <<<<<<<<<<<<<<
103407  * REAL4     = __REAL4__
103408  * REAL8     = __REAL8__
103409  */
103410   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REAL2, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL2__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103411 
103412   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":882
103413  * INTEGER16 = __INTEGER16__
103414  * REAL2     = __REAL2__
103415  * REAL4     = __REAL4__             # <<<<<<<<<<<<<<
103416  * REAL8     = __REAL8__
103417  * REAL16    = __REAL16__
103418  */
103419   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REAL4, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL4__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103420 
103421   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":883
103422  * REAL2     = __REAL2__
103423  * REAL4     = __REAL4__
103424  * REAL8     = __REAL8__             # <<<<<<<<<<<<<<
103425  * REAL16    = __REAL16__
103426  * COMPLEX4  = __COMPLEX4__
103427  */
103428   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REAL8, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL8__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103429 
103430   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":884
103431  * REAL4     = __REAL4__
103432  * REAL8     = __REAL8__
103433  * REAL16    = __REAL16__             # <<<<<<<<<<<<<<
103434  * COMPLEX4  = __COMPLEX4__
103435  * COMPLEX8  = __COMPLEX8__
103436  */
103437   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REAL16, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL16__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103438 
103439   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":885
103440  * REAL8     = __REAL8__
103441  * REAL16    = __REAL16__
103442  * COMPLEX4  = __COMPLEX4__             # <<<<<<<<<<<<<<
103443  * COMPLEX8  = __COMPLEX8__
103444  * COMPLEX16 = __COMPLEX16__
103445  */
103446   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMPLEX4, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX4__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103447 
103448   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":886
103449  * REAL16    = __REAL16__
103450  * COMPLEX4  = __COMPLEX4__
103451  * COMPLEX8  = __COMPLEX8__             # <<<<<<<<<<<<<<
103452  * COMPLEX16 = __COMPLEX16__
103453  * COMPLEX32 = __COMPLEX32__
103454  */
103455   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMPLEX8, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103456 
103457   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":887
103458  * COMPLEX4  = __COMPLEX4__
103459  * COMPLEX8  = __COMPLEX8__
103460  * COMPLEX16 = __COMPLEX16__             # <<<<<<<<<<<<<<
103461  * COMPLEX32 = __COMPLEX32__
103462  *
103463  */
103464   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMPLEX16, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103465 
103466   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":888
103467  * COMPLEX8  = __COMPLEX8__
103468  * COMPLEX16 = __COMPLEX16__
103469  * COMPLEX32 = __COMPLEX32__             # <<<<<<<<<<<<<<
103470  *
103471  *
103472  */
103473   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMPLEX32, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX32__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103474 
103475   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":892
103476  *
103477  * # Convenience aliases
103478  * UNSIGNED_INT          = __UNSIGNED__             # <<<<<<<<<<<<<<
103479  * SIGNED_SHORT          = __SHORT__
103480  * SIGNED_INT            = __INT__
103481  */
103482   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNSIGNED_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103483 
103484   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":893
103485  * # Convenience aliases
103486  * UNSIGNED_INT          = __UNSIGNED__
103487  * SIGNED_SHORT          = __SHORT__             # <<<<<<<<<<<<<<
103488  * SIGNED_INT            = __INT__
103489  * SIGNED_LONG           = __LONG__
103490  */
103491   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIGNED_SHORT, ((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103492 
103493   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":894
103494  * UNSIGNED_INT          = __UNSIGNED__
103495  * SIGNED_SHORT          = __SHORT__
103496  * SIGNED_INT            = __INT__             # <<<<<<<<<<<<<<
103497  * SIGNED_LONG           = __LONG__
103498  * SIGNED_LONG_LONG      = __LONG_LONG__
103499  */
103500   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIGNED_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103501 
103502   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":895
103503  * SIGNED_SHORT          = __SHORT__
103504  * SIGNED_INT            = __INT__
103505  * SIGNED_LONG           = __LONG__             # <<<<<<<<<<<<<<
103506  * SIGNED_LONG_LONG      = __LONG_LONG__
103507  * BOOL                  = __C_BOOL__
103508  */
103509   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIGNED_LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103510 
103511   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":896
103512  * SIGNED_INT            = __INT__
103513  * SIGNED_LONG           = __LONG__
103514  * SIGNED_LONG_LONG      = __LONG_LONG__             # <<<<<<<<<<<<<<
103515  * BOOL                  = __C_BOOL__
103516  * SINT8_T               = __INT8_T__
103517  */
103518   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIGNED_LONG_LONG, ((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103519 
103520   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":897
103521  * SIGNED_LONG           = __LONG__
103522  * SIGNED_LONG_LONG      = __LONG_LONG__
103523  * BOOL                  = __C_BOOL__             # <<<<<<<<<<<<<<
103524  * SINT8_T               = __INT8_T__
103525  * SINT16_T              = __INT16_T__
103526  */
103527   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BOOL, ((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103528 
103529   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":898
103530  * SIGNED_LONG_LONG      = __LONG_LONG__
103531  * BOOL                  = __C_BOOL__
103532  * SINT8_T               = __INT8_T__             # <<<<<<<<<<<<<<
103533  * SINT16_T              = __INT16_T__
103534  * SINT32_T              = __INT32_T__
103535  */
103536   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SINT8_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103537 
103538   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":899
103539  * BOOL                  = __C_BOOL__
103540  * SINT8_T               = __INT8_T__
103541  * SINT16_T              = __INT16_T__             # <<<<<<<<<<<<<<
103542  * SINT32_T              = __INT32_T__
103543  * SINT64_T              = __INT64_T__
103544  */
103545   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SINT16_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103546 
103547   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":900
103548  * SINT8_T               = __INT8_T__
103549  * SINT16_T              = __INT16_T__
103550  * SINT32_T              = __INT32_T__             # <<<<<<<<<<<<<<
103551  * SINT64_T              = __INT64_T__
103552  * F_BOOL                = __LOGICAL__
103553  */
103554   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SINT32_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103555 
103556   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":901
103557  * SINT16_T              = __INT16_T__
103558  * SINT32_T              = __INT32_T__
103559  * SINT64_T              = __INT64_T__             # <<<<<<<<<<<<<<
103560  * F_BOOL                = __LOGICAL__
103561  * F_INT                 = __INTEGER__
103562  */
103563   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SINT64_T, ((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103564 
103565   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":902
103566  * SINT32_T              = __INT32_T__
103567  * SINT64_T              = __INT64_T__
103568  * F_BOOL                = __LOGICAL__             # <<<<<<<<<<<<<<
103569  * F_INT                 = __INTEGER__
103570  * F_FLOAT               = __REAL__
103571  */
103572   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_BOOL, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103573 
103574   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":903
103575  * SINT64_T              = __INT64_T__
103576  * F_BOOL                = __LOGICAL__
103577  * F_INT                 = __INTEGER__             # <<<<<<<<<<<<<<
103578  * F_FLOAT               = __REAL__
103579  * F_DOUBLE              = __DOUBLE_PRECISION__
103580  */
103581   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_INT, ((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103582 
103583   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":904
103584  * F_BOOL                = __LOGICAL__
103585  * F_INT                 = __INTEGER__
103586  * F_FLOAT               = __REAL__             # <<<<<<<<<<<<<<
103587  * F_DOUBLE              = __DOUBLE_PRECISION__
103588  * F_COMPLEX             = __COMPLEX__
103589  */
103590   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_FLOAT, ((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103591 
103592   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":905
103593  * F_INT                 = __INTEGER__
103594  * F_FLOAT               = __REAL__
103595  * F_DOUBLE              = __DOUBLE_PRECISION__             # <<<<<<<<<<<<<<
103596  * F_COMPLEX             = __COMPLEX__
103597  * F_FLOAT_COMPLEX       = __COMPLEX__
103598  */
103599   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_DOUBLE, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103600 
103601   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":906
103602  * F_FLOAT               = __REAL__
103603  * F_DOUBLE              = __DOUBLE_PRECISION__
103604  * F_COMPLEX             = __COMPLEX__             # <<<<<<<<<<<<<<
103605  * F_FLOAT_COMPLEX       = __COMPLEX__
103606  * F_DOUBLE_COMPLEX      = __DOUBLE_COMPLEX__
103607  */
103608   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103609 
103610   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":907
103611  * F_DOUBLE              = __DOUBLE_PRECISION__
103612  * F_COMPLEX             = __COMPLEX__
103613  * F_FLOAT_COMPLEX       = __COMPLEX__             # <<<<<<<<<<<<<<
103614  * F_DOUBLE_COMPLEX      = __DOUBLE_COMPLEX__
103615  */
103616   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_FLOAT_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103617 
103618   /* "/home/devel/mpi4py-1.3/src/MPI/Datatype.pyx":908
103619  * F_COMPLEX             = __COMPLEX__
103620  * F_FLOAT_COMPLEX       = __COMPLEX__
103621  * F_DOUBLE_COMPLEX      = __DOUBLE_COMPLEX__             # <<<<<<<<<<<<<<
103622  */
103623   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__F_DOUBLE_COMPLEX, ((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__)) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103624 
103625   /* "/home/devel/mpi4py-1.3/src/MPI/Status.pyx":79
103626  *             self.Set_error(value)
103627  *
103628  *     def Get_count(self, Datatype datatype not None=BYTE):             # <<<<<<<<<<<<<<
103629  *         """
103630  *         Get the number of *top level* elements
103631  */
103632   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__BYTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103633   __Pyx_GOTREF(__pyx_t_2);
103634   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Datatype))))) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103635   __pyx_k_61 = ((struct PyMPIDatatypeObject *)__pyx_t_2);
103636   __Pyx_GIVEREF(__pyx_t_2);
103637   __pyx_t_2 = 0;
103638 
103639   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":73
103640  *
103641  *     @classmethod
103642  *     def Waitany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
103643  *         """
103644  *         Wait for any previously initiated request to complete
103645  */
103646   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Waitany); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103647   __Pyx_GOTREF(__pyx_t_2);
103648   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103649   __Pyx_GOTREF(__pyx_t_8);
103650   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103651   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Waitany, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103652   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103653   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103654 
103655   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":91
103656  *
103657  *     @classmethod
103658  *     def Testany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
103659  *         """
103660  *         Test for completion of any previously initiated request
103661  */
103662   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Testany); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103663   __Pyx_GOTREF(__pyx_t_8);
103664   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103665   __Pyx_GOTREF(__pyx_t_2);
103666   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103667   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Testany, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103668   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103669   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103670 
103671   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":111
103672  *
103673  *     @classmethod
103674  *     def Waitall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103675  *         """
103676  *         Wait for all previously initiated requests to complete
103677  */
103678   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Waitall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103679   __Pyx_GOTREF(__pyx_t_2);
103680   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103681   __Pyx_GOTREF(__pyx_t_8);
103682   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103683   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Waitall, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103684   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103685   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103686 
103687   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":129
103688  *
103689  *     @classmethod
103690  *     def Testall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103691  *         """
103692  *         Test for completion of all previously initiated requests
103693  */
103694   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Testall); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103695   __Pyx_GOTREF(__pyx_t_8);
103696   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103697   __Pyx_GOTREF(__pyx_t_2);
103698   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103699   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Testall, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103700   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103701   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103702 
103703   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":148
103704  *
103705  *     @classmethod
103706  *     def Waitsome(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103707  *         """
103708  *         Wait for some previously initiated requests to complete
103709  */
103710   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Waitsome); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103711   __Pyx_GOTREF(__pyx_t_2);
103712   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103713   __Pyx_GOTREF(__pyx_t_8);
103714   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103715   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Waitsome, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103716   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103717   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103718 
103719   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":173
103720  *
103721  *     @classmethod
103722  *     def Testsome(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103723  *         """
103724  *         Test for completion of some previously initiated requests
103725  */
103726   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__Testsome); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103727   __Pyx_GOTREF(__pyx_t_8);
103728   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103729   __Pyx_GOTREF(__pyx_t_2);
103730   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103731   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__Testsome, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103732   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103733   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103734 
103735   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":215
103736  *
103737  *     @classmethod
103738  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
103739  *         """
103740  *         """
103741  */
103742   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103743   __Pyx_GOTREF(__pyx_t_2);
103744   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103745   __Pyx_GOTREF(__pyx_t_8);
103746   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103747   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103748   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103749   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103750 
103751   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":241
103752  *     #
103753  *     @classmethod
103754  *     def waitany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
103755  *         """
103756  *         Wait for any previously initiated request to complete
103757  */
103758   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__waitany); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103759   __Pyx_GOTREF(__pyx_t_8);
103760   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103761   __Pyx_GOTREF(__pyx_t_2);
103762   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103763   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__waitany, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103764   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103765   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103766 
103767   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":250
103768  *     #
103769  *     @classmethod
103770  *     def testany(cls, requests, Status status=None):             # <<<<<<<<<<<<<<
103771  *         """
103772  *         Test for completion of any previously initiated request
103773  */
103774   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__testany); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103775   __Pyx_GOTREF(__pyx_t_2);
103776   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103777   __Pyx_GOTREF(__pyx_t_8);
103778   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103779   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__testany, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103780   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103781   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103782 
103783   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":260
103784  *     #
103785  *     @classmethod
103786  *     def waitall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103787  *         """
103788  *         Wait for all previously initiated requests to complete
103789  */
103790   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__waitall); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103791   __Pyx_GOTREF(__pyx_t_8);
103792   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103793   __Pyx_GOTREF(__pyx_t_2);
103794   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103795   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__waitall, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103796   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103797   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103798 
103799   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":268
103800  *     #
103801  *     @classmethod
103802  *     def testall(cls, requests, statuses=None):             # <<<<<<<<<<<<<<
103803  *         """
103804  *         Test for completion of all previously initiated requests
103805  */
103806   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request, __pyx_n_s__testall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103807   __Pyx_GOTREF(__pyx_t_2);
103808   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103809   __Pyx_GOTREF(__pyx_t_8);
103810   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103811   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Request->tp_dict, __pyx_n_s__testall, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103812   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103813   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Request);
103814 
103815   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":294
103816  *
103817  *     @classmethod
103818  *     def Startall(cls, requests):             # <<<<<<<<<<<<<<
103819  *         """
103820  *         Start a collection of persistent requests
103821  */
103822   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Prequest, __pyx_n_s__Startall); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103823   __Pyx_GOTREF(__pyx_t_8);
103824   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103825   __Pyx_GOTREF(__pyx_t_2);
103826   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103827   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Prequest->tp_dict, __pyx_n_s__Startall, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103828   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103829   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Prequest);
103830 
103831   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":321
103832  *
103833  *     @classmethod
103834  *     def Start(cls, query_fn, free_fn, cancel_fn,             # <<<<<<<<<<<<<<
103835  *               args=None, kargs=None):
103836  *         """
103837  */
103838   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Grequest, __pyx_n_s__Start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103839   __Pyx_GOTREF(__pyx_t_2);
103840   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103841   __Pyx_GOTREF(__pyx_t_8);
103842   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103843   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Grequest->tp_dict, __pyx_n_s__Start, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103844   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103845   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Grequest);
103846 
103847   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":350
103848  *
103849  *
103850  * cdef Request __REQUEST_NULL__ = new_Request(MPI_REQUEST_NULL)             # <<<<<<<<<<<<<<
103851  *
103852  *
103853  */
103854   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Request(MPI_REQUEST_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103855   __Pyx_GOTREF(__pyx_t_8);
103856   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REQUEST_NULL__));
103857   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REQUEST_NULL__));
103858   __Pyx_GIVEREF(__pyx_t_8);
103859   __pyx_v_6mpi4py_3MPI___REQUEST_NULL__ = ((struct PyMPIRequestObject *)__pyx_t_8);
103860   __pyx_t_8 = 0;
103861 
103862   /* "/home/devel/mpi4py-1.3/src/MPI/Request.pyx":356
103863  * # --------------------------
103864  *
103865  * REQUEST_NULL = __REQUEST_NULL__  #: Null request handle             # <<<<<<<<<<<<<<
103866  */
103867   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REQUEST_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___REQUEST_NULL__)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103868 
103869   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":26
103870  *
103871  *     @classmethod
103872  *     def Create(cls):             # <<<<<<<<<<<<<<
103873  *         """
103874  *         Create a new, empty info object
103875  */
103876   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Info, __pyx_n_s__Create); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103877   __Pyx_GOTREF(__pyx_t_8);
103878   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103879   __Pyx_GOTREF(__pyx_t_2);
103880   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103881   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Info->tp_dict, __pyx_n_s__Create, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103882   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103883   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Info);
103884 
103885   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":112
103886  *
103887  *     @classmethod
103888  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
103889  *         """
103890  *         """
103891  */
103892   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Info, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103893   __Pyx_GOTREF(__pyx_t_2);
103894   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103895   __Pyx_GOTREF(__pyx_t_8);
103896   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103897   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Info->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103898   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103899   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Info);
103900 
103901   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":219
103902  *
103903  *
103904  * cdef Info __INFO_NULL__ = new_Info(MPI_INFO_NULL)             # <<<<<<<<<<<<<<
103905  *
103906  *
103907  */
103908   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Info(MPI_INFO_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103909   __Pyx_GOTREF(__pyx_t_8);
103910   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INFO_NULL__));
103911   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___INFO_NULL__));
103912   __Pyx_GIVEREF(__pyx_t_8);
103913   __pyx_v_6mpi4py_3MPI___INFO_NULL__ = ((struct PyMPIInfoObject *)__pyx_t_8);
103914   __pyx_t_8 = 0;
103915 
103916   /* "/home/devel/mpi4py-1.3/src/MPI/Info.pyx":225
103917  * # -----------------------
103918  *
103919  * INFO_NULL = __INFO_NULL__  #: Null info handle             # <<<<<<<<<<<<<<
103920  */
103921   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__INFO_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___INFO_NULL__)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103922 
103923   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":33
103924  *
103925  *     @classmethod
103926  *     def Create(cls, function, bint commute=False):             # <<<<<<<<<<<<<<
103927  *         """
103928  *         Create a user-defined operation
103929  */
103930   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Op, __pyx_n_s__Create); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103931   __Pyx_GOTREF(__pyx_t_8);
103932   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103933   __Pyx_GOTREF(__pyx_t_2);
103934   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103935   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Op->tp_dict, __pyx_n_s__Create, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103936   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103937   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Op);
103938 
103939   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":95
103940  *
103941  *     @classmethod
103942  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
103943  *         """
103944  *         """
103945  */
103946   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Op, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103947   __Pyx_GOTREF(__pyx_t_2);
103948   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103949   __Pyx_GOTREF(__pyx_t_8);
103950   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
103951   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Op->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103952   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
103953   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Op);
103954 
103955   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":104
103956  *
103957  *
103958  * cdef Op __OP_NULL__ = new_Op( MPI_OP_NULL )             # <<<<<<<<<<<<<<
103959  * cdef Op __MAX__     = new_Op( MPI_MAX     )
103960  * cdef Op __MIN__     = new_Op( MPI_MIN     )
103961  */
103962   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_OP_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103963   __Pyx_GOTREF(__pyx_t_8);
103964   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___OP_NULL__));
103965   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___OP_NULL__));
103966   __Pyx_GIVEREF(__pyx_t_8);
103967   __pyx_v_6mpi4py_3MPI___OP_NULL__ = ((struct PyMPIOpObject *)__pyx_t_8);
103968   __pyx_t_8 = 0;
103969 
103970   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":105
103971  *
103972  * cdef Op __OP_NULL__ = new_Op( MPI_OP_NULL )
103973  * cdef Op __MAX__     = new_Op( MPI_MAX     )             # <<<<<<<<<<<<<<
103974  * cdef Op __MIN__     = new_Op( MPI_MIN     )
103975  * cdef Op __SUM__     = new_Op( MPI_SUM     )
103976  */
103977   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_MAX)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103978   __Pyx_GOTREF(__pyx_t_8);
103979   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MAX__));
103980   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MAX__));
103981   __Pyx_GIVEREF(__pyx_t_8);
103982   __pyx_v_6mpi4py_3MPI___MAX__ = ((struct PyMPIOpObject *)__pyx_t_8);
103983   __pyx_t_8 = 0;
103984 
103985   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":106
103986  * cdef Op __OP_NULL__ = new_Op( MPI_OP_NULL )
103987  * cdef Op __MAX__     = new_Op( MPI_MAX     )
103988  * cdef Op __MIN__     = new_Op( MPI_MIN     )             # <<<<<<<<<<<<<<
103989  * cdef Op __SUM__     = new_Op( MPI_SUM     )
103990  * cdef Op __PROD__    = new_Op( MPI_PROD    )
103991  */
103992   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_MIN)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
103993   __Pyx_GOTREF(__pyx_t_8);
103994   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MIN__));
103995   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MIN__));
103996   __Pyx_GIVEREF(__pyx_t_8);
103997   __pyx_v_6mpi4py_3MPI___MIN__ = ((struct PyMPIOpObject *)__pyx_t_8);
103998   __pyx_t_8 = 0;
103999 
104000   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":107
104001  * cdef Op __MAX__     = new_Op( MPI_MAX     )
104002  * cdef Op __MIN__     = new_Op( MPI_MIN     )
104003  * cdef Op __SUM__     = new_Op( MPI_SUM     )             # <<<<<<<<<<<<<<
104004  * cdef Op __PROD__    = new_Op( MPI_PROD    )
104005  * cdef Op __LAND__    = new_Op( MPI_LAND    )
104006  */
104007   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_SUM)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104008   __Pyx_GOTREF(__pyx_t_8);
104009   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SUM__));
104010   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___SUM__));
104011   __Pyx_GIVEREF(__pyx_t_8);
104012   __pyx_v_6mpi4py_3MPI___SUM__ = ((struct PyMPIOpObject *)__pyx_t_8);
104013   __pyx_t_8 = 0;
104014 
104015   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":108
104016  * cdef Op __MIN__     = new_Op( MPI_MIN     )
104017  * cdef Op __SUM__     = new_Op( MPI_SUM     )
104018  * cdef Op __PROD__    = new_Op( MPI_PROD    )             # <<<<<<<<<<<<<<
104019  * cdef Op __LAND__    = new_Op( MPI_LAND    )
104020  * cdef Op __BAND__    = new_Op( MPI_BAND    )
104021  */
104022   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_PROD)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104023   __Pyx_GOTREF(__pyx_t_8);
104024   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___PROD__));
104025   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___PROD__));
104026   __Pyx_GIVEREF(__pyx_t_8);
104027   __pyx_v_6mpi4py_3MPI___PROD__ = ((struct PyMPIOpObject *)__pyx_t_8);
104028   __pyx_t_8 = 0;
104029 
104030   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":109
104031  * cdef Op __SUM__     = new_Op( MPI_SUM     )
104032  * cdef Op __PROD__    = new_Op( MPI_PROD    )
104033  * cdef Op __LAND__    = new_Op( MPI_LAND    )             # <<<<<<<<<<<<<<
104034  * cdef Op __BAND__    = new_Op( MPI_BAND    )
104035  * cdef Op __LOR__     = new_Op( MPI_LOR     )
104036  */
104037   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_LAND)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104038   __Pyx_GOTREF(__pyx_t_8);
104039   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LAND__));
104040   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LAND__));
104041   __Pyx_GIVEREF(__pyx_t_8);
104042   __pyx_v_6mpi4py_3MPI___LAND__ = ((struct PyMPIOpObject *)__pyx_t_8);
104043   __pyx_t_8 = 0;
104044 
104045   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":110
104046  * cdef Op __PROD__    = new_Op( MPI_PROD    )
104047  * cdef Op __LAND__    = new_Op( MPI_LAND    )
104048  * cdef Op __BAND__    = new_Op( MPI_BAND    )             # <<<<<<<<<<<<<<
104049  * cdef Op __LOR__     = new_Op( MPI_LOR     )
104050  * cdef Op __BOR__     = new_Op( MPI_BOR     )
104051  */
104052   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_BAND)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104053   __Pyx_GOTREF(__pyx_t_8);
104054   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BAND__));
104055   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BAND__));
104056   __Pyx_GIVEREF(__pyx_t_8);
104057   __pyx_v_6mpi4py_3MPI___BAND__ = ((struct PyMPIOpObject *)__pyx_t_8);
104058   __pyx_t_8 = 0;
104059 
104060   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":111
104061  * cdef Op __LAND__    = new_Op( MPI_LAND    )
104062  * cdef Op __BAND__    = new_Op( MPI_BAND    )
104063  * cdef Op __LOR__     = new_Op( MPI_LOR     )             # <<<<<<<<<<<<<<
104064  * cdef Op __BOR__     = new_Op( MPI_BOR     )
104065  * cdef Op __LXOR__    = new_Op( MPI_LXOR    )
104066  */
104067   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_LOR)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104068   __Pyx_GOTREF(__pyx_t_8);
104069   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOR__));
104070   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LOR__));
104071   __Pyx_GIVEREF(__pyx_t_8);
104072   __pyx_v_6mpi4py_3MPI___LOR__ = ((struct PyMPIOpObject *)__pyx_t_8);
104073   __pyx_t_8 = 0;
104074 
104075   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":112
104076  * cdef Op __BAND__    = new_Op( MPI_BAND    )
104077  * cdef Op __LOR__     = new_Op( MPI_LOR     )
104078  * cdef Op __BOR__     = new_Op( MPI_BOR     )             # <<<<<<<<<<<<<<
104079  * cdef Op __LXOR__    = new_Op( MPI_LXOR    )
104080  * cdef Op __BXOR__    = new_Op( MPI_BXOR    )
104081  */
104082   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_BOR)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104083   __Pyx_GOTREF(__pyx_t_8);
104084   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BOR__));
104085   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BOR__));
104086   __Pyx_GIVEREF(__pyx_t_8);
104087   __pyx_v_6mpi4py_3MPI___BOR__ = ((struct PyMPIOpObject *)__pyx_t_8);
104088   __pyx_t_8 = 0;
104089 
104090   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":113
104091  * cdef Op __LOR__     = new_Op( MPI_LOR     )
104092  * cdef Op __BOR__     = new_Op( MPI_BOR     )
104093  * cdef Op __LXOR__    = new_Op( MPI_LXOR    )             # <<<<<<<<<<<<<<
104094  * cdef Op __BXOR__    = new_Op( MPI_BXOR    )
104095  * cdef Op __MAXLOC__  = new_Op( MPI_MAXLOC  )
104096  */
104097   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_LXOR)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104098   __Pyx_GOTREF(__pyx_t_8);
104099   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LXOR__));
104100   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___LXOR__));
104101   __Pyx_GIVEREF(__pyx_t_8);
104102   __pyx_v_6mpi4py_3MPI___LXOR__ = ((struct PyMPIOpObject *)__pyx_t_8);
104103   __pyx_t_8 = 0;
104104 
104105   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":114
104106  * cdef Op __BOR__     = new_Op( MPI_BOR     )
104107  * cdef Op __LXOR__    = new_Op( MPI_LXOR    )
104108  * cdef Op __BXOR__    = new_Op( MPI_BXOR    )             # <<<<<<<<<<<<<<
104109  * cdef Op __MAXLOC__  = new_Op( MPI_MAXLOC  )
104110  * cdef Op __MINLOC__  = new_Op( MPI_MINLOC  )
104111  */
104112   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_BXOR)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104113   __Pyx_GOTREF(__pyx_t_8);
104114   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BXOR__));
104115   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___BXOR__));
104116   __Pyx_GIVEREF(__pyx_t_8);
104117   __pyx_v_6mpi4py_3MPI___BXOR__ = ((struct PyMPIOpObject *)__pyx_t_8);
104118   __pyx_t_8 = 0;
104119 
104120   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":115
104121  * cdef Op __LXOR__    = new_Op( MPI_LXOR    )
104122  * cdef Op __BXOR__    = new_Op( MPI_BXOR    )
104123  * cdef Op __MAXLOC__  = new_Op( MPI_MAXLOC  )             # <<<<<<<<<<<<<<
104124  * cdef Op __MINLOC__  = new_Op( MPI_MINLOC  )
104125  * cdef Op __REPLACE__ = new_Op( MPI_REPLACE )
104126  */
104127   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_MAXLOC)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104128   __Pyx_GOTREF(__pyx_t_8);
104129   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__));
104130   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__));
104131   __Pyx_GIVEREF(__pyx_t_8);
104132   __pyx_v_6mpi4py_3MPI___MAXLOC__ = ((struct PyMPIOpObject *)__pyx_t_8);
104133   __pyx_t_8 = 0;
104134 
104135   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":116
104136  * cdef Op __BXOR__    = new_Op( MPI_BXOR    )
104137  * cdef Op __MAXLOC__  = new_Op( MPI_MAXLOC  )
104138  * cdef Op __MINLOC__  = new_Op( MPI_MINLOC  )             # <<<<<<<<<<<<<<
104139  * cdef Op __REPLACE__ = new_Op( MPI_REPLACE )
104140  *
104141  */
104142   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_MINLOC)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104143   __Pyx_GOTREF(__pyx_t_8);
104144   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__));
104145   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__));
104146   __Pyx_GIVEREF(__pyx_t_8);
104147   __pyx_v_6mpi4py_3MPI___MINLOC__ = ((struct PyMPIOpObject *)__pyx_t_8);
104148   __pyx_t_8 = 0;
104149 
104150   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":117
104151  * cdef Op __MAXLOC__  = new_Op( MPI_MAXLOC  )
104152  * cdef Op __MINLOC__  = new_Op( MPI_MINLOC  )
104153  * cdef Op __REPLACE__ = new_Op( MPI_REPLACE )             # <<<<<<<<<<<<<<
104154  *
104155  *
104156  */
104157   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Op(MPI_REPLACE)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104158   __Pyx_GOTREF(__pyx_t_8);
104159   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REPLACE__));
104160   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___REPLACE__));
104161   __Pyx_GIVEREF(__pyx_t_8);
104162   __pyx_v_6mpi4py_3MPI___REPLACE__ = ((struct PyMPIOpObject *)__pyx_t_8);
104163   __pyx_t_8 = 0;
104164 
104165   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":123
104166  * # ----------------------------
104167  *
104168  * OP_NULL = __OP_NULL__  #: Null             # <<<<<<<<<<<<<<
104169  * MAX     = __MAX__      #: Maximum
104170  * MIN     = __MIN__      #: Minimum
104171  */
104172   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__OP_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___OP_NULL__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104173 
104174   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":124
104175  *
104176  * OP_NULL = __OP_NULL__  #: Null
104177  * MAX     = __MAX__      #: Maximum             # <<<<<<<<<<<<<<
104178  * MIN     = __MIN__      #: Minimum
104179  * SUM     = __SUM__      #: Sum
104180  */
104181   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX, ((PyObject *)__pyx_v_6mpi4py_3MPI___MAX__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104182 
104183   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":125
104184  * OP_NULL = __OP_NULL__  #: Null
104185  * MAX     = __MAX__      #: Maximum
104186  * MIN     = __MIN__      #: Minimum             # <<<<<<<<<<<<<<
104187  * SUM     = __SUM__      #: Sum
104188  * PROD    = __PROD__     #: Product
104189  */
104190   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MIN, ((PyObject *)__pyx_v_6mpi4py_3MPI___MIN__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104191 
104192   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":126
104193  * MAX     = __MAX__      #: Maximum
104194  * MIN     = __MIN__      #: Minimum
104195  * SUM     = __SUM__      #: Sum             # <<<<<<<<<<<<<<
104196  * PROD    = __PROD__     #: Product
104197  * LAND    = __LAND__     #: Logical and
104198  */
104199   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SUM, ((PyObject *)__pyx_v_6mpi4py_3MPI___SUM__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104200 
104201   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":127
104202  * MIN     = __MIN__      #: Minimum
104203  * SUM     = __SUM__      #: Sum
104204  * PROD    = __PROD__     #: Product             # <<<<<<<<<<<<<<
104205  * LAND    = __LAND__     #: Logical and
104206  * BAND    = __BAND__     #: Bit-wise and
104207  */
104208   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PROD, ((PyObject *)__pyx_v_6mpi4py_3MPI___PROD__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104209 
104210   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":128
104211  * SUM     = __SUM__      #: Sum
104212  * PROD    = __PROD__     #: Product
104213  * LAND    = __LAND__     #: Logical and             # <<<<<<<<<<<<<<
104214  * BAND    = __BAND__     #: Bit-wise and
104215  * LOR     = __LOR__      #: Logical or
104216  */
104217   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LAND, ((PyObject *)__pyx_v_6mpi4py_3MPI___LAND__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104218 
104219   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":129
104220  * PROD    = __PROD__     #: Product
104221  * LAND    = __LAND__     #: Logical and
104222  * BAND    = __BAND__     #: Bit-wise and             # <<<<<<<<<<<<<<
104223  * LOR     = __LOR__      #: Logical or
104224  * BOR     = __BOR__      #: Bit-wise or
104225  */
104226   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BAND, ((PyObject *)__pyx_v_6mpi4py_3MPI___BAND__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104227 
104228   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":130
104229  * LAND    = __LAND__     #: Logical and
104230  * BAND    = __BAND__     #: Bit-wise and
104231  * LOR     = __LOR__      #: Logical or             # <<<<<<<<<<<<<<
104232  * BOR     = __BOR__      #: Bit-wise or
104233  * LXOR    = __LXOR__     #: Logical xor
104234  */
104235   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOR, ((PyObject *)__pyx_v_6mpi4py_3MPI___LOR__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104236 
104237   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":131
104238  * BAND    = __BAND__     #: Bit-wise and
104239  * LOR     = __LOR__      #: Logical or
104240  * BOR     = __BOR__      #: Bit-wise or             # <<<<<<<<<<<<<<
104241  * LXOR    = __LXOR__     #: Logical xor
104242  * BXOR    = __BXOR__     #: Bit-wise xor
104243  */
104244   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BOR, ((PyObject *)__pyx_v_6mpi4py_3MPI___BOR__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104245 
104246   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":132
104247  * LOR     = __LOR__      #: Logical or
104248  * BOR     = __BOR__      #: Bit-wise or
104249  * LXOR    = __LXOR__     #: Logical xor             # <<<<<<<<<<<<<<
104250  * BXOR    = __BXOR__     #: Bit-wise xor
104251  * MAXLOC  = __MAXLOC__   #: Maximum and location
104252  */
104253   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LXOR, ((PyObject *)__pyx_v_6mpi4py_3MPI___LXOR__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104254 
104255   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":133
104256  * BOR     = __BOR__      #: Bit-wise or
104257  * LXOR    = __LXOR__     #: Logical xor
104258  * BXOR    = __BXOR__     #: Bit-wise xor             # <<<<<<<<<<<<<<
104259  * MAXLOC  = __MAXLOC__   #: Maximum and location
104260  * MINLOC  = __MINLOC__   #: Minimum and location
104261  */
104262   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BXOR, ((PyObject *)__pyx_v_6mpi4py_3MPI___BXOR__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104263 
104264   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":134
104265  * LXOR    = __LXOR__     #: Logical xor
104266  * BXOR    = __BXOR__     #: Bit-wise xor
104267  * MAXLOC  = __MAXLOC__   #: Maximum and location             # <<<<<<<<<<<<<<
104268  * MINLOC  = __MINLOC__   #: Minimum and location
104269  * REPLACE = __REPLACE__  #: Replace (for RMA)
104270  */
104271   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAXLOC, ((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104272 
104273   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":135
104274  * BXOR    = __BXOR__     #: Bit-wise xor
104275  * MAXLOC  = __MAXLOC__   #: Maximum and location
104276  * MINLOC  = __MINLOC__   #: Minimum and location             # <<<<<<<<<<<<<<
104277  * REPLACE = __REPLACE__  #: Replace (for RMA)
104278  */
104279   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MINLOC, ((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104280 
104281   /* "/home/devel/mpi4py-1.3/src/MPI/Op.pyx":136
104282  * MAXLOC  = __MAXLOC__   #: Maximum and location
104283  * MINLOC  = __MINLOC__   #: Minimum and location
104284  * REPLACE = __REPLACE__  #: Replace (for RMA)             # <<<<<<<<<<<<<<
104285  */
104286   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__REPLACE, ((PyObject *)__pyx_v_6mpi4py_3MPI___REPLACE__)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104287 
104288   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":55
104289  *
104290  *     @classmethod
104291  *     def Translate_ranks(cls,             # <<<<<<<<<<<<<<
104292  *                         Group group1 not None, ranks1,
104293  *                         Group group2=None):
104294  */
104295   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__Translate_ranks); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104296   __Pyx_GOTREF(__pyx_t_8);
104297   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104298   __Pyx_GOTREF(__pyx_t_2);
104299   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104300   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__Translate_ranks, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104301   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104302   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104303 
104304   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":83
104305  *
104306  *     @classmethod
104307  *     def Compare(cls,             # <<<<<<<<<<<<<<
104308  *                 Group group1 not None,
104309  *                 Group group2 not None):
104310  */
104311   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__Compare); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104312   __Pyx_GOTREF(__pyx_t_2);
104313   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104314   __Pyx_GOTREF(__pyx_t_8);
104315   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104316   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__Compare, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104317   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104318   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104319 
104320   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":105
104321  *
104322  *     @classmethod
104323  *     def Union(cls,             # <<<<<<<<<<<<<<
104324  *               Group group1 not None,
104325  *               Group group2 not None):
104326  */
104327   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__Union); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104328   __Pyx_GOTREF(__pyx_t_8);
104329   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104330   __Pyx_GOTREF(__pyx_t_2);
104331   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104332   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__Union, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104333   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104334   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104335 
104336   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":118
104337  *
104338  *     @classmethod
104339  *     def Intersect(cls,             # <<<<<<<<<<<<<<
104340  *                   Group group1 not None,
104341  *                   Group group2 not None):
104342  */
104343   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__Intersect); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104344   __Pyx_GOTREF(__pyx_t_2);
104345   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104346   __Pyx_GOTREF(__pyx_t_8);
104347   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104348   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__Intersect, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104349   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104350   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104351 
104352   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":131
104353  *
104354  *     @classmethod
104355  *     def Difference(cls,             # <<<<<<<<<<<<<<
104356  *                    Group group1 not None,
104357  *                    Group group2 not None):
104358  */
104359   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__Difference); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104360   __Pyx_GOTREF(__pyx_t_8);
104361   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104362   __Pyx_GOTREF(__pyx_t_2);
104363   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104364   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__Difference, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104365   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104366   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104367 
104368   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":219
104369  *
104370  *     @classmethod
104371  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
104372  *         """
104373  *         """
104374  */
104375   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104376   __Pyx_GOTREF(__pyx_t_2);
104377   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104378   __Pyx_GOTREF(__pyx_t_8);
104379   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104380   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Group->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104381   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104382   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Group);
104383 
104384   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":228
104385  *
104386  *
104387  * cdef Group __GROUP_NULL__  = new_Group ( MPI_GROUP_NULL  )             # <<<<<<<<<<<<<<
104388  * cdef Group __GROUP_EMPTY__ = new_Group ( MPI_GROUP_EMPTY )
104389  *
104390  */
104391   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Group(MPI_GROUP_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104392   __Pyx_GOTREF(__pyx_t_8);
104393   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_NULL__));
104394   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_NULL__));
104395   __Pyx_GIVEREF(__pyx_t_8);
104396   __pyx_v_6mpi4py_3MPI___GROUP_NULL__ = ((struct PyMPIGroupObject *)__pyx_t_8);
104397   __pyx_t_8 = 0;
104398 
104399   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":229
104400  *
104401  * cdef Group __GROUP_NULL__  = new_Group ( MPI_GROUP_NULL  )
104402  * cdef Group __GROUP_EMPTY__ = new_Group ( MPI_GROUP_EMPTY )             # <<<<<<<<<<<<<<
104403  *
104404  *
104405  */
104406   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Group(MPI_GROUP_EMPTY)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104407   __Pyx_GOTREF(__pyx_t_8);
104408   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_EMPTY__));
104409   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_EMPTY__));
104410   __Pyx_GIVEREF(__pyx_t_8);
104411   __pyx_v_6mpi4py_3MPI___GROUP_EMPTY__ = ((struct PyMPIGroupObject *)__pyx_t_8);
104412   __pyx_t_8 = 0;
104413 
104414   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":235
104415  * # ------------------------
104416  *
104417  * GROUP_NULL  = __GROUP_NULL__   #: Null group handle             # <<<<<<<<<<<<<<
104418  * GROUP_EMPTY = __GROUP_EMPTY__  #: Empty group handle
104419  */
104420   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GROUP_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_NULL__)) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104421 
104422   /* "/home/devel/mpi4py-1.3/src/MPI/Group.pyx":236
104423  *
104424  * GROUP_NULL  = __GROUP_NULL__   #: Null group handle
104425  * GROUP_EMPTY = __GROUP_EMPTY__  #: Empty group handle             # <<<<<<<<<<<<<<
104426  */
104427   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GROUP_EMPTY, ((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_EMPTY__)) < 0) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104428 
104429   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":4
104430  * # ------------------------
104431  *
104432  * IDENT     = MPI_IDENT     #: Groups are identical, contexts are the same             # <<<<<<<<<<<<<<
104433  * CONGRUENT = MPI_CONGRUENT #: Groups are identical, contexts are different
104434  * SIMILAR   = MPI_SIMILAR   #: Groups are similar, rank order differs
104435  */
104436   __pyx_t_8 = PyInt_FromLong(MPI_IDENT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104437   __Pyx_GOTREF(__pyx_t_8);
104438   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__IDENT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104439   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104440 
104441   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":5
104442  *
104443  * IDENT     = MPI_IDENT     #: Groups are identical, contexts are the same
104444  * CONGRUENT = MPI_CONGRUENT #: Groups are identical, contexts are different             # <<<<<<<<<<<<<<
104445  * SIMILAR   = MPI_SIMILAR   #: Groups are similar, rank order differs
104446  * UNEQUAL   = MPI_UNEQUAL   #: Groups are different
104447  */
104448   __pyx_t_8 = PyInt_FromLong(MPI_CONGRUENT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104449   __Pyx_GOTREF(__pyx_t_8);
104450   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__CONGRUENT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104451   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104452 
104453   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":6
104454  * IDENT     = MPI_IDENT     #: Groups are identical, contexts are the same
104455  * CONGRUENT = MPI_CONGRUENT #: Groups are identical, contexts are different
104456  * SIMILAR   = MPI_SIMILAR   #: Groups are similar, rank order differs             # <<<<<<<<<<<<<<
104457  * UNEQUAL   = MPI_UNEQUAL   #: Groups are different
104458  *
104459  */
104460   __pyx_t_8 = PyInt_FromLong(MPI_SIMILAR); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104461   __Pyx_GOTREF(__pyx_t_8);
104462   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SIMILAR, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104463   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104464 
104465   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":7
104466  * CONGRUENT = MPI_CONGRUENT #: Groups are identical, contexts are different
104467  * SIMILAR   = MPI_SIMILAR   #: Groups are similar, rank order differs
104468  * UNEQUAL   = MPI_UNEQUAL   #: Groups are different             # <<<<<<<<<<<<<<
104469  *
104470  *
104471  */
104472   __pyx_t_8 = PyInt_FromLong(MPI_UNEQUAL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104473   __Pyx_GOTREF(__pyx_t_8);
104474   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNEQUAL, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104475   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104476 
104477   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":13
104478  * # -----------------------
104479  *
104480  * CART       = MPI_CART       #: Cartesian topology             # <<<<<<<<<<<<<<
104481  * GRAPH      = MPI_GRAPH      #: General graph topology
104482  * DIST_GRAPH = MPI_DIST_GRAPH #: Distributed graph topology
104483  */
104484   __pyx_t_8 = PyInt_FromLong(MPI_CART); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104485   __Pyx_GOTREF(__pyx_t_8);
104486   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__CART, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104487   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104488 
104489   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":14
104490  *
104491  * CART       = MPI_CART       #: Cartesian topology
104492  * GRAPH      = MPI_GRAPH      #: General graph topology             # <<<<<<<<<<<<<<
104493  * DIST_GRAPH = MPI_DIST_GRAPH #: Distributed graph topology
104494  *
104495  */
104496   __pyx_t_8 = PyInt_FromLong(MPI_GRAPH); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104497   __Pyx_GOTREF(__pyx_t_8);
104498   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GRAPH, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104499   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104500 
104501   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":15
104502  * CART       = MPI_CART       #: Cartesian topology
104503  * GRAPH      = MPI_GRAPH      #: General graph topology
104504  * DIST_GRAPH = MPI_DIST_GRAPH #: Distributed graph topology             # <<<<<<<<<<<<<<
104505  *
104506  *
104507  */
104508   __pyx_t_8 = PyInt_FromLong(MPI_DIST_GRAPH); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104509   __Pyx_GOTREF(__pyx_t_8);
104510   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DIST_GRAPH, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104511   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104512 
104513   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":90
104514  *
104515  *     @classmethod
104516  *     def Compare(cls, Comm comm1 not None, Comm comm2 not None):             # <<<<<<<<<<<<<<
104517  *         """
104518  *         Compare two communicators
104519  */
104520   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__Compare); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104521   __Pyx_GOTREF(__pyx_t_8);
104522   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104523   __Pyx_GOTREF(__pyx_t_2);
104524   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104525   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__Compare, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104526   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104527   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104528 
104529   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":529
104530  *     # ---------------------------
104531  *
104532  *     def Reduce(self, sendbuf, recvbuf, Op op not None=SUM, int root=0):             # <<<<<<<<<<<<<<
104533  *         """
104534  *         Reduce
104535  */
104536   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104537   __Pyx_GOTREF(__pyx_t_2);
104538   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104539   __pyx_k_71 = ((struct PyMPIOpObject *)__pyx_t_2);
104540   __Pyx_GIVEREF(__pyx_t_2);
104541   __pyx_t_2 = 0;
104542 
104543   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":539
104544  *             op.ob_mpi, root, self.ob_mpi) )
104545  *
104546  *     def Allreduce(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
104547  *         """
104548  *         All Reduce
104549  */
104550   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104551   __Pyx_GOTREF(__pyx_t_2);
104552   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104553   __pyx_k_72 = ((struct PyMPIOpObject *)__pyx_t_2);
104554   __Pyx_GIVEREF(__pyx_t_2);
104555   __pyx_t_2 = 0;
104556 
104557   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":550
104558  *
104559  *     def Reduce_scatter_block(self, sendbuf, recvbuf,
104560  *                              Op op not None=SUM):             # <<<<<<<<<<<<<<
104561  *         """
104562  *         Reduce-Scatter Block (regular, non-vector version)
104563  */
104564   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104565   __Pyx_GOTREF(__pyx_t_2);
104566   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104567   __pyx_k_73 = ((struct PyMPIOpObject *)__pyx_t_2);
104568   __Pyx_GIVEREF(__pyx_t_2);
104569   __pyx_t_2 = 0;
104570 
104571   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":561
104572  *
104573  *     def Reduce_scatter(self, sendbuf, recvbuf, recvcounts=None,
104574  *                        Op op not None=SUM):             # <<<<<<<<<<<<<<
104575  *         """
104576  *         Reduce-Scatter (vector version)
104577  */
104578   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104579   __Pyx_GOTREF(__pyx_t_2);
104580   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104581   __pyx_k_74 = ((struct PyMPIOpObject *)__pyx_t_2);
104582   __Pyx_GIVEREF(__pyx_t_2);
104583   __pyx_t_2 = 0;
104584 
104585   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":617
104586  *
104587  *     @classmethod
104588  *     def Get_parent(cls):             # <<<<<<<<<<<<<<
104589  *         """
104590  *         Return the parent intercommunicator for this process
104591  */
104592   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__Get_parent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104593   __Pyx_GOTREF(__pyx_t_2);
104594   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104595   __Pyx_GOTREF(__pyx_t_8);
104596   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104597   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__Get_parent, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104598   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104599   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104600 
104601   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":636
104602  *
104603  *     @classmethod
104604  *     def Join(cls, int fd):             # <<<<<<<<<<<<<<
104605  *         """
104606  *         Create a intercommunicator by joining
104607  */
104608   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__Join); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104609   __Pyx_GOTREF(__pyx_t_8);
104610   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104611   __Pyx_GOTREF(__pyx_t_2);
104612   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104613   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__Join, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104614   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104615   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104616 
104617   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":697
104618  *
104619  *     @classmethod
104620  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
104621  *         """
104622  *         Create a new attribute key for communicators
104623  */
104624   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__Create_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104625   __Pyx_GOTREF(__pyx_t_2);
104626   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104627   __Pyx_GOTREF(__pyx_t_8);
104628   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104629   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__Create_keyval, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104630   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104631   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104632 
104633   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":710
104634  *
104635  *     @classmethod
104636  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
104637  *         """
104638  *         Free and attribute key for communicators
104639  */
104640   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__Free_keyval); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104641   __Pyx_GOTREF(__pyx_t_8);
104642   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104643   __Pyx_GOTREF(__pyx_t_2);
104644   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104645   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__Free_keyval, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104646   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104647   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104648 
104649   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":787
104650  *
104651  *     @classmethod
104652  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
104653  *         """
104654  *         """
104655  */
104656   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104657   __Pyx_GOTREF(__pyx_t_2);
104658   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104659   __Pyx_GOTREF(__pyx_t_8);
104660   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
104661   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Comm->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104662   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104663   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Comm);
104664 
104665   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":886
104666  *         return PyMPI_alltoall(sendobj, recvobj, comm)
104667  *     #
104668  *     def reduce(self, sendobj=None, recvobj=None, op=SUM, int root=0):             # <<<<<<<<<<<<<<
104669  *         """Reduce"""
104670  *         if op is None: op = SUM
104671  */
104672   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104673   __Pyx_GOTREF(__pyx_t_8);
104674   __pyx_k_75 = __pyx_t_8;
104675   __Pyx_GIVEREF(__pyx_t_8);
104676   __pyx_t_8 = 0;
104677 
104678   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":892
104679  *         return PyMPI_reduce(sendobj, recvobj, op, root, comm)
104680  *     #
104681  *     def allreduce(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
104682  *         """Reduce to All"""
104683  *         if op is None: op = SUM
104684  */
104685   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104686   __Pyx_GOTREF(__pyx_t_8);
104687   __pyx_k_76 = __pyx_t_8;
104688   __Pyx_GIVEREF(__pyx_t_8);
104689   __pyx_t_8 = 0;
104690 
104691   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":975
104692  *     def Create_dist_graph_adjacent(self, sources, destinations,
104693  *                                    sourceweights=None, destweights=None,
104694  *                                    Info info=INFO_NULL, bint reorder=False):             # <<<<<<<<<<<<<<
104695  *         """
104696  *         Create distributed graph communicator
104697  */
104698   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104699   __Pyx_GOTREF(__pyx_t_8);
104700   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104701   __pyx_k_79 = ((struct PyMPIInfoObject *)__pyx_t_8);
104702   __Pyx_GIVEREF(__pyx_t_8);
104703   __pyx_t_8 = 0;
104704 
104705   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1004
104706  *
104707  *     def Create_dist_graph(self, sources, degrees, destinations, weights=None,
104708  *                           Info info=INFO_NULL, bint reorder=False):             # <<<<<<<<<<<<<<
104709  *         """
104710  *         Create distributed graph communicator
104711  */
104712   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104713   __Pyx_GOTREF(__pyx_t_8);
104714   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104715   __pyx_k_80 = ((struct PyMPIInfoObject *)__pyx_t_8);
104716   __Pyx_GIVEREF(__pyx_t_8);
104717   __pyx_t_8 = 0;
104718 
104719   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1047
104720  *     # Inclusive Scan
104721  *
104722  *     def Scan(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
104723  *         """
104724  *         Inclusive Scan
104725  */
104726   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104727   __Pyx_GOTREF(__pyx_t_8);
104728   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104729   __pyx_k_81 = ((struct PyMPIOpObject *)__pyx_t_8);
104730   __Pyx_GIVEREF(__pyx_t_8);
104731   __pyx_t_8 = 0;
104732 
104733   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1059
104734  *     # Exclusive Scan
104735  *
104736  *     def Exscan(self, sendbuf, recvbuf, Op op not None=SUM):             # <<<<<<<<<<<<<<
104737  *         """
104738  *         Exclusive Scan
104739  */
104740   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104741   __Pyx_GOTREF(__pyx_t_8);
104742   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104743   __pyx_k_82 = ((struct PyMPIOpObject *)__pyx_t_8);
104744   __Pyx_GIVEREF(__pyx_t_8);
104745   __pyx_t_8 = 0;
104746 
104747   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1071
104748  *     # Python Communication
104749  *     #
104750  *     def scan(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
104751  *         """Inclusive Scan"""
104752  *         if op is None: op = SUM
104753  */
104754   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104755   __Pyx_GOTREF(__pyx_t_8);
104756   __pyx_k_83 = __pyx_t_8;
104757   __Pyx_GIVEREF(__pyx_t_8);
104758   __pyx_t_8 = 0;
104759 
104760   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1077
104761  *         return PyMPI_scan(sendobj, recvobj, op, comm)
104762  *     #
104763  *     def exscan(self, sendobj=None, recvobj=None, op=SUM):             # <<<<<<<<<<<<<<
104764  *         """Exclusive Scan"""
104765  *         if op is None: op = SUM
104766  */
104767   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104768   __Pyx_GOTREF(__pyx_t_8);
104769   __pyx_k_84 = __pyx_t_8;
104770   __Pyx_GIVEREF(__pyx_t_8);
104771   __pyx_t_8 = 0;
104772 
104773   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1090
104774  *
104775  *     def Spawn(self, command, args=None, int maxprocs=1,
104776  *               Info info=INFO_NULL, int root=0, errcodes=None):             # <<<<<<<<<<<<<<
104777  *         """
104778  *         Spawn instances of a single MPI application
104779  */
104780   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104781   __Pyx_GOTREF(__pyx_t_8);
104782   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104783   __pyx_k_85 = ((struct PyMPIInfoObject *)__pyx_t_8);
104784   __Pyx_GIVEREF(__pyx_t_8);
104785   __pyx_t_8 = 0;
104786 
104787   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1121
104788  *
104789  *     def Spawn_multiple(self, command, args=None, maxprocs=None,
104790  *                        info=INFO_NULL, int root=0, errcodes=None):             # <<<<<<<<<<<<<<
104791  *         """
104792  *         Spawn instances of multiple MPI applications
104793  */
104794   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104795   __Pyx_GOTREF(__pyx_t_8);
104796   __pyx_k_86 = __pyx_t_8;
104797   __Pyx_GIVEREF(__pyx_t_8);
104798   __pyx_t_8 = 0;
104799 
104800   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1169
104801  *     # Server Routines
104802  *
104803  *     def Accept(self, port_name, Info info=INFO_NULL, int root=0):             # <<<<<<<<<<<<<<
104804  *         """
104805  *         Accept a request to form a new intercommunicator
104806  */
104807   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104808   __Pyx_GOTREF(__pyx_t_8);
104809   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104810   __pyx_k_87 = ((struct PyMPIInfoObject *)__pyx_t_8);
104811   __Pyx_GIVEREF(__pyx_t_8);
104812   __pyx_t_8 = 0;
104813 
104814   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1188
104815  *     # Client Routines
104816  *
104817  *     def Connect(self, port_name, Info info=INFO_NULL, int root=0):             # <<<<<<<<<<<<<<
104818  *         """
104819  *         Make a request to form a new intercommunicator
104820  */
104821   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104822   __Pyx_GOTREF(__pyx_t_8);
104823   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104824   __pyx_k_88 = ((struct PyMPIInfoObject *)__pyx_t_8);
104825   __Pyx_GIVEREF(__pyx_t_8);
104826   __pyx_t_8 = 0;
104827 
104828   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1362
104829  * # Cartesian Convenience Function
104830  *
104831  * def Compute_dims(int nnodes, dims):             # <<<<<<<<<<<<<<
104832  *     """
104833  *     Return a balanced distribution of
104834  */
104835   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_6Compute_dims, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104836   __Pyx_GOTREF(__pyx_t_8);
104837   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Compute_dims, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104838   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104839 
104840   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1675
104841  *
104842  *
104843  * cdef Comm      __COMM_NULL__   = new_Comm      ( MPI_COMM_NULL  )             # <<<<<<<<<<<<<<
104844  * cdef Intracomm __COMM_SELF__   = new_Intracomm ( MPI_COMM_SELF  )
104845  * cdef Intracomm __COMM_WORLD__  = new_Intracomm ( MPI_COMM_WORLD )
104846  */
104847   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Comm(MPI_COMM_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104848   __Pyx_GOTREF(__pyx_t_8);
104849   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_NULL__));
104850   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_NULL__));
104851   __Pyx_GIVEREF(__pyx_t_8);
104852   __pyx_v_6mpi4py_3MPI___COMM_NULL__ = ((struct PyMPICommObject *)__pyx_t_8);
104853   __pyx_t_8 = 0;
104854 
104855   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1676
104856  *
104857  * cdef Comm      __COMM_NULL__   = new_Comm      ( MPI_COMM_NULL  )
104858  * cdef Intracomm __COMM_SELF__   = new_Intracomm ( MPI_COMM_SELF  )             # <<<<<<<<<<<<<<
104859  * cdef Intracomm __COMM_WORLD__  = new_Intracomm ( MPI_COMM_WORLD )
104860  * cdef Intercomm __COMM_PARENT__ = new_Intercomm ( MPI_COMM_NULL  )
104861  */
104862   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Intracomm(MPI_COMM_SELF)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104863   __Pyx_GOTREF(__pyx_t_8);
104864   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_SELF__));
104865   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_SELF__));
104866   __Pyx_GIVEREF(__pyx_t_8);
104867   __pyx_v_6mpi4py_3MPI___COMM_SELF__ = ((struct PyMPIIntracommObject *)__pyx_t_8);
104868   __pyx_t_8 = 0;
104869 
104870   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1677
104871  * cdef Comm      __COMM_NULL__   = new_Comm      ( MPI_COMM_NULL  )
104872  * cdef Intracomm __COMM_SELF__   = new_Intracomm ( MPI_COMM_SELF  )
104873  * cdef Intracomm __COMM_WORLD__  = new_Intracomm ( MPI_COMM_WORLD )             # <<<<<<<<<<<<<<
104874  * cdef Intercomm __COMM_PARENT__ = new_Intercomm ( MPI_COMM_NULL  )
104875  *
104876  */
104877   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Intracomm(MPI_COMM_WORLD)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104878   __Pyx_GOTREF(__pyx_t_8);
104879   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_WORLD__));
104880   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_WORLD__));
104881   __Pyx_GIVEREF(__pyx_t_8);
104882   __pyx_v_6mpi4py_3MPI___COMM_WORLD__ = ((struct PyMPIIntracommObject *)__pyx_t_8);
104883   __pyx_t_8 = 0;
104884 
104885   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1678
104886  * cdef Intracomm __COMM_SELF__   = new_Intracomm ( MPI_COMM_SELF  )
104887  * cdef Intracomm __COMM_WORLD__  = new_Intracomm ( MPI_COMM_WORLD )
104888  * cdef Intercomm __COMM_PARENT__ = new_Intercomm ( MPI_COMM_NULL  )             # <<<<<<<<<<<<<<
104889  *
104890  *
104891  */
104892   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Intercomm(MPI_COMM_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104893   __Pyx_GOTREF(__pyx_t_8);
104894   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_PARENT__));
104895   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_PARENT__));
104896   __Pyx_GIVEREF(__pyx_t_8);
104897   __pyx_v_6mpi4py_3MPI___COMM_PARENT__ = ((struct PyMPIIntercommObject *)__pyx_t_8);
104898   __pyx_t_8 = 0;
104899 
104900   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1684
104901  * # ------------------------
104902  *
104903  * COMM_NULL =  __COMM_NULL__   #: Null communicator handle             # <<<<<<<<<<<<<<
104904  * COMM_SELF  = __COMM_SELF__   #: Self communicator handle
104905  * COMM_WORLD = __COMM_WORLD__  #: World communicator handle
104906  */
104907   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMM_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_NULL__)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104908 
104909   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1685
104910  *
104911  * COMM_NULL =  __COMM_NULL__   #: Null communicator handle
104912  * COMM_SELF  = __COMM_SELF__   #: Self communicator handle             # <<<<<<<<<<<<<<
104913  * COMM_WORLD = __COMM_WORLD__  #: World communicator handle
104914  *
104915  */
104916   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMM_SELF, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_SELF__)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104917 
104918   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1686
104919  * COMM_NULL =  __COMM_NULL__   #: Null communicator handle
104920  * COMM_SELF  = __COMM_SELF__   #: Self communicator handle
104921  * COMM_WORLD = __COMM_WORLD__  #: World communicator handle             # <<<<<<<<<<<<<<
104922  *
104923  *
104924  */
104925   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__COMM_WORLD, ((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_WORLD__)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104926 
104927   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1692
104928  * # ---------------------------
104929  *
104930  * BSEND_OVERHEAD = MPI_BSEND_OVERHEAD             # <<<<<<<<<<<<<<
104931  * #: Upper bound of memory overhead for sending in buffered mode
104932  *
104933  */
104934   __pyx_t_8 = PyInt_FromLong(MPI_BSEND_OVERHEAD); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104935   __Pyx_GOTREF(__pyx_t_8);
104936   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BSEND_OVERHEAD, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104937   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104938 
104939   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1695
104940  * #: Upper bound of memory overhead for sending in buffered mode
104941  *
104942  * def Attach_buffer(memory):             # <<<<<<<<<<<<<<
104943  *     """
104944  *     Attach a user-provided buffer for
104945  */
104946   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_7Attach_buffer, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104947   __Pyx_GOTREF(__pyx_t_8);
104948   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Attach_buffer, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104949   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104950 
104951   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1705
104952  *     with nogil: CHKERR( MPI_Buffer_attach(base, size) )
104953  *
104954  * def Detach_buffer():             # <<<<<<<<<<<<<<
104955  *     """
104956  *     Remove an existing attached buffer
104957  */
104958   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_8Detach_buffer, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104959   __Pyx_GOTREF(__pyx_t_8);
104960   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Detach_buffer, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104961   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104962 
104963   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1722
104964  * # -----------------------
104965  *
104966  * def Open_port(Info info=INFO_NULL):             # <<<<<<<<<<<<<<
104967  *     """
104968  *     Return an address that can be used to establish
104969  */
104970   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104971   __Pyx_GOTREF(__pyx_t_8);
104972   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104973   __pyx_k_97 = ((struct PyMPIInfoObject *)__pyx_t_8);
104974   __Pyx_GIVEREF(__pyx_t_8);
104975   __pyx_t_8 = 0;
104976   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_9Open_port, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104977   __Pyx_GOTREF(__pyx_t_8);
104978   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Open_port, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104979   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104980 
104981   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1733
104982  *     return mpistr(cportname)
104983  *
104984  * def Close_port(port_name):             # <<<<<<<<<<<<<<
104985  *     """
104986  *     Close a port
104987  */
104988   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_10Close_port, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104989   __Pyx_GOTREF(__pyx_t_8);
104990   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Close_port, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
104991   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
104992 
104993   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1744
104994  * # -----------------------
104995  *
104996  * def Publish_name(service_name, Info info, port_name):             # <<<<<<<<<<<<<<
104997  *     """
104998  *     Publish a service name
104999  */
105000   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_11Publish_name, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105001   __Pyx_GOTREF(__pyx_t_8);
105002   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Publish_name, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105003   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105004 
105005   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1755
105006  *     with nogil: CHKERR( MPI_Publish_name(csrvcname, cinfo, cportname) )
105007  *
105008  * def Unpublish_name(service_name, Info info, port_name):             # <<<<<<<<<<<<<<
105009  *     """
105010  *     Unpublish a service name
105011  */
105012   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_12Unpublish_name, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105013   __Pyx_GOTREF(__pyx_t_8);
105014   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Unpublish_name, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105015   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105016 
105017   /* "/home/devel/mpi4py-1.3/src/MPI/Comm.pyx":1766
105018  *     with nogil: CHKERR( MPI_Unpublish_name(csrvcname, cinfo, cportname) )
105019  *
105020  * def Lookup_name(service_name, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
105021  *     """
105022  *     Lookup a port name given a service name
105023  */
105024   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105025   __Pyx_GOTREF(__pyx_t_8);
105026   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105027   __pyx_k_98 = ((struct PyMPIInfoObject *)__pyx_t_8);
105028   __Pyx_GIVEREF(__pyx_t_8);
105029   __pyx_t_8 = 0;
105030   __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_13Lookup_name, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105031   __Pyx_GOTREF(__pyx_t_8);
105032   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Lookup_name, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105033   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105034 
105035   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":4
105036  * # ---------------
105037  *
105038  * MODE_NOCHECK   = MPI_MODE_NOCHECK             # <<<<<<<<<<<<<<
105039  * MODE_NOSTORE   = MPI_MODE_NOSTORE
105040  * MODE_NOPUT     = MPI_MODE_NOPUT
105041  */
105042   __pyx_t_8 = PyInt_FromLong(MPI_MODE_NOCHECK); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105043   __Pyx_GOTREF(__pyx_t_8);
105044   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_NOCHECK, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105045   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105046 
105047   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":5
105048  *
105049  * MODE_NOCHECK   = MPI_MODE_NOCHECK
105050  * MODE_NOSTORE   = MPI_MODE_NOSTORE             # <<<<<<<<<<<<<<
105051  * MODE_NOPUT     = MPI_MODE_NOPUT
105052  * MODE_NOPRECEDE = MPI_MODE_NOPRECEDE
105053  */
105054   __pyx_t_8 = PyInt_FromLong(MPI_MODE_NOSTORE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105055   __Pyx_GOTREF(__pyx_t_8);
105056   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_NOSTORE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105057   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105058 
105059   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":6
105060  * MODE_NOCHECK   = MPI_MODE_NOCHECK
105061  * MODE_NOSTORE   = MPI_MODE_NOSTORE
105062  * MODE_NOPUT     = MPI_MODE_NOPUT             # <<<<<<<<<<<<<<
105063  * MODE_NOPRECEDE = MPI_MODE_NOPRECEDE
105064  * MODE_NOSUCCEED = MPI_MODE_NOSUCCEED
105065  */
105066   __pyx_t_8 = PyInt_FromLong(MPI_MODE_NOPUT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105067   __Pyx_GOTREF(__pyx_t_8);
105068   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_NOPUT, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105069   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105070 
105071   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":7
105072  * MODE_NOSTORE   = MPI_MODE_NOSTORE
105073  * MODE_NOPUT     = MPI_MODE_NOPUT
105074  * MODE_NOPRECEDE = MPI_MODE_NOPRECEDE             # <<<<<<<<<<<<<<
105075  * MODE_NOSUCCEED = MPI_MODE_NOSUCCEED
105076  *
105077  */
105078   __pyx_t_8 = PyInt_FromLong(MPI_MODE_NOPRECEDE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105079   __Pyx_GOTREF(__pyx_t_8);
105080   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_NOPRECEDE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105081   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105082 
105083   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":8
105084  * MODE_NOPUT     = MPI_MODE_NOPUT
105085  * MODE_NOPRECEDE = MPI_MODE_NOPRECEDE
105086  * MODE_NOSUCCEED = MPI_MODE_NOSUCCEED             # <<<<<<<<<<<<<<
105087  *
105088  * # Lock types
105089  */
105090   __pyx_t_8 = PyInt_FromLong(MPI_MODE_NOSUCCEED); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105091   __Pyx_GOTREF(__pyx_t_8);
105092   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_NOSUCCEED, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105093   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105094 
105095   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":13
105096  * # ----------
105097  *
105098  * LOCK_EXCLUSIVE = MPI_LOCK_EXCLUSIVE             # <<<<<<<<<<<<<<
105099  * LOCK_SHARED    = MPI_LOCK_SHARED
105100  *
105101  */
105102   __pyx_t_8 = PyInt_FromLong(MPI_LOCK_EXCLUSIVE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105103   __Pyx_GOTREF(__pyx_t_8);
105104   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOCK_EXCLUSIVE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105105   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105106 
105107   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":14
105108  *
105109  * LOCK_EXCLUSIVE = MPI_LOCK_EXCLUSIVE
105110  * LOCK_SHARED    = MPI_LOCK_SHARED             # <<<<<<<<<<<<<<
105111  *
105112  *
105113  */
105114   __pyx_t_8 = PyInt_FromLong(MPI_LOCK_SHARED); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105115   __Pyx_GOTREF(__pyx_t_8);
105116   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOCK_SHARED, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105117   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105118 
105119   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":51
105120  *     @classmethod
105121  *     def Create(cls, memory, int disp_unit=1,
105122  *                Info info=INFO_NULL, Intracomm comm not None=COMM_SELF):             # <<<<<<<<<<<<<<
105123  *         """
105124  *         Create an window object for one-sided communication
105125  */
105126   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105127   __Pyx_GOTREF(__pyx_t_8);
105128   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105129   __pyx_k_100 = ((struct PyMPIInfoObject *)__pyx_t_8);
105130   __Pyx_GIVEREF(__pyx_t_8);
105131   __pyx_t_8 = 0;
105132   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__COMM_SELF); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105133   __Pyx_GOTREF(__pyx_t_8);
105134   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Intracomm))))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105135   __pyx_k_101 = ((struct PyMPIIntracommObject *)__pyx_t_8);
105136   __Pyx_GIVEREF(__pyx_t_8);
105137   __pyx_t_8 = 0;
105138 
105139   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":50
105140  *
105141  *     @classmethod
105142  *     def Create(cls, memory, int disp_unit=1,             # <<<<<<<<<<<<<<
105143  *                Info info=INFO_NULL, Intracomm comm not None=COMM_SELF):
105144  *         """
105145  */
105146   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win, __pyx_n_s__Create); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105147   __Pyx_GOTREF(__pyx_t_8);
105148   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105149   __Pyx_GOTREF(__pyx_t_2);
105150   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105151   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win->tp_dict, __pyx_n_s__Create, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105152   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105153   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Win);
105154 
105155   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":140
105156  *
105157  *     @classmethod
105158  *     def Create_keyval(cls, copy_fn=None, delete_fn=None):             # <<<<<<<<<<<<<<
105159  *         """
105160  *         Create a new attribute key for windows
105161  */
105162   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win, __pyx_n_s__Create_keyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105163   __Pyx_GOTREF(__pyx_t_2);
105164   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105165   __Pyx_GOTREF(__pyx_t_8);
105166   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105167   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win->tp_dict, __pyx_n_s__Create_keyval, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105168   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105169   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Win);
105170 
105171   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":153
105172  *
105173  *     @classmethod
105174  *     def Free_keyval(cls, int keyval):             # <<<<<<<<<<<<<<
105175  *         """
105176  *         Free and attribute key for windows
105177  */
105178   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win, __pyx_n_s__Free_keyval); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105179   __Pyx_GOTREF(__pyx_t_8);
105180   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105181   __Pyx_GOTREF(__pyx_t_2);
105182   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105183   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win->tp_dict, __pyx_n_s__Free_keyval, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105184   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105185   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Win);
105186 
105187   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":242
105188  *
105189  *     def Accumulate(self, origin, int target_rank,
105190  *                    target=None, Op op not None=SUM):             # <<<<<<<<<<<<<<
105191  *         """
105192  *         Accumulate data into the target process
105193  */
105194   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__SUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105195   __Pyx_GOTREF(__pyx_t_2);
105196   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Op))))) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105197   __pyx_k_102 = ((struct PyMPIOpObject *)__pyx_t_2);
105198   __Pyx_GIVEREF(__pyx_t_2);
105199   __pyx_t_2 = 0;
105200 
105201   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":380
105202  *
105203  *     @classmethod
105204  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
105205  *         """
105206  *         """
105207  */
105208   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win, __pyx_n_s__f2py); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105209   __Pyx_GOTREF(__pyx_t_2);
105210   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105211   __Pyx_GOTREF(__pyx_t_8);
105212   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105213   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_Win->tp_dict, __pyx_n_s__f2py, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105214   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105215   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_Win);
105216 
105217   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":389
105218  *
105219  *
105220  * cdef Win __WIN_NULL__ = new_Win(MPI_WIN_NULL)             # <<<<<<<<<<<<<<
105221  *
105222  *
105223  */
105224   __pyx_t_8 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_Win(MPI_WIN_NULL)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105225   __Pyx_GOTREF(__pyx_t_8);
105226   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___WIN_NULL__));
105227   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___WIN_NULL__));
105228   __Pyx_GIVEREF(__pyx_t_8);
105229   __pyx_v_6mpi4py_3MPI___WIN_NULL__ = ((struct PyMPIWinObject *)__pyx_t_8);
105230   __pyx_t_8 = 0;
105231 
105232   /* "/home/devel/mpi4py-1.3/src/MPI/Win.pyx":395
105233  * # -------------------------
105234  *
105235  * WIN_NULL = __WIN_NULL__  #: Null window handle             # <<<<<<<<<<<<<<
105236  */
105237   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WIN_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___WIN_NULL__)) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105238 
105239   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":4
105240  * # -------------
105241  *
105242  * MODE_RDONLY          = MPI_MODE_RDONLY           #: Read only             # <<<<<<<<<<<<<<
105243  * MODE_WRONLY          = MPI_MODE_WRONLY           #: Write only
105244  * MODE_RDWR            = MPI_MODE_RDWR             #: Reading and writing
105245  */
105246   __pyx_t_8 = PyInt_FromLong(MPI_MODE_RDONLY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105247   __Pyx_GOTREF(__pyx_t_8);
105248   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_RDONLY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105249   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105250 
105251   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":5
105252  *
105253  * MODE_RDONLY          = MPI_MODE_RDONLY           #: Read only
105254  * MODE_WRONLY          = MPI_MODE_WRONLY           #: Write only             # <<<<<<<<<<<<<<
105255  * MODE_RDWR            = MPI_MODE_RDWR             #: Reading and writing
105256  * MODE_CREATE          = MPI_MODE_CREATE           #: Create the file if it does not exist
105257  */
105258   __pyx_t_8 = PyInt_FromLong(MPI_MODE_WRONLY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105259   __Pyx_GOTREF(__pyx_t_8);
105260   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_WRONLY, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105261   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105262 
105263   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":6
105264  * MODE_RDONLY          = MPI_MODE_RDONLY           #: Read only
105265  * MODE_WRONLY          = MPI_MODE_WRONLY           #: Write only
105266  * MODE_RDWR            = MPI_MODE_RDWR             #: Reading and writing             # <<<<<<<<<<<<<<
105267  * MODE_CREATE          = MPI_MODE_CREATE           #: Create the file if it does not exist
105268  * MODE_EXCL            = MPI_MODE_EXCL             #: Error if creating file that already exists
105269  */
105270   __pyx_t_8 = PyInt_FromLong(MPI_MODE_RDWR); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105271   __Pyx_GOTREF(__pyx_t_8);
105272   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_RDWR, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105273   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105274 
105275   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":7
105276  * MODE_WRONLY          = MPI_MODE_WRONLY           #: Write only
105277  * MODE_RDWR            = MPI_MODE_RDWR             #: Reading and writing
105278  * MODE_CREATE          = MPI_MODE_CREATE           #: Create the file if it does not exist             # <<<<<<<<<<<<<<
105279  * MODE_EXCL            = MPI_MODE_EXCL             #: Error if creating file that already exists
105280  * MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE  #: Delete file on close
105281  */
105282   __pyx_t_8 = PyInt_FromLong(MPI_MODE_CREATE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105283   __Pyx_GOTREF(__pyx_t_8);
105284   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_CREATE, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105285   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105286 
105287   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":8
105288  * MODE_RDWR            = MPI_MODE_RDWR             #: Reading and writing
105289  * MODE_CREATE          = MPI_MODE_CREATE           #: Create the file if it does not exist
105290  * MODE_EXCL            = MPI_MODE_EXCL             #: Error if creating file that already exists             # <<<<<<<<<<<<<<
105291  * MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE  #: Delete file on close
105292  * MODE_UNIQUE_OPEN     = MPI_MODE_UNIQUE_OPEN      #: File will not be concurrently opened elsewhere
105293  */
105294   __pyx_t_8 = PyInt_FromLong(MPI_MODE_EXCL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105295   __Pyx_GOTREF(__pyx_t_8);
105296   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_EXCL, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105297   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105298 
105299   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":9
105300  * MODE_CREATE          = MPI_MODE_CREATE           #: Create the file if it does not exist
105301  * MODE_EXCL            = MPI_MODE_EXCL             #: Error if creating file that already exists
105302  * MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE  #: Delete file on close             # <<<<<<<<<<<<<<
105303  * MODE_UNIQUE_OPEN     = MPI_MODE_UNIQUE_OPEN      #: File will not be concurrently opened elsewhere
105304  * MODE_SEQUENTIAL      = MPI_MODE_SEQUENTIAL       #: File will only be accessed sequentially
105305  */
105306   __pyx_t_8 = PyInt_FromLong(MPI_MODE_DELETE_ON_CLOSE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105307   __Pyx_GOTREF(__pyx_t_8);
105308   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_164, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105309   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105310 
105311   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":10
105312  * MODE_EXCL            = MPI_MODE_EXCL             #: Error if creating file that already exists
105313  * MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE  #: Delete file on close
105314  * MODE_UNIQUE_OPEN     = MPI_MODE_UNIQUE_OPEN      #: File will not be concurrently opened elsewhere             # <<<<<<<<<<<<<<
105315  * MODE_SEQUENTIAL      = MPI_MODE_SEQUENTIAL       #: File will only be accessed sequentially
105316  * MODE_APPEND          = MPI_MODE_APPEND           #: Set initial position of all file pointers to end of file
105317  */
105318   __pyx_t_8 = PyInt_FromLong(MPI_MODE_UNIQUE_OPEN); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105319   __Pyx_GOTREF(__pyx_t_8);
105320   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_UNIQUE_OPEN, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105321   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105322 
105323   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":11
105324  * MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE  #: Delete file on close
105325  * MODE_UNIQUE_OPEN     = MPI_MODE_UNIQUE_OPEN      #: File will not be concurrently opened elsewhere
105326  * MODE_SEQUENTIAL      = MPI_MODE_SEQUENTIAL       #: File will only be accessed sequentially             # <<<<<<<<<<<<<<
105327  * MODE_APPEND          = MPI_MODE_APPEND           #: Set initial position of all file pointers to end of file
105328  *
105329  */
105330   __pyx_t_8 = PyInt_FromLong(MPI_MODE_SEQUENTIAL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105331   __Pyx_GOTREF(__pyx_t_8);
105332   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_SEQUENTIAL, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105333   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105334 
105335   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":12
105336  * MODE_UNIQUE_OPEN     = MPI_MODE_UNIQUE_OPEN      #: File will not be concurrently opened elsewhere
105337  * MODE_SEQUENTIAL      = MPI_MODE_SEQUENTIAL       #: File will only be accessed sequentially
105338  * MODE_APPEND          = MPI_MODE_APPEND           #: Set initial position of all file pointers to end of file             # <<<<<<<<<<<<<<
105339  *
105340  *
105341  */
105342   __pyx_t_8 = PyInt_FromLong(MPI_MODE_APPEND); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105343   __Pyx_GOTREF(__pyx_t_8);
105344   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MODE_APPEND, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105345   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105346 
105347   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":18
105348  * # -----------
105349  *
105350  * SEEK_SET = MPI_SEEK_SET  #: File pointer is set to offset             # <<<<<<<<<<<<<<
105351  * SEEK_CUR = MPI_SEEK_CUR  #: File pointer is set to the current position plus offset
105352  * SEEK_END = MPI_SEEK_END  #: File pointer is set to the end plus offset
105353  */
105354   __pyx_t_8 = PyInt_FromLong(MPI_SEEK_SET); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105355   __Pyx_GOTREF(__pyx_t_8);
105356   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SEEK_SET, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105357   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105358 
105359   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":19
105360  *
105361  * SEEK_SET = MPI_SEEK_SET  #: File pointer is set to offset
105362  * SEEK_CUR = MPI_SEEK_CUR  #: File pointer is set to the current position plus offset             # <<<<<<<<<<<<<<
105363  * SEEK_END = MPI_SEEK_END  #: File pointer is set to the end plus offset
105364  * DISPLACEMENT_CURRENT = MPI_DISPLACEMENT_CURRENT  #: Special displacement value for files opened in sequential mode
105365  */
105366   __pyx_t_8 = PyInt_FromLong(MPI_SEEK_CUR); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105367   __Pyx_GOTREF(__pyx_t_8);
105368   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SEEK_CUR, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105369   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105370 
105371   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":20
105372  * SEEK_SET = MPI_SEEK_SET  #: File pointer is set to offset
105373  * SEEK_CUR = MPI_SEEK_CUR  #: File pointer is set to the current position plus offset
105374  * SEEK_END = MPI_SEEK_END  #: File pointer is set to the end plus offset             # <<<<<<<<<<<<<<
105375  * DISPLACEMENT_CURRENT = MPI_DISPLACEMENT_CURRENT  #: Special displacement value for files opened in sequential mode
105376  * DISP_CUR             = MPI_DISPLACEMENT_CURRENT  #: Convenience alias for `DISPLACEMENT_CURRENT`
105377  */
105378   __pyx_t_8 = PyInt_FromLong(MPI_SEEK_END); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105379   __Pyx_GOTREF(__pyx_t_8);
105380   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SEEK_END, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105381   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105382 
105383   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":21
105384  * SEEK_CUR = MPI_SEEK_CUR  #: File pointer is set to the current position plus offset
105385  * SEEK_END = MPI_SEEK_END  #: File pointer is set to the end plus offset
105386  * DISPLACEMENT_CURRENT = MPI_DISPLACEMENT_CURRENT  #: Special displacement value for files opened in sequential mode             # <<<<<<<<<<<<<<
105387  * DISP_CUR             = MPI_DISPLACEMENT_CURRENT  #: Convenience alias for `DISPLACEMENT_CURRENT`
105388  *
105389  */
105390   __pyx_t_8 = PyInt_FromLong(MPI_DISPLACEMENT_CURRENT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105391   __Pyx_GOTREF(__pyx_t_8);
105392   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_165, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105393   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105394 
105395   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":22
105396  * SEEK_END = MPI_SEEK_END  #: File pointer is set to the end plus offset
105397  * DISPLACEMENT_CURRENT = MPI_DISPLACEMENT_CURRENT  #: Special displacement value for files opened in sequential mode
105398  * DISP_CUR             = MPI_DISPLACEMENT_CURRENT  #: Convenience alias for `DISPLACEMENT_CURRENT`             # <<<<<<<<<<<<<<
105399  *
105400  *
105401  */
105402   __pyx_t_8 = PyInt_FromLong(MPI_DISPLACEMENT_CURRENT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105403   __Pyx_GOTREF(__pyx_t_8);
105404   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DISP_CUR, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105405   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105406 
105407   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":59
105408  *     @classmethod
105409  *     def Open(cls, Intracomm comm not None, filename,
105410  *              int amode=MODE_RDONLY, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
105411  *         """
105412  *         Open a file
105413  */
105414   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__MODE_RDONLY); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105415   __Pyx_GOTREF(__pyx_t_8);
105416   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_8); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105417   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105418   __pyx_k_105 = __pyx_t_1;
105419   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105420   __Pyx_GOTREF(__pyx_t_8);
105421   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105422   __pyx_k_104 = ((struct PyMPIInfoObject *)__pyx_t_8);
105423   __Pyx_GIVEREF(__pyx_t_8);
105424   __pyx_t_8 = 0;
105425 
105426   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":58
105427  *
105428  *     @classmethod
105429  *     def Open(cls, Intracomm comm not None, filename,             # <<<<<<<<<<<<<<
105430  *              int amode=MODE_RDONLY, Info info=INFO_NULL):
105431  *         """
105432  */
105433   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_File, __pyx_n_s__Open); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105434   __Pyx_GOTREF(__pyx_t_8);
105435   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105436   __Pyx_GOTREF(__pyx_t_2);
105437   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105438   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_File->tp_dict, __pyx_n_s__Open, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105439   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105440   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_File);
105441 
105442   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":84
105443  *
105444  *     @classmethod
105445  *     def Delete(cls, filename, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
105446  *         """
105447  *         Delete a file
105448  */
105449   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105450   __Pyx_GOTREF(__pyx_t_2);
105451   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105452   __pyx_k_106 = ((struct PyMPIInfoObject *)__pyx_t_2);
105453   __Pyx_GIVEREF(__pyx_t_2);
105454   __pyx_t_2 = 0;
105455 
105456   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":83
105457  *     # -----------------------
105458  *
105459  *     @classmethod             # <<<<<<<<<<<<<<
105460  *     def Delete(cls, filename, Info info=INFO_NULL):
105461  *         """
105462  */
105463   __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_File, __pyx_n_s__Delete); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105464   __Pyx_GOTREF(__pyx_t_2);
105465   __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105466   __Pyx_GOTREF(__pyx_t_8);
105467   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105468   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_File->tp_dict, __pyx_n_s__Delete, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105469   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105470   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_File);
105471 
105472   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":187
105473  *     def Set_view(self, Offset disp=0,
105474  *                  Datatype etype=None, Datatype filetype=None,
105475  *                  object datarep=None, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
105476  *         """
105477  *         Set the file view
105478  */
105479   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105480   __Pyx_GOTREF(__pyx_t_8);
105481   if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105482   __pyx_k_107 = ((struct PyMPIInfoObject *)__pyx_t_8);
105483   __Pyx_GIVEREF(__pyx_t_8);
105484   __pyx_t_8 = 0;
105485 
105486   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":341
105487  *         return request
105488  *
105489  *     def Seek(self, Offset offset, int whence=SEEK_SET):             # <<<<<<<<<<<<<<
105490  *         """
105491  *         Update the individual file pointer
105492  */
105493   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SEEK_SET); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105494   __Pyx_GOTREF(__pyx_t_8);
105495   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_8); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105496   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105497   __pyx_k_108 = __pyx_t_1;
105498 
105499   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":427
105500  *             self.ob_mpi, m.buf, m.count, m.dtype, statusp) )
105501  *
105502  *     def Seek_shared(self, Offset offset, int whence=SEEK_SET):             # <<<<<<<<<<<<<<
105503  *         """
105504  *         Update the shared file pointer
105505  */
105506   __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__SEEK_SET); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105507   __Pyx_GOTREF(__pyx_t_8);
105508   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_8); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105509   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105510   __pyx_k_109 = __pyx_t_1;
105511 
105512   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":642
105513  *
105514  *     @classmethod
105515  *     def f2py(cls, arg):             # <<<<<<<<<<<<<<
105516  *         """
105517  *         """
105518  */
105519   __pyx_t_8 = __Pyx_GetName((PyObject *)__pyx_ptype_6mpi4py_3MPI_File, __pyx_n_s__f2py); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105520   __Pyx_GOTREF(__pyx_t_8);
105521   __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105522   __Pyx_GOTREF(__pyx_t_2);
105523   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
105524   if (PyDict_SetItem((PyObject *)__pyx_ptype_6mpi4py_3MPI_File->tp_dict, __pyx_n_s__f2py, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105525   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105526   PyType_Modified(__pyx_ptype_6mpi4py_3MPI_File);
105527 
105528   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":651
105529  *
105530  *
105531  * cdef File __FILE_NULL__ = new_File(MPI_FILE_NULL)             # <<<<<<<<<<<<<<
105532  *
105533  *
105534  */
105535   __pyx_t_2 = ((PyObject *)__pyx_f_6mpi4py_3MPI_new_File(MPI_FILE_NULL)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105536   __Pyx_GOTREF(__pyx_t_2);
105537   __Pyx_XGOTREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FILE_NULL__));
105538   __Pyx_DECREF(((PyObject *)__pyx_v_6mpi4py_3MPI___FILE_NULL__));
105539   __Pyx_GIVEREF(__pyx_t_2);
105540   __pyx_v_6mpi4py_3MPI___FILE_NULL__ = ((struct PyMPIFileObject *)__pyx_t_2);
105541   __pyx_t_2 = 0;
105542 
105543   /* "/home/devel/mpi4py-1.3/src/MPI/File.pyx":657
105544  * # -----------------------
105545  *
105546  * FILE_NULL = __FILE_NULL__  #: Null file handle             # <<<<<<<<<<<<<<
105547  */
105548   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILE_NULL, ((PyObject *)__pyx_v_6mpi4py_3MPI___FILE_NULL__)) < 0) {__pyx_filename = __pyx_f[26]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105549 
105550   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":38
105551  * # ------------------
105552  *
105553  * UNDEFINED = MPI_UNDEFINED             # <<<<<<<<<<<<<<
105554  * #"""Undefined integer value"""
105555  *
105556  */
105557   __pyx_t_2 = PyInt_FromLong(MPI_UNDEFINED); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105558   __Pyx_GOTREF(__pyx_t_2);
105559   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNDEFINED, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105560   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105561 
105562   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":41
105563  * #"""Undefined integer value"""
105564  *
105565  * ANY_SOURCE = MPI_ANY_SOURCE             # <<<<<<<<<<<<<<
105566  * #"""Wildcard source value for receives"""
105567  *
105568  */
105569   __pyx_t_2 = PyInt_FromLong(MPI_ANY_SOURCE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105570   __Pyx_GOTREF(__pyx_t_2);
105571   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ANY_SOURCE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105572   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105573 
105574   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":44
105575  * #"""Wildcard source value for receives"""
105576  *
105577  * ANY_TAG = MPI_ANY_TAG             # <<<<<<<<<<<<<<
105578  * #"""Wildcard tag value for receives"""
105579  *
105580  */
105581   __pyx_t_2 = PyInt_FromLong(MPI_ANY_TAG); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105582   __Pyx_GOTREF(__pyx_t_2);
105583   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ANY_TAG, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105584   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105585 
105586   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":47
105587  * #"""Wildcard tag value for receives"""
105588  *
105589  * PROC_NULL = MPI_PROC_NULL             # <<<<<<<<<<<<<<
105590  * #"""Special process rank for send/receive"""
105591  *
105592  */
105593   __pyx_t_2 = PyInt_FromLong(MPI_PROC_NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105594   __Pyx_GOTREF(__pyx_t_2);
105595   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PROC_NULL, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105596   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105597 
105598   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":50
105599  * #"""Special process rank for send/receive"""
105600  *
105601  * ROOT = MPI_ROOT             # <<<<<<<<<<<<<<
105602  * #"""Root process for collective inter-communications"""
105603  *
105604  */
105605   __pyx_t_2 = PyInt_FromLong(MPI_ROOT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105606   __Pyx_GOTREF(__pyx_t_2);
105607   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ROOT, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105608   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105609 
105610   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":53
105611  * #"""Root process for collective inter-communications"""
105612  *
105613  * BOTTOM = __BOTTOM__             # <<<<<<<<<<<<<<
105614  * #"""Special address for buffers"""
105615  *
105616  */
105617   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BOTTOM, __pyx_v_6mpi4py_3MPI___BOTTOM__) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105618 
105619   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":56
105620  * #"""Special address for buffers"""
105621  *
105622  * IN_PLACE = __IN_PLACE__             # <<<<<<<<<<<<<<
105623  * #"""*In-place* option for collective communications"""
105624  *
105625  */
105626   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__IN_PLACE, __pyx_v_6mpi4py_3MPI___IN_PLACE__) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105627 
105628   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":64
105629  * # ----------------------------
105630  *
105631  * KEYVAL_INVALID  = MPI_KEYVAL_INVALID             # <<<<<<<<<<<<<<
105632  *
105633  * TAG_UB          = MPI_TAG_UB
105634  */
105635   __pyx_t_2 = PyInt_FromLong(MPI_KEYVAL_INVALID); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105636   __Pyx_GOTREF(__pyx_t_2);
105637   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__KEYVAL_INVALID, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105638   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105639 
105640   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":66
105641  * KEYVAL_INVALID  = MPI_KEYVAL_INVALID
105642  *
105643  * TAG_UB          = MPI_TAG_UB             # <<<<<<<<<<<<<<
105644  * HOST            = MPI_HOST
105645  * IO              = MPI_IO
105646  */
105647   __pyx_t_2 = PyInt_FromLong(MPI_TAG_UB); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105648   __Pyx_GOTREF(__pyx_t_2);
105649   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TAG_UB, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105650   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105651 
105652   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":67
105653  *
105654  * TAG_UB          = MPI_TAG_UB
105655  * HOST            = MPI_HOST             # <<<<<<<<<<<<<<
105656  * IO              = MPI_IO
105657  * WTIME_IS_GLOBAL = MPI_WTIME_IS_GLOBAL
105658  */
105659   __pyx_t_2 = PyInt_FromLong(MPI_HOST); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105660   __Pyx_GOTREF(__pyx_t_2);
105661   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__HOST, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105662   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105663 
105664   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":68
105665  * TAG_UB          = MPI_TAG_UB
105666  * HOST            = MPI_HOST
105667  * IO              = MPI_IO             # <<<<<<<<<<<<<<
105668  * WTIME_IS_GLOBAL = MPI_WTIME_IS_GLOBAL
105669  *
105670  */
105671   __pyx_t_2 = PyInt_FromLong(MPI_IO); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105672   __Pyx_GOTREF(__pyx_t_2);
105673   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__IO, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105674   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105675 
105676   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":69
105677  * HOST            = MPI_HOST
105678  * IO              = MPI_IO
105679  * WTIME_IS_GLOBAL = MPI_WTIME_IS_GLOBAL             # <<<<<<<<<<<<<<
105680  *
105681  * UNIVERSE_SIZE   = MPI_UNIVERSE_SIZE
105682  */
105683   __pyx_t_2 = PyInt_FromLong(MPI_WTIME_IS_GLOBAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105684   __Pyx_GOTREF(__pyx_t_2);
105685   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WTIME_IS_GLOBAL, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105686   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105687 
105688   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":71
105689  * WTIME_IS_GLOBAL = MPI_WTIME_IS_GLOBAL
105690  *
105691  * UNIVERSE_SIZE   = MPI_UNIVERSE_SIZE             # <<<<<<<<<<<<<<
105692  * APPNUM          = MPI_APPNUM
105693  *
105694  */
105695   __pyx_t_2 = PyInt_FromLong(MPI_UNIVERSE_SIZE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105696   __Pyx_GOTREF(__pyx_t_2);
105697   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UNIVERSE_SIZE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105698   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105699 
105700   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":72
105701  *
105702  * UNIVERSE_SIZE   = MPI_UNIVERSE_SIZE
105703  * APPNUM          = MPI_APPNUM             # <<<<<<<<<<<<<<
105704  *
105705  * LASTUSEDCODE    = MPI_LASTUSEDCODE
105706  */
105707   __pyx_t_2 = PyInt_FromLong(MPI_APPNUM); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105708   __Pyx_GOTREF(__pyx_t_2);
105709   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__APPNUM, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105710   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105711 
105712   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":74
105713  * APPNUM          = MPI_APPNUM
105714  *
105715  * LASTUSEDCODE    = MPI_LASTUSEDCODE             # <<<<<<<<<<<<<<
105716  *
105717  * WIN_BASE        = MPI_WIN_BASE
105718  */
105719   __pyx_t_2 = PyInt_FromLong(MPI_LASTUSEDCODE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105720   __Pyx_GOTREF(__pyx_t_2);
105721   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LASTUSEDCODE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105722   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105723 
105724   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":76
105725  * LASTUSEDCODE    = MPI_LASTUSEDCODE
105726  *
105727  * WIN_BASE        = MPI_WIN_BASE             # <<<<<<<<<<<<<<
105728  * WIN_SIZE        = MPI_WIN_SIZE
105729  * WIN_DISP_UNIT   = MPI_WIN_DISP_UNIT
105730  */
105731   __pyx_t_2 = PyInt_FromLong(MPI_WIN_BASE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105732   __Pyx_GOTREF(__pyx_t_2);
105733   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WIN_BASE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105734   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105735 
105736   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":77
105737  *
105738  * WIN_BASE        = MPI_WIN_BASE
105739  * WIN_SIZE        = MPI_WIN_SIZE             # <<<<<<<<<<<<<<
105740  * WIN_DISP_UNIT   = MPI_WIN_DISP_UNIT
105741  *
105742  */
105743   __pyx_t_2 = PyInt_FromLong(MPI_WIN_SIZE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105744   __Pyx_GOTREF(__pyx_t_2);
105745   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WIN_SIZE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105746   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105747 
105748   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":78
105749  * WIN_BASE        = MPI_WIN_BASE
105750  * WIN_SIZE        = MPI_WIN_SIZE
105751  * WIN_DISP_UNIT   = MPI_WIN_DISP_UNIT             # <<<<<<<<<<<<<<
105752  *
105753  *
105754  */
105755   __pyx_t_2 = PyInt_FromLong(MPI_WIN_DISP_UNIT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105756   __Pyx_GOTREF(__pyx_t_2);
105757   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__WIN_DISP_UNIT, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105758   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105759 
105760   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":84
105761  * # -----------------
105762  *
105763  * def Alloc_mem(Aint size, Info info=INFO_NULL):             # <<<<<<<<<<<<<<
105764  *     """
105765  *     Allocate memory for message passing and RMA
105766  */
105767   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__INFO_NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105768   __Pyx_GOTREF(__pyx_t_2);
105769   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Info))))) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105770   __pyx_k_110 = ((struct PyMPIInfoObject *)__pyx_t_2);
105771   __Pyx_GIVEREF(__pyx_t_2);
105772   __pyx_t_2 = 0;
105773   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_14Alloc_mem, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105774   __Pyx_GOTREF(__pyx_t_2);
105775   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Alloc_mem, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105776   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105777 
105778   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":93
105779  *     return tomemory(base, size)
105780  *
105781  * def Free_mem(memory):             # <<<<<<<<<<<<<<
105782  *     """
105783  *     Free memory allocated with `Alloc_mem()`
105784  */
105785   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_15Free_mem, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105786   __Pyx_GOTREF(__pyx_t_2);
105787   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Free_mem, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105788   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105789 
105790   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":105
105791  * # -----------------------
105792  *
105793  * def Init():             # <<<<<<<<<<<<<<
105794  *     """
105795  *     Initialize the MPI execution environment
105796  */
105797   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_16Init, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105798   __Pyx_GOTREF(__pyx_t_2);
105799   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Init, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105800   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105801 
105802   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":112
105803  *     startup()
105804  *
105805  * def Finalize():             # <<<<<<<<<<<<<<
105806  *     """
105807  *     Terminate the MPI execution environment
105808  */
105809   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_17Finalize, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105810   __Pyx_GOTREF(__pyx_t_2);
105811   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Finalize, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105812   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105813 
105814   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":122
105815  * # -------------------------------
105816  *
105817  * THREAD_SINGLE     = MPI_THREAD_SINGLE             # <<<<<<<<<<<<<<
105818  * # """Only one thread will execute"""
105819  *
105820  */
105821   __pyx_t_2 = PyInt_FromLong(MPI_THREAD_SINGLE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105822   __Pyx_GOTREF(__pyx_t_2);
105823   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__THREAD_SINGLE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105824   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105825 
105826   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":125
105827  * # """Only one thread will execute"""
105828  *
105829  * THREAD_FUNNELED   = MPI_THREAD_FUNNELED             # <<<<<<<<<<<<<<
105830  * # """MPI calls are *funneled* to the main thread"""
105831  *
105832  */
105833   __pyx_t_2 = PyInt_FromLong(MPI_THREAD_FUNNELED); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105834   __Pyx_GOTREF(__pyx_t_2);
105835   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__THREAD_FUNNELED, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105836   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105837 
105838   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":128
105839  * # """MPI calls are *funneled* to the main thread"""
105840  *
105841  * THREAD_SERIALIZED = MPI_THREAD_SERIALIZED             # <<<<<<<<<<<<<<
105842  * # """MPI calls are *serialized*"""
105843  *
105844  */
105845   __pyx_t_2 = PyInt_FromLong(MPI_THREAD_SERIALIZED); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105846   __Pyx_GOTREF(__pyx_t_2);
105847   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__THREAD_SERIALIZED, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105848   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105849 
105850   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":131
105851  * # """MPI calls are *serialized*"""
105852  *
105853  * THREAD_MULTIPLE   = MPI_THREAD_MULTIPLE             # <<<<<<<<<<<<<<
105854  * # """Multiple threads may call MPI"""
105855  *
105856  */
105857   __pyx_t_2 = PyInt_FromLong(MPI_THREAD_MULTIPLE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105858   __Pyx_GOTREF(__pyx_t_2);
105859   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__THREAD_MULTIPLE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105860   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105861 
105862   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":134
105863  * # """Multiple threads may call MPI"""
105864  *
105865  * def Init_thread(int required=THREAD_MULTIPLE):             # <<<<<<<<<<<<<<
105866  *     """
105867  *     Initialize the MPI execution environment
105868  */
105869   __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__THREAD_MULTIPLE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105870   __Pyx_GOTREF(__pyx_t_2);
105871   __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105872   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105873   __pyx_k_111 = __pyx_t_1;
105874   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_18Init_thread, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105875   __Pyx_GOTREF(__pyx_t_2);
105876   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Init_thread, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105877   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105878 
105879   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":143
105880  *     return provided
105881  *
105882  * def Query_thread():             # <<<<<<<<<<<<<<
105883  *     """
105884  *     Return the level of thread support
105885  */
105886   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_19Query_thread, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105887   __Pyx_GOTREF(__pyx_t_2);
105888   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Query_thread, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105889   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105890 
105891   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":152
105892  *     return provided
105893  *
105894  * def Is_thread_main():             # <<<<<<<<<<<<<<
105895  *     """
105896  *     Indicate whether this thread called
105897  */
105898   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_20Is_thread_main, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105899   __Pyx_GOTREF(__pyx_t_2);
105900   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Is_thread_main, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105901   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105902 
105903   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":161
105904  *     return <bint>flag
105905  *
105906  * def Is_initialized():             # <<<<<<<<<<<<<<
105907  *     """
105908  *     Indicates whether ``Init`` has been called
105909  */
105910   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_21Is_initialized, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105911   __Pyx_GOTREF(__pyx_t_2);
105912   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Is_initialized, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105913   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105914 
105915   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":169
105916  *     return <bint>flag
105917  *
105918  * def Is_finalized():             # <<<<<<<<<<<<<<
105919  *     """
105920  *     Indicates whether ``Finalize`` has completed
105921  */
105922   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_22Is_finalized, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105923   __Pyx_GOTREF(__pyx_t_2);
105924   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Is_finalized, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105925   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105926 
105927   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":183
105928  * # -----------------
105929  *
105930  * VERSION    = MPI_VERSION             # <<<<<<<<<<<<<<
105931  * SUBVERSION = MPI_SUBVERSION
105932  *
105933  */
105934   __pyx_t_2 = PyInt_FromLong(MPI_VERSION); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105935   __Pyx_GOTREF(__pyx_t_2);
105936   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__VERSION, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105937   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105938 
105939   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":184
105940  *
105941  * VERSION    = MPI_VERSION
105942  * SUBVERSION = MPI_SUBVERSION             # <<<<<<<<<<<<<<
105943  *
105944  * def Get_version():
105945  */
105946   __pyx_t_2 = PyInt_FromLong(MPI_SUBVERSION); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105947   __Pyx_GOTREF(__pyx_t_2);
105948   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SUBVERSION, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105949   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105950 
105951   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":186
105952  * SUBVERSION = MPI_SUBVERSION
105953  *
105954  * def Get_version():             # <<<<<<<<<<<<<<
105955  *     """
105956  *     Obtain the version number of the MPI standard supported
105957  */
105958   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_23Get_version, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105959   __Pyx_GOTREF(__pyx_t_2);
105960   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Get_version, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105961   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105962 
105963   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":199
105964  * # ----------------------
105965  *
105966  * def Get_processor_name():             # <<<<<<<<<<<<<<
105967  *     """
105968  *     Obtain the name of the calling processor
105969  */
105970   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_24Get_processor_name, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105971   __Pyx_GOTREF(__pyx_t_2);
105972   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Get_processor_name, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105973   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105974 
105975   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":211
105976  * # --------------------------
105977  *
105978  * def Wtime():             # <<<<<<<<<<<<<<
105979  *     """
105980  *     Return an elapsed time on the calling processor
105981  */
105982   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_25Wtime, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105983   __Pyx_GOTREF(__pyx_t_2);
105984   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Wtime, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105985   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105986 
105987   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":217
105988  *     return MPI_Wtime()
105989  *
105990  * def Wtick():             # <<<<<<<<<<<<<<
105991  *     """
105992  *     Return the resolution of ``Wtime``
105993  */
105994   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_26Wtick, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105995   __Pyx_GOTREF(__pyx_t_2);
105996   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Wtick, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
105997   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
105998 
105999   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":226
106000  * # --------------------
106001  *
106002  * def Pcontrol(int level):             # <<<<<<<<<<<<<<
106003  *     """
106004  *     Control profiling
106005  */
106006   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_27Pcontrol, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106007   __Pyx_GOTREF(__pyx_t_2);
106008   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Pcontrol, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106009   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106010 
106011   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":238
106012  *
106013  * # MPI-1
106014  * MAX_PROCESSOR_NAME = MPI_MAX_PROCESSOR_NAME             # <<<<<<<<<<<<<<
106015  * MAX_ERROR_STRING   = MPI_MAX_ERROR_STRING
106016  * # MPI-2
106017  */
106018   __pyx_t_2 = PyInt_FromLong(MPI_MAX_PROCESSOR_NAME); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106019   __Pyx_GOTREF(__pyx_t_2);
106020   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_PROCESSOR_NAME, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106021   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106022 
106023   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":239
106024  * # MPI-1
106025  * MAX_PROCESSOR_NAME = MPI_MAX_PROCESSOR_NAME
106026  * MAX_ERROR_STRING   = MPI_MAX_ERROR_STRING             # <<<<<<<<<<<<<<
106027  * # MPI-2
106028  * MAX_PORT_NAME      = MPI_MAX_PORT_NAME
106029  */
106030   __pyx_t_2 = PyInt_FromLong(MPI_MAX_ERROR_STRING); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106031   __Pyx_GOTREF(__pyx_t_2);
106032   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_ERROR_STRING, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106033   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106034 
106035   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":241
106036  * MAX_ERROR_STRING   = MPI_MAX_ERROR_STRING
106037  * # MPI-2
106038  * MAX_PORT_NAME      = MPI_MAX_PORT_NAME             # <<<<<<<<<<<<<<
106039  * MAX_INFO_KEY       = MPI_MAX_INFO_KEY
106040  * MAX_INFO_VAL       = MPI_MAX_INFO_VAL
106041  */
106042   __pyx_t_2 = PyInt_FromLong(MPI_MAX_PORT_NAME); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106043   __Pyx_GOTREF(__pyx_t_2);
106044   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_PORT_NAME, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106045   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106046 
106047   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":242
106048  * # MPI-2
106049  * MAX_PORT_NAME      = MPI_MAX_PORT_NAME
106050  * MAX_INFO_KEY       = MPI_MAX_INFO_KEY             # <<<<<<<<<<<<<<
106051  * MAX_INFO_VAL       = MPI_MAX_INFO_VAL
106052  * MAX_OBJECT_NAME    = MPI_MAX_OBJECT_NAME
106053  */
106054   __pyx_t_2 = PyInt_FromLong(MPI_MAX_INFO_KEY); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106055   __Pyx_GOTREF(__pyx_t_2);
106056   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_INFO_KEY, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106057   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106058 
106059   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":243
106060  * MAX_PORT_NAME      = MPI_MAX_PORT_NAME
106061  * MAX_INFO_KEY       = MPI_MAX_INFO_KEY
106062  * MAX_INFO_VAL       = MPI_MAX_INFO_VAL             # <<<<<<<<<<<<<<
106063  * MAX_OBJECT_NAME    = MPI_MAX_OBJECT_NAME
106064  * MAX_DATAREP_STRING = MPI_MAX_DATAREP_STRING
106065  */
106066   __pyx_t_2 = PyInt_FromLong(MPI_MAX_INFO_VAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106067   __Pyx_GOTREF(__pyx_t_2);
106068   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_INFO_VAL, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106069   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106070 
106071   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":244
106072  * MAX_INFO_KEY       = MPI_MAX_INFO_KEY
106073  * MAX_INFO_VAL       = MPI_MAX_INFO_VAL
106074  * MAX_OBJECT_NAME    = MPI_MAX_OBJECT_NAME             # <<<<<<<<<<<<<<
106075  * MAX_DATAREP_STRING = MPI_MAX_DATAREP_STRING
106076  *
106077  */
106078   __pyx_t_2 = PyInt_FromLong(MPI_MAX_OBJECT_NAME); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106079   __Pyx_GOTREF(__pyx_t_2);
106080   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_OBJECT_NAME, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106081   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106082 
106083   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":245
106084  * MAX_INFO_VAL       = MPI_MAX_INFO_VAL
106085  * MAX_OBJECT_NAME    = MPI_MAX_OBJECT_NAME
106086  * MAX_DATAREP_STRING = MPI_MAX_DATAREP_STRING             # <<<<<<<<<<<<<<
106087  *
106088  *
106089  */
106090   __pyx_t_2 = PyInt_FromLong(MPI_MAX_DATAREP_STRING); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106091   __Pyx_GOTREF(__pyx_t_2);
106092   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__MAX_DATAREP_STRING, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106093   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106094 
106095   /* "/home/devel/mpi4py-1.3/src/MPI/MPI.pyx":254
106096  *     int MPI_Get_vendor(const_char**,int*,int*,int*)
106097  *
106098  * def get_vendor():             # <<<<<<<<<<<<<<
106099  *     """
106100  *     Infomation about the underlying MPI implementation
106101  */
106102   __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6mpi4py_3MPI_28get_vendor, NULL, __pyx_n_s_148); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106103   __Pyx_GOTREF(__pyx_t_2);
106104   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__get_vendor, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[27]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
106105   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
106106   if (__Pyx_RegisterCleanup()) {__pyx_filename = __pyx_f[28]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
106107   goto __pyx_L0;
106108   __pyx_L1_error:;
106109   __Pyx_XDECREF(__pyx_t_2);
106110   __Pyx_XDECREF(__pyx_t_3);
106111   __Pyx_XDECREF(__pyx_t_4);
106112   __Pyx_XDECREF(__pyx_t_8);
106113   __Pyx_XDECREF(__pyx_t_9);
106114   __Pyx_XDECREF(__pyx_t_10);
106115   if (__pyx_m) {
106116     __Pyx_AddTraceback("init mpi4py.MPI", __pyx_clineno, __pyx_lineno, __pyx_filename);
106117     Py_DECREF(__pyx_m); __pyx_m = 0;
106118   } else if (!PyErr_Occurred()) {
106119     PyErr_SetString(PyExc_ImportError, "init mpi4py.MPI");
106120   }
106121   __pyx_L0:;
106122   __Pyx_RefNannyFinishContext();
106123   #if PY_MAJOR_VERSION < 3
106124   return;
106125   #else
106126   return __pyx_m;
106127   #endif
106128 }
106129 
__Pyx_CleanupGlobals(void)106130 static void __Pyx_CleanupGlobals(void) {
106131   Py_CLEAR(__pyx_k_tuple_6);
106132   Py_CLEAR(__pyx_k_tuple_7);
106133   Py_CLEAR(__pyx_k_tuple_9);
106134   Py_CLEAR(__pyx_k_tuple_12);
106135   Py_CLEAR(__pyx_k_tuple_14);
106136   Py_CLEAR(__pyx_k_tuple_16);
106137   Py_CLEAR(__pyx_k_tuple_18);
106138   Py_CLEAR(__pyx_k_tuple_20);
106139   Py_CLEAR(__pyx_k_tuple_24);
106140   Py_CLEAR(__pyx_k_tuple_26);
106141   Py_CLEAR(__pyx_k_tuple_32);
106142   Py_CLEAR(__pyx_k_tuple_33);
106143   Py_CLEAR(__pyx_k_tuple_34);
106144   Py_CLEAR(__pyx_k_tuple_37);
106145   Py_CLEAR(__pyx_k_tuple_38);
106146   Py_CLEAR(__pyx_k_tuple_40);
106147   Py_CLEAR(__pyx_k_tuple_44);
106148   Py_CLEAR(__pyx_k_tuple_45);
106149   Py_CLEAR(__pyx_k_tuple_47);
106150   Py_CLEAR(__pyx_k_tuple_49);
106151   Py_CLEAR(__pyx_k_tuple_51);
106152   Py_CLEAR(__pyx_k_tuple_52);
106153   Py_CLEAR(__pyx_k_tuple_56);
106154   Py_CLEAR(__pyx_k_tuple_57);
106155   Py_CLEAR(__pyx_k_tuple_60);
106156   Py_CLEAR(__pyx_k_tuple_62);
106157   Py_CLEAR(__pyx_k_tuple_63);
106158   Py_CLEAR(__pyx_k_tuple_64);
106159   Py_CLEAR(__pyx_k_tuple_65);
106160   Py_CLEAR(__pyx_k_tuple_68);
106161   Py_CLEAR(__pyx_k_tuple_69);
106162   Py_CLEAR(__pyx_k_tuple_70);
106163   Py_CLEAR(__pyx_k_tuple_78);
106164   Py_CLEAR(__pyx_k_tuple_90);
106165   Py_CLEAR(__pyx_k_tuple_92);
106166   Py_CLEAR(__pyx_k_tuple_94);
106167   Py_CLEAR(__pyx_k_tuple_96);
106168   Py_CLEAR(__pyx_k_tuple_99);
106169   Py_CLEAR(__pyx_k_tuple_103);
106170 }
__pyx_module_cleanup(CYTHON_UNUSED PyObject * self,CYTHON_UNUSED PyObject * unused)106171 static PyObject *__pyx_module_cleanup(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *unused) {
106172   /*--- Global cleanup code ---*/
106173   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___FILE_NULL__); __pyx_v_6mpi4py_3MPI___FILE_NULL__ = 0;
106174   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___WIN_NULL__); __pyx_v_6mpi4py_3MPI___WIN_NULL__ = 0;
106175   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_PARENT__); __pyx_v_6mpi4py_3MPI___COMM_PARENT__ = 0;
106176   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_WORLD__); __pyx_v_6mpi4py_3MPI___COMM_WORLD__ = 0;
106177   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_SELF__); __pyx_v_6mpi4py_3MPI___COMM_SELF__ = 0;
106178   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMM_NULL__); __pyx_v_6mpi4py_3MPI___COMM_NULL__ = 0;
106179   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_EMPTY__); __pyx_v_6mpi4py_3MPI___GROUP_EMPTY__ = 0;
106180   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___GROUP_NULL__); __pyx_v_6mpi4py_3MPI___GROUP_NULL__ = 0;
106181   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REPLACE__); __pyx_v_6mpi4py_3MPI___REPLACE__ = 0;
106182   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___MINLOC__); __pyx_v_6mpi4py_3MPI___MINLOC__ = 0;
106183   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___MAXLOC__); __pyx_v_6mpi4py_3MPI___MAXLOC__ = 0;
106184   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___BXOR__); __pyx_v_6mpi4py_3MPI___BXOR__ = 0;
106185   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LXOR__); __pyx_v_6mpi4py_3MPI___LXOR__ = 0;
106186   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___BOR__); __pyx_v_6mpi4py_3MPI___BOR__ = 0;
106187   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOR__); __pyx_v_6mpi4py_3MPI___LOR__ = 0;
106188   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___BAND__); __pyx_v_6mpi4py_3MPI___BAND__ = 0;
106189   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LAND__); __pyx_v_6mpi4py_3MPI___LAND__ = 0;
106190   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___PROD__); __pyx_v_6mpi4py_3MPI___PROD__ = 0;
106191   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___SUM__); __pyx_v_6mpi4py_3MPI___SUM__ = 0;
106192   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___MIN__); __pyx_v_6mpi4py_3MPI___MIN__ = 0;
106193   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___MAX__); __pyx_v_6mpi4py_3MPI___MAX__ = 0;
106194   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___OP_NULL__); __pyx_v_6mpi4py_3MPI___OP_NULL__ = 0;
106195   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INFO_NULL__); __pyx_v_6mpi4py_3MPI___INFO_NULL__ = 0;
106196   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REQUEST_NULL__); __pyx_v_6mpi4py_3MPI___REQUEST_NULL__ = 0;
106197   Py_DECREF(__pyx_v_6mpi4py_3MPI_FTypeDict); __pyx_v_6mpi4py_3MPI_FTypeDict = 0;
106198   Py_DECREF(__pyx_v_6mpi4py_3MPI_CTypeDict); __pyx_v_6mpi4py_3MPI_CTypeDict = 0;
106199   Py_DECREF(__pyx_v_6mpi4py_3MPI_TypeDict); __pyx_v_6mpi4py_3MPI_TypeDict = 0;
106200   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX32__); __pyx_v_6mpi4py_3MPI___COMPLEX32__ = 0;
106201   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX16__); __pyx_v_6mpi4py_3MPI___COMPLEX16__ = 0;
106202   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX8__); __pyx_v_6mpi4py_3MPI___COMPLEX8__ = 0;
106203   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX4__); __pyx_v_6mpi4py_3MPI___COMPLEX4__ = 0;
106204   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REAL16__); __pyx_v_6mpi4py_3MPI___REAL16__ = 0;
106205   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REAL8__); __pyx_v_6mpi4py_3MPI___REAL8__ = 0;
106206   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REAL4__); __pyx_v_6mpi4py_3MPI___REAL4__ = 0;
106207   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REAL2__); __pyx_v_6mpi4py_3MPI___REAL2__ = 0;
106208   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER16__); __pyx_v_6mpi4py_3MPI___INTEGER16__ = 0;
106209   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER8__); __pyx_v_6mpi4py_3MPI___INTEGER8__ = 0;
106210   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER4__); __pyx_v_6mpi4py_3MPI___INTEGER4__ = 0;
106211   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER2__); __pyx_v_6mpi4py_3MPI___INTEGER2__ = 0;
106212   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER1__); __pyx_v_6mpi4py_3MPI___INTEGER1__ = 0;
106213   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL8__); __pyx_v_6mpi4py_3MPI___LOGICAL8__ = 0;
106214   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL4__); __pyx_v_6mpi4py_3MPI___LOGICAL4__ = 0;
106215   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL2__); __pyx_v_6mpi4py_3MPI___LOGICAL2__ = 0;
106216   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL1__); __pyx_v_6mpi4py_3MPI___LOGICAL1__ = 0;
106217   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__); __pyx_v_6mpi4py_3MPI___DOUBLE_COMPLEX__ = 0;
106218   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___COMPLEX__); __pyx_v_6mpi4py_3MPI___COMPLEX__ = 0;
106219   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__); __pyx_v_6mpi4py_3MPI___DOUBLE_PRECISION__ = 0;
106220   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___REAL__); __pyx_v_6mpi4py_3MPI___REAL__ = 0;
106221   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INTEGER__); __pyx_v_6mpi4py_3MPI___INTEGER__ = 0;
106222   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LOGICAL__); __pyx_v_6mpi4py_3MPI___LOGICAL__ = 0;
106223   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___CHARACTER__); __pyx_v_6mpi4py_3MPI___CHARACTER__ = 0;
106224   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__); __pyx_v_6mpi4py_3MPI___LONG_DOUBLE_INT__ = 0;
106225   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE_INT__); __pyx_v_6mpi4py_3MPI___DOUBLE_INT__ = 0;
106226   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT_INT__); __pyx_v_6mpi4py_3MPI___FLOAT_INT__ = 0;
106227   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_INT__); __pyx_v_6mpi4py_3MPI___LONG_INT__ = 0;
106228   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___TWOINT__); __pyx_v_6mpi4py_3MPI___TWOINT__ = 0;
106229   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT_INT__); __pyx_v_6mpi4py_3MPI___SHORT_INT__ = 0;
106230   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__); __pyx_v_6mpi4py_3MPI___C_LONG_DOUBLE_COMPLEX__ = 0;
106231   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__); __pyx_v_6mpi4py_3MPI___C_DOUBLE_COMPLEX__ = 0;
106232   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__); __pyx_v_6mpi4py_3MPI___C_FLOAT_COMPLEX__ = 0;
106233   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___C_COMPLEX__); __pyx_v_6mpi4py_3MPI___C_COMPLEX__ = 0;
106234   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UINT64_T__); __pyx_v_6mpi4py_3MPI___UINT64_T__ = 0;
106235   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UINT32_T__); __pyx_v_6mpi4py_3MPI___UINT32_T__ = 0;
106236   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UINT16_T__); __pyx_v_6mpi4py_3MPI___UINT16_T__ = 0;
106237   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UINT8_T__); __pyx_v_6mpi4py_3MPI___UINT8_T__ = 0;
106238   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INT64_T__); __pyx_v_6mpi4py_3MPI___INT64_T__ = 0;
106239   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INT32_T__); __pyx_v_6mpi4py_3MPI___INT32_T__ = 0;
106240   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INT16_T__); __pyx_v_6mpi4py_3MPI___INT16_T__ = 0;
106241   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INT8_T__); __pyx_v_6mpi4py_3MPI___INT8_T__ = 0;
106242   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___C_BOOL__); __pyx_v_6mpi4py_3MPI___C_BOOL__ = 0;
106243   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_DOUBLE__); __pyx_v_6mpi4py_3MPI___LONG_DOUBLE__ = 0;
106244   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___DOUBLE__); __pyx_v_6mpi4py_3MPI___DOUBLE__ = 0;
106245   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___FLOAT__); __pyx_v_6mpi4py_3MPI___FLOAT__ = 0;
106246   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__); __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG_LONG__ = 0;
106247   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__); __pyx_v_6mpi4py_3MPI___UNSIGNED_LONG__ = 0;
106248   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED__); __pyx_v_6mpi4py_3MPI___UNSIGNED__ = 0;
106249   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__); __pyx_v_6mpi4py_3MPI___UNSIGNED_SHORT__ = 0;
106250   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__); __pyx_v_6mpi4py_3MPI___UNSIGNED_CHAR__ = 0;
106251   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LONG_LONG__); __pyx_v_6mpi4py_3MPI___LONG_LONG__ = 0;
106252   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LONG__); __pyx_v_6mpi4py_3MPI___LONG__ = 0;
106253   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___INT__); __pyx_v_6mpi4py_3MPI___INT__ = 0;
106254   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___SHORT__); __pyx_v_6mpi4py_3MPI___SHORT__ = 0;
106255   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___SIGNED_CHAR__); __pyx_v_6mpi4py_3MPI___SIGNED_CHAR__ = 0;
106256   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___WCHAR__); __pyx_v_6mpi4py_3MPI___WCHAR__ = 0;
106257   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___CHAR__); __pyx_v_6mpi4py_3MPI___CHAR__ = 0;
106258   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___OFFSET__); __pyx_v_6mpi4py_3MPI___OFFSET__ = 0;
106259   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___AINT__); __pyx_v_6mpi4py_3MPI___AINT__ = 0;
106260   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___BYTE__); __pyx_v_6mpi4py_3MPI___BYTE__ = 0;
106261   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___PACKED__); __pyx_v_6mpi4py_3MPI___PACKED__ = 0;
106262   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___LB__); __pyx_v_6mpi4py_3MPI___LB__ = 0;
106263   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___UB__); __pyx_v_6mpi4py_3MPI___UB__ = 0;
106264   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___DATATYPE_NULL__); __pyx_v_6mpi4py_3MPI___DATATYPE_NULL__ = 0;
106265   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__); __pyx_v_6mpi4py_3MPI___ERRORS_ARE_FATAL__ = 0;
106266   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___ERRORS_RETURN__); __pyx_v_6mpi4py_3MPI___ERRORS_RETURN__ = 0;
106267   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__); __pyx_v_6mpi4py_3MPI___ERRHANDLER_NULL__ = 0;
106268   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI_PyMPI_PICKLE); __pyx_v_6mpi4py_3MPI_PyMPI_PICKLE = 0;
106269   Py_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loadf); __pyx_v_6mpi4py_3MPI_PyPickle_loadf = 0;
106270   Py_DECREF(__pyx_v_6mpi4py_3MPI_PyStringIO_New); __pyx_v_6mpi4py_3MPI_PyStringIO_New = 0;
106271   Py_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL); __pyx_v_6mpi4py_3MPI_PyPickle_PROTOCOL = 0;
106272   Py_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_loads); __pyx_v_6mpi4py_3MPI_PyPickle_loads = 0;
106273   Py_DECREF(__pyx_v_6mpi4py_3MPI_PyPickle_dumps); __pyx_v_6mpi4py_3MPI_PyPickle_dumps = 0;
106274   Py_DECREF(__pyx_v_6mpi4py_3MPI___IN_PLACE__); __pyx_v_6mpi4py_3MPI___IN_PLACE__ = 0;
106275   Py_DECREF(__pyx_v_6mpi4py_3MPI___BOTTOM__); __pyx_v_6mpi4py_3MPI___BOTTOM__ = 0;
106276   Py_DECREF(__pyx_v_6mpi4py_3MPI_win_keyval); __pyx_v_6mpi4py_3MPI_win_keyval = 0;
106277   Py_DECREF((PyObject *)__pyx_v_6mpi4py_3MPI__buffer); __pyx_v_6mpi4py_3MPI__buffer = 0;
106278   Py_DECREF(__pyx_v_6mpi4py_3MPI_comm_keyval); __pyx_v_6mpi4py_3MPI_comm_keyval = 0;
106279   Py_DECREF(__pyx_v_6mpi4py_3MPI_op_user_registry); __pyx_v_6mpi4py_3MPI_op_user_registry = 0;
106280   Py_DECREF(__pyx_v_6mpi4py_3MPI_type_keyval); __pyx_v_6mpi4py_3MPI_type_keyval = 0;
106281   Py_DECREF(__pyx_v_6mpi4py_3MPI_arraytype); __pyx_v_6mpi4py_3MPI_arraytype = 0;
106282   Py_DECREF(__pyx_v_6mpi4py_3MPI_MPIException); __pyx_v_6mpi4py_3MPI_MPIException = 0;
106283   __Pyx_CleanupGlobals();
106284   /*--- Type import cleanup code ---*/
106285   /*--- Builtin cleanup code ---*/
106286   Py_DECREF(__pyx_builtin_ImportError); __pyx_builtin_ImportError = 0;
106287   Py_DECREF(__pyx_builtin_RuntimeError); __pyx_builtin_RuntimeError = 0;
106288   Py_DECREF(__pyx_builtin_property); __pyx_builtin_property = 0;
106289   Py_DECREF(__pyx_builtin_SystemError); __pyx_builtin_SystemError = 0;
106290   Py_DECREF(__pyx_builtin_TypeError); __pyx_builtin_TypeError = 0;
106291   Py_DECREF(__pyx_builtin_AttributeError); __pyx_builtin_AttributeError = 0;
106292   Py_DECREF(__pyx_builtin_ValueError); __pyx_builtin_ValueError = 0;
106293   Py_DECREF(__pyx_builtin_KeyError); __pyx_builtin_KeyError = 0;
106294   Py_DECREF(__pyx_builtin_NotImplemented); __pyx_builtin_NotImplemented = 0;
106295   Py_DECREF(__pyx_builtin_NotImplementedError); __pyx_builtin_NotImplementedError = 0;
106296   /*--- Intern cleanup code ---*/
106297   Py_DECREF(__pyx_empty_tuple); __pyx_empty_tuple = 0;
106298   Py_INCREF(Py_None); return Py_None;
106299 }
106300 
106301 /* Runtime support code */
106302 
106303 #if CYTHON_REFNANNY
__Pyx_RefNannyImportAPI(const char * modname)106304 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
106305     PyObject *m = NULL, *p = NULL;
106306     void *r = NULL;
106307     m = PyImport_ImportModule((char *)modname);
106308     if (!m) goto end;
106309     p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
106310     if (!p) goto end;
106311     r = PyLong_AsVoidPtr(p);
106312 end:
106313     Py_XDECREF(p);
106314     Py_XDECREF(m);
106315     return (__Pyx_RefNannyAPIStruct *)r;
106316 }
106317 #endif /* CYTHON_REFNANNY */
106318 
__Pyx_GetName(PyObject * dict,PyObject * name)106319 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
106320     PyObject *result;
106321     result = PyObject_GetAttr(dict, name);
106322     if (!result) {
106323         if (dict != __pyx_b) {
106324             PyErr_Clear();
106325             result = PyObject_GetAttr(__pyx_b, name);
106326         }
106327         if (!result) {
106328             PyErr_SetObject(PyExc_NameError, name);
106329         }
106330     }
106331     return result;
106332 }
106333 
__Pyx_GetException(PyObject ** type,PyObject ** value,PyObject ** tb)106334 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
106335     PyObject *local_type, *local_value, *local_tb;
106336     PyObject *tmp_type, *tmp_value, *tmp_tb;
106337     PyThreadState *tstate = PyThreadState_GET();
106338     local_type = tstate->curexc_type;
106339     local_value = tstate->curexc_value;
106340     local_tb = tstate->curexc_traceback;
106341     tstate->curexc_type = 0;
106342     tstate->curexc_value = 0;
106343     tstate->curexc_traceback = 0;
106344     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
106345     if (unlikely(tstate->curexc_type))
106346         goto bad;
106347     #if PY_MAJOR_VERSION >= 3
106348     if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
106349         goto bad;
106350     #endif
106351     *type = local_type;
106352     *value = local_value;
106353     *tb = local_tb;
106354     Py_INCREF(local_type);
106355     Py_INCREF(local_value);
106356     Py_INCREF(local_tb);
106357     tmp_type = tstate->exc_type;
106358     tmp_value = tstate->exc_value;
106359     tmp_tb = tstate->exc_traceback;
106360     tstate->exc_type = local_type;
106361     tstate->exc_value = local_value;
106362     tstate->exc_traceback = local_tb;
106363     /* Make sure tstate is in a consistent state when we XDECREF
106364        these objects (XDECREF may run arbitrary code). */
106365     Py_XDECREF(tmp_type);
106366     Py_XDECREF(tmp_value);
106367     Py_XDECREF(tmp_tb);
106368     return 0;
106369 bad:
106370     *type = 0;
106371     *value = 0;
106372     *tb = 0;
106373     Py_XDECREF(local_type);
106374     Py_XDECREF(local_value);
106375     Py_XDECREF(local_tb);
106376     return -1;
106377 }
106378 
106379 
__Pyx_ErrRestore(PyObject * type,PyObject * value,PyObject * tb)106380 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
106381     PyObject *tmp_type, *tmp_value, *tmp_tb;
106382     PyThreadState *tstate = PyThreadState_GET();
106383 
106384     tmp_type = tstate->curexc_type;
106385     tmp_value = tstate->curexc_value;
106386     tmp_tb = tstate->curexc_traceback;
106387     tstate->curexc_type = type;
106388     tstate->curexc_value = value;
106389     tstate->curexc_traceback = tb;
106390     Py_XDECREF(tmp_type);
106391     Py_XDECREF(tmp_value);
106392     Py_XDECREF(tmp_tb);
106393 }
106394 
__Pyx_ErrFetch(PyObject ** type,PyObject ** value,PyObject ** tb)106395 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
106396     PyThreadState *tstate = PyThreadState_GET();
106397     *type = tstate->curexc_type;
106398     *value = tstate->curexc_value;
106399     *tb = tstate->curexc_traceback;
106400 
106401     tstate->curexc_type = 0;
106402     tstate->curexc_value = 0;
106403     tstate->curexc_traceback = 0;
106404 }
106405 
106406 
106407 #if PY_MAJOR_VERSION < 3
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,PyObject * cause)106408 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
106409     /* cause is unused */
106410     Py_XINCREF(type);
106411     Py_XINCREF(value);
106412     Py_XINCREF(tb);
106413     /* First, check the traceback argument, replacing None with NULL. */
106414     if (tb == Py_None) {
106415         Py_DECREF(tb);
106416         tb = 0;
106417     }
106418     else if (tb != NULL && !PyTraceBack_Check(tb)) {
106419         PyErr_SetString(PyExc_TypeError,
106420             "raise: arg 3 must be a traceback or None");
106421         goto raise_error;
106422     }
106423     /* Next, replace a missing value with None */
106424     if (value == NULL) {
106425         value = Py_None;
106426         Py_INCREF(value);
106427     }
106428     #if PY_VERSION_HEX < 0x02050000
106429     if (!PyClass_Check(type))
106430     #else
106431     if (!PyType_Check(type))
106432     #endif
106433     {
106434         /* Raising an instance.  The value should be a dummy. */
106435         if (value != Py_None) {
106436             PyErr_SetString(PyExc_TypeError,
106437                 "instance exception may not have a separate value");
106438             goto raise_error;
106439         }
106440         /* Normalize to raise <class>, <instance> */
106441         Py_DECREF(value);
106442         value = type;
106443         #if PY_VERSION_HEX < 0x02050000
106444             if (PyInstance_Check(type)) {
106445                 type = (PyObject*) ((PyInstanceObject*)type)->in_class;
106446                 Py_INCREF(type);
106447             }
106448             else {
106449                 type = 0;
106450                 PyErr_SetString(PyExc_TypeError,
106451                     "raise: exception must be an old-style class or instance");
106452                 goto raise_error;
106453             }
106454         #else
106455             type = (PyObject*) Py_TYPE(type);
106456             Py_INCREF(type);
106457             if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
106458                 PyErr_SetString(PyExc_TypeError,
106459                     "raise: exception class must be a subclass of BaseException");
106460                 goto raise_error;
106461             }
106462         #endif
106463     }
106464 
106465     __Pyx_ErrRestore(type, value, tb);
106466     return;
106467 raise_error:
106468     Py_XDECREF(value);
106469     Py_XDECREF(type);
106470     Py_XDECREF(tb);
106471     return;
106472 }
106473 
106474 #else /* Python 3+ */
106475 
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,PyObject * cause)106476 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
106477     if (tb == Py_None) {
106478         tb = 0;
106479     } else if (tb && !PyTraceBack_Check(tb)) {
106480         PyErr_SetString(PyExc_TypeError,
106481             "raise: arg 3 must be a traceback or None");
106482         goto bad;
106483     }
106484     if (value == Py_None)
106485         value = 0;
106486 
106487     if (PyExceptionInstance_Check(type)) {
106488         if (value) {
106489             PyErr_SetString(PyExc_TypeError,
106490                 "instance exception may not have a separate value");
106491             goto bad;
106492         }
106493         value = type;
106494         type = (PyObject*) Py_TYPE(value);
106495     } else if (!PyExceptionClass_Check(type)) {
106496         PyErr_SetString(PyExc_TypeError,
106497             "raise: exception class must be a subclass of BaseException");
106498         goto bad;
106499     }
106500 
106501     if (cause) {
106502         PyObject *fixed_cause;
106503         if (PyExceptionClass_Check(cause)) {
106504             fixed_cause = PyObject_CallObject(cause, NULL);
106505             if (fixed_cause == NULL)
106506                 goto bad;
106507         }
106508         else if (PyExceptionInstance_Check(cause)) {
106509             fixed_cause = cause;
106510             Py_INCREF(fixed_cause);
106511         }
106512         else {
106513             PyErr_SetString(PyExc_TypeError,
106514                             "exception causes must derive from "
106515                             "BaseException");
106516             goto bad;
106517         }
106518         if (!value) {
106519             value = PyObject_CallObject(type, NULL);
106520         }
106521         PyException_SetCause(value, fixed_cause);
106522     }
106523 
106524     PyErr_SetObject(type, value);
106525 
106526     if (tb) {
106527         PyThreadState *tstate = PyThreadState_GET();
106528         PyObject* tmp_tb = tstate->curexc_traceback;
106529         if (tb != tmp_tb) {
106530             Py_INCREF(tb);
106531             tstate->curexc_traceback = tb;
106532             Py_XDECREF(tmp_tb);
106533         }
106534     }
106535 
106536 bad:
106537     return;
106538 }
106539 #endif
106540 
106541 
__Pyx_TypeTest(PyObject * obj,PyTypeObject * type)106542 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
106543     if (unlikely(!type)) {
106544         PyErr_Format(PyExc_SystemError, "Missing type object");
106545         return 0;
106546     }
106547     if (likely(PyObject_TypeCheck(obj, type)))
106548         return 1;
106549     PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
106550                  Py_TYPE(obj)->tp_name, type->tp_name);
106551     return 0;
106552 }
106553 
106554 
106555 
__Pyx_RaiseArgtupleInvalid(const char * func_name,int exact,Py_ssize_t num_min,Py_ssize_t num_max,Py_ssize_t num_found)106556 static void __Pyx_RaiseArgtupleInvalid(
106557     const char* func_name,
106558     int exact,
106559     Py_ssize_t num_min,
106560     Py_ssize_t num_max,
106561     Py_ssize_t num_found)
106562 {
106563     Py_ssize_t num_expected;
106564     const char *more_or_less;
106565 
106566     if (num_found < num_min) {
106567         num_expected = num_min;
106568         more_or_less = "at least";
106569     } else {
106570         num_expected = num_max;
106571         more_or_less = "at most";
106572     }
106573     if (exact) {
106574         more_or_less = "exactly";
106575     }
106576     PyErr_Format(PyExc_TypeError,
106577                  "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)",
106578                  func_name, more_or_less, num_expected,
106579                  (num_expected == 1) ? "" : "s", num_found);
106580 }
106581 
__Pyx_RaiseDoubleKeywordsError(const char * func_name,PyObject * kw_name)106582 static void __Pyx_RaiseDoubleKeywordsError(
106583     const char* func_name,
106584     PyObject* kw_name)
106585 {
106586     PyErr_Format(PyExc_TypeError,
106587         #if PY_MAJOR_VERSION >= 3
106588         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
106589         #else
106590         "%s() got multiple values for keyword argument '%s'", func_name,
106591         PyString_AS_STRING(kw_name));
106592         #endif
106593 }
106594 
__Pyx_ParseOptionalKeywords(PyObject * kwds,PyObject ** argnames[],PyObject * kwds2,PyObject * values[],Py_ssize_t num_pos_args,const char * function_name)106595 static int __Pyx_ParseOptionalKeywords(
106596     PyObject *kwds,
106597     PyObject **argnames[],
106598     PyObject *kwds2,
106599     PyObject *values[],
106600     Py_ssize_t num_pos_args,
106601     const char* function_name)
106602 {
106603     PyObject *key = 0, *value = 0;
106604     Py_ssize_t pos = 0;
106605     PyObject*** name;
106606     PyObject*** first_kw_arg = argnames + num_pos_args;
106607 
106608     while (PyDict_Next(kwds, &pos, &key, &value)) {
106609         name = first_kw_arg;
106610         while (*name && (**name != key)) name++;
106611         if (*name) {
106612             values[name-argnames] = value;
106613         } else {
106614             #if PY_MAJOR_VERSION < 3
106615             if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
106616             #else
106617             if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
106618             #endif
106619                 goto invalid_keyword_type;
106620             } else {
106621                 for (name = first_kw_arg; *name; name++) {
106622                     #if PY_MAJOR_VERSION >= 3
106623                     if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
106624                         PyUnicode_Compare(**name, key) == 0) break;
106625                     #else
106626                     if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
106627                         _PyString_Eq(**name, key)) break;
106628                     #endif
106629                 }
106630                 if (*name) {
106631                     values[name-argnames] = value;
106632                 } else {
106633                     /* unexpected keyword found */
106634                     for (name=argnames; name != first_kw_arg; name++) {
106635                         if (**name == key) goto arg_passed_twice;
106636                         #if PY_MAJOR_VERSION >= 3
106637                         if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
106638                             PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
106639                         #else
106640                         if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
106641                             _PyString_Eq(**name, key)) goto arg_passed_twice;
106642                         #endif
106643                     }
106644                     if (kwds2) {
106645                         if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
106646                     } else {
106647                         goto invalid_keyword;
106648                     }
106649                 }
106650             }
106651         }
106652     }
106653     return 0;
106654 arg_passed_twice:
106655     __Pyx_RaiseDoubleKeywordsError(function_name, **name);
106656     goto bad;
106657 invalid_keyword_type:
106658     PyErr_Format(PyExc_TypeError,
106659         "%s() keywords must be strings", function_name);
106660     goto bad;
106661 invalid_keyword:
106662     PyErr_Format(PyExc_TypeError,
106663     #if PY_MAJOR_VERSION < 3
106664         "%s() got an unexpected keyword argument '%s'",
106665         function_name, PyString_AsString(key));
106666     #else
106667         "%s() got an unexpected keyword argument '%U'",
106668         function_name, key);
106669     #endif
106670 bad:
106671     return -1;
106672 }
106673 
106674 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
106675     PyErr_Format(PyExc_ValueError,
106676                  "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack",
106677                  index, (index == 1) ? "" : "s");
106678 }
106679 
106680 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
106681     PyErr_Format(PyExc_ValueError,
106682                  "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected);
106683 }
106684 
106685 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
106686     if (unlikely(retval)) {
106687         Py_DECREF(retval);
106688         __Pyx_RaiseTooManyValuesError(expected);
106689         return -1;
106690     } else if (PyErr_Occurred()) {
106691         if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
106692             PyErr_Clear();
106693             return 0;
106694         } else {
106695             return -1;
106696         }
106697     }
106698     return 0;
106699 }
106700 
106701 static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void) {
106702     PyErr_SetString(PyExc_TypeError, "'NoneType' object is unsubscriptable");
106703 }
106704 
106705 static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
106706     PyObject *kwdict,
106707     const char* function_name,
106708     int kw_allowed)
106709 {
106710     PyObject* key = 0;
106711     Py_ssize_t pos = 0;
106712     while (PyDict_Next(kwdict, &pos, &key, 0)) {
106713         #if PY_MAJOR_VERSION < 3
106714         if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
106715         #else
106716         if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key)))
106717         #endif
106718             goto invalid_keyword_type;
106719     }
106720     if ((!kw_allowed) && unlikely(key))
106721         goto invalid_keyword;
106722     return 1;
106723 invalid_keyword_type:
106724     PyErr_Format(PyExc_TypeError,
106725         "%s() keywords must be strings", function_name);
106726     return 0;
106727 invalid_keyword:
106728     PyErr_Format(PyExc_TypeError,
106729     #if PY_MAJOR_VERSION < 3
106730         "%s() got an unexpected keyword argument '%s'",
106731         function_name, PyString_AsString(key));
106732     #else
106733         "%s() got an unexpected keyword argument '%U'",
106734         function_name, key);
106735     #endif
106736     return 0;
106737 }
106738 
106739 static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
106740     PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
106741 }
106742 
106743 static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
106744     const char *name, int exact)
106745 {
106746     if (!type) {
106747         PyErr_Format(PyExc_SystemError, "Missing type object");
106748         return 0;
106749     }
106750     if (none_allowed && obj == Py_None) return 1;
106751     else if (exact) {
106752         if (Py_TYPE(obj) == type) return 1;
106753     }
106754     else {
106755         if (PyObject_TypeCheck(obj, type)) return 1;
106756     }
106757     PyErr_Format(PyExc_TypeError,
106758         "Argument '%s' has incorrect type (expected %s, got %s)",
106759         name, type->tp_name, Py_TYPE(obj)->tp_name);
106760     return 0;
106761 }
106762 
106763 static int __Pyx_RegisterCleanup(void) {
106764     /* Don't use Py_AtExit because that has a 32-call limit
106765      * and is called after python finalization.
106766      */
106767 
106768     PyObject *cleanup_func = 0;
106769     PyObject *atexit = 0;
106770     PyObject *reg = 0;
106771     PyObject *args = 0;
106772     PyObject *res = 0;
106773     int ret = -1;
106774 
106775     cleanup_func = PyCFunction_New(&cleanup_def, 0);
106776     args = PyTuple_New(1);
106777     if (!cleanup_func || !args)
106778         goto bad;
106779     PyTuple_SET_ITEM(args, 0, cleanup_func);
106780     cleanup_func = 0;
106781 
106782     atexit = __Pyx_ImportModule("atexit");
106783     if (!atexit)
106784         goto bad;
106785     reg = __Pyx_GetAttrString(atexit, "register");
106786     if (!reg)
106787         goto bad;
106788     res = PyObject_CallObject(reg, args);
106789     if (!res)
106790         goto bad;
106791     ret = 0;
106792 bad:
106793     Py_XDECREF(cleanup_func);
106794     Py_XDECREF(atexit);
106795     Py_XDECREF(reg);
106796     Py_XDECREF(args);
106797     Py_XDECREF(res);
106798     return ret;
106799 }
106800 
106801 static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
106802     PyThreadState *tstate = PyThreadState_GET();
106803     *type = tstate->exc_type;
106804     *value = tstate->exc_value;
106805     *tb = tstate->exc_traceback;
106806     Py_XINCREF(*type);
106807     Py_XINCREF(*value);
106808     Py_XINCREF(*tb);
106809 }
106810 
106811 static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
106812     PyObject *tmp_type, *tmp_value, *tmp_tb;
106813     PyThreadState *tstate = PyThreadState_GET();
106814     tmp_type = tstate->exc_type;
106815     tmp_value = tstate->exc_value;
106816     tmp_tb = tstate->exc_traceback;
106817     tstate->exc_type = type;
106818     tstate->exc_value = value;
106819     tstate->exc_traceback = tb;
106820     Py_XDECREF(tmp_type);
106821     Py_XDECREF(tmp_value);
106822     Py_XDECREF(tmp_tb);
106823 }
106824 
106825 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) {
106826     PyObject *py_import = 0;
106827     PyObject *empty_list = 0;
106828     PyObject *module = 0;
106829     PyObject *global_dict = 0;
106830     PyObject *empty_dict = 0;
106831     PyObject *list;
106832     py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
106833     if (!py_import)
106834         goto bad;
106835     if (from_list)
106836         list = from_list;
106837     else {
106838         empty_list = PyList_New(0);
106839         if (!empty_list)
106840             goto bad;
106841         list = empty_list;
106842     }
106843     global_dict = PyModule_GetDict(__pyx_m);
106844     if (!global_dict)
106845         goto bad;
106846     empty_dict = PyDict_New();
106847     if (!empty_dict)
106848         goto bad;
106849     #if PY_VERSION_HEX >= 0x02050000
106850     {
106851         PyObject *py_level = PyInt_FromLong(level);
106852         if (!py_level)
106853             goto bad;
106854         module = PyObject_CallFunctionObjArgs(py_import,
106855             name, global_dict, empty_dict, list, py_level, NULL);
106856         Py_DECREF(py_level);
106857     }
106858     #else
106859     if (level>0) {
106860         PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
106861         goto bad;
106862     }
106863     module = PyObject_CallFunctionObjArgs(py_import,
106864         name, global_dict, empty_dict, list, NULL);
106865     #endif
106866 bad:
106867     Py_XDECREF(empty_list);
106868     Py_XDECREF(py_import);
106869     Py_XDECREF(empty_dict);
106870     return module;
106871 }
106872 
106873 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Aint(MPI_Aint val) {
106874     const MPI_Aint neg_one = (MPI_Aint)-1, const_zero = (MPI_Aint)0;
106875     const int is_unsigned = const_zero < neg_one;
106876     if ((sizeof(MPI_Aint) == sizeof(char))  ||
106877         (sizeof(MPI_Aint) == sizeof(short))) {
106878         return PyInt_FromLong((long)val);
106879     } else if ((sizeof(MPI_Aint) == sizeof(int)) ||
106880                (sizeof(MPI_Aint) == sizeof(long))) {
106881         if (is_unsigned)
106882             return PyLong_FromUnsignedLong((unsigned long)val);
106883         else
106884             return PyInt_FromLong((long)val);
106885     } else if (sizeof(MPI_Aint) == sizeof(PY_LONG_LONG)) {
106886         if (is_unsigned)
106887             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
106888         else
106889             return PyLong_FromLongLong((PY_LONG_LONG)val);
106890     } else {
106891         int one = 1; int little = (int)*(unsigned char *)&one;
106892         unsigned char *bytes = (unsigned char *)&val;
106893         return _PyLong_FromByteArray(bytes, sizeof(MPI_Aint),
106894                                      little, !is_unsigned);
106895     }
106896 }
106897 
106898 static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) {
106899     PyObject *metaclass;
106900     /* Default metaclass */
106901 #if PY_MAJOR_VERSION < 3
106902     if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
106903         PyObject *base = PyTuple_GET_ITEM(bases, 0);
106904         metaclass = PyObject_GetAttrString(base, (char *)"__class__");
106905         if (!metaclass) {
106906             PyErr_Clear();
106907             metaclass = (PyObject*) Py_TYPE(base);
106908         }
106909     } else {
106910         metaclass = (PyObject *) &PyClass_Type;
106911     }
106912 #else
106913     if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
106914         PyObject *base = PyTuple_GET_ITEM(bases, 0);
106915         metaclass = (PyObject*) Py_TYPE(base);
106916     } else {
106917         metaclass = (PyObject *) &PyType_Type;
106918     }
106919 #endif
106920     Py_INCREF(metaclass);
106921     return metaclass;
106922 }
106923 
106924 static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
106925                                    PyObject *modname) {
106926     PyObject *result;
106927     PyObject *metaclass;
106928 
106929     if (PyDict_SetItemString(dict, "__module__", modname) < 0)
106930         return NULL;
106931 
106932     /* Python2 __metaclass__ */
106933     metaclass = PyDict_GetItemString(dict, "__metaclass__");
106934     if (metaclass) {
106935         Py_INCREF(metaclass);
106936     } else {
106937         metaclass = __Pyx_FindPy2Metaclass(bases);
106938     }
106939     result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL);
106940     Py_DECREF(metaclass);
106941     return result;
106942 }
106943 
106944 
106945 static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) {
106946     __pyx_binding_PyCFunctionType_object *op = PyObject_GC_New(__pyx_binding_PyCFunctionType_object, __pyx_binding_PyCFunctionType);
106947     if (op == NULL)
106948         return NULL;
106949     op->func.m_ml = ml;
106950     Py_XINCREF(self);
106951     op->func.m_self = self;
106952     Py_XINCREF(module);
106953     op->func.m_module = module;
106954     PyObject_GC_Track(op);
106955     return (PyObject *)op;
106956 }
106957 
106958 static void __pyx_binding_PyCFunctionType_dealloc(__pyx_binding_PyCFunctionType_object *m) {
106959     PyObject_GC_UnTrack(m);
106960     Py_XDECREF(m->func.m_self);
106961     Py_XDECREF(m->func.m_module);
106962     PyObject_GC_Del(m);
106963 }
106964 
106965 static PyObject *__pyx_binding_PyCFunctionType_descr_get(PyObject *func, PyObject *obj, PyObject *type) {
106966     if (obj == Py_None)
106967             obj = NULL;
106968     return PyMethod_New(func, obj, type);
106969 }
106970 
106971 static int __pyx_binding_PyCFunctionType_init(void) {
106972     __pyx_binding_PyCFunctionType_type = PyCFunction_Type;
106973     __pyx_binding_PyCFunctionType_type.tp_name = __Pyx_NAMESTR("cython_binding_builtin_function_or_method");
106974     __pyx_binding_PyCFunctionType_type.tp_dealloc = (destructor)__pyx_binding_PyCFunctionType_dealloc;
106975     __pyx_binding_PyCFunctionType_type.tp_descr_get = __pyx_binding_PyCFunctionType_descr_get;
106976     if (PyType_Ready(&__pyx_binding_PyCFunctionType_type) < 0) {
106977         return -1;
106978     }
106979     __pyx_binding_PyCFunctionType = &__pyx_binding_PyCFunctionType_type;
106980     return 0;
106981 
106982 }
106983 
106984 static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
106985     /* It appears that PyMethodDescr_Type is not anywhere exposed in the Python/C API */
106986     static PyTypeObject *methoddescr_type = NULL;
106987     if (methoddescr_type == NULL) {
106988        PyObject *meth = __Pyx_GetAttrString((PyObject*)&PyList_Type, "append");
106989        if (!meth) return NULL;
106990        methoddescr_type = Py_TYPE(meth);
106991        Py_DECREF(meth);
106992     }
106993     if (PyObject_TypeCheck(method, methoddescr_type)) { /* cdef classes */
106994         PyMethodDescrObject *descr = (PyMethodDescrObject *)method;
106995         #if PY_VERSION_HEX < 0x03020000
106996         PyTypeObject *d_type = descr->d_type;
106997         #else
106998         PyTypeObject *d_type = descr->d_common.d_type;
106999         #endif
107000         return PyDescr_NewClassMethod(d_type, descr->d_method);
107001     }
107002     else if (PyMethod_Check(method)) { /* python classes */
107003         return PyClassMethod_New(PyMethod_GET_FUNCTION(method));
107004     }
107005     else if (PyCFunction_Check(method)) {
107006         return PyClassMethod_New(method);
107007     }
107008 #ifdef __pyx_binding_PyCFunctionType_USED
107009     else if (PyObject_TypeCheck(method, __pyx_binding_PyCFunctionType)) { /* binded CFunction */
107010         return PyClassMethod_New(method);
107011     }
107012 #endif
107013     PyErr_Format(PyExc_TypeError,
107014                  "Class-level classmethod() can only be called on "
107015                  "a method_descriptor or instance method.");
107016     return NULL;
107017 }
107018 
107019 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
107020     if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
107021         return (equals == Py_EQ);
107022     } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
107023         if (PyBytes_GET_SIZE(s1) != PyBytes_GET_SIZE(s2)) {
107024             return (equals == Py_NE);
107025         } else if (PyBytes_GET_SIZE(s1) == 1) {
107026             if (equals == Py_EQ)
107027                 return (PyBytes_AS_STRING(s1)[0] == PyBytes_AS_STRING(s2)[0]);
107028             else
107029                 return (PyBytes_AS_STRING(s1)[0] != PyBytes_AS_STRING(s2)[0]);
107030         } else {
107031             int result = memcmp(PyBytes_AS_STRING(s1), PyBytes_AS_STRING(s2), (size_t)PyBytes_GET_SIZE(s1));
107032             return (equals == Py_EQ) ? (result == 0) : (result != 0);
107033         }
107034     } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
107035         return (equals == Py_NE);
107036     } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
107037         return (equals == Py_NE);
107038     } else {
107039         int result;
107040         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
107041         if (!py_result)
107042             return -1;
107043         result = __Pyx_PyObject_IsTrue(py_result);
107044         Py_DECREF(py_result);
107045         return result;
107046     }
107047 }
107048 
107049 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
107050     if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
107051         return (equals == Py_EQ);
107052     } else if (PyUnicode_CheckExact(s1) & PyUnicode_CheckExact(s2)) {
107053         if (PyUnicode_GET_SIZE(s1) != PyUnicode_GET_SIZE(s2)) {
107054             return (equals == Py_NE);
107055         } else if (PyUnicode_GET_SIZE(s1) == 1) {
107056             if (equals == Py_EQ)
107057                 return (PyUnicode_AS_UNICODE(s1)[0] == PyUnicode_AS_UNICODE(s2)[0]);
107058             else
107059                 return (PyUnicode_AS_UNICODE(s1)[0] != PyUnicode_AS_UNICODE(s2)[0]);
107060         } else {
107061             int result = PyUnicode_Compare(s1, s2);
107062             if ((result == -1) && unlikely(PyErr_Occurred()))
107063                 return -1;
107064             return (equals == Py_EQ) ? (result == 0) : (result != 0);
107065         }
107066     } else if ((s1 == Py_None) & PyUnicode_CheckExact(s2)) {
107067         return (equals == Py_NE);
107068     } else if ((s2 == Py_None) & PyUnicode_CheckExact(s1)) {
107069         return (equals == Py_NE);
107070     } else {
107071         int result;
107072         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
107073         if (!py_result)
107074             return -1;
107075         result = __Pyx_PyObject_IsTrue(py_result);
107076         Py_DECREF(py_result);
107077         return result;
107078     }
107079 }
107080 
107081 static CYTHON_INLINE MPI_Aint __Pyx_PyInt_from_py_MPI_Aint(PyObject* x) {
107082     const MPI_Aint neg_one = (MPI_Aint)-1, const_zero = (MPI_Aint)0;
107083     const int is_unsigned = const_zero < neg_one;
107084     if (sizeof(MPI_Aint) == sizeof(char)) {
107085         if (is_unsigned)
107086             return (MPI_Aint)__Pyx_PyInt_AsUnsignedChar(x);
107087         else
107088             return (MPI_Aint)__Pyx_PyInt_AsSignedChar(x);
107089     } else if (sizeof(MPI_Aint) == sizeof(short)) {
107090         if (is_unsigned)
107091             return (MPI_Aint)__Pyx_PyInt_AsUnsignedShort(x);
107092         else
107093             return (MPI_Aint)__Pyx_PyInt_AsSignedShort(x);
107094     } else if (sizeof(MPI_Aint) == sizeof(int)) {
107095         if (is_unsigned)
107096             return (MPI_Aint)__Pyx_PyInt_AsUnsignedInt(x);
107097         else
107098             return (MPI_Aint)__Pyx_PyInt_AsSignedInt(x);
107099     } else if (sizeof(MPI_Aint) == sizeof(long)) {
107100         if (is_unsigned)
107101             return (MPI_Aint)__Pyx_PyInt_AsUnsignedLong(x);
107102         else
107103             return (MPI_Aint)__Pyx_PyInt_AsSignedLong(x);
107104     } else if (sizeof(MPI_Aint) == sizeof(PY_LONG_LONG)) {
107105         if (is_unsigned)
107106             return (MPI_Aint)__Pyx_PyInt_AsUnsignedLongLong(x);
107107         else
107108             return (MPI_Aint)__Pyx_PyInt_AsSignedLongLong(x);
107109     }  else {
107110         MPI_Aint val;
107111         PyObject *v = __Pyx_PyNumber_Int(x);
107112         #if PY_VERSION_HEX < 0x03000000
107113         if (likely(v) && !PyLong_Check(v)) {
107114             PyObject *tmp = v;
107115             v = PyNumber_Long(tmp);
107116             Py_DECREF(tmp);
107117         }
107118         #endif
107119         if (likely(v)) {
107120             int one = 1; int is_little = (int)*(unsigned char *)&one;
107121             unsigned char *bytes = (unsigned char *)&val;
107122             int ret = _PyLong_AsByteArray((PyLongObject *)v,
107123                                           bytes, sizeof(val),
107124                                           is_little, !is_unsigned);
107125             Py_DECREF(v);
107126             if (likely(!ret))
107127                 return val;
107128         }
107129         return (MPI_Aint)-1;
107130     }
107131 }
107132 
107133 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Fint(MPI_Fint val) {
107134     const MPI_Fint neg_one = (MPI_Fint)-1, const_zero = (MPI_Fint)0;
107135     const int is_unsigned = const_zero < neg_one;
107136     if ((sizeof(MPI_Fint) == sizeof(char))  ||
107137         (sizeof(MPI_Fint) == sizeof(short))) {
107138         return PyInt_FromLong((long)val);
107139     } else if ((sizeof(MPI_Fint) == sizeof(int)) ||
107140                (sizeof(MPI_Fint) == sizeof(long))) {
107141         if (is_unsigned)
107142             return PyLong_FromUnsignedLong((unsigned long)val);
107143         else
107144             return PyInt_FromLong((long)val);
107145     } else if (sizeof(MPI_Fint) == sizeof(PY_LONG_LONG)) {
107146         if (is_unsigned)
107147             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
107148         else
107149             return PyLong_FromLongLong((PY_LONG_LONG)val);
107150     } else {
107151         int one = 1; int little = (int)*(unsigned char *)&one;
107152         unsigned char *bytes = (unsigned char *)&val;
107153         return _PyLong_FromByteArray(bytes, sizeof(MPI_Fint),
107154                                      little, !is_unsigned);
107155     }
107156 }
107157 
107158 static CYTHON_INLINE MPI_Fint __Pyx_PyInt_from_py_MPI_Fint(PyObject* x) {
107159     const MPI_Fint neg_one = (MPI_Fint)-1, const_zero = (MPI_Fint)0;
107160     const int is_unsigned = const_zero < neg_one;
107161     if (sizeof(MPI_Fint) == sizeof(char)) {
107162         if (is_unsigned)
107163             return (MPI_Fint)__Pyx_PyInt_AsUnsignedChar(x);
107164         else
107165             return (MPI_Fint)__Pyx_PyInt_AsSignedChar(x);
107166     } else if (sizeof(MPI_Fint) == sizeof(short)) {
107167         if (is_unsigned)
107168             return (MPI_Fint)__Pyx_PyInt_AsUnsignedShort(x);
107169         else
107170             return (MPI_Fint)__Pyx_PyInt_AsSignedShort(x);
107171     } else if (sizeof(MPI_Fint) == sizeof(int)) {
107172         if (is_unsigned)
107173             return (MPI_Fint)__Pyx_PyInt_AsUnsignedInt(x);
107174         else
107175             return (MPI_Fint)__Pyx_PyInt_AsSignedInt(x);
107176     } else if (sizeof(MPI_Fint) == sizeof(long)) {
107177         if (is_unsigned)
107178             return (MPI_Fint)__Pyx_PyInt_AsUnsignedLong(x);
107179         else
107180             return (MPI_Fint)__Pyx_PyInt_AsSignedLong(x);
107181     } else if (sizeof(MPI_Fint) == sizeof(PY_LONG_LONG)) {
107182         if (is_unsigned)
107183             return (MPI_Fint)__Pyx_PyInt_AsUnsignedLongLong(x);
107184         else
107185             return (MPI_Fint)__Pyx_PyInt_AsSignedLongLong(x);
107186     }  else {
107187         MPI_Fint val;
107188         PyObject *v = __Pyx_PyNumber_Int(x);
107189         #if PY_VERSION_HEX < 0x03000000
107190         if (likely(v) && !PyLong_Check(v)) {
107191             PyObject *tmp = v;
107192             v = PyNumber_Long(tmp);
107193             Py_DECREF(tmp);
107194         }
107195         #endif
107196         if (likely(v)) {
107197             int one = 1; int is_little = (int)*(unsigned char *)&one;
107198             unsigned char *bytes = (unsigned char *)&val;
107199             int ret = _PyLong_AsByteArray((PyLongObject *)v,
107200                                           bytes, sizeof(val),
107201                                           is_little, !is_unsigned);
107202             Py_DECREF(v);
107203             if (likely(!ret))
107204                 return val;
107205         }
107206         return (MPI_Fint)-1;
107207     }
107208 }
107209 
107210 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_MPI_Offset(MPI_Offset val) {
107211     const MPI_Offset neg_one = (MPI_Offset)-1, const_zero = (MPI_Offset)0;
107212     const int is_unsigned = const_zero < neg_one;
107213     if ((sizeof(MPI_Offset) == sizeof(char))  ||
107214         (sizeof(MPI_Offset) == sizeof(short))) {
107215         return PyInt_FromLong((long)val);
107216     } else if ((sizeof(MPI_Offset) == sizeof(int)) ||
107217                (sizeof(MPI_Offset) == sizeof(long))) {
107218         if (is_unsigned)
107219             return PyLong_FromUnsignedLong((unsigned long)val);
107220         else
107221             return PyInt_FromLong((long)val);
107222     } else if (sizeof(MPI_Offset) == sizeof(PY_LONG_LONG)) {
107223         if (is_unsigned)
107224             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
107225         else
107226             return PyLong_FromLongLong((PY_LONG_LONG)val);
107227     } else {
107228         int one = 1; int little = (int)*(unsigned char *)&one;
107229         unsigned char *bytes = (unsigned char *)&val;
107230         return _PyLong_FromByteArray(bytes, sizeof(MPI_Offset),
107231                                      little, !is_unsigned);
107232     }
107233 }
107234 
107235 static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
107236     const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
107237     const int is_unsigned = neg_one > const_zero;
107238     if (sizeof(unsigned char) < sizeof(long)) {
107239         long val = __Pyx_PyInt_AsLong(x);
107240         if (unlikely(val != (long)(unsigned char)val)) {
107241             if (!unlikely(val == -1 && PyErr_Occurred())) {
107242                 PyErr_SetString(PyExc_OverflowError,
107243                     (is_unsigned && unlikely(val < 0)) ?
107244                     "can't convert negative value to unsigned char" :
107245                     "value too large to convert to unsigned char");
107246             }
107247             return (unsigned char)-1;
107248         }
107249         return (unsigned char)val;
107250     }
107251     return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
107252 }
107253 
107254 static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
107255     const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
107256     const int is_unsigned = neg_one > const_zero;
107257     if (sizeof(unsigned short) < sizeof(long)) {
107258         long val = __Pyx_PyInt_AsLong(x);
107259         if (unlikely(val != (long)(unsigned short)val)) {
107260             if (!unlikely(val == -1 && PyErr_Occurred())) {
107261                 PyErr_SetString(PyExc_OverflowError,
107262                     (is_unsigned && unlikely(val < 0)) ?
107263                     "can't convert negative value to unsigned short" :
107264                     "value too large to convert to unsigned short");
107265             }
107266             return (unsigned short)-1;
107267         }
107268         return (unsigned short)val;
107269     }
107270     return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
107271 }
107272 
107273 static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
107274     const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
107275     const int is_unsigned = neg_one > const_zero;
107276     if (sizeof(unsigned int) < sizeof(long)) {
107277         long val = __Pyx_PyInt_AsLong(x);
107278         if (unlikely(val != (long)(unsigned int)val)) {
107279             if (!unlikely(val == -1 && PyErr_Occurred())) {
107280                 PyErr_SetString(PyExc_OverflowError,
107281                     (is_unsigned && unlikely(val < 0)) ?
107282                     "can't convert negative value to unsigned int" :
107283                     "value too large to convert to unsigned int");
107284             }
107285             return (unsigned int)-1;
107286         }
107287         return (unsigned int)val;
107288     }
107289     return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
107290 }
107291 
107292 static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
107293     const char neg_one = (char)-1, const_zero = 0;
107294     const int is_unsigned = neg_one > const_zero;
107295     if (sizeof(char) < sizeof(long)) {
107296         long val = __Pyx_PyInt_AsLong(x);
107297         if (unlikely(val != (long)(char)val)) {
107298             if (!unlikely(val == -1 && PyErr_Occurred())) {
107299                 PyErr_SetString(PyExc_OverflowError,
107300                     (is_unsigned && unlikely(val < 0)) ?
107301                     "can't convert negative value to char" :
107302                     "value too large to convert to char");
107303             }
107304             return (char)-1;
107305         }
107306         return (char)val;
107307     }
107308     return (char)__Pyx_PyInt_AsLong(x);
107309 }
107310 
107311 static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
107312     const short neg_one = (short)-1, const_zero = 0;
107313     const int is_unsigned = neg_one > const_zero;
107314     if (sizeof(short) < sizeof(long)) {
107315         long val = __Pyx_PyInt_AsLong(x);
107316         if (unlikely(val != (long)(short)val)) {
107317             if (!unlikely(val == -1 && PyErr_Occurred())) {
107318                 PyErr_SetString(PyExc_OverflowError,
107319                     (is_unsigned && unlikely(val < 0)) ?
107320                     "can't convert negative value to short" :
107321                     "value too large to convert to short");
107322             }
107323             return (short)-1;
107324         }
107325         return (short)val;
107326     }
107327     return (short)__Pyx_PyInt_AsLong(x);
107328 }
107329 
107330 static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
107331     const int neg_one = (int)-1, const_zero = 0;
107332     const int is_unsigned = neg_one > const_zero;
107333     if (sizeof(int) < sizeof(long)) {
107334         long val = __Pyx_PyInt_AsLong(x);
107335         if (unlikely(val != (long)(int)val)) {
107336             if (!unlikely(val == -1 && PyErr_Occurred())) {
107337                 PyErr_SetString(PyExc_OverflowError,
107338                     (is_unsigned && unlikely(val < 0)) ?
107339                     "can't convert negative value to int" :
107340                     "value too large to convert to int");
107341             }
107342             return (int)-1;
107343         }
107344         return (int)val;
107345     }
107346     return (int)__Pyx_PyInt_AsLong(x);
107347 }
107348 
107349 static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
107350     const signed char neg_one = (signed char)-1, const_zero = 0;
107351     const int is_unsigned = neg_one > const_zero;
107352     if (sizeof(signed char) < sizeof(long)) {
107353         long val = __Pyx_PyInt_AsLong(x);
107354         if (unlikely(val != (long)(signed char)val)) {
107355             if (!unlikely(val == -1 && PyErr_Occurred())) {
107356                 PyErr_SetString(PyExc_OverflowError,
107357                     (is_unsigned && unlikely(val < 0)) ?
107358                     "can't convert negative value to signed char" :
107359                     "value too large to convert to signed char");
107360             }
107361             return (signed char)-1;
107362         }
107363         return (signed char)val;
107364     }
107365     return (signed char)__Pyx_PyInt_AsSignedLong(x);
107366 }
107367 
107368 static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
107369     const signed short neg_one = (signed short)-1, const_zero = 0;
107370     const int is_unsigned = neg_one > const_zero;
107371     if (sizeof(signed short) < sizeof(long)) {
107372         long val = __Pyx_PyInt_AsLong(x);
107373         if (unlikely(val != (long)(signed short)val)) {
107374             if (!unlikely(val == -1 && PyErr_Occurred())) {
107375                 PyErr_SetString(PyExc_OverflowError,
107376                     (is_unsigned && unlikely(val < 0)) ?
107377                     "can't convert negative value to signed short" :
107378                     "value too large to convert to signed short");
107379             }
107380             return (signed short)-1;
107381         }
107382         return (signed short)val;
107383     }
107384     return (signed short)__Pyx_PyInt_AsSignedLong(x);
107385 }
107386 
107387 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
107388     const signed int neg_one = (signed int)-1, const_zero = 0;
107389     const int is_unsigned = neg_one > const_zero;
107390     if (sizeof(signed int) < sizeof(long)) {
107391         long val = __Pyx_PyInt_AsLong(x);
107392         if (unlikely(val != (long)(signed int)val)) {
107393             if (!unlikely(val == -1 && PyErr_Occurred())) {
107394                 PyErr_SetString(PyExc_OverflowError,
107395                     (is_unsigned && unlikely(val < 0)) ?
107396                     "can't convert negative value to signed int" :
107397                     "value too large to convert to signed int");
107398             }
107399             return (signed int)-1;
107400         }
107401         return (signed int)val;
107402     }
107403     return (signed int)__Pyx_PyInt_AsSignedLong(x);
107404 }
107405 
107406 static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
107407     const int neg_one = (int)-1, const_zero = 0;
107408     const int is_unsigned = neg_one > const_zero;
107409     if (sizeof(int) < sizeof(long)) {
107410         long val = __Pyx_PyInt_AsLong(x);
107411         if (unlikely(val != (long)(int)val)) {
107412             if (!unlikely(val == -1 && PyErr_Occurred())) {
107413                 PyErr_SetString(PyExc_OverflowError,
107414                     (is_unsigned && unlikely(val < 0)) ?
107415                     "can't convert negative value to int" :
107416                     "value too large to convert to int");
107417             }
107418             return (int)-1;
107419         }
107420         return (int)val;
107421     }
107422     return (int)__Pyx_PyInt_AsLong(x);
107423 }
107424 
107425 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
107426     const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
107427     const int is_unsigned = neg_one > const_zero;
107428 #if PY_VERSION_HEX < 0x03000000
107429     if (likely(PyInt_Check(x))) {
107430         long val = PyInt_AS_LONG(x);
107431         if (is_unsigned && unlikely(val < 0)) {
107432             PyErr_SetString(PyExc_OverflowError,
107433                             "can't convert negative value to unsigned long");
107434             return (unsigned long)-1;
107435         }
107436         return (unsigned long)val;
107437     } else
107438 #endif
107439     if (likely(PyLong_Check(x))) {
107440         if (is_unsigned) {
107441             if (unlikely(Py_SIZE(x) < 0)) {
107442                 PyErr_SetString(PyExc_OverflowError,
107443                                 "can't convert negative value to unsigned long");
107444                 return (unsigned long)-1;
107445             }
107446             return (unsigned long)PyLong_AsUnsignedLong(x);
107447         } else {
107448             return (unsigned long)PyLong_AsLong(x);
107449         }
107450     } else {
107451         unsigned long val;
107452         PyObject *tmp = __Pyx_PyNumber_Int(x);
107453         if (!tmp) return (unsigned long)-1;
107454         val = __Pyx_PyInt_AsUnsignedLong(tmp);
107455         Py_DECREF(tmp);
107456         return val;
107457     }
107458 }
107459 
107460 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
107461     const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
107462     const int is_unsigned = neg_one > const_zero;
107463 #if PY_VERSION_HEX < 0x03000000
107464     if (likely(PyInt_Check(x))) {
107465         long val = PyInt_AS_LONG(x);
107466         if (is_unsigned && unlikely(val < 0)) {
107467             PyErr_SetString(PyExc_OverflowError,
107468                             "can't convert negative value to unsigned PY_LONG_LONG");
107469             return (unsigned PY_LONG_LONG)-1;
107470         }
107471         return (unsigned PY_LONG_LONG)val;
107472     } else
107473 #endif
107474     if (likely(PyLong_Check(x))) {
107475         if (is_unsigned) {
107476             if (unlikely(Py_SIZE(x) < 0)) {
107477                 PyErr_SetString(PyExc_OverflowError,
107478                                 "can't convert negative value to unsigned PY_LONG_LONG");
107479                 return (unsigned PY_LONG_LONG)-1;
107480             }
107481             return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
107482         } else {
107483             return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x);
107484         }
107485     } else {
107486         unsigned PY_LONG_LONG val;
107487         PyObject *tmp = __Pyx_PyNumber_Int(x);
107488         if (!tmp) return (unsigned PY_LONG_LONG)-1;
107489         val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
107490         Py_DECREF(tmp);
107491         return val;
107492     }
107493 }
107494 
107495 static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
107496     const long neg_one = (long)-1, const_zero = 0;
107497     const int is_unsigned = neg_one > const_zero;
107498 #if PY_VERSION_HEX < 0x03000000
107499     if (likely(PyInt_Check(x))) {
107500         long val = PyInt_AS_LONG(x);
107501         if (is_unsigned && unlikely(val < 0)) {
107502             PyErr_SetString(PyExc_OverflowError,
107503                             "can't convert negative value to long");
107504             return (long)-1;
107505         }
107506         return (long)val;
107507     } else
107508 #endif
107509     if (likely(PyLong_Check(x))) {
107510         if (is_unsigned) {
107511             if (unlikely(Py_SIZE(x) < 0)) {
107512                 PyErr_SetString(PyExc_OverflowError,
107513                                 "can't convert negative value to long");
107514                 return (long)-1;
107515             }
107516             return (long)PyLong_AsUnsignedLong(x);
107517         } else {
107518             return (long)PyLong_AsLong(x);
107519         }
107520     } else {
107521         long val;
107522         PyObject *tmp = __Pyx_PyNumber_Int(x);
107523         if (!tmp) return (long)-1;
107524         val = __Pyx_PyInt_AsLong(tmp);
107525         Py_DECREF(tmp);
107526         return val;
107527     }
107528 }
107529 
107530 static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
107531     const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
107532     const int is_unsigned = neg_one > const_zero;
107533 #if PY_VERSION_HEX < 0x03000000
107534     if (likely(PyInt_Check(x))) {
107535         long val = PyInt_AS_LONG(x);
107536         if (is_unsigned && unlikely(val < 0)) {
107537             PyErr_SetString(PyExc_OverflowError,
107538                             "can't convert negative value to PY_LONG_LONG");
107539             return (PY_LONG_LONG)-1;
107540         }
107541         return (PY_LONG_LONG)val;
107542     } else
107543 #endif
107544     if (likely(PyLong_Check(x))) {
107545         if (is_unsigned) {
107546             if (unlikely(Py_SIZE(x) < 0)) {
107547                 PyErr_SetString(PyExc_OverflowError,
107548                                 "can't convert negative value to PY_LONG_LONG");
107549                 return (PY_LONG_LONG)-1;
107550             }
107551             return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
107552         } else {
107553             return (PY_LONG_LONG)PyLong_AsLongLong(x);
107554         }
107555     } else {
107556         PY_LONG_LONG val;
107557         PyObject *tmp = __Pyx_PyNumber_Int(x);
107558         if (!tmp) return (PY_LONG_LONG)-1;
107559         val = __Pyx_PyInt_AsLongLong(tmp);
107560         Py_DECREF(tmp);
107561         return val;
107562     }
107563 }
107564 
107565 static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
107566     const signed long neg_one = (signed long)-1, const_zero = 0;
107567     const int is_unsigned = neg_one > const_zero;
107568 #if PY_VERSION_HEX < 0x03000000
107569     if (likely(PyInt_Check(x))) {
107570         long val = PyInt_AS_LONG(x);
107571         if (is_unsigned && unlikely(val < 0)) {
107572             PyErr_SetString(PyExc_OverflowError,
107573                             "can't convert negative value to signed long");
107574             return (signed long)-1;
107575         }
107576         return (signed long)val;
107577     } else
107578 #endif
107579     if (likely(PyLong_Check(x))) {
107580         if (is_unsigned) {
107581             if (unlikely(Py_SIZE(x) < 0)) {
107582                 PyErr_SetString(PyExc_OverflowError,
107583                                 "can't convert negative value to signed long");
107584                 return (signed long)-1;
107585             }
107586             return (signed long)PyLong_AsUnsignedLong(x);
107587         } else {
107588             return (signed long)PyLong_AsLong(x);
107589         }
107590     } else {
107591         signed long val;
107592         PyObject *tmp = __Pyx_PyNumber_Int(x);
107593         if (!tmp) return (signed long)-1;
107594         val = __Pyx_PyInt_AsSignedLong(tmp);
107595         Py_DECREF(tmp);
107596         return val;
107597     }
107598 }
107599 
107600 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
107601     const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
107602     const int is_unsigned = neg_one > const_zero;
107603 #if PY_VERSION_HEX < 0x03000000
107604     if (likely(PyInt_Check(x))) {
107605         long val = PyInt_AS_LONG(x);
107606         if (is_unsigned && unlikely(val < 0)) {
107607             PyErr_SetString(PyExc_OverflowError,
107608                             "can't convert negative value to signed PY_LONG_LONG");
107609             return (signed PY_LONG_LONG)-1;
107610         }
107611         return (signed PY_LONG_LONG)val;
107612     } else
107613 #endif
107614     if (likely(PyLong_Check(x))) {
107615         if (is_unsigned) {
107616             if (unlikely(Py_SIZE(x) < 0)) {
107617                 PyErr_SetString(PyExc_OverflowError,
107618                                 "can't convert negative value to signed PY_LONG_LONG");
107619                 return (signed PY_LONG_LONG)-1;
107620             }
107621             return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
107622         } else {
107623             return (signed PY_LONG_LONG)PyLong_AsLongLong(x);
107624         }
107625     } else {
107626         signed PY_LONG_LONG val;
107627         PyObject *tmp = __Pyx_PyNumber_Int(x);
107628         if (!tmp) return (signed PY_LONG_LONG)-1;
107629         val = __Pyx_PyInt_AsSignedLongLong(tmp);
107630         Py_DECREF(tmp);
107631         return val;
107632     }
107633 }
107634 
107635 static void __Pyx_WriteUnraisable(const char *name, int clineno,
107636                                   int lineno, const char *filename) {
107637     PyObject *old_exc, *old_val, *old_tb;
107638     PyObject *ctx;
107639     __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
107640     #if PY_MAJOR_VERSION < 3
107641     ctx = PyString_FromString(name);
107642     #else
107643     ctx = PyUnicode_FromString(name);
107644     #endif
107645     __Pyx_ErrRestore(old_exc, old_val, old_tb);
107646     if (!ctx) {
107647         PyErr_WriteUnraisable(Py_None);
107648     } else {
107649         PyErr_WriteUnraisable(ctx);
107650         Py_DECREF(ctx);
107651     }
107652 }
107653 
107654 static CYTHON_INLINE MPI_Offset __Pyx_PyInt_from_py_MPI_Offset(PyObject* x) {
107655     const MPI_Offset neg_one = (MPI_Offset)-1, const_zero = (MPI_Offset)0;
107656     const int is_unsigned = const_zero < neg_one;
107657     if (sizeof(MPI_Offset) == sizeof(char)) {
107658         if (is_unsigned)
107659             return (MPI_Offset)__Pyx_PyInt_AsUnsignedChar(x);
107660         else
107661             return (MPI_Offset)__Pyx_PyInt_AsSignedChar(x);
107662     } else if (sizeof(MPI_Offset) == sizeof(short)) {
107663         if (is_unsigned)
107664             return (MPI_Offset)__Pyx_PyInt_AsUnsignedShort(x);
107665         else
107666             return (MPI_Offset)__Pyx_PyInt_AsSignedShort(x);
107667     } else if (sizeof(MPI_Offset) == sizeof(int)) {
107668         if (is_unsigned)
107669             return (MPI_Offset)__Pyx_PyInt_AsUnsignedInt(x);
107670         else
107671             return (MPI_Offset)__Pyx_PyInt_AsSignedInt(x);
107672     } else if (sizeof(MPI_Offset) == sizeof(long)) {
107673         if (is_unsigned)
107674             return (MPI_Offset)__Pyx_PyInt_AsUnsignedLong(x);
107675         else
107676             return (MPI_Offset)__Pyx_PyInt_AsSignedLong(x);
107677     } else if (sizeof(MPI_Offset) == sizeof(PY_LONG_LONG)) {
107678         if (is_unsigned)
107679             return (MPI_Offset)__Pyx_PyInt_AsUnsignedLongLong(x);
107680         else
107681             return (MPI_Offset)__Pyx_PyInt_AsSignedLongLong(x);
107682     }  else {
107683         MPI_Offset val;
107684         PyObject *v = __Pyx_PyNumber_Int(x);
107685         #if PY_VERSION_HEX < 0x03000000
107686         if (likely(v) && !PyLong_Check(v)) {
107687             PyObject *tmp = v;
107688             v = PyNumber_Long(tmp);
107689             Py_DECREF(tmp);
107690         }
107691         #endif
107692         if (likely(v)) {
107693             int one = 1; int is_little = (int)*(unsigned char *)&one;
107694             unsigned char *bytes = (unsigned char *)&val;
107695             int ret = _PyLong_AsByteArray((PyLongObject *)v,
107696                                           bytes, sizeof(val),
107697                                           is_little, !is_unsigned);
107698             Py_DECREF(v);
107699             if (likely(!ret))
107700                 return val;
107701         }
107702         return (MPI_Offset)-1;
107703     }
107704 }
107705 
107706 static int __Pyx_check_binary_version(void) {
107707     char ctversion[4], rtversion[4];
107708     PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
107709     PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
107710     if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
107711         char message[200];
107712         PyOS_snprintf(message, sizeof(message),
107713                       "compiletime version %s of module '%.100s' "
107714                       "does not match runtime version %s",
107715                       ctversion, __Pyx_MODULE_NAME, rtversion);
107716         #if PY_VERSION_HEX < 0x02050000
107717         return PyErr_Warn(NULL, message);
107718         #else
107719         return PyErr_WarnEx(NULL, message, 1);
107720         #endif
107721     }
107722     return 0;
107723 }
107724 
107725 static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
107726     PyObject *d = 0;
107727     PyObject *cobj = 0;
107728     union {
107729         void (*fp)(void);
107730         void *p;
107731     } tmp;
107732 
107733     d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
107734     if (!d) {
107735         PyErr_Clear();
107736         d = PyDict_New();
107737         if (!d)
107738             goto bad;
107739         Py_INCREF(d);
107740         if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
107741             goto bad;
107742     }
107743     tmp.fp = f;
107744 #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
107745     cobj = PyCapsule_New(tmp.p, sig, 0);
107746 #else
107747     cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
107748 #endif
107749     if (!cobj)
107750         goto bad;
107751     if (PyDict_SetItemString(d, name, cobj) < 0)
107752         goto bad;
107753     Py_DECREF(cobj);
107754     Py_DECREF(d);
107755     return 0;
107756 bad:
107757     Py_XDECREF(cobj);
107758     Py_XDECREF(d);
107759     return -1;
107760 }
107761 
107762 static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
107763 #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
107764     PyObject *ob = PyCapsule_New(vtable, 0, 0);
107765 #else
107766     PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
107767 #endif
107768     if (!ob)
107769         goto bad;
107770     if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0)
107771         goto bad;
107772     Py_DECREF(ob);
107773     return 0;
107774 bad:
107775     Py_XDECREF(ob);
107776     return -1;
107777 }
107778 
107779 #ifndef __PYX_HAVE_RT_ImportModule
107780 #define __PYX_HAVE_RT_ImportModule
107781 static PyObject *__Pyx_ImportModule(const char *name) {
107782     PyObject *py_name = 0;
107783     PyObject *py_module = 0;
107784 
107785     #if PY_MAJOR_VERSION < 3
107786     py_name = PyString_FromString(name);
107787     #else
107788     py_name = PyUnicode_FromString(name);
107789     #endif
107790     if (!py_name)
107791         goto bad;
107792     py_module = PyImport_Import(py_name);
107793     Py_DECREF(py_name);
107794     return py_module;
107795 bad:
107796     Py_XDECREF(py_name);
107797     return 0;
107798 }
107799 #endif
107800 
107801 #include "compile.h"
107802 #include "frameobject.h"
107803 #include "traceback.h"
107804 
107805 static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno,
107806                                int __pyx_lineno, const char *__pyx_filename) {
107807     PyObject *py_srcfile = 0;
107808     PyObject *py_funcname = 0;
107809     PyObject *py_globals = 0;
107810     PyCodeObject *py_code = 0;
107811     PyFrameObject *py_frame = 0;
107812 
107813     #if PY_MAJOR_VERSION < 3
107814     py_srcfile = PyString_FromString(__pyx_filename);
107815     #else
107816     py_srcfile = PyUnicode_FromString(__pyx_filename);
107817     #endif
107818     if (!py_srcfile) goto bad;
107819     if (__pyx_clineno) {
107820         #if PY_MAJOR_VERSION < 3
107821         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
107822         #else
107823         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
107824         #endif
107825     }
107826     else {
107827         #if PY_MAJOR_VERSION < 3
107828         py_funcname = PyString_FromString(funcname);
107829         #else
107830         py_funcname = PyUnicode_FromString(funcname);
107831         #endif
107832     }
107833     if (!py_funcname) goto bad;
107834     py_globals = PyModule_GetDict(__pyx_m);
107835     if (!py_globals) goto bad;
107836     py_code = PyCode_New(
107837         0,            /*int argcount,*/
107838         #if PY_MAJOR_VERSION >= 3
107839         0,            /*int kwonlyargcount,*/
107840         #endif
107841         0,            /*int nlocals,*/
107842         0,            /*int stacksize,*/
107843         0,            /*int flags,*/
107844         __pyx_empty_bytes, /*PyObject *code,*/
107845         __pyx_empty_tuple,  /*PyObject *consts,*/
107846         __pyx_empty_tuple,  /*PyObject *names,*/
107847         __pyx_empty_tuple,  /*PyObject *varnames,*/
107848         __pyx_empty_tuple,  /*PyObject *freevars,*/
107849         __pyx_empty_tuple,  /*PyObject *cellvars,*/
107850         py_srcfile,   /*PyObject *filename,*/
107851         py_funcname,  /*PyObject *name,*/
107852         __pyx_lineno,   /*int firstlineno,*/
107853         __pyx_empty_bytes  /*PyObject *lnotab*/
107854     );
107855     if (!py_code) goto bad;
107856     py_frame = PyFrame_New(
107857         PyThreadState_GET(), /*PyThreadState *tstate,*/
107858         py_code,             /*PyCodeObject *code,*/
107859         py_globals,          /*PyObject *globals,*/
107860         0                    /*PyObject *locals*/
107861     );
107862     if (!py_frame) goto bad;
107863     py_frame->f_lineno = __pyx_lineno;
107864     PyTraceBack_Here(py_frame);
107865 bad:
107866     Py_XDECREF(py_srcfile);
107867     Py_XDECREF(py_funcname);
107868     Py_XDECREF(py_code);
107869     Py_XDECREF(py_frame);
107870 }
107871 
107872 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
107873     while (t->p) {
107874         #if PY_MAJOR_VERSION < 3
107875         if (t->is_unicode) {
107876             *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
107877         } else if (t->intern) {
107878             *t->p = PyString_InternFromString(t->s);
107879         } else {
107880             *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
107881         }
107882         #else  /* Python 3+ has unicode identifiers */
107883         if (t->is_unicode | t->is_str) {
107884             if (t->intern) {
107885                 *t->p = PyUnicode_InternFromString(t->s);
107886             } else if (t->encoding) {
107887                 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
107888             } else {
107889                 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
107890             }
107891         } else {
107892             *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
107893         }
107894         #endif
107895         if (!*t->p)
107896             return -1;
107897         ++t;
107898     }
107899     return 0;
107900 }
107901 
107902 /* Type Conversion Functions */
107903 
107904 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
107905    int is_true = x == Py_True;
107906    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
107907    else return PyObject_IsTrue(x);
107908 }
107909 
107910 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
107911   PyNumberMethods *m;
107912   const char *name = NULL;
107913   PyObject *res = NULL;
107914 #if PY_VERSION_HEX < 0x03000000
107915   if (PyInt_Check(x) || PyLong_Check(x))
107916 #else
107917   if (PyLong_Check(x))
107918 #endif
107919     return Py_INCREF(x), x;
107920   m = Py_TYPE(x)->tp_as_number;
107921 #if PY_VERSION_HEX < 0x03000000
107922   if (m && m->nb_int) {
107923     name = "int";
107924     res = PyNumber_Int(x);
107925   }
107926   else if (m && m->nb_long) {
107927     name = "long";
107928     res = PyNumber_Long(x);
107929   }
107930 #else
107931   if (m && m->nb_int) {
107932     name = "int";
107933     res = PyNumber_Long(x);
107934   }
107935 #endif
107936   if (res) {
107937 #if PY_VERSION_HEX < 0x03000000
107938     if (!PyInt_Check(res) && !PyLong_Check(res)) {
107939 #else
107940     if (!PyLong_Check(res)) {
107941 #endif
107942       PyErr_Format(PyExc_TypeError,
107943                    "__%s__ returned non-%s (type %.200s)",
107944                    name, name, Py_TYPE(res)->tp_name);
107945       Py_DECREF(res);
107946       return NULL;
107947     }
107948   }
107949   else if (!PyErr_Occurred()) {
107950     PyErr_SetString(PyExc_TypeError,
107951                     "an integer is required");
107952   }
107953   return res;
107954 }
107955 
107956 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
107957   Py_ssize_t ival;
107958   PyObject* x = PyNumber_Index(b);
107959   if (!x) return -1;
107960   ival = PyInt_AsSsize_t(x);
107961   Py_DECREF(x);
107962   return ival;
107963 }
107964 
107965 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
107966 #if PY_VERSION_HEX < 0x02050000
107967    if (ival <= LONG_MAX)
107968        return PyInt_FromLong((long)ival);
107969    else {
107970        unsigned char *bytes = (unsigned char *) &ival;
107971        int one = 1; int little = (int)*(unsigned char*)&one;
107972        return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
107973    }
107974 #else
107975    return PyInt_FromSize_t(ival);
107976 #endif
107977 }
107978 
107979 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
107980    unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
107981    if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
107982        return (size_t)-1;
107983    } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
107984        PyErr_SetString(PyExc_OverflowError,
107985                        "value too large to convert to size_t");
107986        return (size_t)-1;
107987    }
107988    return (size_t)val;
107989 }
107990 
107991 
107992 #endif /* Py_PYTHON_H */
107993