/* Generated by Cython 3.2.2 */

#ifndef __PYX_HAVE_API__mpi4py__MPI
#define __PYX_HAVE_API__mpi4py__MPI
#ifdef __MINGW64__
#define MS_WIN64
#endif
#include "Python.h"
#include "MPI.h"

static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Datatype = 0;
#define PyMPIDatatype_Type (*__pyx_ptype_6mpi4py_3MPI_Datatype)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Status = 0;
#define PyMPIStatus_Type (*__pyx_ptype_6mpi4py_3MPI_Status)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Request = 0;
#define PyMPIRequest_Type (*__pyx_ptype_6mpi4py_3MPI_Request)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Prequest = 0;
#define PyMPIPrequest_Type (*__pyx_ptype_6mpi4py_3MPI_Prequest)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Grequest = 0;
#define PyMPIGrequest_Type (*__pyx_ptype_6mpi4py_3MPI_Grequest)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Message = 0;
#define PyMPIMessage_Type (*__pyx_ptype_6mpi4py_3MPI_Message)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Op = 0;
#define PyMPIOp_Type (*__pyx_ptype_6mpi4py_3MPI_Op)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Group = 0;
#define PyMPIGroup_Type (*__pyx_ptype_6mpi4py_3MPI_Group)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Info = 0;
#define PyMPIInfo_Type (*__pyx_ptype_6mpi4py_3MPI_Info)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Errhandler = 0;
#define PyMPIErrhandler_Type (*__pyx_ptype_6mpi4py_3MPI_Errhandler)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Session = 0;
#define PyMPISession_Type (*__pyx_ptype_6mpi4py_3MPI_Session)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Comm = 0;
#define PyMPIComm_Type (*__pyx_ptype_6mpi4py_3MPI_Comm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intracomm = 0;
#define PyMPIIntracomm_Type (*__pyx_ptype_6mpi4py_3MPI_Intracomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Topocomm = 0;
#define PyMPITopocomm_Type (*__pyx_ptype_6mpi4py_3MPI_Topocomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Cartcomm = 0;
#define PyMPICartcomm_Type (*__pyx_ptype_6mpi4py_3MPI_Cartcomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Graphcomm = 0;
#define PyMPIGraphcomm_Type (*__pyx_ptype_6mpi4py_3MPI_Graphcomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Distgraphcomm = 0;
#define PyMPIDistgraphcomm_Type (*__pyx_ptype_6mpi4py_3MPI_Distgraphcomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intercomm = 0;
#define PyMPIIntercomm_Type (*__pyx_ptype_6mpi4py_3MPI_Intercomm)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Win = 0;
#define PyMPIWin_Type (*__pyx_ptype_6mpi4py_3MPI_Win)
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_File = 0;
#define PyMPIFile_Type (*__pyx_ptype_6mpi4py_3MPI_File)

static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_New)(MPI_Datatype) = 0;
#define PyMPIDatatype_New __pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_New
static MPI_Datatype *(*__pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_Get)(PyObject *) = 0;
#define PyMPIDatatype_Get __pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIStatus_New)(MPI_Status *) = 0;
#define PyMPIStatus_New __pyx_api_f_6mpi4py_3MPI_PyMPIStatus_New
static MPI_Status *(*__pyx_api_f_6mpi4py_3MPI_PyMPIStatus_Get)(PyObject *) = 0;
#define PyMPIStatus_Get __pyx_api_f_6mpi4py_3MPI_PyMPIStatus_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIRequest_New)(MPI_Request) = 0;
#define PyMPIRequest_New __pyx_api_f_6mpi4py_3MPI_PyMPIRequest_New
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIPrequest_New)(MPI_Request) = 0;
#define PyMPIPrequest_New __pyx_api_f_6mpi4py_3MPI_PyMPIPrequest_New
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIGrequest_New)(MPI_Request) = 0;
#define PyMPIGrequest_New __pyx_api_f_6mpi4py_3MPI_PyMPIGrequest_New
static MPI_Request *(*__pyx_api_f_6mpi4py_3MPI_PyMPIRequest_Get)(PyObject *) = 0;
#define PyMPIRequest_Get __pyx_api_f_6mpi4py_3MPI_PyMPIRequest_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIMessage_New)(MPI_Message) = 0;
#define PyMPIMessage_New __pyx_api_f_6mpi4py_3MPI_PyMPIMessage_New
static MPI_Message *(*__pyx_api_f_6mpi4py_3MPI_PyMPIMessage_Get)(PyObject *) = 0;
#define PyMPIMessage_Get __pyx_api_f_6mpi4py_3MPI_PyMPIMessage_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIOp_New)(MPI_Op) = 0;
#define PyMPIOp_New __pyx_api_f_6mpi4py_3MPI_PyMPIOp_New
static MPI_Op *(*__pyx_api_f_6mpi4py_3MPI_PyMPIOp_Get)(PyObject *) = 0;
#define PyMPIOp_Get __pyx_api_f_6mpi4py_3MPI_PyMPIOp_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIGroup_New)(MPI_Group) = 0;
#define PyMPIGroup_New __pyx_api_f_6mpi4py_3MPI_PyMPIGroup_New
static MPI_Group *(*__pyx_api_f_6mpi4py_3MPI_PyMPIGroup_Get)(PyObject *) = 0;
#define PyMPIGroup_Get __pyx_api_f_6mpi4py_3MPI_PyMPIGroup_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIInfo_New)(MPI_Info) = 0;
#define PyMPIInfo_New __pyx_api_f_6mpi4py_3MPI_PyMPIInfo_New
static MPI_Info *(*__pyx_api_f_6mpi4py_3MPI_PyMPIInfo_Get)(PyObject *) = 0;
#define PyMPIInfo_Get __pyx_api_f_6mpi4py_3MPI_PyMPIInfo_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_New)(MPI_Errhandler) = 0;
#define PyMPIErrhandler_New __pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_New
static MPI_Errhandler *(*__pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_Get)(PyObject *) = 0;
#define PyMPIErrhandler_Get __pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPISession_New)(MPI_Session) = 0;
#define PyMPISession_New __pyx_api_f_6mpi4py_3MPI_PyMPISession_New
static MPI_Session *(*__pyx_api_f_6mpi4py_3MPI_PyMPISession_Get)(PyObject *) = 0;
#define PyMPISession_Get __pyx_api_f_6mpi4py_3MPI_PyMPISession_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIComm_New)(MPI_Comm) = 0;
#define PyMPIComm_New __pyx_api_f_6mpi4py_3MPI_PyMPIComm_New
static MPI_Comm *(*__pyx_api_f_6mpi4py_3MPI_PyMPIComm_Get)(PyObject *) = 0;
#define PyMPIComm_Get __pyx_api_f_6mpi4py_3MPI_PyMPIComm_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIWin_New)(MPI_Win) = 0;
#define PyMPIWin_New __pyx_api_f_6mpi4py_3MPI_PyMPIWin_New
static MPI_Win *(*__pyx_api_f_6mpi4py_3MPI_PyMPIWin_Get)(PyObject *) = 0;
#define PyMPIWin_Get __pyx_api_f_6mpi4py_3MPI_PyMPIWin_Get
static PyObject *(*__pyx_api_f_6mpi4py_3MPI_PyMPIFile_New)(MPI_File) = 0;
#define PyMPIFile_New __pyx_api_f_6mpi4py_3MPI_PyMPIFile_New
static MPI_File *(*__pyx_api_f_6mpi4py_3MPI_PyMPIFile_Get)(PyObject *) = 0;
#define PyMPIFile_Get __pyx_api_f_6mpi4py_3MPI_PyMPIFile_Get
static int __Pyx_ImportFunction_3_2_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

#ifndef __PYX_HAVE_RT_ImportFromPxd_3_2_2
#define __PYX_HAVE_RT_ImportFromPxd_3_2_2
static int __Pyx_ImportFromPxd_3_2_2(PyObject *module, const char *name, void **p, const char *sig, const char *what) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    d = PyObject_GetAttrString(module, "__pyx_capi__");
    if (!d)
        goto bad;
#if (defined(Py_LIMITED_API) && Py_LIMITED_API >= 0x030d0000) || (!defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030d0000)
    PyDict_GetItemStringRef(d, name, &cobj);
#else
    cobj = PyDict_GetItemString(d, name);
    Py_XINCREF(cobj);
#endif
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C %.8s %.200s",
                PyModule_GetName(module), what, name);
        goto bad;
    }
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C %.8s %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             what, PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    *p = PyCapsule_GetPointer(cobj, sig);
    if (!(*p))
        goto bad;
    Py_DECREF(d);
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(d);
    Py_XDECREF(cobj);
    return -1;
}
#endif

#ifndef __PYX_HAVE_RT_ImportFunction_3_2_2
#define __PYX_HAVE_RT_ImportFunction_3_2_2
static int __Pyx_ImportFunction_3_2_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    int result = __Pyx_ImportFromPxd_3_2_2(module, funcname, &tmp.p, sig, "function");
    if (result == 0) {
        *f = tmp.fp;
    }
    return result;
}
#endif

#ifndef __PYX_HAVE_RT_ImportType_proto_3_2_2
#define __PYX_HAVE_RT_ImportType_proto_3_2_2
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_2(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_2(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_2_2 {
   __Pyx_ImportType_CheckSize_Error_3_2_2 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_2_2 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_2_2 = 2
};
static PyTypeObject *__Pyx_ImportType_3_2_2(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_2 check_size);
#endif

#ifndef __PYX_HAVE_RT_ImportType_3_2_2
#define __PYX_HAVE_RT_ImportType_3_2_2
static PyTypeObject *__Pyx_ImportType_3_2_2(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_2 check_size)
{
    PyObject *result = 0;
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    if (size == 0) {
        return (PyTypeObject *)result;
    }
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_2 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_2 && (size_t)basicsize > size) {
        if (PyErr_WarnFormat(NULL, 0,
                "%.200s.%.200s size changed, may indicate binary incompatibility. "
                "Expected %zd from C header, got %zd from PyObject",
                module_name, class_name, size, basicsize) < 0) {
            goto bad;
        }
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif


static int import_mpi4py__MPI(void) {
  PyObject *module = 0;
  module = PyImport_ImportModule("mpi4py.MPI");
  if (!module) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIDatatype_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_New, "PyObject *(MPI_Datatype)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIDatatype_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIDatatype_Get, "MPI_Datatype *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIStatus_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIStatus_New, "PyObject *(MPI_Status *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIStatus_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIStatus_Get, "MPI_Status *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIRequest_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIRequest_New, "PyObject *(MPI_Request)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIPrequest_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIPrequest_New, "PyObject *(MPI_Request)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIGrequest_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIGrequest_New, "PyObject *(MPI_Request)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIRequest_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIRequest_Get, "MPI_Request *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIMessage_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIMessage_New, "PyObject *(MPI_Message)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIMessage_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIMessage_Get, "MPI_Message *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIOp_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIOp_New, "PyObject *(MPI_Op)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIOp_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIOp_Get, "MPI_Op *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIGroup_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIGroup_New, "PyObject *(MPI_Group)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIGroup_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIGroup_Get, "MPI_Group *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIInfo_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIInfo_New, "PyObject *(MPI_Info)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIInfo_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIInfo_Get, "MPI_Info *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIErrhandler_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_New, "PyObject *(MPI_Errhandler)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIErrhandler_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIErrhandler_Get, "MPI_Errhandler *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPISession_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPISession_New, "PyObject *(MPI_Session)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPISession_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPISession_Get, "MPI_Session *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIComm_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIComm_New, "PyObject *(MPI_Comm)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIComm_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIComm_Get, "MPI_Comm *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIWin_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIWin_New, "PyObject *(MPI_Win)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIWin_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIWin_Get, "MPI_Win *(PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIFile_New", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIFile_New, "PyObject *(MPI_File)") < 0) goto bad;
  if (__Pyx_ImportFunction_3_2_2(module, "PyMPIFile_Get", (void (**)(void))&__pyx_api_f_6mpi4py_3MPI_PyMPIFile_Get, "MPI_File *(PyObject *)") < 0) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Datatype = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Datatype",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIDatatypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDatatypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIDatatypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDatatypeObject),
  #else
  sizeof(struct PyMPIDatatypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDatatypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Datatype) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Status = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Status",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIStatusObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIStatusObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIStatusObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIStatusObject),
  #else
  sizeof(struct PyMPIStatusObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIStatusObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Status) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Request = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Request",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIRequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIRequestObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIRequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIRequestObject),
  #else
  sizeof(struct PyMPIRequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIRequestObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Request) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Prequest = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Prequest",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIPrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIPrequestObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIPrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIPrequestObject),
  #else
  sizeof(struct PyMPIPrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIPrequestObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Prequest) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Grequest = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Grequest",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIGrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGrequestObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIGrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGrequestObject),
  #else
  sizeof(struct PyMPIGrequestObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGrequestObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Grequest) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Message = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Message",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIMessageObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIMessageObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIMessageObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIMessageObject),
  #else
  sizeof(struct PyMPIMessageObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIMessageObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Message) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Op = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Op",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIOpObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIOpObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIOpObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIOpObject),
  #else
  sizeof(struct PyMPIOpObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIOpObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Op) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Group = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Group",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIGroupObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGroupObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIGroupObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGroupObject),
  #else
  sizeof(struct PyMPIGroupObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGroupObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Group) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Info = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Info",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIInfoObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIInfoObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIInfoObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIInfoObject),
  #else
  sizeof(struct PyMPIInfoObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIInfoObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Info) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Errhandler = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Errhandler",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIErrhandlerObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIErrhandlerObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIErrhandlerObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIErrhandlerObject),
  #else
  sizeof(struct PyMPIErrhandlerObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIErrhandlerObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Errhandler) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Session = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Session",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPISessionObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPISessionObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPISessionObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPISessionObject),
  #else
  sizeof(struct PyMPISessionObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPISessionObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Session) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Comm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Comm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPICommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPICommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICommObject),
  #else
  sizeof(struct PyMPICommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Comm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Intracomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Intracomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIIntracommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntracommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIIntracommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntracommObject),
  #else
  sizeof(struct PyMPIIntracommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntracommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Intracomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Topocomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Topocomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPITopocommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPITopocommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPITopocommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPITopocommObject),
  #else
  sizeof(struct PyMPITopocommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPITopocommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Topocomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Cartcomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Cartcomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPICartcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICartcommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPICartcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICartcommObject),
  #else
  sizeof(struct PyMPICartcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPICartcommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Cartcomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Graphcomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Graphcomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIGraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGraphcommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIGraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGraphcommObject),
  #else
  sizeof(struct PyMPIGraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIGraphcommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Graphcomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Distgraphcomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Distgraphcomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIDistgraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDistgraphcommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIDistgraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDistgraphcommObject),
  #else
  sizeof(struct PyMPIDistgraphcommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIDistgraphcommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Distgraphcomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Intercomm = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Intercomm",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIIntercommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntercommObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIIntercommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntercommObject),
  #else
  sizeof(struct PyMPIIntercommObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIIntercommObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Intercomm) goto bad;
  __pyx_ptype_6mpi4py_3MPI_Win = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "Win",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIWinObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIWinObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIWinObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIWinObject),
  #else
  sizeof(struct PyMPIWinObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIWinObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_Win) goto bad;
  __pyx_ptype_6mpi4py_3MPI_File = __Pyx_ImportType_3_2_2(module, "mpi4py.MPI", "File",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct PyMPIFileObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIFileObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct PyMPIFileObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIFileObject),
  #else
  sizeof(struct PyMPIFileObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_2(struct PyMPIFileObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_2); if (!__pyx_ptype_6mpi4py_3MPI_File) goto bad;
  Py_DECREF(module); module = 0;
  return 0;
  bad:
  Py_XDECREF(module);
  return -1;
}

#endif /* !__PYX_HAVE_API__mpi4py__MPI */
