/* Generated by Cython 0.29.32 */

#ifndef __PYX_HAVE_API__slepc4py__SLEPc
#define __PYX_HAVE_API__slepc4py__SLEPc
#ifdef __MINGW64__
#define MS_WIN64
#endif
#include "Python.h"
#include "slepc4py.SLEPc.h"

static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_ST = 0;
#define PySlepcST_Type (*__pyx_ptype_8slepc4py_5SLEPc_ST)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_BV = 0;
#define PySlepcBV_Type (*__pyx_ptype_8slepc4py_5SLEPc_BV)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_DS = 0;
#define PySlepcDS_Type (*__pyx_ptype_8slepc4py_5SLEPc_DS)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_FN = 0;
#define PySlepcFN_Type (*__pyx_ptype_8slepc4py_5SLEPc_FN)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_RG = 0;
#define PySlepcRG_Type (*__pyx_ptype_8slepc4py_5SLEPc_RG)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_EPS = 0;
#define PySlepcEPS_Type (*__pyx_ptype_8slepc4py_5SLEPc_EPS)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_SVD = 0;
#define PySlepcSVD_Type (*__pyx_ptype_8slepc4py_5SLEPc_SVD)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_PEP = 0;
#define PySlepcPEP_Type (*__pyx_ptype_8slepc4py_5SLEPc_PEP)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_NEP = 0;
#define PySlepcNEP_Type (*__pyx_ptype_8slepc4py_5SLEPc_NEP)
static PyTypeObject *__pyx_ptype_8slepc4py_5SLEPc_MFN = 0;
#define PySlepcMFN_Type (*__pyx_ptype_8slepc4py_5SLEPc_MFN)

static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcST_New)(ST) = 0;
#define PySlepcST_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcST_New
static ST (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcST_Get)(PyObject *) = 0;
#define PySlepcST_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcST_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_New)(BV) = 0;
#define PySlepcBV_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_New
static BV (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_Get)(PyObject *) = 0;
#define PySlepcBV_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_New)(DS) = 0;
#define PySlepcDS_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_New
static DS (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_Get)(PyObject *) = 0;
#define PySlepcDS_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_New)(FN) = 0;
#define PySlepcFN_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_New
static FN (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_Get)(PyObject *) = 0;
#define PySlepcFN_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_New)(RG) = 0;
#define PySlepcRG_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_New
static RG (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_Get)(PyObject *) = 0;
#define PySlepcRG_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_New)(EPS) = 0;
#define PySlepcEPS_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_New
static EPS (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_Get)(PyObject *) = 0;
#define PySlepcEPS_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_New)(SVD) = 0;
#define PySlepcSVD_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_New
static SVD (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_Get)(PyObject *) = 0;
#define PySlepcSVD_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_New)(PEP) = 0;
#define PySlepcPEP_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_New
static PEP (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_Get)(PyObject *) = 0;
#define PySlepcPEP_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_New)(NEP) = 0;
#define PySlepcNEP_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_New
static NEP (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_Get)(PyObject *) = 0;
#define PySlepcNEP_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_Get
static PyObject *(*__pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_New)(MFN) = 0;
#define PySlepcMFN_New __pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_New
static MFN (*__pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_Get)(PyObject *) = 0;
#define PySlepcMFN_Get __pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_Get
#if !defined(__Pyx_PyIdentifier_FromString)
#if PY_MAJOR_VERSION < 3
  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
#else
  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
#endif
#endif

#ifndef __PYX_HAVE_RT_ImportFunction
#define __PYX_HAVE_RT_ImportFunction
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
    if (!d)
        goto bad;
    cobj = PyDict_GetItemString(d, funcname);
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C function %.200s",
                PyModule_GetName(module), funcname);
        goto bad;
    }
#if PY_VERSION_HEX >= 0x02070000
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    tmp.p = PyCapsule_GetPointer(cobj, sig);
#else
    {const char *desc, *s1, *s2;
    desc = (const char *)PyCObject_GetDesc(cobj);
    if (!desc)
        goto bad;
    s1 = desc; s2 = sig;
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    if (*s1 != *s2) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, desc);
        goto bad;
    }
    tmp.p = PyCObject_AsVoidPtr(cobj);}
#endif
    *f = tmp.fp;
    if (!(*f))
        goto bad;
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(d);
    return -1;
}
#endif

#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#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;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    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;
#endif
    if ((size_t)basicsize < 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);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != 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);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif


static int import_slepc4py__SLEPc(void) {
  PyObject *module = 0;
  module = PyImport_ImportModule("slepc4py.SLEPc");
  if (!module) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcST_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcST_New, "PyObject *(ST)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcST_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcST_Get, "ST (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcBV_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_New, "PyObject *(BV)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcBV_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcBV_Get, "BV (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcDS_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_New, "PyObject *(DS)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcDS_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcDS_Get, "DS (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcFN_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_New, "PyObject *(FN)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcFN_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcFN_Get, "FN (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcRG_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_New, "PyObject *(RG)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcRG_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcRG_Get, "RG (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcEPS_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_New, "PyObject *(EPS)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcEPS_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcEPS_Get, "EPS (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcSVD_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_New, "PyObject *(SVD)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcSVD_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcSVD_Get, "SVD (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcPEP_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_New, "PyObject *(PEP)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcPEP_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcPEP_Get, "PEP (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcNEP_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_New, "PyObject *(NEP)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcNEP_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcNEP_Get, "NEP (PyObject *)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcMFN_New", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_New, "PyObject *(MFN)") < 0) goto bad;
  if (__Pyx_ImportFunction(module, "PySlepcMFN_Get", (void (**)(void))&__pyx_api_f_8slepc4py_5SLEPc_PySlepcMFN_Get, "MFN (PyObject *)") < 0) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_ST = __Pyx_ImportType(module, "slepc4py.SLEPc", "ST", sizeof(struct PySlepcSTObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_ST) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_BV = __Pyx_ImportType(module, "slepc4py.SLEPc", "BV", sizeof(struct PySlepcBVObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_BV) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_DS = __Pyx_ImportType(module, "slepc4py.SLEPc", "DS", sizeof(struct PySlepcDSObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_DS) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_FN = __Pyx_ImportType(module, "slepc4py.SLEPc", "FN", sizeof(struct PySlepcFNObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_FN) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_RG = __Pyx_ImportType(module, "slepc4py.SLEPc", "RG", sizeof(struct PySlepcRGObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_RG) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_EPS = __Pyx_ImportType(module, "slepc4py.SLEPc", "EPS", sizeof(struct PySlepcEPSObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_EPS) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_SVD = __Pyx_ImportType(module, "slepc4py.SLEPc", "SVD", sizeof(struct PySlepcSVDObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_SVD) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_PEP = __Pyx_ImportType(module, "slepc4py.SLEPc", "PEP", sizeof(struct PySlepcPEPObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_PEP) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_NEP = __Pyx_ImportType(module, "slepc4py.SLEPc", "NEP", sizeof(struct PySlepcNEPObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_NEP) goto bad;
  __pyx_ptype_8slepc4py_5SLEPc_MFN = __Pyx_ImportType(module, "slepc4py.SLEPc", "MFN", sizeof(struct PySlepcMFNObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_8slepc4py_5SLEPc_MFN) goto bad;
  Py_DECREF(module); module = 0;
  return 0;
  bad:
  Py_XDECREF(module);
  return -1;
}

#endif /* !__PYX_HAVE_API__slepc4py__SLEPc */
